From 25cfcf29411c3c9ed25c8b5d756458cd4a7fe859 Mon Sep 17 00:00:00 2001 From: Christoph Urlacher Date: Thu, 15 Aug 2024 14:28:54 +0200 Subject: [PATCH] Update generated neovim config --- .../.github/workflows/release_please.yml | 17 + .../better-escape.nvim/CHANGELOG.md | 43 + .../groups/integrations/grug_far.lua | 9 + .../groups/integrations/nvim_surround.lua | 9 + .../groups/integrations/render_markdown.lua | 27 + .../lua/conform/formatters/bsfmt.lua | 10 + .../lua/conform/formatters/caramel_fmt.lua | 10 + .../lua/conform/formatters/crlfmt.lua | 10 + .../lua/conform/formatters/d2.lua | 9 + .../lua/conform/formatters/dcm_fix.lua | 10 + .../lua/conform/formatters/dcm_format.lua | 10 + .../lua/conform/formatters/docformatter.lua | 10 + .../lua/conform/formatters/docstrfmt.lua | 9 + .../lua/conform/formatters/doctoc.lua | 12 + .../lua/conform/formatters/efmt.lua | 10 + .../lua/conform/formatters/erlfmt.lua | 10 + .../lua/conform/formatters/findent.lua | 9 + .../lua/conform/formatters/format-queries.lua | 26 + .../lua/conform/formatters/fprettify.lua | 14 + .../lua/conform/formatters/gluon_fmt.lua | 10 + .../lua/conform/formatters/grain_format.lua | 10 + .../lua/conform/formatters/hindent.lua | 10 + .../lua/conform/formatters/imba_fmt.lua | 11 + .../lua/conform/formatters/kcl.lua | 10 + .../lua/conform/formatters/llf.lua | 9 + .../lua/conform/formatters/lua-format.lua | 9 + .../lua/conform/formatters/nickel.lua | 10 + .../conform/formatters/npm-groovy-lint.lua | 12 + .../lua/conform/formatters/pyink.lua | 15 + .../lua/conform/formatters/rstfmt.lua | 10 + .../lua/conform/formatters/sleek.lua | 9 + .../conform/formatters/stylish-haskell.lua | 10 + .../lua/conform/formatters/swiftlint.lua | 11 + .../lua/conform/formatters/vsg.lua | 52 + .../conform.nvim/lua/conform/ft_to_ext.lua | 13 + .../store/lazy-plugins/direnv.vim/LICENSE | 21 + .../store/lazy-plugins/direnv.vim/README.md | 29 + .../direnv.vim/autoload/direnv.vim | 138 + .../direnv.vim/autoload/direnv/edit.vim | 56 + .../autoload/direnv/extra_vimrc.vim | 28 + .../lazy-plugins/direnv.vim/doc/direnv.txt | 167 + .../store/lazy-plugins/direnv.vim/doc/tags | 19 + .../direnv.vim/ftdetect/direnv.vim | 5 + .../direnv.vim/ftplugin/direnv.vim | 15 + .../lazy-plugins/direnv.vim/plugin/direnv.vim | 37 + .../lazy-plugins/direnv.vim/syntax/direnv.vim | 89 + .../lazy-plugins/flash.nvim/.editorconfig | 7 + .../.github/ISSUE_TEMPLATE/config.yml | 5 + .../.github/PULL_REQUEST_TEMPLATE.md | 16 + .../flash.nvim/.github/dependabot.yml | 6 + .../flash.nvim/.github/workflows/labeler.yml | 8 + .../flash.nvim/.github/workflows/pr.yml | 18 + .../flash.nvim/.github/workflows/stale.yml | 11 + .../flash.nvim/.github/workflows/update.yml | 13 + .../lazy-plugins/flash.nvim/scripts/docs | 3 + .../lazy-plugins/flash.nvim/scripts/test | 3 + .../lazy-plugins/flash.nvim/tests/minit.lua | 15 + .../gitsigns.nvim/scm-1/doc/gitsigns.txt | 1256 ++++ .../scm-1/gitsigns.nvim-scm-1.rockspec | 37 + .../gitsigns.nvim/scm-1/rock_manifest | 53 + .../manifest | 173 + .../gitsigns.nvim/lua/gitsigns/blame.lua | 400 ++ .../gitsigns.nvim/lua/gitsigns/git/blame.lua | 268 + .../gitsigns.nvim/lua/gitsigns/git/cmd.lua | 72 + .../gitsigns.nvim/lua/gitsigns/git/repo.lua | 265 + .../4.0.0-1/doc/haskell-tools.txt | 580 ++ .../4.0.0-1/ftplugin/cabal.lua | 1 + .../4.0.0-1/ftplugin/cabalproject.lua | 1 + .../4.0.0-1/ftplugin/haskell.lua | 1 + .../4.0.0-1/ftplugin/lhaskell.lua | 1 + .../haskell-tools.nvim-4.0.0-1.rockspec | 40 + .../haskell-tools.nvim/4.0.0-1/rock_manifest | 73 + .../manifest | 173 + .../haskell-tools.nvim-4.0.0-1.rockspec | 40 + .../lua/haskell-tools/commands.lua | 223 + .../luasnip/2.3.0-1/doc/luasnip.txt | 3709 ++++++++++++ .../luasnip/2.3.0-1/ftplugin/snippets.vim | 13 + .../luasnip/2.3.0-1/luasnip-2.3.0-1.rockspec | 37 + .../luasnip/2.3.0-1/plugin/luasnip.lua | 90 + .../luasnip/2.3.0-1/plugin/luasnip.vim | 23 + .../luasnip/2.3.0-1/rock_manifest | 116 + .../luasnip/2.3.0-1/syntax/snippets.vim | 28 + .../manifest | 363 ++ .../.github/ISSUE_TEMPLATE/bug-report.yml | 51 + .../.github/ISSUE_TEMPLATE/config.yml | 1 + .../ISSUE_TEMPLATE/feature-request.yml | 24 + .../.github/PULL_REQUEST_TEMPLATE.md | 2 + .../mini.nvim/.github/workflows/lint.yml | 85 + .../mini.nvim/.github/workflows/tests.yml | 39 + .../store/lazy-plugins/mini.nvim/.gitignore | 2 + .../mini.nvim/.pre-commit-config.yaml | 19 + .../store/lazy-plugins/mini.nvim/.stylua.toml | 7 + .../lazy-plugins/mini.nvim/.styluaignore | 1 + .../store/lazy-plugins/mini.nvim/CHANGELOG.md | 682 +++ .../lazy-plugins/mini.nvim/CODE_OF_CONDUCT.md | 132 + .../lazy-plugins/mini.nvim/CONTRIBUTING.md | 282 + .../store/lazy-plugins/mini.nvim/LICENSE | 21 + .../lazy-plugins/mini.nvim/MAINTAINING.md | 188 + .../store/lazy-plugins/mini.nvim/Makefile | 46 + .../store/lazy-plugins/mini.nvim/README.md | 173 + .../store/lazy-plugins/mini.nvim/TESTING.md | 963 +++ .../mini.nvim/benchmarks/starter/.gitignore | 1 + .../mini.nvim/benchmarks/starter/README.md | 35 + .../mini.nvim/benchmarks/starter/benchmark.sh | 56 + .../init-files/init_dashboard-alpha.lua | 21 + .../init-files/init_dashboard-original.lua | 17 + .../init-files/init_dashboard-starter.lua | 18 + .../starter/init-files/init_empty.lua | 4 + .../init-files/init_starter-default.lua | 7 + .../init-files/init_startify-alpha.lua | 10 + .../init-files/init_startify-original.lua | 7 + .../init-files/init_startify-starter.lua | 20 + .../mini.nvim/benchmarks/starter/install.sh | 10 + .../benchmarks/starter/make_summary.py | 68 + .../benchmarks/starter/startup-summary.md | 10 + .../mini.nvim/colors/minicyan.lua | 95 + .../mini.nvim/colors/minischeme.lua | 95 + .../mini.nvim/colors/randomhue.lua | 16 + .../lazy-plugins/mini.nvim/doc/mini-ai.txt | 796 +++ .../lazy-plugins/mini.nvim/doc/mini-align.txt | 907 +++ .../mini.nvim/doc/mini-animate.txt | 938 +++ .../mini.nvim/doc/mini-base16.txt | 282 + .../mini.nvim/doc/mini-basics.txt | 356 ++ .../mini.nvim/doc/mini-bracketed.txt | 644 ++ .../mini.nvim/doc/mini-bufremove.txt | 129 + .../lazy-plugins/mini.nvim/doc/mini-clue.txt | 755 +++ .../mini.nvim/doc/mini-colors.txt | 836 +++ .../mini.nvim/doc/mini-comment.txt | 231 + .../mini.nvim/doc/mini-completion.txt | 273 + .../mini.nvim/doc/mini-cursorword.txt | 107 + .../lazy-plugins/mini.nvim/doc/mini-deps.txt | 578 ++ .../lazy-plugins/mini.nvim/doc/mini-diff.txt | 633 ++ .../lazy-plugins/mini.nvim/doc/mini-doc.txt | 437 ++ .../lazy-plugins/mini.nvim/doc/mini-extra.txt | 805 +++ .../lazy-plugins/mini.nvim/doc/mini-files.txt | 859 +++ .../lazy-plugins/mini.nvim/doc/mini-fuzzy.txt | 160 + .../lazy-plugins/mini.nvim/doc/mini-git.txt | 426 ++ .../mini.nvim/doc/mini-hipatterns.txt | 487 ++ .../lazy-plugins/mini.nvim/doc/mini-hues.txt | 370 ++ .../lazy-plugins/mini.nvim/doc/mini-icons.txt | 506 ++ .../mini.nvim/doc/mini-indentscope.txt | 469 ++ .../lazy-plugins/mini.nvim/doc/mini-jump.txt | 179 + .../mini.nvim/doc/mini-jump2d.txt | 496 ++ .../lazy-plugins/mini.nvim/doc/mini-map.txt | 725 +++ .../lazy-plugins/mini.nvim/doc/mini-misc.txt | 305 + .../lazy-plugins/mini.nvim/doc/mini-move.txt | 184 + .../mini.nvim/doc/mini-notify.txt | 392 ++ .../mini.nvim/doc/mini-operators.txt | 472 ++ .../lazy-plugins/mini.nvim/doc/mini-pairs.txt | 342 ++ .../lazy-plugins/mini.nvim/doc/mini-pick.txt | 1443 +++++ .../mini.nvim/doc/mini-sessions.txt | 226 + .../mini.nvim/doc/mini-splitjoin.txt | 537 ++ .../mini.nvim/doc/mini-starter.txt | 623 ++ .../mini.nvim/doc/mini-statusline.txt | 367 ++ .../mini.nvim/doc/mini-surround.txt | 850 +++ .../mini.nvim/doc/mini-tabline.txt | 144 + .../lazy-plugins/mini.nvim/doc/mini-test.txt | 911 +++ .../mini.nvim/doc/mini-trailspace.txt | 93 + .../mini.nvim/doc/mini-visits.txt | 938 +++ .../store/lazy-plugins/mini.nvim/doc/mini.txt | 386 ++ .../store/lazy-plugins/mini.nvim/doc/tags | 740 +++ .../store/lazy-plugins/mini.nvim/logo.png | Bin 0 -> 621 bytes .../lazy-plugins/mini.nvim/lua/mini/ai.lua | 2061 +++++++ .../lazy-plugins/mini.nvim/lua/mini/align.lua | 2039 +++++++ .../mini.nvim/lua/mini/animate.lua | 2152 +++++++ .../mini.nvim/lua/mini/base16.lua | 1547 +++++ .../mini.nvim/lua/mini/basics.lua | 766 +++ .../mini.nvim/lua/mini/bracketed.lua | 2020 +++++++ .../mini.nvim/lua/mini/bufremove.lua | 284 + .../lazy-plugins/mini.nvim/lua/mini/clue.lua | 1977 ++++++ .../mini.nvim/lua/mini/colors.lua | 2414 ++++++++ .../mini.nvim/lua/mini/comment.lua | 566 ++ .../mini.nvim/lua/mini/completion.lua | 1417 +++++ .../mini.nvim/lua/mini/cursorword.lua | 299 + .../lazy-plugins/mini.nvim/lua/mini/deps.lua | 1616 +++++ .../lazy-plugins/mini.nvim/lua/mini/diff.lua | 1806 ++++++ .../lazy-plugins/mini.nvim/lua/mini/doc.lua | 1326 ++++ .../lazy-plugins/mini.nvim/lua/mini/extra.lua | 2055 +++++++ .../lazy-plugins/mini.nvim/lua/mini/files.lua | 2641 ++++++++ .../lazy-plugins/mini.nvim/lua/mini/fuzzy.lua | 376 ++ .../lazy-plugins/mini.nvim/lua/mini/git.lua | 1674 ++++++ .../mini.nvim/lua/mini/hipatterns.lua | 1031 ++++ .../lazy-plugins/mini.nvim/lua/mini/hues.lua | 1819 ++++++ .../lazy-plugins/mini.nvim/lua/mini/icons.lua | 2116 +++++++ .../mini.nvim/lua/mini/indentscope.lua | 1122 ++++ .../lazy-plugins/mini.nvim/lua/mini/init.lua | 386 ++ .../lazy-plugins/mini.nvim/lua/mini/jump.lua | 541 ++ .../mini.nvim/lua/mini/jump2d.lua | 1169 ++++ .../lazy-plugins/mini.nvim/lua/mini/map.lua | 1691 ++++++ .../lazy-plugins/mini.nvim/lua/mini/misc.lua | 645 ++ .../lazy-plugins/mini.nvim/lua/mini/move.lua | 496 ++ .../mini.nvim/lua/mini/notify.lua | 845 +++ .../mini.nvim/lua/mini/operators.lua | 1278 ++++ .../lazy-plugins/mini.nvim/lua/mini/pairs.lua | 645 ++ .../lazy-plugins/mini.nvim/lua/mini/pick.lua | 3427 +++++++++++ .../mini.nvim/lua/mini/sessions.lua | 643 ++ .../mini.nvim/lua/mini/splitjoin.lua | 1127 ++++ .../mini.nvim/lua/mini/starter.lua | 1594 +++++ .../mini.nvim/lua/mini/statusline.lua | 695 +++ .../mini.nvim/lua/mini/surround.lua | 2280 +++++++ .../mini.nvim/lua/mini/tabline.lua | 550 ++ .../lazy-plugins/mini.nvim/lua/mini/test.lua | 2311 +++++++ .../mini.nvim/lua/mini/trailspace.lua | 201 + .../mini.nvim/lua/mini/visits.lua | 1561 +++++ .../lazy-plugins/mini.nvim/readmes/mini-ai.md | 195 + .../mini.nvim/readmes/mini-align.md | 209 + .../mini.nvim/readmes/mini-animate.md | 223 + .../mini.nvim/readmes/mini-base16.md | 198 + .../mini.nvim/readmes/mini-basics.md | 191 + .../mini.nvim/readmes/mini-bracketed.md | 201 + .../mini.nvim/readmes/mini-bufremove.md | 150 + .../mini.nvim/readmes/mini-clue.md | 270 + .../mini.nvim/readmes/mini-colors.md | 178 + .../mini.nvim/readmes/mini-comment.md | 191 + .../mini.nvim/readmes/mini-completion.md | 195 + .../mini.nvim/readmes/mini-cursorword.md | 146 + .../mini.nvim/readmes/mini-deps.md | 254 + .../mini.nvim/readmes/mini-diff.md | 287 + .../mini.nvim/readmes/mini-doc.md | 209 + .../mini.nvim/readmes/mini-extra.md | 165 + .../mini.nvim/readmes/mini-files.md | 249 + .../mini.nvim/readmes/mini-fuzzy.md | 145 + .../mini.nvim/readmes/mini-git.md | 169 + .../mini.nvim/readmes/mini-hipatterns.md | 185 + .../mini.nvim/readmes/mini-hues.md | 250 + .../mini.nvim/readmes/mini-icons.md | 194 + .../mini.nvim/readmes/mini-indentscope.md | 193 + .../mini.nvim/readmes/mini-jump.md | 165 + .../mini.nvim/readmes/mini-jump2d.md | 204 + .../mini.nvim/readmes/mini-map.md | 200 + .../mini.nvim/readmes/mini-misc.md | 151 + .../mini.nvim/readmes/mini-move.md | 172 + .../mini.nvim/readmes/mini-notify.md | 174 + .../mini.nvim/readmes/mini-operators.md | 198 + .../mini.nvim/readmes/mini-pairs.md | 167 + .../mini.nvim/readmes/mini-pick.md | 340 ++ .../mini.nvim/readmes/mini-sessions.md | 171 + .../mini.nvim/readmes/mini-splitjoin.md | 202 + .../mini.nvim/readmes/mini-starter.md | 185 + .../mini.nvim/readmes/mini-statusline.md | 169 + .../mini.nvim/readmes/mini-surround.md | 199 + .../mini.nvim/readmes/mini-tabline.md | 168 + .../mini.nvim/readmes/mini-test.md | 185 + .../mini.nvim/readmes/mini-trailspace.md | 146 + .../mini.nvim/readmes/mini-visits.md | 243 + .../mini.nvim/scripts/basic-setup_init.lua | 67 + .../mini.nvim/scripts/dual_log.sh | 9 + .../mini.nvim/scripts/dual_push.sh | 15 + .../mini.nvim/scripts/dual_release.sh | 43 + .../mini.nvim/scripts/dual_sync.sh | 107 + .../mini.nvim/scripts/init-deps-example.lua | 62 + .../mini.nvim/scripts/lintcommit-ci.sh | 18 + .../mini.nvim/scripts/lintcommit.lua | 343 ++ .../mini.nvim/scripts/minidoc.lua | 63 + .../mini.nvim/scripts/minimal_init.lua | 7 + .../mini.nvim/scripts/minitest.lua | 4 + .../mini.nvim/tests/dir-ai/lua-file.lua | 13 + .../tests/dir-ai/lua/nvim-treesitter/init.lua | 0 .../dir-ai/lua/nvim-treesitter/query.lua | 39 + .../tests/dir-ai/mock-lua-treesitter.lua | 61 + .../tests/dir-bracketed/dir-a/file-aa | 1 + .../mini.nvim/tests/dir-bracketed/file-a | 1 + .../mini.nvim/tests/dir-bracketed/file-b | 1 + .../mini.nvim/tests/dir-bracketed/file-c | 1 + .../mini.nvim/tests/dir-bracketed/file-d | 1 + .../mini.nvim/tests/dir-bracketed/file-e | 1 + .../tests/dir-bracketed/mock/diagnostic.lua | 47 + .../tests/dir-bracketed/mock/treesitter.lua | 63 + .../dir-colors/mock_cs/colors/mock_cs.lua | 13 + .../tests/dir-completion/mock-months-lsp.lua | 163 + .../mini.nvim/tests/dir-deps/mocks/spawn.lua | 75 + .../deps/opt/plugin_1/after/plugin/plug_1.lua | 2 + .../opt/plugin_1/after/plugin/plug_1.nonlua | 1 + .../deps/opt/plugin_1/after/plugin/plug_1.vim | 5 + .../after/plugin/subdir/plug_1_sub.lua | 2 + .../pack/deps/opt/plugin_1/doc/help_1.txt | 2 + .../pack/deps/opt/plugin_1/lua/plug_1.lua | 1 + .../pack/deps/opt/plugin_1/plugin/plug_1.lua | 2 + .../pack/deps/opt/plugin_1/plugin/plug_1.vim | 5 + .../opt/plugin_1/plugin/subdir/plug_1_sub.lua | 2 + .../deps/opt/plugin_2/after/plugin/plug_2.lua | 2 + .../pack/deps/opt/plugin_2/doc/help_2.txt | 2 + .../pack/deps/opt/plugin_2/lua/plug_2.lua | 1 + .../pack/deps/opt/plugin_2/plugin/plug_2.lua | 2 + .../pack/deps/opt/plugin_3/lua/plug_3.lua | 1 + .../tests/dir-deps/snapshots/not-proper-1 | 1 + .../tests/dir-deps/snapshots/not-proper-2 | 1 + .../mini.nvim/tests/dir-deps/snapshots/snap | 4 + .../mini.nvim/tests/dir-deps/test-log | 11 + .../mini.nvim/tests/dir-diff/file | 2 + .../tests/dir-diff/git-repo/.git-dir/index | 0 .../dir-diff/git-repo/dir-in-git/file-in-git | 5 + .../mini.nvim/tests/dir-diff/mocks/spawn.lua | 67 + .../mini.nvim/tests/dir-doc/.gitignore | 2 + .../mini.nvim/tests/dir-doc/.styluaignore | 1 + .../tests/dir-doc/arguments/file.lua | 3 + .../tests/dir-doc/arguments/file_ignore.lua | 1 + .../dir-doc/arguments/output_reference.txt | 9 + .../tests/dir-doc/buffer-local_script.lua | 4 + .../custom-script/gendoc/gendoc-script.lua | 4 + .../tests/dir-doc/custom-script/init.lua | 1 + .../custom-script/output_reference.txt | 6 + .../default-collation/after/file01.lua | 1 + .../default-collation/after/file02.lua | 1 + .../dir-doc/default-collation/after/init.lua | 1 + .../default-collation/colors/file01.lua | 1 + .../default-collation/colors/file02.lua | 1 + .../dir-doc/default-collation/colors/init.lua | 1 + .../default-collation_reference.txt | 66 + .../dir-doc/default-collation/file01.lua | 1 + .../dir-doc/default-collation/file02.lua | 1 + .../tests/dir-doc/default-collation/init.lua | 1 + .../default-collation/lua/aaa/init.lua | 1 + .../dir-doc/default-collation/lua/file01.lua | 1 + .../dir-doc/default-collation/lua/file02.lua | 1 + .../dir-doc/default-collation/lua/init.lua | 1 + .../mini.nvim/tests/dir-doc/helpers.lua | 89 + .../dir-doc/inference/inference_reference.txt | 74 + .../tests/dir-doc/inference/init.lua | 68 + .../tests/dir-doc/sections/alias.lua | 17 + .../mini.nvim/tests/dir-doc/sections/eval.lua | 30 + .../mini.nvim/tests/dir-doc/sections/init.lua | 64 + .../tests/dir-doc/sections/param.lua | 31 + .../tests/dir-doc/sections/return.lua | 22 + .../dir-doc/sections/sections_reference.txt | 254 + .../mini.nvim/tests/dir-doc/sections/toc.lua | 39 + .../tests/dir-doc/structure/file1.lua | 5 + .../tests/dir-doc/structure/file2.lua | 1 + .../tests/dir-extra/explorer/Dir2/file2-1 | 0 .../mini.nvim/tests/dir-extra/explorer/File2 | 1 + .../tests/dir-extra/explorer/dir1/file1-1 | 1 + .../dir-extra/explorer/dir1/subdir/file1-1-1 | 1 + .../tests/dir-extra/explorer/dir3/file3-1 | 0 .../mini.nvim/tests/dir-extra/explorer/file1 | 1 + .../mini.nvim/tests/dir-extra/explorer/file3 | 1 + .../tests/dir-extra/git-files/git-file-1 | 21 + .../tests/dir-extra/git-files/git-file-2 | 21 + .../tests/dir-extra/lua/nvim-web-devicons.lua | 17 + .../tests/dir-extra/mocks/diagnostic-file-1 | 5 + .../tests/dir-extra/mocks/diagnostic-file-2 | 4 + .../tests/dir-extra/mocks/diagnostic.lua | 34 + .../tests/dir-extra/mocks/git-commit | 18 + .../mini.nvim/tests/dir-extra/mocks/git-diff | 47 + .../tests/dir-extra/mocks/git-diff-unified-0 | 23 + .../tests/dir-extra/mocks/git-diff-unified-20 | 57 + .../tests/dir-extra/mocks/keymaps.lua | 12 + .../mini.nvim/tests/dir-extra/mocks/lsp.lua | 96 + .../mini.nvim/tests/dir-extra/mocks/spawn.lua | 55 + .../tests/dir-extra/real-files/LICENSE | 1 + .../tests/dir-extra/real-files/Makefile | 3 + .../tests/dir-extra/real-files/a.lua | 5 + .../tests/dir-extra/real-files/b.txt | 26 + .../tests/dir-extra/real-files/c.gif | Bin 0 -> 137 bytes .../tests/dir-files/common/.a-dir/aa-file | 0 .../tests/dir-files/common/.a-dir/ab-file | 0 .../mini.nvim/tests/dir-files/common/.a-file | 1 + .../mini.nvim/tests/dir-files/common/A-file-2 | 1 + .../dir-files/common/a-dir/aa-dir/aaa-file | 0 .../tests/dir-files/common/a-dir/aa-file | 0 .../tests/dir-files/common/a-dir/ab-file | 0 .../mini.nvim/tests/dir-files/common/a-file | 1 + .../tests/dir-files/common/b-dir/ba-file | 0 .../mini.nvim/tests/dir-files/common/b-file | 1 + .../tests/dir-files/init-default-explorer.lua | 13 + .../tests/dir-files/lua/nvim-web-devicons.lua | 10 + .../tests/dir-files/mock-win-functions.lua | 19 + .../dir-111/dir-1111/dir-11111/file-111111 | 0 .../dir-files/nested/dir-1/dir-12/file-121 | 0 .../mini.nvim/tests/dir-files/real/LICENSE | 0 .../mini.nvim/tests/dir-files/real/Makefile | 3 + .../mini.nvim/tests/dir-files/real/a.lua | 5 + .../mini.nvim/tests/dir-files/real/b.txt | 26 + .../mini.nvim/tests/dir-files/real/c.gif | Bin 0 -> 137 bytes .../mini.nvim/tests/dir-git/File2 | 0 .../mini.nvim/tests/dir-git/diff-output | 23 + .../lazy-plugins/mini.nvim/tests/dir-git/file | 4 + .../mini.nvim/tests/dir-git/file1 | 0 .../mini.nvim/tests/dir-git/file3 | 0 .../dir-git/git-repo/.git-dir/COMMIT_EDITMSG | 2 + .../tests/dir-git/git-repo/.git-dir/HEAD | 1 + .../tests/dir-git/git-repo/.git-dir/index | 0 .../dir-git/git-repo/.git-dir/refs/heads/tmp | 1 + .../git-repo/dir-in-git/file-in-dir-in-git | 5 + .../tests/dir-git/git-repo/file-in-git | 1 + .../mini.nvim/tests/dir-git/help-output | 62 + .../mini.nvim/tests/dir-git/log-output | 60 + .../mini.nvim/tests/dir-git/mocks/spawn.lua | 74 + .../mini.nvim/tests/dir-map/lua/gitsigns.lua | 24 + .../tests/dir-map/mock-diagnostic.lua | 37 + .../mini.nvim/tests/dir-map/resolution_1x2 | 1 + .../mini.nvim/tests/dir-map/resolution_2x1 | 2 + .../mini.nvim/tests/dir-map/resolution_2x2 | 2 + .../mini.nvim/tests/dir-map/resolution_3x2 | 3 + .../mini.nvim/tests/dir-map/resolution_4x2 | 4 + .../tests/dir-map/src-test-integration.lua | 13 + .../mini.nvim/tests/dir-misc/Makefile | 1 + .../mini.nvim/tests/dir-misc/aaa.lua | 1 + .../tests/dir-misc/init-restore-cursor.lua | 21 + .../tests/dir-misc/mocked-git-repo/bbb.lua | 1 + .../tests/dir-misc/restore-cursor.lua | 10 + .../tests/dir-pick/builtin-tests/dir1/file1-1 | 5 + .../tests/dir-pick/builtin-tests/dir1/file1-2 | 5 + .../tests/dir-pick/builtin-tests/dir2/file2-1 | 5 + .../tests/dir-pick/builtin-tests/file | 5 + .../mini.nvim/tests/dir-pick/file | 0 .../tests/dir-pick/lua/nvim-web-devicons.lua | 17 + .../mini.nvim/tests/dir-pick/mocks/spawn.lua | 50 + .../tests/dir-pick/real-files/LICENSE | 1 + .../tests/dir-pick/real-files/Makefile | 3 + .../mini.nvim/tests/dir-pick/real-files/a.lua | 5 + .../mini.nvim/tests/dir-pick/real-files/b.txt | 26 + .../mini.nvim/tests/dir-pick/real-files/c.gif | Bin 0 -> 137 bytes .../mini.nvim/tests/dir-sessions/Session.vim | 1 + .../tests/dir-sessions/global/session1 | 1 + .../tests/dir-sessions/global/session2.vim | 1 + .../tests/dir-sessions/global/session3.lua | 2 + .../dir-sessions/init-files/autoread.lua | 7 + .../dir-sessions/init-files/autowrite.lua | 5 + .../tests/dir-sessions/local/Session.vim | 1 + .../local/alternative-local-session | 1 + .../dir-starter/init-files/test-init.lua | 9 + .../tests/dir-starter/sessions/Session.vim | 0 .../dir-starter/sessions/session_global.lua | 0 .../dir-statusline/lua/nvim-web-devicons.lua | 8 + .../tests/dir-statusline/mock-diagnostics.lua | 22 + .../tests/dir-statusline/mock-lsp.lua | 25 + .../mini.nvim/tests/dir-surround/lua-file.lua | 13 + .../dir-surround/lua/nvim-treesitter/init.lua | 0 .../lua/nvim-treesitter/parsers.lua | 11 + .../lua/nvim-treesitter/query.lua | 73 + .../dir-surround/mock-lua-treesitter.lua | 90 + .../tests/dir-tabline/bad%new.dir/aaa.lua | 0 .../mini.nvim/tests/dir-tabline/dir1/aaa | 0 .../tests/dir-tabline/dir1/bad%new.file.lua | 0 .../tests/dir-tabline/dir1/dir_nested/aaa | 0 .../mini.nvim/tests/dir-tabline/dir2/aaa | 0 .../tests/dir-tabline/dir2/dir_nested/aaa | 0 .../dir-tabline/lua/nvim-web-devicons.lua | 10 + .../dir-test/init_stdout-reporter_works.lua | 15 + .../tests/dir-test/intermediate-screenshot | 13 + .../tests/dir-test/reference-screenshot | 13 + .../tests/dir-test/testref_case-helpers.lua | 32 + .../tests/dir-test/testref_collect-busted.lua | 61 + .../tests/dir-test/testref_custom-script.lua | 12 + .../tests/dir-test/testref_general.lua | 9 + .../tests/dir-test/testref_new-set.lua | 14 + .../tests/dir-test/testref_reporters.lua | 28 + .../tests/dir-test/testref_run-data.lua | 13 + .../tests/dir-test/testref_run-hooks.lua | 68 + .../testref_run-parametrize-error.lua | 3 + .../dir-test/testref_run-parametrize.lua | 27 + .../mini.nvim/tests/dir-test/testref_run.lua | 9 + .../mini.nvim/tests/dir-trailspace/file | 1 + .../mini.nvim/tests/dir-visits/dir_1/file_1-1 | 1 + .../mini.nvim/tests/dir-visits/dir_1/file_1-2 | 1 + .../mini.nvim/tests/dir-visits/dir_1/file_1-3 | 1 + .../tests/dir-visits/dir_1/subdir/file_1-1-1 | 1 + .../mini.nvim/tests/dir-visits/dir_2/file_2-1 | 1 + .../mini.nvim/tests/dir-visits/file | 1 + .../lazy-plugins/mini.nvim/tests/helpers.lua | 176 + ...Builtin---User-prompt---colors-its-prompts | 13 + ...tin---User-prompt---colors-its-prompts-002 | 13 + ...tin---User-prompt---colors-its-prompts-003 | 13 + ...fter-one-idle-second---test-+-args-{-'a'-} | 13 + ...-one-idle-second---test-+-args-{-'a'-}-002 | 13 + ...fter-one-idle-second---test-+-args-{-'i'-} | 13 + ...-one-idle-second---test-+-args-{-'i'-}-002 | 13 + ...ua---Textobject---respects-`config.silent` | 13 + ...mand-line-only-if-helper-message-was-shown | 27 + ...er-message-does-not-cause-hit-enter-prompt | 15 + ...one-idle-second---test-+-args-{-'Normal'-} | 27 + ...idle-second---test-+-args-{-'Normal'-}-002 | 27 + ...idle-second---test-+-args-{-'Normal'-}-003 | 27 + ...idle-second---test-+-args-{-'Normal'-}-004 | 27 + ...idle-second---test-+-args-{-'Normal'-}-005 | 27 + ...idle-second---test-+-args-{-'Normal'-}-006 | 27 + ...one-idle-second---test-+-args-{-'Visual'-} | 27 + ...idle-second---test-+-args-{-'Visual'-}-002 | 27 + ...idle-second---test-+-args-{-'Visual'-}-003 | 27 + ...idle-second---test-+-args-{-'Visual'-}-004 | 27 + ...idle-second---test-+-args-{-'Visual'-}-005 | 27 + ...idle-second---test-+-args-{-'Visual'-}-006 | 27 + ...ign.lua---Align---respects-`config.silent` | 27 + ...selection---test-+-args-{-'Visual-block'-} | 27 + ...ction---test-+-args-{-'Visual-block'-}-002 | 27 + ...-selection---test-+-args-{-'Visual-char'-} | 27 + ...ection---test-+-args-{-'Visual-char'-}-002 | 27 + ...-selection---test-+-args-{-'Visual-line'-} | 27 + ...ection---test-+-args-{-'Visual-line'-}-002 | 27 + ...orrectly-shows-all-steps-in-helper-message | 27 + ...gn-with-preview---respects-`config.silent` | 27 + ...preview---uses-option-names-for-main-steps | 27 + ...w---works---test-+-args-{-'Normal-block'-} | 27 + ...works---test-+-args-{-'Normal-block'-}-002 | 27 + ...works---test-+-args-{-'Normal-block'-}-003 | 27 + ...works---test-+-args-{-'Normal-block'-}-004 | 27 + ...works---test-+-args-{-'Normal-block'-}-005 | 27 + ...ew---works---test-+-args-{-'Normal-char'-} | 27 + ...-works---test-+-args-{-'Normal-char'-}-002 | 27 + ...-works---test-+-args-{-'Normal-char'-}-003 | 27 + ...-works---test-+-args-{-'Normal-char'-}-004 | 27 + ...-works---test-+-args-{-'Normal-char'-}-005 | 27 + ...ew---works---test-+-args-{-'Normal-line'-} | 27 + ...-works---test-+-args-{-'Normal-line'-}-002 | 27 + ...-works---test-+-args-{-'Normal-line'-}-003 | 27 + ...-works---test-+-args-{-'Normal-line'-}-004 | 27 + ...-works---test-+-args-{-'Normal-line'-}-005 | 27 + ...w---works---test-+-args-{-'Visual-block'-} | 27 + ...works---test-+-args-{-'Visual-block'-}-002 | 27 + ...works---test-+-args-{-'Visual-block'-}-003 | 27 + ...works---test-+-args-{-'Visual-block'-}-004 | 27 + ...works---test-+-args-{-'Visual-block'-}-005 | 27 + ...ew---works---test-+-args-{-'Visual-char'-} | 27 + ...-works---test-+-args-{-'Visual-char'-}-002 | 27 + ...-works---test-+-args-{-'Visual-char'-}-003 | 27 + ...-works---test-+-args-{-'Visual-char'-}-004 | 27 + ...-works---test-+-args-{-'Visual-char'-}-005 | 27 + ...ew---works---test-+-args-{-'Visual-line'-} | 27 + ...-works---test-+-args-{-'Visual-line'-}-002 | 27 + ...-works---test-+-args-{-'Visual-line'-}-003 | 27 + ...-works---test-+-args-{-'Visual-line'-}-004 | 27 + ...-works---test-+-args-{-'Visual-line'-}-005 | 27 + ...iers----BS----does-nothing-if-no-pre-steps | 27 + ...----BS----does-nothing-if-no-pre-steps-002 | 27 + ...rs----BS----prompts-to-choose-if-ambiguous | 27 + ...--BS----prompts-to-choose-if-ambiguous-002 | 27 + ...--BS----prompts-to-choose-if-ambiguous-003 | 27 + ...--BS----prompts-to-choose-if-ambiguous-004 | 27 + ...--BS----prompts-to-choose-if-ambiguous-005 | 27 + ...S----works---test-+-args-{-'pre_justify'-} | 27 + ...-works---test-+-args-{-'pre_justify'-}-002 | 27 + ...-BS----works---test-+-args-{-'pre_merge'-} | 27 + ...---works---test-+-args-{-'pre_merge'-}-002 | 27 + ...-BS----works---test-+-args-{-'pre_split'-} | 27 + ...---works---test-+-args-{-'pre_split'-}-002 | 27 + ...tests-test_align.lua---Modifiers----comma- | 27 + ...s-test_align.lua---Modifiers----comma--002 | 27 + ...-test_align.lua---Modifiers----equal-sign- | 27 + ...t_align.lua---Modifiers----equal-sign--002 | 27 + ...s-test_align.lua---Modifiers----space-bar- | 27 + ...st_align.lua---Modifiers----space-bar--002 | 27 + ...n.lua---Modifiers---f---allows-empty-input | 27 + ...sts-test_align.lua---Modifiers---f---works | 27 + ...sts-test_align.lua---Modifiers---i---works | 27 + ...test_align.lua---Modifiers---i---works-002 | 27 + ...odifiers---j---works---test-+-args-{-'c'-} | 27 + ...iers---j---works---test-+-args-{-'c'-}-002 | 27 + ...odifiers---j---works---test-+-args-{-'l'-} | 27 + ...iers---j---works---test-+-args-{-'l'-}-002 | 27 + ...odifiers---j---works---test-+-args-{-'n'-} | 27 + ...iers---j---works---test-+-args-{-'n'-}-002 | 27 + ...odifiers---j---works---test-+-args-{-'r'-} | 27 + ...iers---j---works---test-+-args-{-'r'-}-002 | 27 + ...odifiers---j---works---test-+-args-{-'u'-} | 27 + ...iers---j---works---test-+-args-{-'u'-}-002 | 27 + ...sts-test_align.lua---Modifiers---m---works | 27 + ...test_align.lua---Modifiers---m---works-002 | 27 + ...sts-test_align.lua---Modifiers---p---works | 27 + ...sts-test_align.lua---Modifiers---s---works | 27 + ...test_align.lua---Modifiers---s---works-002 | 27 + ...sts-test_align.lua---Modifiers---t---works | 27 + ...ursor---can-have-only-one-animation-active | 19 + ...r---can-have-only-one-animation-active-002 | 19 + ...r---can-have-only-one-animation-active-003 | 19 + ...r---can-have-only-one-animation-active-004 | 19 + ...-if-mark-should-be-placed-outside-of-range | 19 + ...mark-should-be-placed-outside-of-range-002 | 19 + ...mark-should-be-placed-outside-of-range-003 | 19 + ...mark-should-be-placed-outside-of-range-004 | 19 + ...mark-should-be-placed-outside-of-range-005 | 19 + ...mark-should-be-placed-outside-of-range-006 | 19 + ...nimated-if-`path`-output-is-empty-or-`nil` | 19 + ...ted-if-`path`-output-is-empty-or-`nil`-002 | 19 + ...-Cursor---respects-`enable`-config-setting | 19 + ...minianimate_disable`---test-+-args-{-'b'-} | 19 + ...animate_disable`---test-+-args-{-'b'-}-002 | 19 + ...minianimate_disable`---test-+-args-{-'g'-} | 19 + ...animate_disable`---test-+-args-{-'g'-}-002 | 19 + ...ua---Cursor---respects-buffer-local-config | 19 + ...mate.lua---Cursor---stops-on-buffer-change | 27 + ....lua---Cursor---stops-on-buffer-change-002 | 27 + ....lua---Cursor---stops-on-buffer-change-003 | 27 + ....lua---Cursor---stops-on-buffer-change-004 | 27 + ....lua---Cursor---stops-on-buffer-change-005 | 27 + .../tests-test_animate.lua---Cursor---works | 19 + ...ests-test_animate.lua---Cursor---works-002 | 19 + ...ests-test_animate.lua---Cursor---works-003 | 19 + ...ests-test_animate.lua---Cursor---works-004 | 19 + ...ests-test_animate.lua---Cursor---works-005 | 19 + ...en-cursor-and-or-marks-are-outside-of-line | 19 + ...ursor-and-or-marks-are-outside-of-line-002 | 19 + ...ursor-and-or-marks-are-outside-of-line-003 | 19 + ...ursor-and-or-marks-are-outside-of-line-004 | 19 + ...ursor-and-or-marks-are-outside-of-line-005 | 19 + ...ursor-and-or-marks-are-outside-of-line-006 | 19 + ...ursor-and-or-marks-are-outside-of-line-007 | 19 + ...ursor-and-or-marks-are-outside-of-line-008 | 19 + ...ursor-and-or-marks-are-outside-of-line-009 | 19 + ...n-movement-is-triggered-by-outside-command | 19 + ...vement-is-triggered-by-outside-command-002 | 19 + ...vement-is-triggered-by-outside-command-003 | 19 + ...vement-is-triggered-by-outside-command-004 | 19 + ...vement-is-triggered-by-outside-command-005 | 19 + ...rks-with-horizontally-scrolled-window-view | 19 + ...with-horizontally-scrolled-window-view-002 | 19 + ...with-horizontally-scrolled-window-view-003 | 19 + ...with-horizontally-scrolled-window-view-004 | 19 + ...with-horizontally-scrolled-window-view-005 | 19 + ...--Cursor---works-with-multibyte-characters | 19 + ...rsor---works-with-multibyte-characters-002 | 19 + ...rsor---works-with-multibyte-characters-003 | 19 + ...rsor---works-with-multibyte-characters-004 | 19 + ...rsor---works-with-multibyte-characters-005 | 19 + ...rsor---works-with-multibyte-characters-006 | 19 + ...rsor---works-with-multibyte-characters-007 | 19 + ...rsor---works-with-multibyte-characters-008 | 19 + ...est_animate.lua---Cursor---works-with-tabs | 19 + ...animate.lua---Cursor---works-with-tabs-002 | 19 + ...animate.lua---Cursor---works-with-tabs-003 | 19 + ...animate.lua---Cursor---works-with-tabs-004 | 19 + ...animate.lua---Cursor---works-with-tabs-005 | 19 + ...animate.lua---Cursor---works-with-tabs-006 | 19 + ...-allows-immediate-another-resize-animation | 19 + ...ows-immediate-another-resize-animation-002 | 19 + ...ows-immediate-another-resize-animation-003 | 19 + ...ows-immediate-another-resize-animation-004 | 19 + ...ows-immediate-another-resize-animation-005 | 19 + ...ows-immediate-another-resize-animation-006 | 19 + ...ows-immediate-another-resize-animation-007 | 19 + ...ows-immediate-another-resize-animation-008 | 19 + ...ows-immediate-another-resize-animation-009 | 19 + ...--Resize---animates-only-for-equal-layouts | 19 + ...size---animates-only-for-equal-layouts-002 | 19 + ...does-not-flicker-due-to-high-cursor-column | 19 + ...-not-flicker-due-to-high-cursor-column-002 | 19 + ...-not-flicker-due-to-high-cursor-column-003 | 19 + ...-not-flicker-due-to-high-cursor-column-004 | 19 + ...-not-flicker-due-to-high-cursor-column-005 | 19 + ...-not-flicker-due-to-high-cursor-column-006 | 19 + ...ue-to-high-cursor-column-in-current-window | 19 + ...o-high-cursor-column-in-current-window-002 | 19 + ...o-high-cursor-column-in-current-window-003 | 19 + ...o-high-cursor-column-in-current-window-004 | 19 + ...o-high-cursor-column-in-current-window-005 | 19 + ...o-high-cursor-column-in-current-window-006 | 19 + ...o-high-cursor-column-in-current-window-007 | 19 + ...o-high-cursor-column-in-current-window-008 | 19 + ...o-high-cursor-column-in-current-window-009 | 19 + ...o-high-cursor-column-in-current-window-010 | 19 + ...o-high-cursor-column-in-current-window-011 | 19 + ...ed-if-`subresize`-output-is-empty-or-`nil` | 19 + ...f-`subresize`-output-is-empty-or-`nil`-002 | 19 + ...-Resize---respects-`enable`-config-setting | 19 + ...minianimate_disable`---test-+-args-{-'b'-} | 19 + ...animate_disable`---test-+-args-{-'b'-}-002 | 19 + ...animate_disable`---test-+-args-{-'b'-}-003 | 19 + ...minianimate_disable`---test-+-args-{-'g'-} | 19 + ...animate_disable`---test-+-args-{-'g'-}-002 | 19 + ...animate_disable`---test-+-args-{-'g'-}-003 | 19 + ...ua---Resize---respects-buffer-local-config | 19 + .../tests-test_animate.lua---Resize---works | 19 + ...ests-test_animate.lua---Resize---works-002 | 19 + ...ests-test_animate.lua---Resize---works-003 | 19 + ...ests-test_animate.lua---Resize---works-004 | 19 + ...ests-test_animate.lua---Resize---works-005 | 19 + ...ests-test_animate.lua---Resize---works-006 | 19 + ...ests-test_animate.lua---Resize---works-007 | 19 + ...ests-test_animate.lua---Resize---works-008 | 19 + ...ests-test_animate.lua---Resize---works-009 | 19 + ...ests-test_animate.lua---Resize---works-010 | 19 + ...ests-test_animate.lua---Resize---works-011 | 19 + ...ests-test_animate.lua---Resize---works-012 | 19 + ...ests-test_animate.lua---Resize---works-013 | 19 + ...ests-test_animate.lua---Resize---works-014 | 19 + ...ests-test_animate.lua---Resize---works-015 | 19 + ...ests-test_animate.lua---Resize---works-016 | 19 + ...ests-test_animate.lua---Resize---works-017 | 19 + ...hen-resize-is-triggered-by-outside-command | 19 + ...resize-is-triggered-by-outside-command-002 | 19 + ...resize-is-triggered-by-outside-command-003 | 19 + ...resize-is-triggered-by-outside-command-004 | 19 + ...Resize---works-with-`winheight`-`winwidth` | 19 + ...ze---works-with-`winheight`-`winwidth`-002 | 19 + ...ze---works-with-`winheight`-`winwidth`-003 | 19 + ...ze---works-with-`winheight`-`winwidth`-004 | 19 + ...ze---works-with-`winheight`-`winwidth`-005 | 19 + ...ze---works-with-`winheight`-`winwidth`-006 | 19 + ...ze---works-with-`winheight`-`winwidth`-007 | 19 + ...ze---works-with-`winheight`-`winwidth`-008 | 19 + ...ze---works-with-`winheight`-`winwidth`-009 | 19 + ...ze---works-with-`winheight`-`winwidth`-010 | 19 + ...ze---works-with-`winheight`-`winwidth`-011 | 19 + ...ze---works-with-`winheight`-`winwidth`-012 | 19 + ...ze---works-with-`winheight`-`winwidth`-013 | 19 + ...ze---works-with-`winheight`-`winwidth`-014 | 19 + ...ze---works-with-`winheight`-`winwidth`-015 | 19 + ...ze---works-with-`winheight`-`winwidth`-016 | 19 + ...ze---works-with-`winheight`-`winwidth`-017 | 19 + ...ze---works-with-`winheight`-`winwidth`-018 | 19 + ...ze---works-with-`winheight`-`winwidth`-019 | 19 + ...-allows-immediate-another-scroll-animation | 19 + ...ows-immediate-another-scroll-animation-002 | 19 + ...ows-immediate-another-scroll-animation-003 | 19 + ...ows-immediate-another-scroll-animation-004 | 19 + ...ows-immediate-another-scroll-animation-005 | 19 + ...ows-immediate-another-scroll-animation-006 | 19 + ...--Scroll---does-not-animate-in-Select-mode | 13 + ...-automatically-animate-after-buffer-change | 19 + ...omatically-animate-after-buffer-change-002 | 19 + ...utomatically-animate-result-of-'incsearch' | 23 + ...atically-animate-result-of-'incsearch'-002 | 23 + ...atically-animate-result-of-'incsearch'-003 | 23 + ...atically-animate-result-of-'incsearch'-004 | 23 + ...--Scroll---handles-mappings-with--Cmd--CR- | 19 + ...roll---handles-mappings-with--Cmd--CR--002 | 19 + ...-respects-'scrolloff'-in-presence-of-folds | 19 + ...pects-'scrolloff'-in-presence-of-folds-002 | 19 + ...pects-'scrolloff'-in-presence-of-folds-003 | 19 + ...pects-'scrolloff'-in-presence-of-folds-004 | 19 + ...pects-'scrolloff'-in-presence-of-folds-005 | 19 + ...test_animate.lua---Scroll---respects-folds | 19 + ..._animate.lua---Scroll---respects-folds-002 | 19 + ..._animate.lua---Scroll---respects-folds-003 | 19 + ..._animate.lua---Scroll---respects-folds-004 | 19 + ..._animate.lua---Scroll---respects-folds-005 | 19 + ...lua---Scroll---respects-global-'scrolloff' | 19 + ...--Scroll---respects-global-'scrolloff'-002 | 19 + ...--Scroll---respects-global-'scrolloff'-003 | 19 + ...--Scroll---respects-global-'scrolloff'-004 | 19 + ...--Scroll---respects-global-'scrolloff'-005 | 19 + ...Scroll---respects-window-local-'scrolloff' | 19 + ...ll---respects-window-local-'scrolloff'-002 | 19 + ...ll---respects-window-local-'scrolloff'-003 | 19 + ...ll---respects-window-local-'scrolloff'-004 | 19 + ...ll---respects-window-local-'scrolloff'-005 | 19 + ...mate.lua---Scroll---stops-on-buffer-change | 19 + ....lua---Scroll---stops-on-buffer-change-002 | 19 + ....lua---Scroll---stops-on-buffer-change-003 | 19 + ....lua---Scroll---stops-on-buffer-change-004 | 19 + ...mate.lua---Scroll---stops-on-window-change | 19 + ....lua---Scroll---stops-on-window-change-002 | 19 + ....lua---Scroll---stops-on-window-change-003 | 19 + ....lua---Scroll---stops-on-window-change-004 | 19 + .../tests-test_animate.lua---Scroll---works | 19 + ...ests-test_animate.lua---Scroll---works-002 | 19 + ...ests-test_animate.lua---Scroll---works-003 | 19 + ...ests-test_animate.lua---Scroll---works-004 | 19 + ...ests-test_animate.lua---Scroll---works-005 | 19 + ...ests-test_animate.lua---Scroll---works-006 | 19 + ...ests-test_animate.lua---Scroll---works-007 | 19 + ...ests-test_animate.lua---Scroll---works-008 | 19 + ...ests-test_animate.lua---Scroll---works-009 | 19 + ...ests-test_animate.lua---Scroll---works-010 | 19 + ...---works-properly-just-after-buffer-change | 19 + ...orks-properly-just-after-buffer-change-002 | 19 + ...---works-properly-just-after-window-change | 19 + ...orks-properly-just-after-window-change-002 | 19 + ...n-movement-is-triggered-by-outside-command | 19 + ...vement-is-triggered-by-outside-command-002 | 19 + ...vement-is-triggered-by-outside-command-003 | 19 + ...vement-is-triggered-by-outside-command-004 | 19 + ...vement-is-triggered-by-outside-command-005 | 19 + ...-Toggle-options---respects-`config.silent` | 23 + ...e-options---shows-feedback-about-new-value | 23 + ...a---'mini.nvim'-compatibility---mini.align | 23 + ...'mini.nvim'-compatibility---mini.align-002 | 23 + ...est_clue.lua---Clues---are-properly-sorted | 33 + ...lua---Clues---can-be-configured-after-load | 23 + ...Clues---can-be-overridden-in-later-entries | 23 + ...ua---Clues---can-have-callable-description | 23 + ...test_clue.lua---Clues---can-have-callables | 23 + ..._clue.lua---Clues---can-have-callables-002 | 23 + ..._clue.lua---Clues---can-have-callables-003 | 23 + ..._clue.lua---Clues---can-have-callables-004 | 23 + ...ue.lua---Clues---can-have-nested-subarrays | 23 + ..._clue.lua---Clues---handles-no-description | 23 + ...up-clues-after-executing-key-with-postkeys | 23 + ...lues-after-executing-key-with-postkeys-002 | 23 + ...t_clue.lua---Clues---has-proper-precedence | 23 + ...--Clues---respects-`vim.b.miniclue_config` | 23 + ...s---shows-as-group-a-single-non-exact-clue | 23 + ...shows-as-group-a-single-non-exact-clue-002 | 23 + ...shows-as-group-a-single-non-exact-clue-003 | 23 + ...--Clues---silently-ignores-non-valid-clues | 23 + ...uses-human-readable-names-for-special-keys | 23 + ...dow-if-postkeys-do-not-end-up-key-querying | 23 + ...-persists-window-if-action-changes-tabpage | 23 + ...sists-window-if-action-changes-tabpage-002 | 23 + ....lua---Postkeys---shows-window-immediately | 23 + .../tests-test_clue.lua---Postkeys---works | 23 + ...tests-test_clue.lua---Postkeys---works-002 | 23 + ...tests-test_clue.lua---Postkeys---works-003 | 23 + ..._clue.lua---Postkeys---works-in-edge-cases | 23 + ...e.lua---Postkeys---works-in-edge-cases-002 | 23 + ...e.lua---Postkeys---works-in-edge-cases-003 | 23 + ...ing-keys---does-not-entirely-block-redraws | 23 + ...keys---does-not-entirely-block-redraws-002 | 23 + ...s---takes-into-account-user-supplied-clues | 23 + ...takes-into-account-user-supplied-clues-002 | 23 + ...lue.lua---Showing-keys---allows-zero-delay | 23 + ...auto'-for-`row`-and-`col`-in-window-config | 23 + ...'-for-`row`-and-`col`-in-window-config-002 | 23 + ...'-for-`row`-and-`col`-in-window-config-003 | 23 + ...'-for-`row`-and-`col`-in-window-config-004 | 23 + ...n-have-`config.window.config.width='auto'` | 23 + ...--can-have-callable-`config.window.config` | 23 + ...---can-work-with-small-instance-dimensions | 13 + ...keys---does-not-trigger-unnecessary-events | 23 + ...-highlights-group-descriptions-differently | 23 + ...hlights-next-key-with-postkeys-differently | 23 + ...---indicates-that-description-is-truncated | 13 + ...ng-keys---properly-translates-special-keys | 23 + ...eys---properly-translates-special-keys-002 | 23 + ...eys---properly-translates-special-keys-003 | 23 + ...eys---properly-translates-special-keys-004 | 23 + ...ua---Showing-keys---reacts-to-`VimResized` | 17 + ...-Showing-keys---reacts-to-`VimResized`-002 | 23 + ...ing-keys---respects-`config.window.config` | 23 + ...wing-keys---respects-`config.window.delay` | 23 + ...-keys---respects-`config.window.delay`-002 | 23 + ...-keys---respects-`config.window.delay`-003 | 23 + ...l_down`-and-`scroll_up`-in-`config.window` | 19 + ...wn`-and-`scroll_up`-in-`config.window`-002 | 19 + ...wn`-and-`scroll_up`-in-`config.window`-003 | 19 + ...wn`-and-`scroll_up`-in-`config.window`-004 | 19 + ...wn`-and-`scroll_up`-in-`config.window`-005 | 19 + ...wn`-and-`scroll_up`-in-`config.window`-006 | 19 + ...wn`-and-`scroll_up`-in-`config.window`-007 | 19 + ...wn`-and-`scroll_up`-in-`config.window`-008 | 19 + ...wn`-and-`scroll_up`-in-`config.window`-009 | 19 + ...wn`-and-`scroll_up`-in-`config.window`-010 | 19 + ...ng-keys---respects-`vim.b.miniclue_config` | 23 + ...---respects-tabline,-statusline,-cmdheight | 17 + ...espects-tabline,-statusline,-cmdheight-002 | 17 + ...espects-tabline,-statusline,-cmdheight-003 | 17 + ...espects-tabline,-statusline,-cmdheight-004 | 17 + ...---Showing-keys---scroll-is-not-persistent | 17 + ...howing-keys---scroll-is-not-persistent-002 | 17 + ...howing-keys---scroll-is-not-persistent-003 | 17 + ...tests-test_clue.lua---Showing-keys---works | 23 + ...s-test_clue.lua---Showing-keys---works-002 | 23 + ...s-test_clue.lua---Showing-keys---works-003 | 23 + ...howing-keys---works-in-Command-line-window | 23 + ...ng-keys---works-in-Command-line-window-002 | 23 + ...ing-keys---works-with-multibyte-characters | 23 + ...keys---works-with-multibyte-characters-002 | 23 + ...t_clue.lua---ensure_all_triggers()---works | 23 + ...ue.lua---ensure_all_triggers()---works-002 | 23 + ...t_clue.lua---ensure_buf_triggers()---works | 23 + ...--gen_clues---builtin_completion()---works | 49 + ...ts-test_clue.lua---gen_clues---g()---works | 135 + ...est_clue.lua---gen_clues---g()---works-002 | 37 + ...est_clue.lua---gen_clues---marks()---works | 43 + ...clue.lua---gen_clues---marks()---works-002 | 43 + ...clue.lua---gen_clues---marks()---works-003 | 43 + ...clue.lua---gen_clues---marks()---works-004 | 43 + ...clue.lua---gen_clues---marks()---works-005 | 43 + ...clue.lua---gen_clues---marks()---works-006 | 43 + ...clue.lua---gen_clues---marks()---works-007 | 43 + ...clue.lua---gen_clues---marks()---works-008 | 43 + ...egisters()---respects-`opts.show_contents` | 107 + ...clue.lua---gen_clues---registers()---works | 53 + ....lua---gen_clues---registers()---works-002 | 53 + ....lua---gen_clues---registers()---works-003 | 53 + ....lua---gen_clues---registers()---works-004 | 53 + ....lua---gen_clues---registers()---works-005 | 53 + ....lua---gen_clues---registers()---works-006 | 53 + ....lua---gen_clues---registers()---works-007 | 53 + ....lua---gen_clues---registers()---works-008 | 53 + ....lua---gen_clues---registers()---works-009 | 53 + ...t_clue.lua---gen_clues---windows()---works | 97 + ...ue.lua---gen_clues---windows()---works-002 | 33 + ...ts-test_clue.lua---gen_clues---z()---works | 105 + ...est_clue.lua---gen_clues---z()---works-002 | 23 + ...nsures-valid-triggers-on-`LspAttach`-event | 23 + ...ts-test_colors.lua---interactive()---works | 63 + ...est_colors.lua---interactive()---works-002 | 63 + ...P-trigger---test-+-args-{-'completefunc'-} | 35 + ...igger---test-+-args-{-'completefunc'-}-002 | 35 + ...t-LSP-trigger---test-+-args-{-'omnifunc'-} | 35 + ...P-trigger---test-+-args-{-'omnifunc'-}-002 | 35 + ...--respects-string-`config.fallback_action` | 23 + ...spects-string-`config.fallback_action`-002 | 23 + ...a---Autocompletion---works-with-LSP-client | 23 + ...Autocompletion---works-without-LSP-clients | 23 + ...ow---accounts-for-border-when-picking-side | 23 + ...-Information-window---adjusts-window-width | 23 + ...ow---has-minimal-dimensions-for-small-text | 23 + ...ion-window---respects-`config.window.info` | 53 + ...window---respects-`config.window.info`-002 | 53 + ...ompletion.lua---Information-window---works | 23 + ...p.protocol.CompletionItemKind`-in-LSP-step | 37 + ...lp---accounts-for-border-when-picking-side | 23 + ...a---Signature-help---adjusts-window-height | 23 + ...lp---has-minimal-dimensions-for-small-text | 13 + ...-help---respects-`config.window.signature` | 51 + ...p---respects-`config.window.signature`-002 | 51 + ...--updates-highlighting-of-active-parameter | 13 + ...dates-highlighting-of-active-parameter-002 | 13 + ...dates-highlighting-of-active-parameter-003 | 13 + ...st_completion.lua---Signature-help---works | 13 + ...t_cursorword.lua---Highlighting---can-stop | 13 + ...ects-MiniCursorwordCurrent-highlight-group | 13 + ...test_cursorword.lua---Highlighting---works | 13 + ...ighlighting---works-on-multibyte-character | 13 + ...ighting---works-on-multibyte-character-002 | 13 + ...Highlighting---works-with-multiple-windows | 13 + ...-test_deps.lua---Commands----DepsAdd-works | 23 + ...t_deps.lua---Commands----DepsShowLog-works | 27 + ...st_deps.lua---Commands----DepsUpdate-works | 23 + ....lua---Commands----DepsUpdateOffline-works | 23 + .../tests-test_deps.lua---clean()---works | 33 + .../tests-test_deps.lua---clean()---works-002 | 33 + ...ua---update()---can-fold-in-confirm-buffer | 63 + ...-update()---can-highlight-breaking-changes | 69 + ...ate()---can-work-with-non-default-branches | 67 + ...s.lua---update()---shows-empty-monitor-log | 57 + .../tests-test_deps.lua---update()---works | 83 + ...verride-`minidiff_summary_string`-variable | 23 + ...---redraws-statusline-when-diff-is-updated | 23 + ...edraws-statusline-when-diff-is-updated-002 | 23 + ...---Overlay---always-highlights-whole-lines | 23 + ...word-diff---has-non-zero-interhunk-context | 33 + ...est_diff.lua---Overlay---word-diff---works | 33 + ...ord-diff---works-with-multibyte-characters | 23 + ...diff---works-with-multibyte-characters-002 | 23 + ...diff---works-with-multibyte-characters-003 | 23 + ...diff---works-with-multibyte-characters-004 | 23 + ...diff---works-with-multibyte-characters-005 | 23 + ...diff---works-with-multibyte-characters-006 | 23 + ...diff---works-with-multibyte-characters-007 | 23 + ...diff---works-with-multibyte-characters-008 | 23 + ...diff---works-with-multibyte-characters-009 | 23 + ...diff---works-with-multibyte-characters-010 | 23 + ...diff---works-with-one-of-lines-being-empty | 17 + ...---works-with-one-of-lines-being-empty-002 | 17 + .../tests-test_diff.lua---Overlay---works | 33 + .../tests-test_diff.lua---Overlay---works-002 | 33 + .../tests-test_diff.lua---Overlay---works-003 | 33 + ...t_diff.lua---Overlay---works-at-edge-lines | 23 + ...ff.lua---Overlay---works-at-edge-lines-002 | 23 + ...ff.lua---Overlay---works-at-edge-lines-003 | 23 + ...works-when-'change'-overlaps-with-'delete' | 33 + ...iff.lua---Overlay---works-with-'add'-hunks | 33 + ....lua---Overlay---works-with-'change'-hunks | 33 + ...---Overlay---works-with-'change'-hunks-002 | 33 + ....lua---Overlay---works-with-'delete'-hunks | 33 + ...lization---forces-redraw-when-it-is-needed | 23 + ...tion---forces-redraw-when-it-is-needed-002 | 23 + ...ization---reacts-to-hunk-lines-delete-move | 23 + ...ion---reacts-to-hunk-lines-delete-move-002 | 23 + ...ua---Visualization---respects-`view.signs` | 23 + ...ua---Visualization---respects-`view.style` | 23 + ...-Visualization---respects-`view.style`-002 | 23 + ...ests-test_diff.lua---Visualization---works | 23 + ...a---Visualization---works-with-'add'-hunks | 23 + ...Visualization---works-with-'add'-hunks-002 | 23 + ...-Visualization---works-with-'change'-hunks | 23 + ...ualization---works-with-'change'-hunks-002 | 23 + ...-Visualization---works-with-'delete'-hunks | 23 + ...ualization---works-with-'delete'-hunks-002 | 23 + ...ualization---works-with-'delete'-hunks-003 | 23 + .../tests-test_diff.lua---disable()---works | 23 + ...iately-updates-diff-data-and-visualization | 23 + ...oving-reference-text-removes-visualization | 23 + ...g-reference-text-removes-visualization-002 | 23 + ...s-test_diff.lua---toggle_overlay()---works | 23 + ...st_diff.lua---toggle_overlay()---works-002 | 23 + ...st_diff.lua---toggle_overlay()---works-003 | 23 + ...st_diff.lua---toggle_overlay()---works-004 | 23 + ...st_diff.lua---toggle_overlay()---works-005 | 23 + ...pickers---buf_lines()---can-not-show-icons | 33 + ...-buf_lines()---respects-`local_opts.scope` | 33 + ..._extra.lua---pickers---buf_lines()---works | 33 + ...kers---commands()---respects-user-commands | 53 + ...---commands()---respects-user-commands-002 | 53 + ...t_extra.lua---pickers---commands()---works | 23 + ...tra.lua---pickers---commands()---works-002 | 23 + ...extra.lua---pickers---diagnostic()---works | 53 + ...a.lua---pickers---diagnostic()---works-002 | 53 + ...ua---pickers---explorer()---can-be-resumed | 33 + ...-pickers---explorer()---can-be-resumed-002 | 33 + ...-pickers---explorer()---can-not-show-icons | 33 + ...kers---explorer()---can-not-show-icons-002 | 33 + ...-explorer()---respects-`local_opts.filter` | 33 + ...lorer()---respects-`local_opts.filter`-002 | 33 + ...---explorer()---respects-`local_opts.sort` | 33 + ...xplorer()---respects-`local_opts.sort`-002 | 33 + ...t_extra.lua---pickers---explorer()---works | 33 + ...tra.lua---pickers---explorer()---works-002 | 33 + ...tra.lua---pickers---explorer()---works-003 | 33 + ...tra.lua---pickers---explorer()---works-004 | 33 + ...tra.lua---pickers---explorer()---works-005 | 33 + ...tra.lua---pickers---explorer()---works-006 | 33 + ...tra.lua---pickers---git_branches()---works | 23 + ...lua---pickers---git_branches()---works-002 | 23 + ...xtra.lua---pickers---git_commits()---works | 69 + ....lua---pickers---git_commits()---works-002 | 69 + ...pickers---git_files()---can-not-show-icons | 23 + ..._extra.lua---pickers---git_files()---works | 23 + ...ra.lua---pickers---git_files()---works-002 | 23 + ...`local_opts.n_context`---test-+-args-{-0-} | 33 + ...al_opts.n_context`---test-+-args-{-0-}-002 | 33 + ...al_opts.n_context`---test-+-args-{-0-}-003 | 33 + ...local_opts.n_context`---test-+-args-{-20-} | 33 + ...l_opts.n_context`---test-+-args-{-20-}-002 | 33 + ...l_opts.n_context`---test-+-args-{-20-}-003 | 33 + ..._extra.lua---pickers---git_hunks()---works | 69 + ...ra.lua---pickers---git_hunks()---works-002 | 69 + ...ra.lua---pickers---git_hunks()---works-003 | 69 + ...ra.lua---pickers---git_hunks()---works-004 | 69 + ...ra.lua---pickers---git_hunks()---works-005 | 69 + ...ra.lua---pickers---git_hunks()---works-006 | 69 + ...rns()---respects-`local_opts.highlighters` | 33 + ...hipatterns()---respects-`local_opts.scope` | 33 + ...extra.lua---pickers---hipatterns()---works | 33 + ...a.lua---pickers---hipatterns()---works-002 | 33 + ...st_extra.lua---pickers---history()---works | 43 + ...xtra.lua---pickers---history()---works-002 | 43 + ...spects-non-default-linked-highlight-groups | 23 + ..._extra.lua---pickers---hl_groups()---works | 23 + ...ra.lua---pickers---hl_groups()---works-002 | 23 + ...---shows-source-of-Lua-callback-in-preview | 43 + ...hows-source-of-Lua-callback-in-preview-002 | 43 + ...hows-source-of-Lua-callback-in-preview-003 | 43 + ...st_extra.lua---pickers---keymaps()---works | 63 + ...xtra.lua---pickers---keymaps()---works-002 | 63 + ...ua---pickers---list()---works-for-`change` | 43 + ...-pickers---list()---works-for-`change`-002 | 43 + ....lua---pickers---list()---works-for-`jump` | 43 + ...---pickers---list()---works-for-`jump`-002 | 43 + ...---pickers---list()---works-for-`location` | 43 + ...ickers---list()---works-for-`location`-002 | 43 + ...ickers---list()---works-for-`location`-003 | 43 + ...ickers---list()---works-for-`location`-004 | 43 + ...---pickers---list()---works-for-`quickfix` | 43 + ...ickers---list()---works-for-`quickfix`-002 | 43 + ...ickers---list()---works-for-`quickfix`-003 | 43 + ...ickers---list()---works-for-`quickfix`-004 | 43 + ...-pickers---lsp()---works-for-`declaration` | 33 + ...kers---lsp()---works-for-`declaration`-002 | 33 + ...--pickers---lsp()---works-for-`definition` | 33 + ...ckers---lsp()---works-for-`definition`-002 | 33 + ...kers---lsp()---works-for-`document_symbol` | 33 + ...---lsp()---works-for-`document_symbol`-002 | 33 + ...`document_symbol`-with-'mini.icons'-set-up | 33 + ...ument_symbol`-with-'mini.icons'-set-up-002 | 33 + ...ckers---lsp()---works-for-`implementation` | 33 + ...s---lsp()---works-for-`implementation`-002 | 33 + ...--pickers---lsp()---works-for-`references` | 33 + ...ckers---lsp()---works-for-`references`-002 | 33 + ...kers---lsp()---works-for-`type_definition` | 33 + ...---lsp()---works-for-`type_definition`-002 | 33 + ...ers---lsp()---works-for-`workspace_symbol` | 33 + ...--lsp()---works-for-`workspace_symbol`-002 | 33 + ...workspace_symbol`-with-'mini.icons'-set-up | 33 + ...space_symbol`-with-'mini.icons'-set-up-002 | 33 + ...rs---marks()---respects-`local_opts.scope` | 33 + ...-marks()---respects-`local_opts.scope`-002 | 33 + ...-marks()---respects-`local_opts.scope`-003 | 33 + ...test_extra.lua---pickers---marks()---works | 43 + ..._extra.lua---pickers---marks()---works-002 | 43 + ..._extra.lua---pickers---marks()---works-003 | 43 + ..._extra.lua---pickers---marks()---works-004 | 43 + ...-pickers---oldfiles()---can-not-show-icons | 23 + ...t_extra.lua---pickers---oldfiles()---works | 23 + ...()---correctly-previews-deprecated-options | 23 + ...pickers---options()---respects-set-options | 23 + ...ers---options()---respects-set-options-002 | 23 + ...ers---options()---respects-set-options-003 | 23 + ...st_extra.lua---pickers---options()---works | 73 + ...xtra.lua---pickers---options()---works-002 | 73 + ..._extra.lua---pickers---registers()---works | 163 + ...ra.lua---pickers---registers()---works-002 | 163 + ...tra.lua---pickers---spellsuggest()---works | 33 + ...lua---pickers---spellsuggest()---works-002 | 33 + ...extra.lua---pickers---treesitter()---works | 107 + ...a.lua---pickers---treesitter()---works-002 | 107 + ...a.lua---pickers---treesitter()---works-003 | 107 + ...bels()---can-not-show-icons-after-choosing | 33 + ...isit_labels()---respects-`local_opts.sort` | 33 + ...tra.lua---pickers---visit_labels()---works | 33 + ...lua---pickers---visit_labels()---works-002 | 33 + ...lua---pickers---visit_labels()---works-003 | 33 + ...ckers---visit_paths()---can-not-show-icons | 33 + ...xtra.lua---pickers---visit_paths()---works | 33 + ....lua---pickers---visit_paths()---works-002 | 33 + ...ontent.prefix`-returning-different-lengths | 33 + ...--shows-whole-line-after-horizontal-scroll | 23 + ...ows-whole-line-after-horizontal-scroll-002 | 23 + ...lorer---handles-close-without-opening-file | 33 + ...r---handles-close-without-opening-file-002 | 33 + ...ua---Default-explorer---works-in-`-edit-.` | 33 + ...--Default-explorer---works-in-`-tabfind-.` | 33 + ...fault-explorer---works-in-`-tabfind-.`-002 | 33 + ...---Default-explorer---works-in-`-vsplit-.` | 33 + ...efault-explorer---works-in-`-vsplit-.`-002 | 33 + ....lua---Default-explorer---works-on-startup | 33 + ...owOpen`-can-be-used-to-tweak-window-config | 33 + ...en`-can-be-used-to-tweak-window-config-002 | 33 + ...en`-can-be-used-to-tweak-window-config-003 | 33 + ...--File-manipulation---can-be-not-confirmed | 33 + ...le-manipulation---can-be-not-confirmed-002 | 33 + ...lation---can-be-not-confirmed-with-preview | 33 + ...on---can-be-not-confirmed-with-preview-002 | 33 + ...a---File-manipulation---can-copy-directory | 33 + ...File-manipulation---can-copy-directory-002 | 33 + ...ulation---can-copy-directory-inside-itself | 33 + ...ion---can-copy-directory-inside-itself-002 | 33 + ...---can-copy-directory-inside-new-directory | 23 + ...an-copy-directory-inside-new-directory-002 | 23 + ...es.lua---File-manipulation---can-copy-file | 33 + ...ua---File-manipulation---can-copy-file-002 | 33 + ...ation---can-copy-file-inside-new-directory | 23 + ...n---can-copy-file-inside-new-directory-002 | 23 + ...files.lua---File-manipulation---can-create | 23 + ...s.lua---File-manipulation---can-create-002 | 23 + ...files.lua---File-manipulation---can-delete | 33 + ...s.lua---File-manipulation---can-delete-002 | 33 + ...a---File-manipulation---can-move-directory | 33 + ...File-manipulation---can-move-directory-002 | 33 + ...es.lua---File-manipulation---can-move-file | 33 + ...ua---File-manipulation---can-move-file-002 | 33 + ...nipulation---can-move-inside-new-directory | 23 + ...lation---can-move-inside-new-directory-002 | 23 + ...ulation---can-move-while-changing-basename | 33 + ...ion---can-move-while-changing-basename-002 | 33 + ...files.lua---File-manipulation---can-rename | 33 + ...s.lua---File-manipulation---can-rename-002 | 33 + ...on---copy-does-not-override-existing-entry | 23 + ...-copy-does-not-override-existing-entry-002 | 23 + ...-copy-does-not-override-existing-entry-003 | 23 + ...---create-does-not-override-existing-entry | 23 + ...reate-does-not-override-existing-entry-002 | 23 + ...tion---creates-files-in-nested-directories | 23 + ...---creates-files-in-nested-directories-002 | 23 + ...-manipulation---creates-nested-directories | 23 + ...ipulation---creates-nested-directories-002 | 23 + ...e-manipulation---handles-backslash-on-Unix | 33 + ...nipulation---handles-backslash-on-Unix-002 | 33 + ...ion---handles-move-directory-inside-itself | 33 + ...--handles-move-directory-inside-itself-002 | 33 + ...ation---handles-simultaneous-copy-and-move | 33 + ...n---handles-simultaneous-copy-and-move-002 | 33 + ...ion---handles-simultaneous-copy-and-rename | 33 + ...--handles-simultaneous-copy-and-rename-002 | 33 + ...---File-manipulation---ignores-blank-lines | 33 + ...ile-manipulation---ignores-blank-lines-002 | 33 + ...on---ignores-identical-user-copied-entries | 33 + ...-ignores-identical-user-copied-entries-002 | 33 + ...on---move-does-not-override-existing-entry | 23 + ...-move-does-not-override-existing-entry-002 | 23 + ...-move-does-not-override-existing-entry-003 | 23 + ...manipulation---move-works-again-after-undo | 33 + ...pulation---move-works-again-after-undo-002 | 33 + ...---rename-does-not-override-existing-entry | 23 + ...ename-does-not-override-existing-entry-002 | 23 + ...ename-does-not-override-existing-entry-003 | 23 + ...nipulation---rename-works-again-after-undo | 33 + ...lation---rename-works-again-after-undo-002 | 33 + ...ulation---respects-modified-hidden-buffers | 33 + ...anipulation---works-with-problematic-names | 33 + ...ulation---works-with-problematic-names-002 | 33 + ...--Mappings---`go_in_plus`-supports--count- | 23 + ...ppings---`go_in_plus`-supports--count--002 | 23 + ..._files.lua---Mappings---`go_in_plus`-works | 33 + ....lua---Mappings---`go_in`-supports--count- | 33 + ...---Mappings---`go_in`-supports--count--002 | 33 + ...-test_files.lua---Mappings---`go_in`-works | 33 + ...gs---`go_in`-works-in-linewise-Visual-mode | 33 + ...-`go_in`-works-in-linewise-Visual-mode-002 | 33 + ...-`go_in`-works-in-linewise-Visual-mode-003 | 33 + ...-Mappings---`go_out_plus`-supports--count- | 23 + ...pings---`go_out_plus`-supports--count--002 | 23 + ...pings---`go_out_plus`-supports--count--003 | 23 + ...files.lua---Mappings---`go_out_plus`-works | 33 + ...s.lua---Mappings---`go_out_plus`-works-002 | 33 + ...s.lua---Mappings---`go_out_plus`-works-003 | 33 + ...lua---Mappings---`go_out`-supports--count- | 23 + ...--Mappings---`go_out`-supports--count--002 | 23 + ...--Mappings---`go_out`-supports--count--003 | 23 + ...test_files.lua---Mappings---`go_out`-works | 33 + ...-test_files.lua---Mappings---`reset`-works | 33 + ...t_files.lua---Mappings---`reset`-works-002 | 33 + ...t_files.lua---Mappings---`reset`-works-003 | 33 + ..._files.lua---Mappings---`reveal_cwd`-works | 23 + ...es.lua---Mappings---`reveal_cwd`-works-002 | 23 + ...es.lua---Mappings---`reveal_cwd`-works-003 | 23 + ...t_files.lua---Mappings---`show_help`-works | 43 + ...les.lua---Mappings---`show_help`-works-002 | 43 + ...les.lua---Mappings---`show_help`-works-003 | 43 + ...files.lua---Mappings---`synchronize`-works | 23 + ...s.lua---Mappings---`synchronize`-works-002 | 23 + ...s.lua---Mappings---`synchronize`-works-003 | 23 + ...s.lua---Mappings---`synchronize`-works-004 | 23 + ...s.lua---Mappings---`synchronize`-works-005 | 23 + ...s.lua---Mappings---`synchronize`-works-006 | 23 + ...t_files.lua---Mappings---`trim_left`-works | 33 + ..._files.lua---Mappings---`trim_right`-works | 33 + ...lua---Preview---always-updates-with-cursor | 23 + ...a---Preview---does-not-highlight-big-files | 33 + ...lua---Preview---handles-user-created-lines | 33 + ...--Preview---handles-user-created-lines-002 | 33 + ...--Preview---handles-user-created-lines-003 | 33 + ...---Preview---is-not-removed-when-going-out | 33 + ...review---is-not-removed-when-going-out-002 | 33 + ...Preview---is-not-shown-if-not-enough-space | 33 + ...a---Preview---previews-only-one-level-deep | 23 + ....lua---Preview---works-after-`trim_left()` | 23 + ...iles.lua---Preview---works-for-directories | 33 + ....lua---Preview---works-for-directories-002 | 33 + ....lua---Preview---works-for-directories-003 | 33 + ...test_files.lua---Preview---works-for-files | 33 + ..._files.lua---Preview---works-for-files-002 | 33 + ..._files.lua---Preview---works-for-files-003 | 33 + ..._files.lua---Preview---works-for-files-004 | 33 + ..._files.lua---Preview---works-for-files-005 | 33 + ...-correctly-computes-part-of-branch-to-show | 23 + ...rectly-computes-part-of-branch-to-show-002 | 23 + ...rectly-computes-part-of-branch-to-show-003 | 23 + ...rectly-computes-part-of-branch-to-show-004 | 23 + ...rectly-computes-part-of-branch-to-show-005 | 23 + ...rectly-computes-part-of-branch-to-show-006 | 23 + ...mputes-part-of-branch-to-show-with-preview | 23 + ...correctly-highlight-content-during-editing | 33 + ...iles.lua---Windows---does-not-wrap-content | 23 + ...les.lua---Windows---is-in-sync-with-cursor | 33 + ...lua---Windows---is-in-sync-with-cursor-002 | 33 + ...lua---Windows---is-in-sync-with-cursor-003 | 33 + ...lua---Windows---is-in-sync-with-cursor-004 | 33 + ...lua---Windows---is-in-sync-with-cursor-005 | 33 + ...--Windows---never-shows-past-end-of-buffer | 33 + ...ndows---never-shows-past-end-of-buffer-002 | 33 + ...ndows---never-shows-past-end-of-buffer-003 | 23 + ...les.lua---Windows---reacts-on-`VimResized` | 33 + ...lua---Windows---reacts-on-`VimResized`-002 | 33 + ...lua---Windows---reacts-on-`VimResized`-003 | 19 + ...lua---Windows---reacts-on-`VimResized`-004 | 33 + ...bline-and-statusline-when-computing-height | 19 + ...e-and-statusline-when-computing-height-002 | 19 + ...e-and-statusline-when-computing-height-003 | 19 + ...e-and-statusline-when-computing-height-004 | 19 + ...--respects-tabline-when-computing-position | 33 + ...-Windows---works-with-too-small-dimensions | 19 + ...ua---close()---checks-for-modified-buffers | 33 + ...-close()---checks-for-modified-buffers-002 | 33 + ...-close()---checks-for-modified-buffers-003 | 33 + ...---close()---handles-invalid-target-window | 33 + ...lose()---handles-invalid-target-window-002 | 33 + .../tests-test_files.lua---close()---works | 33 + ...tests-test_files.lua---close()---works-002 | 33 + ...st_files.lua---close()---works-per-tabpage | 33 + ...t_files.lua---go_in()---works-on-directory | 33 + ...les.lua---go_in()---works-on-directory-002 | 33 + ...update-reuses-buffers-without-their-update | 33 + ...iles.lua---go_out()---works-on-branch-root | 33 + ....lua---go_out()---works-on-not-branch-root | 33 + ...ent.prefix`-can-be-used-to-not-show-prefix | 33 + ...open()---`content.prefix`-can-return-`nil` | 33 + ...()---`content.prefix`-can-return-`nil`-002 | 33 + ...()---`content.prefix`-can-return-`nil`-003 | 33 + ...ent.sort`-can-be-used-to-also-filter-items | 33 + ...ses-on-file-entry-when-opened-from-history | 33 + ...on-file-entry-when-opened-from-history-002 | 33 + ...on-file-entry-when-opened-from-history-003 | 33 + ...on-file-entry-when-opened-from-history-004 | 33 + ...s.lua---open()---handles-backslash-on-Unix | 33 + ...--open()---handles-problematic-entry-names | 33 + ...y---handles-external-changes-between-calls | 33 + ...handles-external-changes-between-calls-002 | 33 + ...en()---history---is-shared-across-tabpages | 33 + ...---history---is-shared-across-tabpages-002 | 33 + ...---history---is-shared-across-tabpages-003 | 33 + ...---history---opens-from-history-by-default | 33 + ...istory---opens-from-history-by-default-002 | 33 + ...s-global-config-before-taking-from-history | 33 + ...obal-config-before-taking-from-history-002 | 33 + ...--open()---history---respects-`use_latest` | 33 + ...en()---history---respects-`use_latest`-002 | 33 + ...-whole-branch-and-not-only-visible-windows | 33 + ...le-branch-and-not-only-visible-windows-002 | 33 + ...ocused-on-directory-with-`windows.preview` | 33 + ...-before-first-refresh-when-focused-on-file | 33 + ...-properly-closes-currently-opened-explorer | 33 + ...s.lua---open()---respects-`content.filter` | 33 + ...a---open()---respects-`content.filter`-002 | 33 + ...s.lua---open()---respects-`content.prefix` | 33 + ...a---open()---respects-`content.prefix`-002 | 33 + ...les.lua---open()---respects-`content.sort` | 33 + ...lua---open()---respects-`content.sort`-002 | 33 + ...t_files.lua---open()---respects-`mappings` | 33 + ...les.lua---open()---respects-`mappings`-002 | 33 + ...open()---respects-`vim.b.minifiles_config` | 33 + ...a---open()---respects-`windows.max_number` | 33 + ...open()---respects-`windows.max_number`-002 | 33 + ....lua---open()---respects-`windows.preview` | 33 + ...---open()---respects-`windows.preview`-002 | 33 + ...s.width_focus`-and-`windows.width_nofocus` | 33 + ...dth_focus`-and-`windows.width_nofocus`-002 | 33 + ...-open()---respects-`windows.width_preview` | 33 + ...n()---respects-`windows.width_preview`-002 | 33 + ...n()---respects-`windows.width_preview`-003 | 33 + ...n()---respects-`windows.width_preview`-004 | 33 + ...n()---respects-`windows.width_preview`-005 | 33 + ...n()---respects-`windows.width_preview`-006 | 33 + ...()---uses-`MiniIcons.get()`-with-full-path | 33 + ...st_files.lua---open()---uses-icon-provider | 33 + ...iles.lua---open()---uses-icon-provider-002 | 33 + ...iles.lua---open()---uses-icon-provider-003 | 33 + ...est_files.lua---open()---works-per-tabpage | 33 + ...files.lua---open()---works-per-tabpage-002 | 33 + ...files.lua---open()---works-per-tabpage-003 | 33 + ...s.lua---open()---works-with-directory-path | 33 + ...a---open()---works-with-directory-path-002 | 33 + ...a---open()---works-with-directory-path-003 | 33 + ..._files.lua---open()---works-with-file-path | 33 + ...es.lua---open()---works-with-file-path-002 | 33 + ...ate-buffers-with-`nil`-`filter`-and-`sort` | 33 + ...buffers-with-`nil`-`filter`-and-`sort`-002 | 33 + ...h()---handles-presence-of-modified-buffers | 23 + ...--handles-presence-of-modified-buffers-002 | 23 + ...--handles-presence-of-modified-buffers-003 | 23 + ...--handles-presence-of-modified-buffers-004 | 23 + ...a---refresh()---preserves-explorer-options | 33 + ...refresh()---preserves-explorer-options-002 | 33 + ...--updates-buffers-with-non-empty-`content` | 33 + ...dates-buffers-with-non-empty-`content`-002 | 33 + ...dates-buffers-with-non-empty-`content`-003 | 33 + ...dates-buffers-with-non-empty-`content`-004 | 33 + .../tests-test_files.lua---refresh()---works | 33 + ...t_files.lua---reset()---resets-all-cursors | 33 + ...les.lua---reset()---resets-all-cursors-002 | 33 + .../tests-test_files.lua---reset()---works | 33 + ...tests-test_files.lua---reset()---works-002 | 33 + ...set()---works-when-anchor-is-not-in-branch | 33 + ...)---works-when-anchor-is-not-in-branch-002 | 33 + ...a---reveal_cwd()---properly-places-cursors | 33 + ...reveal_cwd()---properly-places-cursors-002 | 33 + ...ests-test_files.lua---reveal_cwd()---works | 23 + ...-test_files.lua---reveal_cwd()---works-002 | 23 + ...--reveal_cwd()---works-when-not-inside-cwd | 33 + ...veal_cwd()---works-when-not-inside-cwd-002 | 33 + ...eal_cwd()---works-when-root-is-already-cwd | 33 + ...cwd()---works-when-root-is-already-cwd-002 | 33 + ...es.lua---reveal_cwd()---works-with-preview | 23 + ...ua---reveal_cwd()---works-with-preview-002 | 23 + ...s.lua---show_help()---adjusts-window-width | 43 + ...p()---handles-mappings-without-description | 43 + ...show_help()---handles-non-default-mappings | 43 + ...w_help()---opens-relatively-current-window | 43 + ...tests-test_files.lua---show_help()---works | 43 + ...s-test_files.lua---show_help()---works-002 | 43 + ...---can-update-external-file-system-changes | 33 + ...tests-test_files.lua---trim_left()---works | 33 + ...s-test_files.lua---trim_left()---works-002 | 33 + ...)---works-when-in-the-middle-of-the-branch | 33 + ...works-when-in-the-middle-of-the-branch-002 | 33 + ...ests-test_files.lua---trim_right()---works | 33 + ...-test_files.lua---trim_right()---works-002 | 33 + ...)---works-when-in-the-middle-of-the-branch | 33 + ...works-when-in-the-middle-of-the-branch-002 | 33 + ...--uses-correct-working-directory-for-paths | 37 + ...t---completion---works-with-explicit-paths | 33 + ...completion---works-with-explicit-paths-002 | 33 + ...completion---works-with-explicit-paths-003 | 33 + ...completion---works-with-explicit-paths-004 | 33 + ...completion---works-with-explicit-paths-005 | 33 + ...pletion---works-with-not-supported-command | 37 + ...ion---works-with-not-supported-command-002 | 37 + ...ion---works-with-not-supported-command-003 | 37 + ...a----Git---completion---works-with-options | 43 + ...-Git---completion---works-with-options-002 | 43 + ...-Git---completion---works-with-options-003 | 43 + ...-Git---completion---works-with-options-004 | 43 + ...-Git---completion---works-with-options-005 | 43 + ...-Git---completion---works-with-options-006 | 43 + ...-Git---completion---works-with-options-007 | 23 + ...ion---works-with-present-command-modifiers | 37 + ...completion---works-with-subcommand-targets | 33 + ...letion---works-with-subcommand-targets-002 | 33 + ...letion---works-with-subcommand-targets-003 | 33 + ...letion---works-with-subcommand-targets-004 | 33 + ...letion---works-with-subcommand-targets-005 | 33 + ...letion---works-with-subcommand-targets-006 | 33 + ...letion---works-with-subcommand-targets-007 | 33 + ...letion---works-with-subcommand-targets-008 | 33 + ...letion---works-with-subcommand-targets-009 | 33 + ...letion---works-with-subcommand-targets-010 | 33 + ...letion---works-with-subcommand-targets-011 | 33 + ...letion---works-with-subcommand-targets-012 | 33 + ...letion---works-with-subcommand-targets-013 | 33 + ...letion---works-with-subcommand-targets-014 | 33 + ...letion---works-with-subcommand-targets-015 | 33 + ...letion---works-with-subcommand-targets-016 | 33 + ...letion---works-with-subcommand-targets-017 | 33 + ...letion---works-with-subcommand-targets-018 | 33 + ...letion---works-with-subcommand-targets-019 | 33 + ...letion---works-with-subcommand-targets-020 | 33 + ...letion---works-with-subcommand-targets-021 | 33 + ...letion---works-with-subcommand-targets-022 | 33 + ...letion---works-with-subcommand-targets-023 | 33 + ...letion---works-with-subcommand-targets-024 | 33 + ...letion---works-with-subcommand-targets-025 | 33 + ...letion---works-with-subcommand-targets-026 | 33 + ...letion---works-with-subcommand-targets-027 | 33 + ...letion---works-with-subcommand-targets-028 | 33 + ...letion---works-with-subcommand-targets-029 | 33 + ...letion---works-with-subcommand-targets-030 | 33 + ...-Git---completion---works-with-subcommands | 37 + ...---completion---works-with-subcommands-002 | 37 + ...---completion---works-with-subcommands-003 | 37 + ...---completion---works-with-subcommands-004 | 37 + ...---completion---works-with-subcommands-005 | 37 + ...---completion---works-with-subcommands-006 | 37 + ...redraws-statusline-when-summary-is-updated | 23 + ...aws-statusline-when-summary-is-updated-002 | 23 + ...aws-statusline-when-summary-is-updated-003 | 23 + ...aws-statusline-when-summary-is-updated-004 | 23 + ...aws-statusline-when-summary-is-updated-005 | 23 + ...iff_foldexpr()---works-in-`git-log`-output | 143 + ...foldexpr()---works-in-`git-log`-output-002 | 143 + ...foldexpr()---works-in-`git-log`-output-003 | 143 + ...foldexpr()---works-in-`git-log`-output-004 | 143 + ...ua---diff_foldexpr()---works-in-diff-patch | 53 + ...-diff_foldexpr()---works-in-diff-patch-002 | 53 + ...-diff_foldexpr()---works-in-diff-patch-003 | 53 + ...-diff_foldexpr()---works-in-diff-patch-004 | 53 + ...e---does-not-enable-for-not-normal-buffers | 23 + ...--Auto-enable---enables-for-normal-buffers | 23 + ...to-enable---enables-for-normal-buffers-002 | 23 + ...rns.lua---Auto-enable---makes-`-edit`-work | 23 + ...lua---Auto-enable---makes-`-edit`-work-002 | 23 + ...tocommands---resets-on-color-scheme-change | 23 + ...mmands---resets-on-color-scheme-change-002 | 23 + ...mmands---resets-on-color-scheme-change-003 | 23 + ...ua---Highlighters---allows-array-`pattern` | 23 + ...-Highlighters---allows-array-`pattern`-002 | 23 + ...a---Highlighters---allows-callable-`group` | 23 + ...--Highlighters---allows-callable-`pattern` | 23 + ...ers---allows-frontier-pattern-in-`pattern` | 23 + ...lows-return-`nil`-`group`-to-not-highlight | 23 + ...ws-return-`nil`-`pattern`-to-not-highlight | 23 + ...eturn-`nil`-`pattern`-to-not-highlight-002 | 23 + ...ighlighters---allows-submatch-in-`pattern` | 23 + ...ighters---allows-submatch-in-`pattern`-002 | 23 + ...ighters---allows-submatch-in-`pattern`-003 | 23 + ...ighters---allows-submatch-in-`pattern`-004 | 23 + ...ighters---allows-submatch-in-`pattern`-005 | 23 + ...ighters---respects-`extmark_opts.priority` | 23 + ...ers---respects-`extmark_opts.priority`-002 | 23 + ...ers---respects-`extmark_opts.priority`-003 | 23 + ...a---Highlighters---respects-`extmark_opts` | 23 + ...ighlighters---silently-skips-wrong-entries | 23 + ...ts-test_hipatterns.lua---disable()---works | 23 + ...est_hipatterns.lua---disable()---works-002 | 23 + ...---disable()---works-in-not-current-buffer | 23 + ...isable()---works-in-not-current-buffer-002 | 23 + ...le()---does-not-flicker-during-text-insert | 23 + ...---does-not-flicker-during-text-insert-002 | 23 + ...---does-not-flicker-during-text-insert-003 | 23 + ...ns.lua---enable()---reacts-to-buffer-enter | 23 + ...ua---enable()---reacts-to-buffer-enter-002 | 23 + ...le()---reacts-to-delete-of-line-with-match | 23 + ...---reacts-to-delete-of-line-with-match-002 | 23 + ...---reacts-to-delete-of-line-with-match-003 | 23 + ...---reacts-to-delete-of-line-with-match-004 | 23 + ...lua---enable()---reacts-to-filetype-change | 23 + ...--enable()---reacts-to-filetype-change-002 | 23 + ...--enable()---reacts-to-filetype-change-003 | 23 + ...rns.lua---enable()---reacts-to-text-change | 23 + ...lua---enable()---reacts-to-text-change-002 | 23 + ...lua---enable()---reacts-to-text-change-003 | 23 + ...lua---enable()---reacts-to-text-change-004 | 23 + ...lua---enable()---reacts-to-text-change-005 | 23 + ...s.lua---enable()---reacts-to-window-scroll | 23 + ...a---enable()---reacts-to-window-scroll-002 | 23 + ...a---enable()---reacts-to-window-scroll-003 | 23 + ...a---enable()---reacts-to-window-scroll-004 | 23 + ...)---respects-`vim.b.minihipatterns_config` | 23 + ...respects-`vim.b.minihipatterns_config`-002 | 23 + ...respects-`vim.b.minihipatterns_config`-003 | 23 + ...ihipatterns_disable`---test-+-args-{-'b'-} | 23 + ...ihipatterns_disable`---test-+-args-{-'g'-} | 23 + ...)---respects-global-config-after-`setup()` | 23 + ...sts-test_hipatterns.lua---enable()---works | 23 + ...a---enable()---works-in-not-current-buffer | 23 + ...ua---enable()---works-in-not-normal-buffer | 23 + ...terns.lua---enable()---works-with-defaults | 23 + ...ter---hex_color()---respects-`opts.filter` | 23 + ...--hex_color()---respects-`opts.filter`-002 | 23 + ...r---hex_color()---respects-`opts.priority` | 23 + ...hex_color()---respects-`opts.priority`-002 | 23 + ...hex_color()---respects-`opts.priority`-003 | 23 + ...ua---gen_highlighter---hex_color()---works | 23 + ...ghter---hex_color()---works-with-style-'#' | 23 + ...---hex_color()---works-with-style-'inline' | 13 + ...er---hex_color()---works-with-style-'line' | 23 + ...sts-test_hipatterns.lua---toggle()---works | 23 + ...test_hipatterns.lua---toggle()---works-002 | 23 + ...sts-test_hipatterns.lua---update()---works | 23 + ...test_hipatterns.lua---update()---works-002 | 23 + ...test_hipatterns.lua---update()---works-003 | 23 + ...test_hipatterns.lua---update()---works-004 | 23 + ...test_hipatterns.lua---update()---works-005 | 23 + ...test_hipatterns.lua---update()---works-006 | 23 + ...-drawing---implements-debounce-style-delay | 33 + ...wing---implements-debounce-style-delay-002 | 33 + ...-Auto-drawing---respects-ModeChanged-event | 33 + ...o-drawing---respects-ModeChanged-event-002 | 33 + ...o-drawing---respects-ModeChanged-event-003 | 33 + ...uto-drawing---respects-`config.draw.delay` | 33 + ...drawing---respects-`config.draw.delay`-002 | 33 + ...indentscope_disable`---test-+-args-{-'b'-} | 33 + ...ntscope_disable`---test-+-args-{-'b'-}-002 | 33 + ...indentscope_disable`---test-+-args-{-'g'-} | 33 + ...ntscope_disable`---test-+-args-{-'g'-}-002 | 33 + ...mon-events---test-+-args-{-'CursorMoved'-} | 33 + ...on-events---test-+-args-{-'CursorMovedI'-} | 33 + ...mon-events---test-+-args-{-'TextChanged'-} | 33 + ...on-events---test-+-args-{-'TextChangedI'-} | 33 + ...on-events---test-+-args-{-'TextChangedP'-} | 33 + ...-updates-immediately-when-scopes-intersect | 33 + ...ates-immediately-when-scopes-intersect-002 | 33 + ....lua---Auto-drawing---works-in-Insert-mode | 33 + ...---Auto-drawing---works-in-Insert-mode-002 | 33 + ...---Auto-drawing---works-in-Insert-mode-003 | 33 + ....lua---Auto-drawing---works-in-Normal-mode | 33 + ...---Auto-drawing---works-in-Normal-mode-002 | 33 + ...---Auto-drawing---works-in-Normal-mode-003 | 33 + ...--draw()---does-not-overshadow-'listchars' | 33 + ...oes-not-round-time-of-every-animation-step | 33 + ...-draw()---respects-`config.draw.animation` | 33 + ...w()---respects-`config.draw.animation`-002 | 33 + ...w()---respects-`config.draw.animation`-003 | 33 + ...w()---respects-`config.draw.animation`-004 | 33 + ...--draw()---respects-`config.draw.priority` | 33 + ...aw()---respects-`config.draw.priority`-002 | 33 + ...pe.lua---draw()---respects-`config.symbol` | 33 + ...ua---draw()---respects-`config.symbol`-002 | 33 + ...mbols-on-wrapped-lines-without-overlapping | 23 + ...s-on-wrapped-lines-without-overlapping-002 | 23 + ...ests-test_indentscope.lua---draw()---works | 33 + ...-test_indentscope.lua---draw()---works-002 | 33 + ...-test_indentscope.lua---draw()---works-003 | 33 + ...-test_indentscope.lua---draw()---works-004 | 33 + ...ts-test_indentscope.lua---undraw()---works | 33 + ...est_indentscope.lua---undraw()---works-002 | 33 + ...lighting---implements-debounce-style-delay | 13 + ...ting---implements-debounce-style-delay-002 | 13 + ...ting---implements-debounce-style-delay-003 | 13 + ...lighting---never-highlights-in-Insert-mode | 13 + ...ting---never-highlights-in-Insert-mode-002 | 13 + ...layed-highlighting---respects-'ignorecase' | 13 + ...elayed-highlighting---respects-'smartcase' | 13 + ...ay.highlight`---test-+-args-{-'backward'-} | 13 + ...ighlight`---test-+-args-{-'backward'-}-002 | 13 + ...ghlight`---test-+-args-{-'backward_till'-} | 13 + ...ght`---test-+-args-{-'backward_till'-}-002 | 13 + ...lay.highlight`---test-+-args-{-'forward'-} | 13 + ...highlight`---test-+-args-{-'forward'-}-002 | 13 + ...ighlight`---test-+-args-{-'forward_till'-} | 13 + ...ight`---test-+-args-{-'forward_till'-}-002 | 13 + ...ighting---respects-`vim.b.minijump_config` | 13 + ...ing---respects-`vim.b.minijump_config`-002 | 13 + ...hting---stops-immediately-when-not-jumping | 13 + ...g---stops-immediately-when-not-jumping-002 | 13 + ...---updates-immediately-within-same-jumping | 13 + ...pdates-immediately-within-same-jumping-002 | 13 + ...pdates-immediately-within-same-jumping-003 | 13 + ...hting---works---test-+-args-{-'backward'-} | 13 + ...g---works---test-+-args-{-'backward'-}-002 | 13 + ...---works---test-+-args-{-'backward_till'-} | 13 + ...orks---test-+-args-{-'backward_till'-}-002 | 13 + ...ghting---works---test-+-args-{-'forward'-} | 13 + ...ng---works---test-+-args-{-'forward'-}-002 | 13 + ...g---works---test-+-args-{-'forward_till'-} | 13 + ...works---test-+-args-{-'forward_till'-}-002 | 13 + ...ng-with-f-t-F-T---respects-`config.silent` | 23 + ...shows-helper-message-after-one-idle-second | 23 + ...s-helper-message-after-one-idle-second-002 | 23 + ...jump.lua---Stop-jumping-after-idle---works | 13 + ....lua---Stop-jumping-after-idle---works-002 | 13 + ...-should-be-done-before-target-highlighting | 13 + ...mp2d.lua---builtin_opts.line_start---works | 13 + ...ompts-helper-message-after-one-idle-second | 13 + ...mp2d.lua---builtin_opts.word_start---works | 13 + ...rd_start---works-with-multibyte-characters | 13 + ...r()---correctly-merges-'overlapping'-spots | 13 + ...ter()---spots-before-and-after-punctuation | 13 + ...ult_spotter()---spots-first-capital-letter | 13 + ...t_spotter()---spots-start-and-end-of-words | 13 + ...est_jump2d.lua---default_spotter()---works | 13 + ...---works-(almost)-with-multibyte-character | 13 + ...and-'$'---test-+-args-{-'.()..$',-'none'-} | 13 + ...^'-and-'$'---test-+-args-{-'...$',-'end'-} | 13 + ...-and-'$'---test-+-args-{-'...$',-'start'-} | 13 + ...and-'$'---test-+-args-{-'^.()..',-'none'-} | 13 + ...^'-and-'$'---test-+-args-{-'^...',-'end'-} | 13 + ...-and-'$'---test-+-args-{-'^...',-'start'-} | 13 + ...rn_spotter()---respects-`pattern`-argument | 13 + ...e`-argument---test-+-args-{-'%S+',-'end'-} | 13 + ...-argument---test-+-args-{-'%S+',-'start'-} | 13 + ...-argument---test-+-args-{-'.().',-'none'-} | 13 + ...jump2d.lua---gen_pattern_spotter()---works | 13 + ...en_pattern_spotter()---works-in-edge-cases | 13 + ...potter()---works-with-multibyte-characters | 13 + ...er()---works-with-multibyte-characters-002 | 13 + ...t_jump2d.lua---gen_union_spotter()---works | 13 + ....lua---setup()---applies-`config.mappings` | 13 + ...)---resets--CR--mapping-in-quickfix-window | 43 + ...lows-`hook.before_start`-to-modify-spotter | 13 + ...g-label-computation---test-+-args-{-1,-1-} | 13 + ...g-label-computation---test-+-args-{-2,-0-} | 13 + ...g-label-computation---test-+-args-{-3,-0-} | 13 + ...g-label-computation---test-+-args-{-3,-3-} | 13 + ...computation---test-+-args-{-'bottomleft'-} | 23 + ...l-computation---test-+-args-{-'topright'-} | 23 + ...()---handles-overlapping-multi-step-labels | 13 + ...-handles-overlapping-multi-step-labels-002 | 13 + ...-handles-overlapping-multi-step-labels-003 | 13 + ...-handles-overlapping-multi-step-labels-004 | 13 + ...()---handles-very-big-`view.n_steps_ahead` | 13 + ...-handles-very-big-`view.n_steps_ahead`-002 | 13 + ...ique-labels-with-different-highlight-group | 13 + ...start()---jumps-immediately-to-single-spot | 13 + ...---overrides-`config`-from-`opts`-argument | 13 + ...ompts-helper-message-after-one-idle-second | 13 + ...s-helper-message-after-one-idle-second-002 | 13 + ...s-helper-message-after-one-idle-second-003 | 13 + ...--start()---respects-`allowed_lines.blank` | 13 + ...art()---respects-`allowed_lines.blank`-002 | 13 + ...cursor_-`---test-+-args-{-'cursor_after'-} | 13 + ...or_-`---test-+-args-{-'cursor_after'-}-002 | 13 + ...es.cursor_-`---test-+-args-{-'cursor_at'-} | 13 + ...ursor_-`---test-+-args-{-'cursor_at'-}-002 | 13 + ...ursor_-`---test-+-args-{-'cursor_before'-} | 13 + ...r_-`---test-+-args-{-'cursor_before'-}-002 | 13 + ...---start()---respects-`allowed_lines.fold` | 13 + ...tart()---respects-`allowed_lines.fold`-002 | 13 + ...-{-{current-=-false,not_current-=-false}-} | 15 + ...current-=-false,not_current-=-false}-}-002 | 15 + ...ndows`---test-+-args-{-{current-=-false}-} | 15 + ...s`---test-+-args-{-{current-=-false}-}-002 | 15 + ...s`---test-+-args-{-{not_current-=-false}-} | 15 + ...-test-+-args-{-{not_current-=-false}-}-002 | 15 + ...d.lua---start()---respects-`config.silent` | 23 + ...t_jump2d.lua---start()---respects-`labels` | 13 + ...mp2d.lua---start()---respects-`labels`-002 | 13 + ...a---start()---respects-`opts.hl_group_dim` | 13 + ..._jump2d.lua---start()---respects-`spotter` | 13 + ...p2d.lua---start()---respects-`spotter`-002 | 13 + ...jump2d.lua---start()---respects-`view.dim` | 13 + ...2d.lua---start()---respects-`view.dim`-002 | 13 + ...2d.lua---start()---respects-`view.dim`-003 | 13 + ...---start()---respects-`view.n_steps_ahead` | 13 + ...tart()---respects-`view.n_steps_ahead`-002 | 13 + ...tart()---respects-`view.n_steps_ahead`-003 | 13 + ...tart()---respects-`view.n_steps_ahead`-004 | 13 + ...tart()---respects-`view.n_steps_ahead`-005 | 13 + ....minijump2d_disable`---test-+-args-{-'b'-} | 13 + ....minijump2d_disable`---test-+-args-{-'g'-} | 13 + ...test_jump2d.lua---start()---respects-folds | 13 + ..._jump2d.lua---start()---respects-folds-002 | 13 + ...-label-was-typed---test-+-args-{-'-C-c-'-} | 13 + ...label-was-typed---test-+-args-{-'-Down-'-} | 13 + ...-label-was-typed---test-+-args-{-'-Esc-'-} | 13 + ...()---traverses-floating-windows-at-the-end | 13 + ...le-'regular'-windows-based-on-their-layout | 23 + ...ses-`-CR-`-to-jump-to-first-available-spot | 13 + ...()---uses-`spotter`-with-correct-arguments | 13 + ...--uses-only-all-visible-windows-by-default | 23 + ...2d.lua---start()---uses-only-visible-lines | 13 + ...ua---start()---uses-only-visible-lines-002 | 13 + .../tests-test_jump2d.lua---start()---works | 13 + ...ests-test_jump2d.lua---start()---works-002 | 13 + ...--start()---works-in-Operator-pending-mode | 13 + ...art()---works-in-Operator-pending-mode-002 | 13 + ...art()---works-in-Operator-pending-mode-003 | 13 + ...art()---works-in-Operator-pending-mode-004 | 13 + ...ump2d.lua---start()---works-in-Visual-mode | 13 + ...d.lua---start()---works-in-Visual-mode-002 | 13 + ...p2d.lua---stop()---clears-all-highlighting | 15 + ...lua---stop()---clears-all-highlighting-002 | 15 + .../tests-test_jump2d.lua---stop()---works | 23 + ...tests-test_jump2d.lua---stop()---works-002 | 23 + ...ndow---opens-enough-folds-in-source-window | 63 + ...---opens-enough-folds-in-source-window-002 | 63 + ...-is-active-when-width-is-lower-than-offset | 63 + ...active-when-width-is-lower-than-offset-002 | 63 + ...active-when-width-is-lower-than-offset-003 | 63 + ...ests-test_map.lua---Pure-scrollbar---works | 63 + ...-test_map.lua---Pure-scrollbar---works-002 | 63 + ...a---Scrollbar---updates-on-cursor-movement | 63 + ...Scrollbar---updates-on-cursor-movement-002 | 63 + ...Scrollbar---updates-on-cursor-movement-003 | 63 + ...Scrollbar---updates-on-cursor-movement-004 | 63 + ...llbar---updates-on-source-window-scrolling | 63 + ...r---updates-on-source-window-scrolling-002 | 63 + ....lua---Window---does-not-account-for-folds | 63 + ...---Window---does-not-account-for-folds-002 | 63 + ...---Window---does-not-account-for-folds-003 | 63 + ...a---Window---fully-updates-on-buffer-enter | 63 + ...Window---fully-updates-on-buffer-enter-002 | 63 + ...a---Window---fully-updates-on-buffer-write | 33 + ...Window---fully-updates-on-buffer-write-002 | 33 + ...w---fully-updates-on-mode-change-to-Normal | 33 + ...fully-updates-on-mode-change-to-Normal-002 | 33 + ...ully-updates-on-text-change-in-Normal-mode | 33 + ...-updates-on-text-change-in-Normal-mode-002 | 33 + ...lua---Window---fully-updates-on-vim-resize | 63 + ...--Window---fully-updates-on-vim-resize-002 | 33 + ...be-used-as-`MiniMap.config.symbols.encode` | 63 + ...n-be-used-as-part-of-`opts.symbols.encode` | 63 + ...tin_search()---respects-documented-keymaps | 63 + ...search()---respects-documented-keymaps-002 | 63 + ...search()---respects-documented-keymaps-003 | 63 + ...search()---respects-documented-keymaps-004 | 63 + ...uiltin_search()---updates-when-appropriate | 63 + ...in_search()---updates-when-appropriate-002 | 63 + ...in_search()---updates-when-appropriate-003 | 63 + ...gen_integration---builtin_search()---works | 63 + ...integration---builtin_search()---works-002 | 63 + ...agnostic()---respects-`hl_groups`-argument | 63 + ...stic()---respects-`hl_groups`-argument-002 | 63 + ...stic()---respects-`hl_groups`-argument-003 | 63 + ...stic()---respects-`hl_groups`-argument-004 | 63 + ...---diagnostic()---updates-when-appropriate | 63 + ...iagnostic()---updates-when-appropriate-002 | 63 + ...a---gen_integration---diagnostic()---works | 63 + ...map.lua---gen_integration---diff()---works | 43 + ...gitsigns()---respects-`hl_groups`-argument | 63 + ...on---gitsigns()---updates-when-appropriate | 63 + ...-gitsigns()---updates-when-appropriate-002 | 63 + ...lua---gen_integration---gitsigns()---works | 63 + ...re-than-single-character-in-scroll-symbols | 63 + ...map.lua---open()---can-open-pure-scrollbar | 63 + ...--respects-`MiniMapNormal`-highlight-group | 63 + ...()---respects-`opts.integrations`-argument | 63 + ...-open()---respects-`opts.symbols`-argument | 63 + ...n()---respects-`opts.symbols`-argument-002 | 63 + ...--open()---respects-`opts.window`-argument | 63 + ...n()---shows-appropriate-integration-counts | 63 + .../tests-test_map.lua---open()---works | 63 + ...()---respects-`opts.integrations`-argument | 63 + ...fresh()---respects-`opts.symbols`-argument | 63 + ...efresh()---respects-`opts.window`-argument | 63 + ...ua---refresh()---respects-`parts`-argument | 63 + ...-refresh()---respects-`parts`-argument-002 | 63 + ...-refresh()---respects-`parts`-argument-003 | 63 + ...-refresh()---respects-`parts`-argument-004 | 63 + ...-refresh()---respects-`parts`-argument-005 | 63 + ...,b}.minimap_disable`---test-+-args-{-'b'-} | 63 + ...,b}.minimap_disable`---test-+-args-{-'g'-} | 63 + .../tests-test_map.lua---refresh()---works | 63 + ...tests-test_map.lua---refresh()---works-002 | 63 + ....lua---zoom()---respects-`config`-argument | 13 + .../tests-test_misc.lua---zoom()---works | 13 + ...---LSP-progress---handles-not-present-data | 17 + ...SP-progress---handles-not-present-data-002 | 17 + ...SP-progress---handles-not-present-data-003 | 17 + ...ss---respects-`lsp_progress.duration_last` | 17 + ...-respects-`lsp_progress.duration_last`-002 | 17 + ...sts-test_notify.lua---LSP-progress---works | 17 + ...test_notify.lua---LSP-progress---works-002 | 17 + ...test_notify.lua---LSP-progress---works-003 | 17 + ...test_notify.lua---LSP-progress---works-004 | 17 + ...test_notify.lua---LSP-progress---works-005 | 17 + ...default-dimensions-based-on-buffer-content | 27 + ...ult-dimensions-based-on-buffer-content-002 | 27 + ...lua---Window---fully-updates-on-vim-resize | 23 + ...--Window---fully-updates-on-vim-resize-002 | 23 + ...--Window---fully-updates-on-vim-resize-003 | 33 + ...--Window---fully-updates-on-vim-resize-004 | 23 + ...for-empty-lines-inside-notification-buffer | 17 + ...y.lua---Window---respects-`content.format` | 27 + ...ify.lua---Window---respects-`content.sort` | 27 + ...fy.lua---Window---respects-`window.config` | 27 + ...ua---Window---respects-`window.config`-002 | 27 + ...ua---Window---respects-`window.config`-003 | 27 + ...Window---respects-`window.max_width_share` | 27 + ...ow---respects-`window.max_width_share`-002 | 27 + ...ow---respects-`window.max_width_share`-003 | 27 + ...ow---respects-`window.max_width_share`-004 | 27 + ...ndow---respects-tabline-statusline-cmdline | 17 + ...---respects-tabline-statusline-cmdline-002 | 17 + ...---respects-tabline-statusline-cmdline-003 | 17 + ...---respects-tabline-statusline-cmdline-004 | 17 + ...---respects-tabline-statusline-cmdline-005 | 17 + ...---respects-tabline-statusline-cmdline-006 | 17 + ...---respects-tabline-statusline-cmdline-007 | 17 + ...---respects-tabline-statusline-cmdline-008 | 17 + ...---respects-tabline-statusline-cmdline-009 | 17 + ...---respects-tabline-statusline-cmdline-010 | 17 + ...s-start-of-buffer-if-it-does-not-fit-whole | 27 + ...a---Window---works-with-multiline-messages | 27 + ...ests-test_notify.lua---Window---wraps-text | 27 + ...-test_notify.lua---Window---wraps-text-002 | 27 + ....lua---add()---allows-empty-string-message | 17 + .../tests-test_notify.lua---add()---works | 17 + .../tests-test_notify.lua---clear()---works | 17 + ...ests-test_notify.lua---clear()---works-002 | 17 + ...ts-test_notify.lua---make_notify()---works | 23 + ....mininotify_disable`---test-+-args-{-'b'-} | 17 + ...inotify_disable`---test-+-args-{-'b'-}-002 | 17 + ...inotify_disable`---test-+-args-{-'b'-}-003 | 17 + ....mininotify_disable`---test-+-args-{-'g'-} | 17 + ...inotify_disable`---test-+-args-{-'g'-}-002 | 17 + ...inotify_disable`---test-+-args-{-'g'-}-003 | 17 + .../tests-test_notify.lua---remove()---works | 17 + ...sts-test_notify.lua---remove()---works-002 | 17 + ...---works-with-several-active-notifications | 17 + ...orks-with-several-active-notifications-002 | 17 + ...show_history()---respects-`content.format` | 17 + ...a---show_history()---reuses-history-buffer | 17 + ...--show_history()---shows-all-notifications | 17 + ...ua---show_history()---sorts-by-update-time | 17 + ...s-test_notify.lua---show_history()---works | 17 + .../tests-test_notify.lua---update()---works | 17 + ...sts-test_notify.lua---update()---works-002 | 17 + ...operators.lua---Exchange---can-be-canceled | 13 + ...ators.lua---Exchange---can-be-canceled-002 | 13 + ...ghts-first-step-with-'selection=exclusive' | 13 + ...s-first-step---test-+-args-{-'blockwise'-} | 13 + ...ts-first-step---test-+-args-{-'charwise'-} | 13 + ...ts-first-step---test-+-args-{-'linewise'-} | 13 + ...Exchange---works-with-multibyte-characters | 13 + ...ange---works-with-multibyte-characters-002 | 13 + ...ange---works-with-multibyte-characters-003 | 13 + ...ange---works-with-multibyte-characters-004 | 13 + ...ange---works-with-multibyte-characters-005 | 13 + ...tests-test_pairs.lua----BS--action---works | 23 + ...est_pick.lua----Pick---has-proper-complete | 23 + ...pick.lua----Pick---has-proper-complete-002 | 23 + ...pick.lua----Pick---has-proper-complete-003 | 23 + .../tests-test_pick.lua----Pick---works | 33 + .../tests-test_pick.lua----Pick---works-002 | 33 + ...st_pick.lua---Caret---moves-by-query-parts | 23 + ...ick.lua---Caret---moves-by-query-parts-002 | 23 + ...ick.lua---Caret---moves-by-query-parts-003 | 23 + .../tests-test_pick.lua---Caret---works | 23 + .../tests-test_pick.lua---Caret---works-002 | 23 + .../tests-test_pick.lua---Caret---works-003 | 23 + ...---Choose---works-for-split-tab-variations | 33 + ...hoose---works-for-split-tab-variations-002 | 33 + ...hoose---works-for-split-tab-variations-003 | 33 + ...-updated-after-moving-marking-current-item | 33 + ...ated-after-moving-marking-current-item-002 | 33 + ...ated-after-moving-marking-current-item-003 | 33 + ...ated-after-moving-marking-current-item-004 | 33 + ...lua---Info-view---respects-custom-mappings | 43 + ...---supports-vertical-and-horizontal-scroll | 33 + ...upports-vertical-and-horizontal-scroll-002 | 33 + ...upports-vertical-and-horizontal-scroll-003 | 33 + ...upports-vertical-and-horizontal-scroll-004 | 33 + .../tests-test_pick.lua---Info-view---works | 83 + ...ew---properly-computes-items-range-to-show | 17 + ...-properly-computes-items-range-to-show-002 | 17 + ...-properly-computes-items-range-to-show-003 | 17 + ...-properly-computes-items-range-to-show-004 | 17 + ...-properly-computes-items-range-to-show-005 | 17 + ...-properly-computes-items-range-to-show-006 | 17 + ...-properly-computes-items-range-to-show-007 | 17 + ...-properly-computes-items-range-to-show-008 | 17 + ...-properly-computes-items-range-to-show-009 | 17 + ...-properly-computes-items-range-to-show-010 | 17 + ...-properly-computes-items-range-to-show-011 | 17 + ...-properly-computes-items-range-to-show-012 | 17 + ...-properly-computes-items-range-to-show-013 | 17 + ...-properly-computes-items-range-to-show-014 | 17 + ...-properly-computes-items-range-to-show-015 | 17 + ...-properly-computes-items-range-to-show-016 | 17 + ...-properly-computes-items-range-to-show-017 | 17 + ...-properly-computes-items-range-to-show-018 | 17 + ...-properly-computes-items-range-to-show-019 | 17 + ...-properly-computes-items-range-to-show-020 | 17 + ...-properly-computes-items-range-to-show-021 | 17 + ...-properly-computes-items-range-to-show-022 | 17 + ...-properly-computes-items-range-to-show-023 | 17 + ...-properly-computes-items-range-to-show-024 | 17 + ...-properly-computes-items-range-to-show-025 | 17 + ...n-view---shows-marked-items-across-queries | 23 + ...ew---shows-marked-items-across-queries-002 | 23 + ...a---Main-view---supports-horizontal-scroll | 23 + ...Main-view---supports-horizontal-scroll-002 | 23 + ...Main-view---supports-horizontal-scroll-003 | 23 + ...Main-view---supports-horizontal-scroll-004 | 23 + ...Main-view---supports-horizontal-scroll-005 | 23 + ...Main-view---supports-horizontal-scroll-006 | 23 + ...ew---works-with-`content_from_bottom`=true | 23 + ...-works-with-`content_from_bottom`=true-002 | 23 + ...-works-with-`content_from_bottom`=true-003 | 23 + ...-works-with-`content_from_bottom`=true-004 | 23 + ...-works-with-`content_from_bottom`=true-005 | 23 + ...-works-with-`content_from_bottom`=true-006 | 23 + ...-works-with-`content_from_bottom`=true-007 | 23 + ...-works-with-`content_from_bottom`=true-008 | 23 + ...-works-with-`content_from_bottom`=true-009 | 23 + ...-works-with-`content_from_bottom`=true-010 | 23 + ..._pick.lua---Mark---works-without-items-set | 13 + ...k.lua---Move---works-when-no-items-are-set | 13 + ...a---Overall-view---allows-'none'-as-border | 33 + ...verall-view---allows-very-large-dimensions | 33 + ...view---correctly-infers-footer-empty-space | 33 + ...---correctly-infers-footer-empty-space-002 | 33 + ...---correctly-infers-footer-empty-space-003 | 33 + ...-does-not-show-footer-if-items-are-not-set | 33 + ...ew---is-shown-over-number-and-sign-columns | 23 + ...-`options.content_from_bottom`-with-footer | 33 + ...-respects-tabline,-statusline,-'cmdheight' | 23 + ...pects-tabline,-statusline,-'cmdheight'-002 | 23 + ...pects-tabline,-statusline,-'cmdheight'-003 | 23 + ...pects-tabline,-statusline,-'cmdheight'-004 | 23 + ...est_pick.lua---Overall-view---shows-prompt | 23 + ...pick.lua---Overall-view---shows-prompt-002 | 23 + ...pick.lua---Overall-view---shows-prompt-003 | 23 + ...pick.lua---Overall-view---shows-prompt-004 | 23 + ...pick.lua---Overall-view---shows-prompt-005 | 23 + ...lua---Overall-view---truncates-border-text | 23 + ...--Overall-view---truncates-border-text-002 | 23 + ...-Overall-view---uses-footer-for-extra-info | 33 + ...rall-view---uses-footer-for-extra-info-002 | 33 + ...rall-view---uses-footer-for-extra-info-003 | 33 + ...rall-view---uses-footer-for-extra-info-004 | 33 + ...rall-view---uses-footer-for-extra-info-005 | 33 + ...rall-view---uses-footer-for-extra-info-006 | 33 + ...lay.async`-when-waiting-for-register-label | 33 + ...async`-when-waiting-for-register-label-002 | 33 + ...async`-when-waiting-for-register-label-003 | 33 + ...async`-when-waiting-for-register-label-004 | 33 + .../tests-test_pick.lua---Paste---works | 13 + .../tests-test_pick.lua---Paste---works-002 | 13 + .../tests-test_pick.lua---Paste---works-003 | 13 + ...iew---is-updated-after-moving-current-item | 33 + ...--is-updated-after-moving-current-item-002 | 33 + ...---supports-vertical-and-horizontal-scroll | 33 + ...upports-vertical-and-horizontal-scroll-002 | 33 + ...upports-vertical-and-horizontal-scroll-003 | 33 + ...upports-vertical-and-horizontal-scroll-004 | 33 + .../tests-test_pick.lua---Preview---works | 33 + .../tests-test_pick.lua---Refine---works | 23 + .../tests-test_pick.lua---Refine---works-002 | 23 + .../tests-test_pick.lua---Refine---works-003 | 23 + ...lua---Refine---works-when-no-items-are-set | 13 + ...()---respects-`local_opts.include_current` | 23 + ...)---respects-`local_opts.include_unlisted` | 33 + ...ers()---respects-`source.show`-from-config | 33 + ...-test_pick.lua---builtin.buffers()---works | 23 + ...les()---respects-`source.show`-from-config | 23 + ...ts-test_pick.lua---builtin.files()---works | 23 + ...rep()---respects-`source.show`-from-config | 23 + ...sts-test_pick.lua---builtin.grep()---works | 23 + ...ive()---respects-`source.show`-from-config | 23 + ...est_pick.lua---builtin.grep_live()---works | 23 + ....help()---handles-consecutive-applications | 33 + ....lua---builtin.help()---has-proper-preview | 33 + ...sts-test_pick.lua---builtin.help()---works | 33 + ...test_pick.lua---builtin.help()---works-002 | 33 + ...orks-for-help-tags-with-special-characters | 33 + ...--works-when-help-window-is-already-opened | 33 + ...tin.help()---works-with-`builtin.resume()` | 33 + ...help()---works-with-`builtin.resume()`-002 | 33 + ...s-test_pick.lua---builtin.resume()---works | 33 + ...ault_match()---does-not-block-query-update | 33 + ...default_match()---works-with-active-picker | 33 + ...ult_match()---works-with-active-picker-002 | 33 + ...t_preview()---does-not-highlight-big-files | 33 + ...eview()---does-not-highlight-big-files-002 | 33 + ...ick.lua---default_preview()---has-fallback | 23 + ...lua---default_preview()---has-fallback-002 | 23 + ...view()---has-syntax-highlighting-in-buffer | 33 + ...()---has-syntax-highlighting-in-buffer-002 | 33 + ...w()---has-syntax-highlighting-in-file-path | 33 + ...--has-syntax-highlighting-in-file-path-002 | 33 + ...efault_preview()---loads-context-in-buffer | 33 + ...lt_preview()---loads-context-in-buffer-002 | 33 + ...lt_preview()---loads-context-in-buffer-003 | 33 + ...ult_preview()---loads-context-in-file-path | 33 + ...preview()---loads-context-in-file-path-002 | 33 + ...preview()---loads-context-in-file-path-003 | 33 + ...pts.line_position`---1-+-args-{-'bottom'-} | 33 + ...line_position`---1-+-args-{-'bottom'-}-002 | 33 + ...pts.line_position`---1-+-args-{-'center'-} | 33 + ...line_position`---1-+-args-{-'center'-}-002 | 33 + ...-`opts.line_position`---1-+-args-{-'top'-} | 33 + ...ts.line_position`---1-+-args-{-'top'-}-002 | 33 + ...review()---respects-`opts.n_context_lines` | 33 + ...ew()---respects-`opts.n_context_lines`-002 | 33 + ...-default_preview()---respects-`source.cwd` | 33 + ...--default_preview()---shows-line-in-buffer | 33 + ...efault_preview()---shows-line-in-file-path | 33 + ...lt_preview()---shows-line-in-file-path-002 | 33 + ...fault_preview()---shows-position-in-buffer | 33 + ...lt_preview()---shows-position-in-file-path | 33 + ...review()---shows-position-in-file-path-002 | 33 + ...default_preview()---shows-region-in-buffer | 33 + ...ult_preview()---shows-region-in-buffer-002 | 33 + ...ault_preview()---shows-region-in-file-path | 33 + ..._preview()---shows-region-in-file-path-002 | 33 + ...-test_pick.lua---default_preview()---works | 33 + ...a---default_preview()---works-for-URI-path | 33 + ...lua---default_preview()---works-for-buffer | 33 + ...--default_preview()---works-for-buffer-002 | 33 + ...--default_preview()---works-for-buffer-003 | 33 + ...--default_preview()---works-for-buffer-004 | 33 + ...--default_preview()---works-for-buffer-005 | 33 + ...fault_preview()---works-for-directory-path | 33 + ...t_preview()---works-for-directory-path-002 | 33 + ...---default_preview()---works-for-file-path | 33 + ...efault_preview()---works-for-file-path-002 | 33 + ...efault_preview()---works-for-file-path-003 | 33 + ...preview()---works-for-file-path-with-tilde | 13 + ...t_preview()---works-for-relative-file-path | 33 + ...lt_preview()---works-without-active-picker | 33 + ...review()---works-without-active-picker-002 | 33 + ....lua---default_show()---handles-edge-cases | 13 + ...--handles-query-similar-to-`default_match` | 33 + ...ndles-query-similar-to-`default_match`-002 | 33 + ...ndles-query-similar-to-`default_match`-003 | 33 + ...ndles-query-similar-to-`default_match`-004 | 33 + ...ndles-query-similar-to-`default_match`-005 | 33 + ...ndles-stritems-with-non-trivial-whitespace | 23 + ...show()---respects-'ignorecase'-'smartcase' | 17 + ...()---respects-'ignorecase'-'smartcase'-002 | 17 + ...()---respects-'ignorecase'-'smartcase'-003 | 17 + ...()---respects-'ignorecase'-'smartcase'-004 | 17 + ...()---respects-'ignorecase'-'smartcase'-005 | 17 + ...()---respects-'ignorecase'-'smartcase'-006 | 17 + ...a---default_show()---respects-`opts.icons` | 23 + ...default_show()---respects-`opts.icons`-002 | 23 + ...default_show()---respects-`opts.icons`-003 | 23 + ...efault_show()---respects-`opts.show_icons` | 29 + ...lt_show()---respects-`opts.show_icons`-002 | 29 + ...lt_show()---respects-`opts.show_icons`-003 | 29 + ...lt_show()---respects-`opts.show_icons`-004 | 29 + ...ck.lua---default_show()---shows-best-match | 23 + ...ua---default_show()---shows-best-match-002 | 23 + ...sts-test_pick.lua---default_show()---works | 33 + ...t_show()---works-with-multibyte-characters | 23 + ...ow()---works-with-multibyte-characters-002 | 23 + ...works-with-non-single-char-entries-queries | 23 + ...s-with-non-single-char-entries-queries-002 | 23 + ...s-with-non-single-char-entries-queries-003 | 23 + ...fault_show()---works-without-active-picker | 23 + ...t_show()---works-without-active-picker-002 | 23 + ...ua---refresh()---is-called-on-`VimResized` | 33 + ...-refresh()---is-called-on-`VimResized`-002 | 33 + ...lua---refresh()---recomputes-window-config | 33 + ...--refresh()---recomputes-window-config-002 | 33 + .../tests-test_pick.lua---refresh()---works | 33 + ...ests-test_pick.lua---refresh()---works-002 | 33 + ...pick.lua---set_picker_match_inds()---works | 33 + ...-test_pick.lua---set_picker_opts()---works | 33 + ...t_pick.lua---set_picker_opts()---works-002 | 33 + ...t_pick.lua---set_picker_opts()---works-003 | 33 + ...test_pick.lua---set_picker_query()---works | 33 + ...()---can-be-started-without-explicit-items | 33 + ...ua---start()---correctly-computes-stritems | 33 + ...ick.lua---start()---respects-`delay.async` | 33 + ...lua---start()---respects-`delay.async`-002 | 33 + ...lua---start()---respects-`delay.async`-003 | 33 + ...lua---start()---respects-`delay.async`-004 | 33 + ...)---respects-`options.content_from_bottom` | 33 + ...ck.lua---start()---respects-`source.items` | 33 + ...ua---start()---respects-`source.items`-002 | 33 + ...ua---start()---respects-`source.items`-003 | 33 + ...ua---start()---respects-`source.items`-004 | 33 + ...ck.lua---start()---respects-`source.match` | 33 + ...ick.lua---start()---respects-`source.name` | 33 + ....lua---start()---respects-`source.preview` | 33 + ...---start()---respects-`source.preview`-002 | 33 + ...ick.lua---start()---respects-`source.show` | 33 + ...lua---start()---respects-`source.show`-002 | 33 + ...start()---respects-`vim.b.minipick_config` | 33 + ...k.lua---start()---respects-`window.config` | 33 + ...a---start()---respects-`window.config`-002 | 33 + ...-start()---respects-`window.prompt_cursor` | 33 + ...rt()---respects-`window.prompt_cursor`-002 | 33 + ...-start()---respects-`window.prompt_prefix` | 33 + ...rt()---respects-`window.prompt_prefix`-002 | 33 + ...ick.lua---start()---respects-global-config | 33 + ...---start()---stops-currently-active-picker | 33 + ...---stops-impoperly-aborted-previous-picker | 33 + ...tops-impoperly-aborted-previous-picker-002 | 33 + ...est_pick.lua---start()---tracks-lost-focus | 33 + ...pick.lua---start()---tracks-lost-focus-002 | 33 + .../tests-test_pick.lua---start()---works | 33 + .../tests-test_pick.lua---start()---works-002 | 33 + ...t_pick.lua---start()---works-on-Neovim-0.9 | 33 + ...ck.lua---start()---works-on-Neovim-0.9-002 | 33 + ...k.lua---start()---works-with-window-footer | 33 + ...a---start()---works-with-window-footer-002 | 33 + .../tests-test_pick.lua---stop()---works | 33 + .../tests-test_pick.lua---stop()---works-002 | 33 + ...ui_select()---respects-`opts.preview_item` | 33 + ...ct()---shows-only-original-item-in-preview | 33 + .../tests-test_pick.lua---ui_select()---works | 33 + ...es'-section---displays-only-readable-files | 51 + ...-section---present-even-if-no-recent-files | 51 + ...ion---present-even-if-no-sessions-detected | 51 + ...fault-content---'Sessions'-section---works | 51 + ...ding-on-time-of-day---test-+-args-{-'00'-} | 51 + ...ding-on-time-of-day---test-+-args-{-'04'-} | 51 + ...ding-on-time-of-day---test-+-args-{-'08'-} | 51 + ...ding-on-time-of-day---test-+-args-{-'12'-} | 51 + ...ding-on-time-of-day---test-+-args-{-'16'-} | 51 + ...ding-on-time-of-day---test-+-args-{-'20'-} | 51 + ...test_starter.lua---Default-content---works | 51 + ...ighlighting---uses-`MiniStarterItemBullet` | 33 + ...ighting---uses-`MiniStarterItemBullet`-002 | 33 + ...ua---Highlighting---works-for-current-item | 33 + ...-Highlighting---works-for-current-item-002 | 33 + ...er.lua---Highlighting---works-for-querying | 33 + ...ua---Highlighting---works-for-querying-002 | 33 + ...ua---Highlighting---works-for-querying-003 | 33 + ....lua---Querying---works-with-`cmdheight=0` | 43 + ...rter.lua---Resize---updates-Starter-buffer | 43 + ...ding_bullet()---respects-`bullet`-argument | 43 + ...r.lua---gen_hook---adding_bullet()---works | 43 + ..._hook---aligning()---handles-small-windows | 33 + ...---has-output-respecting-`buf_id`-argument | 33 + ...as-output-respecting-`buf_id`-argument-002 | 33 + ...nts---test-+-args-{-''center',-'bottom''-} | 23 + ...nts---test-+-args-{-''center',-'center''-} | 23 + ...uments---test-+-args-{-''center',-'top''-} | 23 + ...ments---test-+-args-{-''left',-'bottom''-} | 23 + ...ments---test-+-args-{-''left',-'center''-} | 23 + ...rguments---test-+-args-{-''left',-'top''-} | 23 + ...ents---test-+-args-{-''right',-'bottom''-} | 23 + ...ents---test-+-args-{-''right',-'center''-} | 23 + ...guments---test-+-args-{-''right',-'top''-} | 23 + ...tarter.lua---gen_hook---aligning()---works | 43 + ...s-arguments---test-+-args-{-''all',-nil'-} | 33 + ...guments---test-+-args-{-''section',-nil'-} | 33 + ...guments---test-+-args-{-'nil,-{-'AAA'-}'-} | 33 + ...ects-arguments---test-+-args-{-'nil,-{}'-} | 33 + ...tarter.lua---gen_hook---indexing()---works | 33 + ...espects-arguments---test-+-args-{-'0,-2'-} | 43 + ...espects-arguments---test-+-args-{-'2,-0'-} | 43 + ...espects-arguments---test-+-args-{-'2,-2'-} | 43 + ...starter.lua---gen_hook---padding()---works | 43 + ...s-test_starter.lua---get_content()---works | 23 + ...en()---respects-`vim.b.ministarter_config` | 51 + ...lua---refresh()---respects-`config.silent` | 51 + ...--refresh()---respects-`config.silent`-002 | 51 + ...sh()---respects-`vim.b.ministarter_config` | 51 + ...---respects-`vim.b.ministarter_config`-002 | 51 + ...ly-identifies-files-from-current-directory | 51 + ...ns---recent_files()---respects-`show_path` | 51 + ...files()---respects-files-in-subdirectories | 51 + .../tests-test_starter.lua---sections---works | 63 + ...ult-content---active---test-+-args-{-120-} | 13 + ...ault-content---active---test-+-args-{-39-} | 13 + ...ault-content---active---test-+-args-{-40-} | 13 + ...ault-content---active---test-+-args-{-75-} | 13 + ...-is-evaluated-in-the-context-of-its-window | 23 + ...ompts-helper-message-after-one-idle-second | 13 + ...s-helper-message-after-one-idle-second-002 | 13 + ...Add-surrounding---respects-`config.silent` | 23 + ...iltin---Function-call---colors-its-prompts | 13 + ...n---Function-call---colors-its-prompts-002 | 13 + ...d.lua---Builtin---Tag---colors-its-prompts | 13 + ...a---Builtin---Tag---colors-its-prompts-002 | 13 + ...Builtin---User-prompt---colors-its-prompts | 13 + ...tin---User-prompt---colors-its-prompts-002 | 13 + ...tin---User-prompt---colors-its-prompts-003 | 13 + ...ompts-helper-message-after-one-idle-second | 13 + ...s-helper-message-after-one-idle-second-002 | 13 + ...ete-surrounding---respects-`config.silent` | 23 + ...surrounding---respects-`config.silent`-002 | 23 + ...ompts-helper-message-after-one-idle-second | 13 + ...s-helper-message-after-one-idle-second-002 | 13 + ...g---removes-highlighting-in-correct-buffer | 13 + ...removes-highlighting-in-correct-buffer-002 | 13 + ...urrounding---removes-highlighting-per-line | 13 + ...unding---removes-highlighting-per-line-002 | 13 + ...unding---removes-highlighting-per-line-003 | 13 + ...ht-surrounding---respects-`config.n_lines` | 33 + ...--respects-`v-count`-for-input-surrounding | 13 + ...ing---respects-`vim.b.minisurround_config` | 13 + ...--respects-`vim.b.minisurround_config`-002 | 13 + ...inisurround_disable`---test-+-args-{-'b'-} | 13 + ...inisurround_disable`---test-+-args-{-'g'-} | 13 + ...t-surrounding---works-in-extended-mappings | 13 + ...rrounding---works-in-extended-mappings-002 | 13 + ...rrounding---works-in-extended-mappings-003 | 13 + ...hlight-surrounding---works-with-dot-repeat | 13 + ...ht-surrounding---works-with-dot-repeat-002 | 13 + ...ht-surrounding---works-with-dot-repeat-003 | 13 + ...ht-surrounding---works-with-dot-repeat-004 | 13 + ...ht-surrounding---works-with-dot-repeat-005 | 13 + ...ht-surrounding---works-with-dot-repeat-006 | 13 + ...---works-with-multiline-input-surroundings | 13 + ...orks-with-multiline-input-surroundings-002 | 13 + ...orks-with-multiline-input-surroundings-003 | 13 + ...orks-with-multiline-input-surroundings-004 | 13 + ...ompts-helper-message-after-one-idle-second | 13 + ...s-helper-message-after-one-idle-second-002 | 13 + ...s-helper-message-after-one-idle-second-003 | 13 + ...ace-surrounding---respects-`config.silent` | 23 + ...surrounding---respects-`config.silent`-002 | 23 + ...t---treesitter()---works-with-empty-region | 33 + .../tests-test_tabline.lua---Screen---works | 13 + ...ests-test_tabline.lua---Screen---works-002 | 13 + ...ests-test_tabline.lua---Screen---works-003 | 13 + ...ests-test_tabline.lua---Screen---works-004 | 13 + ...ests-test_tabline.lua---Screen---works-005 | 13 + ...enshot()---correctly-infers-reference-path | 13 + ...ot()---correctly-infers-reference-path-002 | 13 + ...ot()---correctly-infers-reference-path-004 | 13 + ...()---correctly-sanitizes-path-for-Windows- | 13 + ...--correctly-sanitizes-path-for-Windows-#2- | 13 + ...enshot()---works-with-multibyte-characters | 13 + ...gen_reporter---buffer---test-+-args-{-''-} | 143 + ...buffer---test-+-args-{-'group_depth-=-2'-} | 143 + ...o.columns,-col-=-0.05---vim.o.columns-}'-} | 143 + ...gen_reporter---stdout---test-+-args-{-''-} | 73 + ...out---test-+-args-{-'TEST_GROUP_DEPTH=2'-} | 73 + ...est-+-args-{-'TEST_QUIT_ON_FINISH=false'-} | 73 + ...ohighlighting---respects-BufEnter-BufLeave | 23 + ...hlighting---respects-BufEnter-BufLeave-002 | 23 + ...hlighting---respects-BufEnter-BufLeave-003 | 23 + ...ighting---respects-InsertEnter-InsertLeave | 23 + ...ing---respects-InsertEnter-InsertLeave-002 | 23 + ...ing---respects-InsertEnter-InsertLeave-003 | 23 + ...pace-autohighlighting---respects-OptionSet | 23 + ...-autohighlighting---respects-OptionSet-002 | 23 + ...ohighlighting---respects-WinEnter-WinLeave | 23 + ...hlighting---respects-WinEnter-WinLeave-002 | 23 + ...hlighting---respects-WinEnter-WinLeave-003 | 23 + ...Trailspace-highlighting-on-startup---works | 13 + ...ormal_buffers`---test-+-args-{-false,-''-} | 23 + ...l_buffers`---test-+-args-{-false,-'help'-} | 23 + ...buffers`---test-+-args-{-false,-'nofile'-} | 23 + ...normal_buffers`---test-+-args-{-true,-''-} | 23 + ...al_buffers`---test-+-args-{-true,-'help'-} | 23 + ..._buffers`---test-+-args-{-true,-'nofile'-} | 23 + ...)---respects-`vim.b.minitrailspace_config` | 23 + ...itrailspace_disable`---test-+-args-{-'b'-} | 23 + ...itrailspace_disable`---test-+-args-{-'g'-} | 23 + ...-test_trailspace.lua---highlight()---works | 23 + ...t_trailspace.lua---highlight()---works-002 | 23 + ...highlight()---works-after-`clearmatches()` | 23 + ...light()---works-after-`clearmatches()`-002 | 23 + ...-only-in-Normal-mode---test-+-args-{-'-'-} | 23 + ...-only-in-Normal-mode---test-+-args-{-'R'-} | 23 + ...-only-in-Normal-mode---test-+-args-{-'i'-} | 23 + ...-only-in-Normal-mode---test-+-args-{-'v'-} | 23 + ...est_trailspace.lua---unhighlight()---works | 23 + ...trailspace.lua---unhighlight()---works-002 | 23 + ...highlight()---works-after-`clearmatches()` | 23 + ...-asks-user-for-label-if-it-is-not-supplied | 13 + ...s-user-for-label-if-it-is-not-supplied-002 | 13 + ...s-user-for-label-if-it-is-not-supplied-003 | 13 + ...ests-test_visits.lua---add_label()---works | 13 + ...-asks-user-for-label-if-it-is-not-supplied | 13 + ...s-user-for-label-if-it-is-not-supplied-002 | 13 + ...s-user-for-label-if-it-is-not-supplied-003 | 13 + ...s-test_visits.lua---remove_label()---works | 13 + .../lazy-plugins/mini.nvim/tests/test_ai.lua | 3221 ++++++++++ .../mini.nvim/tests/test_align.lua | 1955 ++++++ .../mini.nvim/tests/test_animate.lua | 2581 ++++++++ .../mini.nvim/tests/test_base16.lua | 248 + .../mini.nvim/tests/test_basics.lua | 838 +++ .../mini.nvim/tests/test_bracketed.lua | 4256 +++++++++++++ .../mini.nvim/tests/test_bufremove.lua | 408 ++ .../mini.nvim/tests/test_clue.lua | 3487 +++++++++++ .../mini.nvim/tests/test_colors.lua | 2419 ++++++++ .../mini.nvim/tests/test_comment.lua | 1130 ++++ .../mini.nvim/tests/test_completion.lua | 892 +++ .../mini.nvim/tests/test_cursorword.lua | 309 + .../mini.nvim/tests/test_deps.lua | 2703 +++++++++ .../mini.nvim/tests/test_diff.lua | 2944 +++++++++ .../lazy-plugins/mini.nvim/tests/test_doc.lua | 243 + .../mini.nvim/tests/test_extra.lua | 3238 ++++++++++ .../mini.nvim/tests/test_files.lua | 4061 +++++++++++++ .../mini.nvim/tests/test_fuzzy.lua | 233 + .../lazy-plugins/mini.nvim/tests/test_git.lua | 2914 +++++++++ .../mini.nvim/tests/test_hipatterns.lua | 1190 ++++ .../mini.nvim/tests/test_hues.lua | 533 ++ .../mini.nvim/tests/test_icons.lua | 896 +++ .../mini.nvim/tests/test_indentscope.lua | 993 +++ .../mini.nvim/tests/test_jump.lua | 1128 ++++ .../mini.nvim/tests/test_jump2d.lua | 1230 ++++ .../lazy-plugins/mini.nvim/tests/test_map.lua | 1536 +++++ .../mini.nvim/tests/test_misc.lua | 847 +++ .../mini.nvim/tests/test_move.lua | 1432 +++++ .../mini.nvim/tests/test_notify.lua | 1069 ++++ .../mini.nvim/tests/test_operators.lua | 2063 +++++++ .../mini.nvim/tests/test_pairs.lua | 989 +++ .../mini.nvim/tests/test_pick.lua | 5337 +++++++++++++++++ .../mini.nvim/tests/test_sessions.lua | 1048 ++++ .../mini.nvim/tests/test_splitjoin.lua | 1260 ++++ .../mini.nvim/tests/test_starter.lua | 1443 +++++ .../mini.nvim/tests/test_statusline.lua | 805 +++ .../mini.nvim/tests/test_surround.lua | 2591 ++++++++ .../mini.nvim/tests/test_tabline.lua | 707 +++ .../mini.nvim/tests/test_test.lua | 1381 +++++ .../mini.nvim/tests/test_trailspace.lua | 296 + .../mini.nvim/tests/test_visits.lua | 2196 +++++++ .../lazy-plugins/noice.nvim/.editorconfig | 7 + .../.github/ISSUE_TEMPLATE/config.yml | 5 + .../.github/PULL_REQUEST_TEMPLATE.md | 16 + .../noice.nvim/.github/dependabot.yml | 6 + .../noice.nvim/.github/workflows/labeler.yml | 8 + .../noice.nvim/.github/workflows/pr.yml | 18 + .../noice.nvim/.github/workflows/stale.yml | 11 + .../noice.nvim/.github/workflows/update.yml | 13 + .../store/lazy-plugins/noice.nvim/lazy.lua | 7 + .../noice.nvim/lua/noice/integrations/fzf.lua | 110 + .../lazy-plugins/noice.nvim/scripts/test | 3 + .../lazy-plugins/noice.nvim/tests/minit.lua | 15 + .../manifest | 137 + .../0.3.0-1/nui.nvim-0.3.0-1.rockspec | 27 + .../nui.nvim/0.3.0-1/rock_manifest | 98 + .../nui.nvim/0.3.0-1/tests/helpers/init.lua | 312 + .../nui.nvim/0.3.0-1/tests/init.lua | 24 + .../0.3.0-1/tests/nui/input/init_spec.lua | 273 + .../0.3.0-1/tests/nui/layout/init_spec.lua | 2026 +++++++ .../0.3.0-1/tests/nui/layout/utils_spec.lua | 144 + .../0.3.0-1/tests/nui/line/init_spec.lua | 164 + .../0.3.0-1/tests/nui/menu/init_spec.lua | 601 ++ .../0.3.0-1/tests/nui/object/init_spec.lua | 413 ++ .../0.3.0-1/tests/nui/popup/border_spec.lua | 1031 ++++ .../0.3.0-1/tests/nui/popup/init_spec.lua | 1230 ++++ .../0.3.0-1/tests/nui/split/init_spec.lua | 1006 ++++ .../0.3.0-1/tests/nui/table/init_spec.lua | 632 ++ .../0.3.0-1/tests/nui/text/init_spec.lua | 284 + .../0.3.0-1/tests/nui/tree/init_spec.lua | 912 +++ .../manifest | 263 + .../nvim-cmp/scm-1/autoload/cmp.vim | 75 + .../nvim-cmp/scm-1/doc/cmp.txt | 1071 ++++ .../nvim-cmp/scm-1/nvim-cmp-scm-1.rockspec | 31 + .../nvim-cmp/scm-1/plugin/cmp.lua | 61 + .../nvim-cmp/scm-1/rock_manifest | 80 + .../lazy-plugins/nvim-jdtls/.editorconfig | 9 + .../nvim-jdtls/.github/ISSUE_TEMPLATE/bug.yml | 51 + .../.github/ISSUE_TEMPLATE/config.yml | 6 + .../.github/ISSUE_TEMPLATE/feature.yml | 23 + .../nvim-jdtls/.github/linters/.luacheckrc | 11 + .../nvim-jdtls/.github/workflows/linter.yml | 23 + .../nvim-jdtls/.github/workflows/tests.yml | 39 + .../store/lazy-plugins/nvim-jdtls/.luacheckrc | 11 + .../store/lazy-plugins/nvim-jdtls/.luarc.json | 4 + .../nvim-jdtls/.markdownlint.yaml | 3 + .../store/lazy-plugins/nvim-jdtls/LICENSE.txt | 675 +++ .../store/lazy-plugins/nvim-jdtls/README.md | 531 ++ .../lazy-plugins/nvim-jdtls/doc/jdtls.txt | 280 + .../store/lazy-plugins/nvim-jdtls/doc/tags | 37 + .../store/lazy-plugins/nvim-jdtls/lemmy.sh | 4 + .../lazy-plugins/nvim-jdtls/lua/jdtls.lua | 1299 ++++ .../lazy-plugins/nvim-jdtls/lua/jdtls/dap.lua | 767 +++ .../nvim-jdtls/lua/jdtls/junit.lua | 245 + .../nvim-jdtls/lua/jdtls/path.lua | 15 + .../nvim-jdtls/lua/jdtls/setup.lua | 412 ++ .../nvim-jdtls/lua/jdtls/testng.lua | 97 + .../nvim-jdtls/lua/jdtls/tests.lua | 159 + .../lazy-plugins/nvim-jdtls/lua/jdtls/ui.lua | 93 + .../nvim-jdtls/lua/jdtls/util.lua | 163 + .../nvim-jdtls/plugin/nvim_jdtls.vim | 9 + .../nvim-jdtls/tests/junit_spec.lua | 50 + .../lazy-plugins/nvim-jdtls/tests/minimal.vim | 3 + .../nvim-lint/lua/lint/linters/ameba.lua | 40 + .../nvim-lint/lua/lint/linters/ghdl.lua | 16 + .../nvim-lint/lua/lint/linters/protolint.lua | 30 + .../nvim-lint/lua/lint/linters/spectral.lua | 51 + .../nvim-lint/lua/lint/linters/vsg.lua | 65 + .../nvim-lint/tests/ameba_spec.lua | 84 + .../server_configurations/ballerina.lua | 17 + .../server_configurations/bazelrc-lsp.lua | 26 + .../server_configurations/bitbake_ls.lua | 27 + .../lspconfig/server_configurations/djlsp.lua | 17 + .../server_configurations/fish_lsp.lua | 26 + .../server_configurations/glasgow.lua | 38 + .../server_configurations/janet_lsp.lua | 21 + .../server_configurations/protols.lua | 22 + .../lspconfig/server_configurations/pug.lua | 18 + .../server_configurations/superhtml.lua | 32 + .../queries/ada/injections.scm | 2 + .../queries/agda/injections.scm | 2 + .../queries/apex/injections.scm | 5 + .../queries/bibtex/injections.scm | 2 + .../queries/blueprint/injections.scm | 2 + .../queries/cmake/injections.scm | 5 + .../queries/commonlisp/injections.scm | 5 + .../queries/cooklang/injections.scm | 2 + .../queries/corn/injections.scm | 2 + .../queries/diff/injections.scm | 2 + .../queries/ebnf/injections.scm | 2 + .../queries/editorconfig/folds.scm | 1 + .../queries/editorconfig/highlights.scm | 56 + .../queries/editorconfig/injections.scm | 2 + .../nvim-treesitter/queries/elm/folds.scm | 14 + .../queries/erlang/injections.scm | 2 + .../queries/fortran/injections.scm | 2 + .../queries/fsh/injections.scm | 2 + .../queries/func/injections.scm | 2 + .../queries/fusion/injections.scm | 5 + .../queries/gitignore/injections.scm | 2 + .../queries/glimmer/injections.scm | 2 + .../nvim-treesitter/queries/goctl/folds.scm | 11 + .../queries/goctl/highlights.scm | 79 + .../nvim-treesitter/queries/goctl/indents.scm | 15 + .../queries/goctl/injections.scm | 3 + .../nvim-treesitter/queries/gotmpl/folds.scm | 8 + .../nvim-treesitter/queries/gotmpl/locals.scm | 12 + .../queries/hack/injections.scm | 5 + .../nvim-treesitter/queries/helm/folds.scm | 1 + .../nvim-treesitter/queries/helm/locals.scm | 1 + .../queries/hoon/injections.scm | 2 + .../nvim-treesitter/queries/idl/indents.scm | 10 + .../queries/ini/injections.scm | 2 + .../queries/jsonnet/injections.scm | 2 + .../queries/liquidsoap/injections.scm | 2 + .../queries/llvm/injections.scm | 2 + .../queries/mermaid/injections.scm | 2 + .../queries/mlir/injections.scm | 2 + .../nvim-treesitter/queries/nginx/folds.scm | 1 + .../queries/nginx/highlights.scm | 59 + .../queries/nginx/injections.scm | 2 + .../queries/nickel/injections.scm | 2 + .../queries/ninja/injections.scm | 2 + .../nvim-treesitter/queries/nix/indents.scm | 75 + .../queries/powershell/folds.scm | 13 + .../queries/powershell/highlights.scm | 334 ++ .../queries/powershell/indents.scm | 41 + .../queries/powershell/injections.scm | 27 + .../queries/powershell/locals.scm | 85 + .../queries/prisma/injections.scm | 5 + .../nvim-treesitter/queries/problog/folds.scm | 1 + .../queries/problog/highlights.scm | 4 + .../queries/problog/indents.scm | 1 + .../queries/problog/injections.scm | 1 + .../nvim-treesitter/queries/prolog/folds.scm | 6 + .../queries/prolog/highlights.scm | 43 + .../queries/prolog/indents.scm | 16 + .../queries/prolog/injections.scm | 2 + .../queries/proto/injections.scm | 2 + .../queries/ralph/highlights.scm | 137 + .../queries/ralph/injections.scm | 2 + .../queries/rescript/folds.scm | 12 + .../queries/rescript/highlights.scm | 335 ++ .../queries/rescript/indents.scm | 36 + .../queries/rescript/injections.scm | 33 + .../queries/rescript/locals.scm | 9 + .../queries/robot/injections.scm | 5 + .../queries/robots/highlights.scm | 7 + .../queries/robots/injections.scm | 2 + .../queries/scss/injections.scm | 2 + .../queries/smithy/injections.scm | 5 + .../queries/solidity/injections.scm | 2 + .../queries/swift/injections.scm | 5 + .../queries/systemverilog/folds.scm | 23 + .../queries/systemverilog/highlights.scm | 595 ++ .../queries/systemverilog/injections.scm | 5 + .../queries/tcl/injections.scm | 2 + .../nvim-treesitter/queries/templ/folds.scm | 15 + .../queries/textproto/injections.scm | 2 + .../queries/usd/injections.scm | 2 + .../queries/vala/injections.scm | 2 + .../nvim-treesitter/queries/vhdl/folds.scm | 46 + .../queries/vhdl/highlights.scm | 427 ++ .../queries/vhdl/injections.scm | 7 + .../queries/vhs/injections.scm | 2 + .../nvim-treesitter/queries/vrl/folds.scm | 6 + .../queries/vrl/highlights.scm | 108 + .../nvim-treesitter/queries/vrl/indents.scm | 24 + .../queries/vrl/injections.scm | 6 + .../nvim-treesitter/queries/vrl/locals.scm | 16 + .../queries/wgsl/injections.scm | 5 + .../queries/wing/injections.scm | 2 + .../nvim-treesitter/queries/wit/folds.scm | 12 + .../tests/indent/angular/defer.html | 9 + .../tests/indent/angular/for.html | 5 + .../tests/indent/angular/if-else.html | 15 + .../tests/indent/angular/switch-case.html | 13 + .../tests/indent/angular_spec.lua | 70 + .../tests/indent/nix/conds.nix | 134 + .../tests/indent/nix/general.nix | 130 + .../nvim-treesitter/tests/indent/nix_spec.lua | 40 + .../tests/indent/php/issue-6888.php | 12 + .../indent/python/parenthesized_conditions.py | 35 + .../tests/indent/r/incomplete_pipe.R | 2 + .../tests/indent/rescript/basic.res | 23 + .../tests/indent/rescript/complex.res | 151 + .../tests/indent/rescript/conditional.res | 104 + .../tests/indent/rescript_spec.lua | 33 + .../query/test-query-injections.scm | 27 + .../nvim-ufo/lua/ufo/provider/marker.lua | 81 + .../persisted.nvim/lua/persisted/log.lua | 280 + .../promise-async/spec/error_spec.lua | 63 + .../rainbow-delimiters/_test/highlight.lua | 158 + .../queries/awk/rainbow-delimiters.scm | 48 + .../queries/htmldjango/rainbow-delimiters.scm | 3 + .../queries/wgsl/rainbow-delimiters.scm | 47 + .../test/highlight/busted.lua | 45 + .../highlight/samples/astro/regular.astro | 33 + .../test/highlight/samples/awk/regular.awk | 39 + .../test/highlight/samples/bash/regular.sh | 30 + .../test/highlight/samples/c/regular.c | 82 + .../highlight/samples/c_sharp/HelloWorld.cs | 8 + .../test/highlight/samples/c_sharp/array.cs | 17 + .../highlight/samples/c_sharp/attributes.cs | 8 + .../highlight/samples/c_sharp/generics.cs | 14 + .../test/highlight/samples/c_sharp/loop.cs | 21 + .../test/highlight/samples/c_sharp/misc.cs | 49 + .../test/highlight/samples/c_sharp/parens.cs | 8 + .../test/highlight/samples/c_sharp/switch.cs | 55 + .../highlight/samples/clojure/regular.clj | 9 + .../highlight/samples/commonlisp/regular.lisp | 16 + .../test/highlight/samples/cpp/regular.cpp | 79 + .../test/highlight/samples/css/regular.css | 22 + .../test/highlight/samples/cuda/regular.cu | 87 + .../test/highlight/samples/cue/regular.cue | 27 + .../test/highlight/samples/dart/regular.dart | 55 + .../test/highlight/samples/elixir/regular.exs | 35 + .../test/highlight/samples/elm/Regular.elm | 51 + .../test/highlight/samples/fennel/regular.fnl | 96 + .../test/highlight/samples/fish/regular.fish | 7 + .../test/highlight/samples/go/regular.go | 108 + .../test/highlight/samples/haskell/regular.hs | 45 + .../test/highlight/samples/html/regular.html | 31 + .../highlight/samples/htmldjango/regular.html | 28 + .../samples/janet_simple/regular.janet | 251 + .../highlight/samples/java/HelloWorld.java | 66 + .../highlight/samples/java/LambdaTest.java | 9 + .../highlight/samples/javascript/regular.js | 67 + .../test/highlight/samples/json/regular.json | 10 + .../highlight/samples/json5/regular.json5 | 13 + .../highlight/samples/jsonc/regular.jsonc | 13 + .../samples/jsonnet/arithmetic.jsonnet | 34 + .../jsonnet/cocktail-comprehensions.jsonnet | 31 + .../samples/jsonnet/computed-fields.jsonnet | 12 + .../samples/jsonnet/function.jsonnet | 44 + .../test/highlight/samples/jsx/regular.jsx | 46 + .../test/highlight/samples/julia/regular.jl | 9 + .../test/highlight/samples/kotlin/Test.kt | 113 + .../test/highlight/samples/latex/regular.tex | 31 + .../test/highlight/samples/lua/regular.lua | 66 + .../test/highlight/samples/luadoc/regular.lua | 30 + .../test/highlight/samples/make/makefile | 23 + .../test/highlight/samples/markdown/extra.md | 9 + .../highlight/samples/markdown/regular.md | 72 + .../test/highlight/samples/nim/regular.nim | 26 + .../test/highlight/samples/nix/regular.nix | 56 + .../test/highlight/samples/perl/regular.pl | 47 + .../test/highlight/samples/php/regular.php | 32 + .../test/highlight/samples/python/regular.py | 49 + .../test/highlight/samples/query/regular.scm | 7 + .../test/highlight/samples/r/regular.r | 35 + .../test/highlight/samples/racket/regular.rkt | 56 + .../test/highlight/samples/rasi/regular.rasi | 23 + .../test/highlight/samples/regex/regular.txt | 9 + .../test/highlight/samples/rst/regular.rst | 74 + .../test/highlight/samples/ruby/regular.rb | 14 + .../test/highlight/samples/rust/regular.rs | 173 + .../test/highlight/samples/scheme/regular.scm | 22 + .../test/highlight/samples/scss/regular.scss | 19 + .../test/highlight/samples/sql/regular.sql | 34 + .../highlight/samples/starlark/regular.star | 43 + .../highlight/samples/svelte/regular.svelte | 31 + .../samples/systemverilog/regular.sv | 140 + .../test/highlight/samples/teal/regular.tl | 62 + .../highlight/samples/templ/regular.templ | 86 + .../test/highlight/samples/terraform/basic.tf | 72 + .../test/highlight/samples/toml/regular.toml | 20 + .../test/highlight/samples/tsx/regular.tsx | 79 + .../highlight/samples/typescript/regular.d.ts | 5 + .../highlight/samples/typescript/regular.ts | 71 + .../test/highlight/samples/typst/regular.typ | 29 + .../test/highlight/samples/verilog/regular.v | 52 + .../test/highlight/samples/vim/regular.vim | 14 + .../highlight/samples/vue/pug-template.vue | 10 + .../test/highlight/samples/vue/regular.vue | 39 + .../test/highlight/samples/vue/scss-style.vue | 18 + .../samples/vue/typescript-script.vue | 14 + .../test/highlight/samples/wgsl/regular.wgsl | 57 + .../test/highlight/samples/xml/regular.xml | 24 + .../test/highlight/samples/yaml/regular.yaml | 25 + .../test/highlight/samples/zig/regular.zig | 86 + .../rainbow-delimiters/regular.astro.lua | 4 + .../awk/rainbow-delimiters/regular.awk.lua | 340 ++ .../bash/rainbow-delimiters/regular.sh.lua | 207 + .../spec/c/rainbow-delimiters/regular.c.lua | 723 +++ .../rainbow-delimiters/HelloWorld.cs.lua | 51 + .../c_sharp/rainbow-delimiters/array.cs.lua | 339 ++ .../rainbow-delimiters/attributes.cs.lua | 87 + .../rainbow-delimiters/generics.cs.lua | 171 + .../c_sharp/rainbow-delimiters/loop.cs.lua | 195 + .../c_sharp/rainbow-delimiters/misc.cs.lua | 531 ++ .../c_sharp/rainbow-delimiters/parens.cs.lua | 147 + .../c_sharp/rainbow-delimiters/switch.cs.lua | 543 ++ .../rainbow-delimiters/regular.clj.lua | 243 + .../rainbow-delimiters/regular.lisp.lua | 249 + .../cpp/rainbow-delimiters/regular.cpp.lua | 741 +++ .../css/rainbow-delimiters/regular.css.lua | 135 + .../cuda/rainbow-delimiters/regular.cu.lua | 837 +++ .../cue/rainbow-delimiters/regular.cue.lua | 207 + .../dart/rainbow-delimiters/regular.dart.lua | 315 + .../elixir/rainbow-delimiters/regular.exs.lua | 550 ++ .../elm/rainbow-delimiters/Regular.elm.lua | 819 +++ .../fennel/rainbow-delimiters/regular.fnl.lua | 1647 +++++ .../fish/rainbow-delimiters/regular.fish.lua | 51 + .../spec/go/rainbow-delimiters/regular.go.lua | 964 +++ .../haskell/rainbow-delimiters/regular.hs.lua | 315 + .../spec/hcl/rainbow-delimiters/basic.tf.lua | 307 + .../html/rainbow-delimiters/regular.html.lua | 641 ++ .../rainbow-delimiters/regular.html.lua | 274 + .../rainbow-delimiters/regular.janet.lua | 1635 +++++ .../rainbow-delimiters/HelloWorld.java.lua | 615 ++ .../rainbow-delimiters/LambdaTest.java.lua | 51 + .../rainbow-delimiters-react/regular.js.lua | 507 ++ .../rainbow-delimiters/regular.js.lua | 507 ++ .../rainbow-tags-react/regular.js.lua | 3 + .../json/rainbow-delimiters/regular.json.lua | 63 + .../rainbow-delimiters/regular.json5.lua | 99 + .../rainbow-delimiters/regular.jsonc.lua | 63 + .../rainbow-delimiters/arithmetic.jsonnet.lua | 195 + .../cocktail-comprehensions.jsonnet.lua | 183 + .../computed-fields.jsonnet.lua | 123 + .../rainbow-delimiters/function.jsonnet.lua | 243 + .../julia/rainbow-delimiters/regular.jl.lua | 135 + .../kotlin/rainbow-delimiters/Test.kt.lua | 963 +++ .../spec/latex/rainbow-blocks/regular.tex.lua | 27 + .../latex/rainbow-delimiters/regular.tex.lua | 219 + .../spec/lua/rainbow-blocks/regular.lua.lua | 508 ++ .../lua/rainbow-delimiters/regular.lua.lua | 412 ++ .../luadoc/rainbow-delimiters/regular.lua.lua | 363 ++ .../spec/make/rainbow-delimiters/makefile.lua | 64 + .../markdown/rainbow-delimiters/extra.md.lua | 4 + .../rainbow-delimiters/regular.md.lua | 582 ++ .../nim/rainbow-delimiters/regular.nim.lua | 747 +++ .../nix/rainbow-delimiters/regular.nix.lua | 220 + .../perl/rainbow-delimiters/regular.pl.lua | 3 + .../php/rainbow-delimiters/regular.php.lua | 231 + .../python/rainbow-delimiters/regular.py.lua | 747 +++ .../spec/query/rainbow-blocks/regular.scm.lua | 141 + .../query/rainbow-delimiters/regular.scm.lua | 111 + .../spec/r/rainbow-delimiters/regular.r.lua | 339 ++ .../racket/rainbow-delimiters/regular.rkt.lua | 1089 ++++ .../rasi/rainbow-delimiters/regular.rasi.lua | 189 + .../regex/rainbow-delimiters/regular.txt.lua | 255 + .../rst/rainbow-delimiters/regular.rst.lua | 533 ++ .../ruby/rainbow-delimiters/regular.rb.lua | 243 + .../rust/rainbow-delimiters/regular.rs.lua | 1539 +++++ .../scheme/rainbow-delimiters/regular.scm.lua | 339 ++ .../scss/rainbow-delimiters/regular.scss.lua | 75 + .../sql/rainbow-delimiters/regular.sql.lua | 483 ++ .../rainbow-delimiters/regular.star.lua | 3 + .../rainbow-delimiters/regular.svelte.lua | 474 ++ .../teal/rainbow-delimiters/regular.tl.lua | 267 + .../rainbow-delimiters/regular.templ.lua | 5 + .../terraform/rainbow-delimiters/basic.tf.lua | 3 + .../toml/rainbow-delimiters/regular.toml.lua | 123 + .../tsx/rainbow-delimiters/regular.tsx.lua | 1221 ++++ .../spec/tsx/rainbow-parens/regular.tsx.lua | 603 ++ .../tsx/rainbow-tags-react/regular.tsx.lua | 513 ++ .../rainbow-delimiters/regular.d.ts.lua | 27 + .../rainbow-delimiters/regular.ts.lua | 555 ++ .../typst/rainbow-delimiters/regular.typ.lua | 243 + .../spec/verilog/rainbow-blocks/regular.v.lua | 411 ++ .../rainbow-blocks/systemverilog.sv.lua | 1 + .../spec/verilog/rainbow-blocks/verilog.v.lua | 1 + .../verilog/rainbow-delimiters/regular.v.lua | 315 + .../rainbow-delimiters/systemverilog.sv.lua | 1 + .../verilog/rainbow-delimiters/verilog.v.lua | 1 + .../vim/rainbow-delimiters/regular.vim.lua | 243 + .../rainbow-delimiters/pug-template.vue.lua | 100 + .../vue/rainbow-delimiters/regular.vue.lua | 522 ++ .../vue/rainbow-delimiters/scss-style.vue.lua | 112 + .../typescript-script.vue.lua | 136 + .../wgsl/rainbow-delimiters/regular.wgsl.lua | 543 ++ .../xml/rainbow-delimiters/regular.xml.lua | 453 ++ .../yaml/rainbow-delimiters/regular.yaml.lua | 195 + .../zig/rainbow-delimiters/regular.zig.lua | 801 +++ .../queries/ada/injections.scm | 2 + .../queries/agda/injections.scm | 2 + .../nvim-treesitter/queries/angular/folds.scm | 1 + .../queries/angular/indents.scm | 16 + .../queries/angular/injections.scm | 1 + .../queries/angular/locals.scm | 1 + .../queries/apex/injections.scm | 5 + .../queries/asm/highlights.scm | 66 + .../queries/asm/injections.scm | 5 + .../queries/beancount/injections.scm | 2 + .../queries/bibtex/injections.scm | 2 + .../queries/blueprint/injections.scm | 2 + .../nvim-treesitter/queries/bp/folds.scm | 6 + .../nvim-treesitter/queries/bp/highlights.scm | 56 + .../nvim-treesitter/queries/bp/indents.scm | 38 + .../nvim-treesitter/queries/bp/injections.scm | 2 + .../nvim-treesitter/queries/bp/locals.scm | 15 + .../queries/cmake/injections.scm | 5 + .../queries/commonlisp/injections.scm | 5 + .../queries/cooklang/injections.scm | 2 + .../queries/corn/injections.scm | 2 + .../nvim-treesitter/queries/d/locals.scm | 79 + .../queries/diff/injections.scm | 2 + .../queries/disassembly/highlights.scm | 30 + .../queries/disassembly/injections.scm | 6 + .../nvim-treesitter/queries/djot/folds.scm | 7 + .../queries/djot/highlights.scm | 396 ++ .../nvim-treesitter/queries/djot/indents.scm | 10 + .../queries/djot/injections.scm | 20 + .../nvim-treesitter/queries/djot/locals.scm | 17 + .../nvim-treesitter/queries/dot/indents.scm | 9 + .../queries/earthfile/highlights.scm | 129 + .../queries/earthfile/injections.scm | 9 + .../queries/ebnf/injections.scm | 2 + .../queries/editorconfig/folds.scm | 1 + .../queries/editorconfig/highlights.scm | 56 + .../queries/editorconfig/injections.scm | 2 + .../nvim-treesitter/queries/elm/folds.scm | 14 + .../queries/erlang/injections.scm | 2 + .../queries/faust/highlights.scm | 219 + .../queries/faust/injections.scm | 2 + .../nvim-treesitter/queries/fidl/folds.scm | 6 + .../queries/fidl/highlights.scm | 67 + .../queries/fidl/injections.scm | 2 + .../queries/fortran/injections.scm | 2 + .../queries/fsh/injections.scm | 2 + .../queries/func/injections.scm | 2 + .../queries/fusion/injections.scm | 5 + .../queries/gdshader/highlights.scm | 142 + .../queries/gdshader/injections.scm | 2 + .../queries/git_config/injections.scm | 69 + .../queries/gitignore/injections.scm | 2 + .../queries/glimmer/injections.scm | 2 + .../queries/gnuplot/highlights.scm | 648 ++ .../queries/gnuplot/injections.scm | 2 + .../nvim-treesitter/queries/goctl/folds.scm | 11 + .../queries/goctl/highlights.scm | 79 + .../nvim-treesitter/queries/goctl/indents.scm | 15 + .../queries/goctl/injections.scm | 3 + .../queries/godot_resource/injections.scm | 2 + .../nvim-treesitter/queries/gotmpl/folds.scm | 8 + .../queries/gotmpl/highlights.scm | 132 + .../queries/gotmpl/injections.scm | 31 + .../nvim-treesitter/queries/gotmpl/locals.scm | 12 + .../nvim-treesitter/queries/groovy/folds.scm | 6 + .../queries/groovy/indents.scm | 35 + .../nvim-treesitter/queries/groovy/locals.scm | 6 + .../queries/hack/injections.scm | 5 + .../queries/haskell/locals.scm | 9 + .../nvim-treesitter/queries/helm/folds.scm | 1 + .../queries/helm/highlights.scm | 50 + .../queries/helm/injections.scm | 36 + .../nvim-treesitter/queries/helm/locals.scm | 1 + .../queries/hlsplaylist/highlights.scm | 41 + .../queries/hlsplaylist/injections.scm | 2 + .../queries/hoon/injections.scm | 2 + .../queries/hyprlang/folds.scm | 1 + .../queries/hyprlang/highlights.scm | 58 + .../queries/hyprlang/indents.scm | 6 + .../queries/hyprlang/injections.scm | 6 + .../queries/idl/highlights.scm | 379 ++ .../nvim-treesitter/queries/idl/indents.scm | 10 + .../queries/idl/injections.scm | 8 + .../queries/ini/injections.scm | 2 + .../nvim-treesitter/queries/inko/folds.scm | 17 + .../queries/inko/highlights.scm | 198 + .../nvim-treesitter/queries/inko/indents.scm | 41 + .../queries/inko/injections.scm | 2 + .../nvim-treesitter/queries/inko/locals.scm | 57 + .../queries/jsonnet/injections.scm | 2 + .../nvim-treesitter/queries/just/folds.scm | 6 + .../queries/just/highlights.scm | 133 + .../nvim-treesitter/queries/just/indents.scm | 14 + .../queries/just/injections.scm | 44 + .../nvim-treesitter/queries/just/locals.scm | 35 + .../nvim-treesitter/queries/koto/folds.scm | 9 + .../queries/koto/highlights.scm | 131 + .../queries/koto/injections.scm | 2 + .../nvim-treesitter/queries/koto/locals.scm | 28 + .../nvim-treesitter/queries/lalrpop/folds.scm | 5 + .../queries/liquid/highlights.scm | 130 + .../queries/liquid/injections.scm | 22 + .../queries/liquidsoap/injections.scm | 2 + .../queries/llvm/injections.scm | 2 + .../queries/mermaid/injections.scm | 2 + .../nvim-treesitter/queries/meson/indents.scm | 25 + .../queries/mlir/injections.scm | 2 + .../queries/muttrc/highlights.scm | 55 + .../queries/muttrc/injections.scm | 8 + .../nvim-treesitter/queries/nginx/folds.scm | 1 + .../queries/nginx/highlights.scm | 59 + .../queries/nginx/injections.scm | 2 + .../queries/nickel/injections.scm | 2 + .../queries/ninja/injections.scm | 2 + .../nvim-treesitter/queries/nix/indents.scm | 75 + .../queries/php_only/folds.scm | 17 + .../queries/php_only/highlights.scm | 421 ++ .../queries/php_only/indents.scm | 64 + .../queries/php_only/injections.scm | 43 + .../queries/php_only/locals.scm | 84 + .../queries/printf/highlights.scm | 1 + .../queries/prisma/injections.scm | 5 + .../nvim-treesitter/queries/problog/folds.scm | 1 + .../queries/problog/highlights.scm | 4 + .../queries/problog/indents.scm | 1 + .../queries/problog/injections.scm | 1 + .../nvim-treesitter/queries/prolog/folds.scm | 6 + .../queries/prolog/highlights.scm | 43 + .../queries/prolog/indents.scm | 16 + .../queries/prolog/injections.scm | 2 + .../queries/proto/injections.scm | 2 + .../queries/qmljs/injections.scm | 1 + .../queries/ralph/highlights.scm | 137 + .../queries/ralph/injections.scm | 2 + .../queries/rasi/injections.scm | 2 + .../queries/readline/folds.scm | 1 + .../queries/readline/highlights.scm | 69 + .../queries/readline/indents.scm | 11 + .../queries/readline/injections.scm | 2 + .../queries/robot/injections.scm | 5 + .../queries/robots/highlights.scm | 7 + .../queries/robots/injections.scm | 2 + .../queries/roc/highlights.scm | 175 + .../queries/roc/injections.scm | 5 + .../nvim-treesitter/queries/roc/locals.scm | 41 + .../queries/scss/injections.scm | 2 + .../nvim-treesitter/queries/slint/folds.scm | 11 + .../queries/slint/injections.scm | 2 + .../nvim-treesitter/queries/slint/locals.scm | 117 + .../queries/smithy/injections.scm | 5 + .../queries/snakemake/indents.scm | 16 + .../queries/solidity/injections.scm | 2 + .../queries/sourcepawn/highlights.scm | 303 + .../queries/sourcepawn/injections.scm | 3 + .../queries/sourcepawn/locals.scm | 19 + .../nvim-treesitter/queries/svelte/locals.scm | 1 + .../queries/swift/injections.scm | 5 + .../queries/systemverilog/folds.scm | 23 + .../queries/systemverilog/highlights.scm | 595 ++ .../queries/systemverilog/injections.scm | 5 + .../nvim-treesitter/queries/tact/folds.scm | 16 + .../queries/tact/highlights.scm | 305 + .../nvim-treesitter/queries/tact/indents.scm | 50 + .../queries/tact/injections.scm | 2 + .../nvim-treesitter/queries/tact/locals.scm | 75 + .../nvim-treesitter/queries/tcl/folds.scm | 1 + .../queries/tcl/highlights.scm | 114 + .../nvim-treesitter/queries/tcl/indents.scm | 25 + .../queries/tcl/injections.scm | 2 + .../nvim-treesitter/queries/templ/folds.scm | 15 + .../queries/textproto/injections.scm | 2 + .../queries/tmux/highlights.scm | 52 + .../queries/tmux/injections.scm | 5 + .../queries/typespec/highlights.scm | 135 + .../queries/typespec/indents.scm | 18 + .../queries/typespec/injections.scm | 5 + .../nvim-treesitter/queries/typst/folds.scm | 6 + .../queries/typst/highlights.scm | 113 + .../nvim-treesitter/queries/typst/indents.scm | 12 + .../queries/typst/injections.scm | 6 + .../queries/usd/injections.scm | 2 + .../queries/vala/injections.scm | 2 + .../queries/vento/highlights.scm | 13 + .../queries/vento/injections.scm | 9 + .../nvim-treesitter/queries/vhdl/folds.scm | 46 + .../queries/vhdl/highlights.scm | 427 ++ .../queries/vhdl/injections.scm | 7 + .../queries/vhs/injections.scm | 2 + .../queries/wgsl/injections.scm | 5 + .../queries/wing/injections.scm | 2 + .../nvim-treesitter/queries/wit/folds.scm | 12 + .../queries/wit/highlights.scm | 166 + .../queries/wit/injections.scm | 2 + .../queries/zathurarc/highlights.scm | 36 + .../queries/zathurarc/injections.scm | 9 + .../nvim-treesitter/scripts/ci-install.sh | 26 + .../scripts/format-queries.lua | 450 ++ .../tests/indent/angular/defer.html | 9 + .../tests/indent/angular/for.html | 5 + .../tests/indent/angular/if-else.html | 15 + .../tests/indent/angular/switch-case.html | 13 + .../tests/indent/angular_spec.lua | 70 + .../nvim-treesitter/tests/indent/dot/test.dot | 8 + .../nvim-treesitter/tests/indent/dot_spec.lua | 25 + .../tests/indent/meson/cond.meson | 16 + .../tests/indent/meson/dict.meson | 15 + .../tests/indent/meson/func.meson | 13 + .../tests/indent/meson/list.meson | 14 + .../tests/indent/meson/loop.meson | 8 + .../tests/indent/meson/meson.build | 34 + .../tests/indent/meson/method.meson | 8 + .../tests/indent/meson/ternary.meson | 11 + .../tests/indent/meson_spec.lua | 28 + .../tests/indent/nix/conds.nix | 134 + .../tests/indent/nix/general.nix | 130 + .../nvim-treesitter/tests/indent/nix_spec.lua | 40 + .../tests/indent/php/issue-4848.php | 66 + .../tests/indent/php/issue-6888.php | 12 + .../indent/python/parenthesized_conditions.py | 35 + .../tests/indent/query/test.scm | 41 + .../tests/indent/query_spec.lua | 25 + .../tests/indent/rust/tuple.rs | 8 + .../tests/indent/yuck/indent.yuck | 17 + .../tests/indent/yuck_spec.lua | 19 + .../tests/query/highlights/latex/test.tex | 33 + .../tests/query/highlights/php/keywords.php | 62 + .../tests/query/highlights/php/types.php | 22 + .../tests/query/highlights/php/variables.php | 30 + .../lua/rustaceanvim/neotest/parser.lua | 39 + .../manifest | 241 + .../rustaceanvim/5.2.0-1/doc/mason.txt | 54 + .../rustaceanvim/5.2.0-1/doc/rustaceanvim.txt | 505 ++ .../rustaceanvim/5.2.0-1/ftplugin/rust.lua | 57 + .../rustaceanvim/5.2.0-1/ftplugin/rust.vim | 26 + .../rustaceanvim/5.2.0-1/ftplugin/toml.lua | 24 + .../rustaceanvim/5.2.0-1/rock_manifest | 78 + .../5.2.0-1/rustaceanvim-5.2.0-1.rockspec | 40 + .../rustaceanvim-5.2.0-1.rockspec | 40 + .../manifest | 330 + .../scm-1/autoload/health/telescope.vim | 3 + .../scm-1/data/memes/planets/earth | 36 + .../scm-1/data/memes/planets/jupiter | 36 + .../scm-1/data/memes/planets/mars | 27 + .../scm-1/data/memes/planets/mercury | 36 + .../scm-1/data/memes/planets/moon | 35 + .../scm-1/data/memes/planets/neptune | 36 + .../scm-1/data/memes/planets/pluto | 39 + .../scm-1/data/memes/planets/saturn | 36 + .../scm-1/data/memes/planets/uranus | 39 + .../scm-1/data/memes/planets/venus | 35 + .../telescope.nvim/scm-1/doc/secret.txt | 32 + .../telescope.nvim/scm-1/doc/telescope.txt | 4217 +++++++++++++ .../scm-1/doc/telescope_changelog.txt | 282 + .../scm-1/ftplugin/TelescopePrompt.lua | 12 + .../scm-1/ftplugin/TelescopeResults.lua | 5 + .../telescope.nvim/scm-1/plugin/telescope.lua | 156 + .../telescope.nvim/scm-1/rock_manifest | 147 + .../telescope.nvim/scm-1/scripts/gendocs.lua | 49 + .../scm-1/scripts/minimal_init.vim | 8 + .../scm-1/telescope.nvim-scm-1.rockspec | 44 + .../todo-comments.nvim/.editorconfig | 7 + .../.github/ISSUE_TEMPLATE/config.yml | 5 + .../.github/PULL_REQUEST_TEMPLATE.md | 16 + .../todo-comments.nvim/.github/dependabot.yml | 6 + .../.github/workflows/labeler.yml | 8 + .../.github/workflows/pr.yml | 18 + .../.github/workflows/stale.yml | 11 + .../.github/workflows/update.yml | 13 + .../lua/todo-comments/fzf.lua | 29 + .../lazy-plugins/trouble.nvim/.editorconfig | 7 + .../.github/ISSUE_TEMPLATE/config.yml | 5 + .../.github/PULL_REQUEST_TEMPLATE.md | 16 + .../trouble.nvim/.github/dependabot.yml | 6 + .../.github/workflows/labeler.yml | 8 + .../trouble.nvim/.github/workflows/pr.yml | 18 + .../trouble.nvim/.github/workflows/stale.yml | 11 + .../trouble.nvim/.github/workflows/update.yml | 13 + .../lazy-plugins/trouble.nvim/.neoconf.json | 18 + .../trouble.nvim/docs/examples.md | 166 + .../lazy-plugins/trouble.nvim/docs/filter.md | 98 + .../trouble.nvim/lua/trouble/api.lua | 203 + .../trouble.nvim/lua/trouble/async.lua | 135 + .../trouble.nvim/lua/trouble/cache.lua | 60 + .../trouble.nvim/lua/trouble/command.lua | 136 + .../lua/trouble/config/actions.lua | 181 + .../lua/trouble/config/highlights.lua | 113 + .../trouble.nvim/lua/trouble/config/init.lua | 337 ++ .../lua/trouble/config/parser.lua | 80 + .../trouble.nvim/lua/trouble/docs.lua | 112 + .../trouble.nvim/lua/trouble/filter.lua | 136 + .../trouble.nvim/lua/trouble/format.lua | 253 + .../trouble.nvim/lua/trouble/item.lua | 185 + .../trouble.nvim/lua/trouble/promise.lua | 201 + .../trouble.nvim/lua/trouble/sort.lua | 87 + .../lua/trouble/sources/diagnostics.lua | 130 + .../trouble.nvim/lua/trouble/sources/fzf.lua | 128 + .../trouble.nvim/lua/trouble/sources/init.lua | 63 + .../trouble.nvim/lua/trouble/sources/lsp.lua | 536 ++ .../trouble.nvim/lua/trouble/sources/qf.lua | 106 + .../lua/trouble/sources/telescope.lua | 123 + .../trouble.nvim/lua/trouble/spec.lua | 194 + .../trouble.nvim/lua/trouble/tree.lua | 308 + .../trouble.nvim/lua/trouble/view/indent.lua | 80 + .../trouble.nvim/lua/trouble/view/init.lua | 742 +++ .../trouble.nvim/lua/trouble/view/main.lua | 94 + .../trouble.nvim/lua/trouble/view/preview.lua | 167 + .../trouble.nvim/lua/trouble/view/render.lua | 264 + .../trouble.nvim/lua/trouble/view/section.lua | 174 + .../trouble.nvim/lua/trouble/view/text.lua | 213 + .../lua/trouble/view/treesitter.lua | 86 + .../trouble.nvim/lua/trouble/view/window.lua | 389 ++ .../lazy-plugins/trouble.nvim/scripts/docs | 3 + .../lazy-plugins/trouble.nvim/scripts/test | 3 + .../lazy-plugins/trouble.nvim/tests/minit.lua | 12 + .../trouble.nvim/tests/parser_spec.lua | 95 + .../trouble.nvim/tests/spec_spec.lua | 97 + .../autoload/vimtex/syntax/p/apacite.vim | 20 + .../vimtex/syntax/p/robust_externalize.vim | 67 + .../after/syntax/markdown.vim | 12 + .../test/example-markdown/syntax/markdown.vim | 16 + .../vimtex/test/example-markdown/test.lua | 31 + .../vimtex/test/example-markdown/test.md | 7 + .../test-completion-bibtex/test_apacite.tex | 7 + .../test-completion-bibtex/test_apacite.vim | 18 + .../vimtex/test/test-syntax/test-apacite.tex | 16 + .../vimtex/test/test-syntax/test-apacite.vim | 7 + .../test-syntax/test-robust-externalize.tex | 46 + .../test-syntax/test-robust-externalize.vim | 7 + .../lazy-plugins/which-key.nvim/.editorconfig | 7 + .../.github/.release-please-manifest.json | 3 + .../.github/ISSUE_TEMPLATE/config.yml | 5 + .../.github/PULL_REQUEST_TEMPLATE.md | 16 + .../which-key.nvim/.github/dependabot.yml | 6 + .../.github/release-please-config.json | 9 + .../.github/workflows/labeler.yml | 8 + .../which-key.nvim/.github/workflows/pr.yml | 18 + .../.github/workflows/stale.yml | 11 + .../.github/workflows/update.yml | 13 + .../store/lazy-plugins/which-key.nvim/NEWS.md | 35 + .../which-key.nvim/lua/which-key/buf.lua | 247 + .../which-key.nvim/lua/which-key/docs.lua | 21 + .../which-key.nvim/lua/which-key/extras.lua | 70 + .../which-key.nvim/lua/which-key/icons.lua | 209 + .../which-key.nvim/lua/which-key/migrate.lua | 76 + .../which-key.nvim/lua/which-key/node.lua | 205 + .../lua/which-key/plugins/presets.lua | 215 + .../which-key.nvim/lua/which-key/presets.lua | 38 + .../which-key.nvim/lua/which-key/state.lua | 386 ++ .../which-key.nvim/lua/which-key/triggers.lua | 171 + .../which-key.nvim/lua/which-key/win.lua | 120 + .../which-key.nvim/plugin/which-key.lua | 11 + .../lazy-plugins/which-key.nvim/scripts/docs | 3 + .../lazy-plugins/which-key.nvim/scripts/test | 3 + .../which-key.nvim/tests/buf_spec.lua | 14 + .../which-key.nvim/tests/helpers.lua | 12 + .../which-key.nvim/tests/layout_spec.lua | 38 + .../which-key.nvim/tests/mappings_spec.lua | 101 + .../which-key.nvim/tests/minit.lua | 17 + .../which-key.nvim/tests/util_spec.lua | 125 + .../queries/ada/injections.scm | 2 + .../queries/agda/injections.scm | 2 + .../queries/apex/injections.scm | 5 + .../queries/bibtex/injections.scm | 2 + .../queries/blueprint/injections.scm | 2 + .../queries/cmake/injections.scm | 5 + .../queries/commonlisp/injections.scm | 5 + .../queries/cooklang/injections.scm | 2 + .../queries/corn/injections.scm | 2 + .../queries/diff/injections.scm | 2 + .../queries/ebnf/injections.scm | 2 + .../queries/editorconfig/folds.scm | 1 + .../queries/editorconfig/highlights.scm | 56 + .../queries/editorconfig/injections.scm | 2 + .../nvim-treesitter/queries/elm/folds.scm | 14 + .../queries/erlang/injections.scm | 2 + .../queries/fortran/injections.scm | 2 + .../queries/fsh/injections.scm | 2 + .../queries/func/injections.scm | 2 + .../queries/fusion/injections.scm | 5 + .../queries/gitignore/injections.scm | 2 + .../queries/glimmer/injections.scm | 2 + .../nvim-treesitter/queries/goctl/folds.scm | 11 + .../queries/goctl/highlights.scm | 79 + .../nvim-treesitter/queries/goctl/indents.scm | 15 + .../queries/goctl/injections.scm | 3 + .../nvim-treesitter/queries/gotmpl/folds.scm | 8 + .../nvim-treesitter/queries/gotmpl/locals.scm | 12 + .../queries/hack/injections.scm | 5 + .../nvim-treesitter/queries/helm/folds.scm | 1 + .../nvim-treesitter/queries/helm/locals.scm | 1 + .../queries/hoon/injections.scm | 2 + .../nvim-treesitter/queries/idl/indents.scm | 10 + .../queries/ini/injections.scm | 2 + .../queries/jsonnet/injections.scm | 2 + .../queries/liquidsoap/injections.scm | 2 + .../queries/llvm/injections.scm | 2 + .../queries/mermaid/injections.scm | 2 + .../queries/mlir/injections.scm | 2 + .../nvim-treesitter/queries/nginx/folds.scm | 1 + .../queries/nginx/highlights.scm | 59 + .../queries/nginx/injections.scm | 2 + .../queries/nickel/injections.scm | 2 + .../queries/ninja/injections.scm | 2 + .../nvim-treesitter/queries/nix/indents.scm | 75 + .../queries/powershell/folds.scm | 13 + .../queries/powershell/highlights.scm | 334 ++ .../queries/powershell/indents.scm | 41 + .../queries/powershell/injections.scm | 27 + .../queries/powershell/locals.scm | 85 + .../queries/prisma/injections.scm | 5 + .../nvim-treesitter/queries/problog/folds.scm | 1 + .../queries/problog/highlights.scm | 4 + .../queries/problog/indents.scm | 1 + .../queries/problog/injections.scm | 1 + .../nvim-treesitter/queries/prolog/folds.scm | 6 + .../queries/prolog/highlights.scm | 43 + .../queries/prolog/indents.scm | 16 + .../queries/prolog/injections.scm | 2 + .../queries/proto/injections.scm | 2 + .../queries/ralph/highlights.scm | 137 + .../queries/ralph/injections.scm | 2 + .../queries/rescript/folds.scm | 12 + .../queries/rescript/highlights.scm | 335 ++ .../queries/rescript/indents.scm | 36 + .../queries/rescript/injections.scm | 33 + .../queries/rescript/locals.scm | 9 + .../queries/robot/injections.scm | 5 + .../queries/robots/highlights.scm | 7 + .../queries/robots/injections.scm | 2 + .../queries/scss/injections.scm | 2 + .../queries/smithy/injections.scm | 5 + .../queries/solidity/injections.scm | 2 + .../queries/swift/injections.scm | 5 + .../queries/systemverilog/folds.scm | 23 + .../queries/systemverilog/highlights.scm | 595 ++ .../queries/systemverilog/injections.scm | 5 + .../queries/tcl/injections.scm | 2 + .../nvim-treesitter/queries/templ/folds.scm | 15 + .../queries/textproto/injections.scm | 2 + .../queries/usd/injections.scm | 2 + .../queries/vala/injections.scm | 2 + .../nvim-treesitter/queries/vhdl/folds.scm | 46 + .../queries/vhdl/highlights.scm | 427 ++ .../queries/vhdl/injections.scm | 7 + .../queries/vhs/injections.scm | 2 + .../nvim-treesitter/queries/vrl/folds.scm | 6 + .../queries/vrl/highlights.scm | 108 + .../nvim-treesitter/queries/vrl/indents.scm | 24 + .../queries/vrl/injections.scm | 6 + .../nvim-treesitter/queries/vrl/locals.scm | 16 + .../queries/wgsl/injections.scm | 5 + .../queries/wing/injections.scm | 2 + .../nvim-treesitter/queries/wit/folds.scm | 12 + .../tests/indent/angular/defer.html | 9 + .../tests/indent/angular/for.html | 5 + .../tests/indent/angular/if-else.html | 15 + .../tests/indent/angular/switch-case.html | 13 + .../tests/indent/angular_spec.lua | 70 + .../tests/indent/nix/conds.nix | 134 + .../tests/indent/nix/general.nix | 130 + .../nvim-treesitter/tests/indent/nix_spec.lua | 40 + .../tests/indent/php/issue-6888.php | 12 + .../indent/python/parenthesized_conditions.py | 35 + .../tests/indent/r/incomplete_pipe.R | 2 + .../tests/indent/rescript/basic.res | 23 + .../tests/indent/rescript/complex.res | 151 + .../tests/indent/rescript/conditional.res | 104 + .../tests/indent/rescript_spec.lua | 33 + .../query/test-query-injections.scm | 27 + .../treesitter-parsers/parser/editorconfig.so | Bin 0 -> 29088 bytes .../store/treesitter-parsers/parser/goctl.so | Bin 0 -> 57016 bytes .../store/treesitter-parsers/parser/nginx.so | Bin 0 -> 100576 bytes .../treesitter-parsers/parser/powershell.so | Bin 0 -> 787064 bytes .../treesitter-parsers/parser/problog.so | Bin 0 -> 28632 bytes .../store/treesitter-parsers/parser/prolog.so | Bin 0 -> 28632 bytes .../store/treesitter-parsers/parser/ralph.so | Bin 0 -> 262680 bytes .../treesitter-parsers/parser/rescript.so | Bin 0 -> 800256 bytes .../store/treesitter-parsers/parser/robots.so | Bin 0 -> 31280 bytes .../parser/systemverilog.so | Bin 0 -> 29694408 bytes .../store/treesitter-parsers/parser/vhdl.so | Bin 0 -> 1431440 bytes .../store/treesitter-parsers/parser/vrl.so | Bin 0 -> 81944 bytes .../treesitter-parsers/queries/ada/folds.scm | 15 + .../queries/ada/highlights.scm | 196 + .../treesitter-parsers/queries/ada/locals.scm | 33 + .../queries/ada/textobjects.scm | 23 + .../queries/agda/highlights.scm | 81 + .../queries/apex/highlights.scm | 301 + .../queries/apex/locals.scm | 16 + .../treesitter-parsers/queries/apex/tags.scm | 24 + .../queries/arduino/highlights.scm | 48 + .../queries/arduino/tags.scm | 5 + .../queries/asm/asm/highlights.scm | 63 + .../queries/asm/asm/injections.scm | 5 + .../queries/astro/highlights.scm | 12 + .../queries/astro/injections.scm | 27 + .../queries/authzed/highlights.scm | 71 + .../queries/authzed/injections.scm | 2 + .../queries/awk/highlights.scm | 122 + .../queries/bash/highlights.scm | 56 + .../treesitter-parsers/queries/bass/folds.scm | 5 + .../queries/bass/helix/highlights.scm | 131 + .../queries/bass/helix/highlights.scm.tmpl | 131 + .../queries/bass/indents.scm | 22 + .../queries/bass/injections.scm | 1 + .../queries/bass/locals.scm | 18 + .../queries/bass/locals.scm.tmpl | 18 + .../queries/bass/nvim/highlights.scm | 131 + .../queries/bass/nvim/highlights.scm.tmpl | 131 + .../queries/bass/nvim/locals.scm | 18 + .../queries/bibtex/highlights.scm | 47 + .../queries/bibtex/locals.scm | 0 .../queries/bibtex/tags.scm | 0 .../queries/bicep/folds.scm | 19 + .../queries/bicep/highlights.scm | 234 + .../queries/bicep/indents.scm | 27 + .../queries/bicep/injections.scm | 5 + .../queries/bicep/locals.scm | 73 + .../queries/bitbake/folds.scm | 29 + .../queries/bitbake/highlights.scm | 360 ++ .../queries/bitbake/indents.scm | 130 + .../queries/bitbake/injections.scm | 14 + .../queries/bitbake/locals.scm | 99 + .../queries/blueprint/highlights.scm | 62 + .../treesitter-parsers/queries/bp/folds.scm | 8 + .../queries/bp/highlights.scm | 68 + .../treesitter-parsers/queries/bp/indents.scm | 36 + .../queries/bp/injections.scm | 4 + .../treesitter-parsers/queries/bp/locals.scm | 17 + .../queries/c/highlights.scm | 81 + .../treesitter-parsers/queries/c/tags.scm | 9 + .../queries/c_sharp/highlights.scm | 212 + .../queries/c_sharp/tags.scm | 23 + .../queries/cairo/folds.scm | 31 + .../queries/cairo/highlights.scm | 338 ++ .../queries/cairo/indents.scm | 45 + .../queries/cairo/injections.scm | 3 + .../queries/cairo/locals.scm | 68 + .../queries/capnp/folds.scm | 14 + .../queries/capnp/highlights.scm | 153 + .../queries/capnp/indents.scm | 34 + .../queries/capnp/injections.scm | 1 + .../queries/capnp/locals.scm | 90 + .../queries/chatito/highlights.scm | 49 + .../queries/chatito/tags.scm | 16 + .../queries/clojure/highlights.scm | 29 + .../queries/commonlisp/tags.scm | 122 + .../treesitter-parsers/queries/corn/folds.scm | 5 + .../queries/corn/highlights.scm | 24 + .../queries/corn/indents.scm | 14 + .../queries/corn/locals.scm | 16 + .../treesitter-parsers/queries/cpon/folds.scm | 5 + .../queries/cpon/highlights.scm | 50 + .../queries/cpon/indents.scm | 17 + .../queries/cpon/injections.scm | 1 + .../queries/cpon/locals.scm | 7 + .../queries/cpp/highlights.scm | 70 + .../queries/cpp/injections.scm | 3 + .../treesitter-parsers/queries/cpp/tags.scm | 15 + .../queries/css/highlights.scm | 64 + .../queries/csv/highlights.scm | 5 + .../treesitter-parsers/queries/cue/folds.scm | 5 + .../queries/cue/highlights.scm | 165 + .../queries/cue/indents.scm | 21 + .../queries/cue/injections.scm | 1 + .../treesitter-parsers/queries/cue/locals.scm | 34 + .../queries/d/helix-highlights.scm | 241 + .../queries/d/helix-indents.scm | 17 + .../queries/d/helix-injections.scm | 2 + .../queries/d/helix-textobjects.scm | 9 + .../queries/d/highlights.scm | 255 + .../treesitter-parsers/queries/d/indents.scm | 17 + .../queries/d/injections.scm | 2 + .../queries/d/nova-folds.scm | 6 + .../queries/d/nova-highlights.scm | 283 + .../queries/d/nova-symbols.scm | 23 + .../queries/d/textobjects.scm | 9 + .../queries/dart/highlights.scm | 246 + .../treesitter-parsers/queries/dart/test.scm | 1 + .../queries/devicetree/highlights.scm | 78 + .../queries/diff/highlights.scm | 9 + .../queries/disassembly/highlights.scm | 18 + .../queries/djot/context.scm | 2 + .../treesitter-parsers/queries/djot/folds.scm | 7 + .../queries/djot/highlights.scm | 420 ++ .../queries/djot/indents.scm | 10 + .../queries/djot/injections.scm | 17 + .../queries/djot/locals.scm | 17 + .../queries/djot/textobjects.scm | 133 + .../queries/dockerfile/highlights.scm | 58 + .../queries/dot/highlights.scm | 53 + .../queries/dot/injections.scm | 2 + .../queries/doxygen/highlights.scm | 53 + .../queries/doxygen/indents.scm | 1 + .../queries/doxygen/injections.scm | 12 + .../queries/earthfile/highlights.scm | 75 + .../queries/earthfile/injections.scm | 9 + .../queries/ebnf/ebnf/highlights.scm | 47 + .../queries/editorconfig/highlights.scm | 48 + .../queries/eex/highlights.scm | 4 + .../queries/eex/injections.scm | 7 + .../queries/elixir/highlights.scm | 201 + .../queries/elixir/injections.scm | 7 + .../queries/elixir/tags.scm | 54 + .../queries/elm/highlights.scm | 76 + .../queries/elm/injections.scm | 4 + .../treesitter-parsers/queries/elm/locals.scm | 15 + .../treesitter-parsers/queries/elm/tags.scm | 19 + .../treesitter-parsers/queries/elsa/folds.scm | 1 + .../queries/elsa/highlights.scm | 41 + .../queries/elsa/indents.scm | 6 + .../queries/elsa/injections.scm | 1 + .../queries/elsa/locals.scm | 12 + .../queries/elvish/highlights.scm | 82 + .../queries/elvish/injections.scm | 1 + .../queries/embedded_template/highlights.scm | 12 + .../embedded_template/injections-ejs.scm | 7 + .../embedded_template/injections-erb.scm | 7 + .../queries/erlang/highlights.scm | 229 + .../queries/facility/folds.scm | 6 + .../queries/facility/highlights.scm | 84 + .../queries/facility/indents.scm | 8 + .../queries/facility/injections.scm | 5 + .../queries/faust/highlights.scm | 229 + .../queries/faust/injections.scm | 2 + .../queries/faust/locals.scm | 2 + .../treesitter-parsers/queries/fidl/folds.scm | 6 + .../queries/fidl/highlights.scm | 64 + .../queries/fidl/injections.scm | 2 + .../queries/firrtl/folds.scm | 6 + .../queries/firrtl/highlights.scm | 191 + .../queries/firrtl/indents.scm | 12 + .../queries/firrtl/injections.scm | 1 + .../queries/firrtl/locals.scm | 38 + .../queries/fish/highlights.scm | 64 + .../treesitter-parsers/queries/foam/folds.scm | 7 + .../queries/foam/highlights.scm | 64 + .../queries/foam/indents.scm | 11 + .../queries/foam/injections.scm | 9 + .../queries/foam/locals.scm | 6 + .../queries/foam/textobjects.scm | 5 + .../foam/textsubjects-container-outer.scm | 3 + .../queries/foam/textsubjects-smart.scm | 14 + .../queries/forth/highlights.scm | 16 + .../queries/fortran/folds.scm | 12 + .../queries/fortran/highlights.scm | 197 + .../queries/fortran/indents.scm | 31 + .../queries/fsh/highlights.scm | 82 + .../queries/func/highlights.scm | 175 + .../queries/fusion/folds.scm | 6 + .../queries/fusion/highlights.scm | 117 + .../queries/fusion/indents.scm | 19 + .../queries/fusion/locals.scm | 21 + .../queries/gdshader/highlights.scm | 119 + .../queries/git_config/highlights.scm | 27 + .../queries/git_rebase/highlights.scm | 36 + .../queries/gitattributes/highlights.scm | 52 + .../queries/gitcommit/highlights.scm | 49 + .../queries/gitcommit/injections.scm | 5 + .../queries/gleam/highlights.scm | 130 + .../queries/gleam/locals.scm | 15 + .../treesitter-parsers/queries/gleam/tags.scm | 41 + .../queries/glimmer/folds.scm | 4 + .../queries/glimmer/highlights.scm | 88 + .../queries/glimmer/indents.scm | 22 + .../queries/glimmer/locals.scm | 9 + .../queries/glsl/highlights.scm | 115 + .../treesitter-parsers/queries/gn/folds.scm | 6 + .../queries/gn/highlights.scm | 74 + .../treesitter-parsers/queries/gn/indents.scm | 12 + .../queries/gn/injections.scm | 2 + .../treesitter-parsers/queries/gn/locals.scm | 6 + .../queries/gnuplot/highlights.scm | 645 ++ .../queries/gnuplot/injections.scm | 2 + .../queries/gnuplot/locals.scm | 14 + .../queries/go/highlights.scm | 123 + .../queries/go/structure.scm | 175 + .../treesitter-parsers/queries/go/tags.scm | 30 + .../queries/gomod/highlights.scm | 18 + .../queries/gomod/structure.scm | 29 + .../queries/gosum/highlights.scm | 31 + .../queries/gotmpl/highlights.scm | 75 + .../queries/gowork/highlights.scm | 14 + .../queries/gpg/highlights.scm | 47 + .../queries/graphql/graphql/formatter.scm | 6 + .../queries/graphql/graphql/highlights.scm | 163 + .../queries/groovy/highlights.scm | 148 + .../queries/groovy/indents.scm | 23 + .../queries/groovy/locals.scm | 6 + .../queries/hack/highlights.scm | 31 + .../treesitter-parsers/queries/hare/folds.scm | 21 + .../queries/hare/highlights.scm | 255 + .../queries/hare/indents.scm | 36 + .../queries/hare/injections.scm | 10 + .../queries/hare/locals.scm | 47 + .../queries/haskell/highlights.scm | 443 ++ .../queries/haskell/injections.scm | 76 + .../queries/haskell/locals.scm | 4 + .../queries/heex/highlights.scm | 58 + .../queries/heex/injections.scm | 24 + .../queries/hjson/highlights.scm | 11 + .../queries/hocon/highlights.scm | 37 + .../queries/hoon/highlights.scm | 32 + .../queries/html/highlights.scm | 13 + .../queries/html/injections.scm | 7 + .../queries/htmldjango/highlights.scm | 26 + .../queries/htmldjango/injections.scm | 3 + .../queries/http/highlights.scm | 66 + .../queries/http/injections.scm | 17 + .../treesitter-parsers/queries/hurl/folds.scm | 18 + .../queries/hurl/highlights.scm | 129 + .../queries/hurl/indents.scm | 13 + .../queries/hurl/injections.scm | 8 + .../queries/hyprlang/hyprlang/folds.scm | 1 + .../queries/hyprlang/hyprlang/highlights.scm | 58 + .../queries/hyprlang/hyprlang/indents.scm | 6 + .../queries/hyprlang/hyprlang/injections.scm | 22 + .../queries/idl/highlights.scm | 379 ++ .../queries/idl/indents.scm | 10 + .../queries/idl/injections.scm | 8 + .../treesitter-parsers/queries/ini/folds.scm | 1 + .../queries/ini/highlights.scm | 16 + .../queries/inko/highlights.scm | 124 + .../queries/inko/locals.scm | 10 + .../treesitter-parsers/queries/inko/tags.scm | 4 + .../queries/ispc/highlights.scm | 327 + .../queries/ispc/injections.scm | 3 + .../queries/janet_simple/highlights.scm | 25 + .../queries/java/highlights.scm | 146 + .../treesitter-parsers/queries/java/tags.scm | 20 + .../queries/javascript/highlights-jsx.scm | 8 + .../queries/javascript/highlights-params.scm | 12 + .../queries/javascript/highlights.scm | 206 + .../queries/javascript/injections.scm | 35 + .../queries/javascript/locals.scm | 23 + .../queries/javascript/tags.scm | 99 + .../queries/jsdoc/highlights.scm | 2 + .../queries/json/highlights.scm | 16 + .../queries/json5/highlights.scm | 11 + .../queries/jsonnet/folds.scm | 10 + .../queries/jsonnet/highlights.scm | 164 + .../queries/jsonnet/locals.scm | 18 + .../queries/just/just/folds.scm | 10 + .../queries/just/just/highlights.scm | 149 + .../queries/just/just/indents.scm | 12 + .../queries/just/just/injections.scm | 104 + .../queries/just/just/locals.scm | 42 + .../queries/just/just/textobjects.scm | 18 + .../queries/kconfig/folds.scm | 9 + .../queries/kconfig/highlights.scm | 81 + .../queries/kconfig/indents.scm | 11 + .../queries/kconfig/injections.scm | 2 + .../queries/kconfig/locals.scm | 17 + .../treesitter-parsers/queries/kdl/folds.scm | 8 + .../queries/kdl/highlights.scm | 58 + .../queries/kdl/indents.scm | 7 + .../queries/kdl/injections.scm | 4 + .../treesitter-parsers/queries/kdl/locals.scm | 10 + .../queries/kotlin/highlights.scm | 380 ++ .../treesitter-parsers/queries/koto/folds.scm | 9 + .../queries/koto/highlights.scm | 142 + .../queries/koto/injections.scm | 2 + .../queries/koto/locals.scm | 28 + .../queries/kusto/highlights.scm | 62 + .../queries/lalrpop/highlights.scm | 63 + .../queries/lalrpop/injections.scm | 8 + .../queries/lalrpop/locals.scm | 5 + .../queries/leo/highlights.scm | 185 + .../queries/leo/injections.scm | 2 + .../queries/linkerscript/folds.scm | 6 + .../queries/linkerscript/highlights.scm | 146 + .../queries/linkerscript/indents.scm | 11 + .../queries/linkerscript/injections.scm | 2 + .../queries/linkerscript/locals.scm | 15 + .../queries/liquid/highlights.scm | 105 + .../queries/liquid/injections.scm | 15 + .../queries/liquidsoap/highlights.scm | 66 + .../queries/liquidsoap/locals.scm | 15 + .../queries/llvm/highlights.scm | 156 + .../queries/lua/highlights.scm | 224 + .../queries/lua/injections.scm | 8 + .../treesitter-parsers/queries/lua/locals.scm | 36 + .../treesitter-parsers/queries/lua/tags.scm | 34 + .../queries/luadoc/highlights.scm | 152 + .../queries/luap/highlights.scm | 37 + .../treesitter-parsers/queries/luau/folds.scm | 2 + .../queries/luau/highlights.scm | 315 + .../queries/luau/indents.scm | 2 + .../queries/luau/injections.scm | 48 + .../queries/luau/locals.scm | 56 + .../treesitter-parsers/queries/m68k/folds.scm | 1 + .../queries/m68k/highlights.scm | 73 + .../queries/make/highlights.scm | 171 + .../queries/markdown/highlights.scm | 52 + .../queries/markdown/injections.scm | 12 + .../queries/markdown_inline/highlights.scm | 37 + .../queries/markdown_inline/injections.scm | 2 + .../queries/matlab/emacs/highlights.scm | 178 + .../queries/matlab/emacs/textobjects.scm | 93 + .../queries/matlab/helix/context.scm | 41 + .../queries/matlab/helix/folds.scm | 11 + .../queries/matlab/helix/highlights.scm | 128 + .../queries/matlab/helix/indents.scm | 23 + .../queries/matlab/helix/injections.scm | 2 + .../queries/matlab/helix/locals.scm | 19 + .../queries/matlab/helix/textobjects.scm | 9 + .../queries/matlab/neovim/context.scm | 41 + .../queries/matlab/neovim/folds.scm | 11 + .../queries/matlab/neovim/highlights.scm | 154 + .../queries/matlab/neovim/indents.scm | 35 + .../queries/matlab/neovim/injections.scm | 1 + .../queries/matlab/neovim/locals.scm | 20 + .../queries/matlab/neovim/tags.scm | 10 + .../queries/matlab/neovim/textobjects.scm | 110 + .../queries/mermaid/highlights.scm | 177 + .../queries/meson/folds.scm | 9 + .../queries/meson/highlights.scm | 49 + .../queries/mlir/highlights.scm | 335 ++ .../queries/mlir/locals.scm | 7 + .../queries/nasm/highlights.scm | 128 + .../queries/nasm/injections.scm | 2 + .../queries/nasm/textobjects.scm | 17 + .../queries/nginx/folds.scm | 1 + .../queries/nginx/highlights.scm | 59 + .../queries/nginx/injections.scm | 2 + .../queries/nickel/highlights.scm | 84 + .../queries/nickel/injections.scm | 3 + .../queries/nim/highlights.scm | 186 + .../queries/ninja/folds.scm | 1 + .../queries/ninja/highlights.scm | 98 + .../queries/ninja/indents.scm | 6 + .../queries/nix/highlights.scm | 99 + .../queries/nix/injections.scm | 39 + .../treesitter-parsers/queries/nix/locals.scm | 33 + .../treesitter-parsers/queries/nqc/folds.scm | 1 + .../queries/nqc/highlights.scm | 18 + .../queries/nqc/indents.scm | 1 + .../queries/nqc/injections.scm | 1 + .../treesitter-parsers/queries/nqc/locals.scm | 1 + .../treesitter-parsers/queries/objc/folds.scm | 20 + .../queries/objc/highlights.scm | 216 + .../queries/objc/indents.scm | 1 + .../queries/objc/injections.scm | 10 + .../queries/objc/locals.scm | 1 + .../queries/objdump/highlights.scm | 30 + .../queries/ocamllex/highlights.scm | 45 + .../queries/ocamllex/injections.scm | 2 + .../treesitter-parsers/queries/odin/folds.scm | 7 + .../queries/odin/highlights.scm | 296 + .../queries/odin/indents.scm | 33 + .../queries/odin/injections.scm | 1 + .../queries/odin/locals.scm | 41 + .../queries/org/highlights.scm | 78 + .../treesitter-parsers/queries/org/markup.scm | 31 + .../queries/pascal/highlights.scm | 343 ++ .../queries/pascal/locals.scm | 26 + .../queries/pem/highlights.scm | 9 + .../treesitter-parsers/queries/perl/folds.scm | 27 + .../queries/perl/highlights.scm | 151 + .../queries/perl/injections.scm | 14 + .../treesitter-parsers/queries/po/folds.scm | 9 + .../queries/po/highlights.scm | 33 + .../queries/po/injections.scm | 1 + .../queries/pod/highlights.scm | 72 + .../queries/poe_filter/highlights.scm | 47 + .../treesitter-parsers/queries/pony/folds.scm | 39 + .../queries/pony/highlights.scm | 290 + .../queries/pony/indents.scm | 60 + .../queries/pony/injections.scm | 4 + .../queries/pony/locals.scm | 79 + .../treesitter-parsers/queries/pony/tags.scm | 39 + .../queries/powershell/highlights.scm | 130 + .../queries/printf/highlights.scm | 14 + .../queries/prisma/highlights.scm | 27 + .../queries/problog/highlights.scm | 49 + .../queries/prolog/highlights.scm | 46 + .../queries/properties/highlights.scm | 28 + .../queries/properties/tags.scm | 5 + .../queries/proto/folds.scm | 5 + .../queries/proto/highlights.scm | 48 + .../queries/prql/highlights.scm | 149 + .../queries/prql/injections.scm | 13 + .../queries/psv/highlights.scm | 5 + .../queries/pug/highlights.scm | 50 + .../queries/puppet/folds.scm | 12 + .../queries/puppet/highlights.scm | 193 + .../queries/puppet/indents.scm | 30 + .../queries/puppet/injections.scm | 2 + .../queries/puppet/locals.scm | 46 + .../queries/purescript/highlights.scm | 197 + .../queries/purescript/injections.scm | 2 + .../queries/purescript/locals.scm | 12 + .../queries/purescript/textobjects.scm | 19 + .../queries/pymanifest/highlights.scm | 22 + .../queries/python/highlights.scm | 133 + .../queries/python/tags.scm | 14 + .../queries/ql/highlights.scm | 104 + .../treesitter-parsers/queries/ql/tags.scm | 26 + .../queries/qmldir/highlights.scm | 24 + .../queries/qmldir/injections.scm | 1 + .../queries/qmljs/highlights.scm | 60 + .../queries/qmljs/locals.scm | 6 + .../queries/query/query/folds.scm | 6 + .../queries/query/query/highlights.scm | 87 + .../queries/query/query/injections.scm | 31 + .../queries/r/highlights.scm | 112 + .../treesitter-parsers/queries/r/locals.scm | 18 + .../treesitter-parsers/queries/r/tags.scm | 21 + .../queries/racket/highlights.scm | 108 + .../queries/racket/locals.scm | 34 + .../queries/racket/tags.scm | 12 + .../queries/ralph/highlights.scm | 137 + .../queries/ralph/injections.scm | 2 + .../queries/rasi/highlights.scm | 84 + .../queries/rasi/indent.scm | 11 + .../queries/rasi/locals.scm | 5 + .../treesitter-parsers/queries/rbs/folds.scm | 5 + .../queries/rbs/highlights.scm | 120 + .../queries/rbs/indents.scm | 24 + .../queries/rbs/injections.scm | 2 + .../treesitter-parsers/queries/re2c/folds.scm | 4 + .../queries/re2c/highlights.scm | 190 + .../queries/re2c/indents.scm | 11 + .../queries/re2c/injections.scm | 12 + .../queries/re2c/locals.scm | 1 + .../queries/readline/highlights.scm | 69 + .../queries/readline/indents.scm | 11 + .../queries/readline/injections.scm | 2 + .../queries/regex/highlights.scm | 50 + .../queries/rego/highlights.scm | 64 + .../queries/rego/locals.scm | 3 + .../queries/requirements/highlights.scm | 45 + .../queries/rescript/rescript/highlights.scm | 289 + .../queries/rescript/rescript/injections.scm | 29 + .../queries/rescript/rescript/locals.scm | 7 + .../queries/rescript/rescript/textobjects.scm | 114 + .../queries/rnoweb/injections.scm | 23 + .../queries/robot/folds.scm | 5 + .../queries/robot/highlights.scm | 57 + .../queries/robot/indents.scm | 21 + .../queries/robots/highlight.scm | 9 + .../queries/robots/injections.scm | 2 + .../queries/roc/highlights.scm | 220 + .../queries/roc/indents.scm | 127 + .../queries/roc/injections.scm | 57 + .../treesitter-parsers/queries/roc/locals.scm | 30 + .../treesitter-parsers/queries/roc/tags.scm | 13 + .../queries/roc/textobjects.scm | 39 + .../treesitter-parsers/queries/ron/folds.scm | 7 + .../queries/ron/highlights.scm | 53 + .../queries/ron/indents.scm | 12 + .../queries/ron/injections.scm | 4 + .../treesitter-parsers/queries/ron/locals.scm | 12 + .../queries/ruby/highlights.scm | 154 + .../queries/ruby/locals.scm | 27 + .../treesitter-parsers/queries/ruby/tags.scm | 64 + .../queries/rust/highlights.scm | 159 + .../queries/rust/injections.scm | 9 + .../treesitter-parsers/queries/rust/tags.scm | 60 + .../queries/scala/scala/highlights.scm | 261 + .../queries/scala/scala/locals.scm | 30 + .../queries/scfg/highlights.scm | 9 + .../queries/scheme/highlights.scm | 84 + .../queries/scss/highlights.scm | 63 + .../queries/smali/folds.scm | 12 + .../queries/smali/highlights.scm | 218 + .../queries/smali/indents.scm | 32 + .../queries/smali/injections.scm | 1 + .../queries/smali/locals.scm | 42 + .../queries/smithy/highlights.scm | 112 + .../queries/snakemake/snakemake/folds.scm | 8 + .../snakemake/snakemake/highlights.scm | 78 + .../queries/snakemake/snakemake/indents.scm | 13 + .../snakemake/snakemake/injections.scm | 5 + .../queries/snakemake/snakemake/locals.scm | 1 + .../queries/solidity/highlights-nvim.scm | 310 + .../queries/solidity/highlights.scm | 217 + .../queries/solidity/locals.scm | 9 + .../queries/solidity/tags.scm | 43 + .../queries/soql/highlights-distinct.scm | 1 + .../queries/soql/highlights.scm | 144 + .../queries/sosl/highlights.scm | 28 + .../queries/sourcepawn/context.scm | 19 + .../queries/sourcepawn/highlights.scm | 255 + .../queries/sourcepawn/injections.scm | 4 + .../queries/sourcepawn/locals.scm | 18 + .../queries/sourcepawn/tags.scm | 119 + .../queries/sql/highlights.scm | 447 ++ .../queries/sql/indents.scm | 27 + .../queries/squirrel/folds.scm | 27 + .../queries/squirrel/highlights.scm | 307 + .../queries/squirrel/indents.scm | 58 + .../queries/squirrel/injections.scm | 9 + .../queries/squirrel/locals.scm | 67 + .../queries/ssh_config/highlights.scm | 79 + .../queries/ssh_config/injections.scm | 15 + .../queries/starlark/folds.scm | 22 + .../queries/starlark/highlights.scm | 288 + .../queries/starlark/indents.scm | 47 + .../queries/starlark/injections.scm | 8 + .../queries/starlark/locals.scm | 91 + .../queries/strace/highlights.scm | 8 + .../queries/supercollider/folds.scm | 7 + .../queries/supercollider/highlights.scm | 101 + .../queries/supercollider/indents.scm | 31 + .../queries/supercollider/locals.scm | 22 + .../queries/svelte/folds.scm | 13 + .../queries/svelte/highlights.scm | 42 + .../queries/svelte/indents.scm | 34 + .../queries/svelte/injections.scm | 36 + .../queries/svelte/locals.scm | 1 + .../queries/swift/highlights.scm | 189 + .../queries/swift/indents.scm | 97 + .../queries/swift/injections.scm | 4 + .../queries/swift/locals.scm | 18 + .../treesitter-parsers/queries/swift/tags.scm | 51 + .../queries/swift/textobjects.scm | 19 + .../queries/systemtap/highlights.scm | 149 + .../queries/systemtap/locals.scm | 35 + .../treesitter-parsers/queries/t32/folds.scm | 5 + .../queries/t32/highlights.scm | 222 + .../queries/t32/injections.scm | 5 + .../treesitter-parsers/queries/t32/locals.scm | 39 + .../treesitter-parsers/queries/t32/tags.scm | 17 + .../queries/tablegen/folds.scm | 13 + .../queries/tablegen/highlights.scm | 156 + .../queries/tablegen/indents.scm | 27 + .../queries/tablegen/injections.scm | 7 + .../queries/tablegen/locals.scm | 51 + .../queries/tact/highlights.scm | 226 + .../queries/tact/locals.scm | 45 + .../treesitter-parsers/queries/tact/tags.scm | 111 + .../queries/tcl/tcl/folds.scm | 1 + .../queries/tcl/tcl/highlights.scm | 153 + .../queries/tcl/tcl/indents.scm | 25 + .../treesitter-parsers/queries/teal/folds.scm | 14 + .../queries/teal/highlights.scm | 130 + .../queries/teal/locals.scm | 26 + .../queries/templ/templ/folds.scm | 17 + .../queries/templ/templ/highlights.scm | 51 + .../queries/templ/templ/injections.scm | 12 + .../queries/templ/templ/structure.scm | 7 + .../queries/textproto/folds.scm | 3 + .../queries/textproto/highlights.scm | 18 + .../queries/textproto/indents.scm | 8 + .../queries/thrift/folds.scm | 12 + .../queries/thrift/highlights.scm | 230 + .../queries/thrift/indents.scm | 15 + .../queries/thrift/injections.scm | 1 + .../queries/thrift/locals.scm | 51 + .../queries/tiger/folds.scm | 19 + .../queries/tiger/highlights.scm | 120 + .../queries/tiger/indents.scm | 69 + .../queries/tiger/injections.scm | 3 + .../queries/tiger/locals.scm | 35 + .../treesitter-parsers/queries/tiger/tags.scm | 32 + .../queries/tiger/textobjects.scm | 43 + .../queries/tlaplus/highlights.scm | 240 + .../queries/tlaplus/locals.scm | 70 + .../queries/todotxt/highlights.scm | 6 + .../queries/toml/highlights.scm | 53 + .../queries/tsv/highlights.scm | 4 + .../queries/twig/highlights.scm | 59 + .../queries/twig/injections.scm | 3 + .../queries/typespec/highlights.scm | 135 + .../queries/typespec/indents.scm | 18 + .../queries/typespec/injections.scm | 5 + .../queries/typoscript/highlights.scm | 54 + .../queries/typst/typst/highlights.scm | 80 + .../queries/typst/typst/injections.scm | 7 + .../queries/udev/highlights.scm | 44 + .../queries/udev/injections.scm | 9 + .../treesitter-parsers/queries/udev/tags.scm | 20 + .../queries/ungrammar/folds.scm | 1 + .../queries/ungrammar/highlights.scm | 30 + .../queries/ungrammar/indents.scm | 6 + .../queries/ungrammar/injections.scm | 2 + .../queries/ungrammar/locals.scm | 7 + .../queries/unison/highlights.scm | 1 + .../queries/usd/highlights.scm | 109 + .../queries/uxntal/folds.scm | 7 + .../queries/uxntal/highlights.scm | 84 + .../queries/uxntal/indents.scm | 17 + .../queries/uxntal/injections.scm | 1 + .../queries/uxntal/locals.scm | 22 + .../queries/v/helix.highlights.scm | 247 + .../queries/v/highlights.scm | 151 + .../queries/vala/highlights.scm | 162 + .../queries/vala/locals.scm | 14 + .../queries/vala/nvim/highlights.scm | 246 + .../queries/vento/highlights.scm | 13 + .../queries/vento/injections.scm | 6 + .../queries/vhdl/Helix/highlights.scm | 394 ++ .../queries/vhdl/Neovim/context.scm | 61 + .../queries/vhdl/Neovim/folds.scm | 59 + .../queries/vhdl/Neovim/highlights.scm | 435 ++ .../queries/vhdl/Neovim/injections.scm | 14 + .../queries/vhdl/Neovim/textobjects.scm | 439 ++ .../queries/vhs/highlights.scm | 45 + .../queries/vim/vim/folds.scm | 4 + .../queries/vim/vim/highlights.scm | 350 ++ .../queries/vim/vim/injections.scm | 44 + .../queries/vimdoc/vimdoc/highlights.scm | 66 + .../queries/vimdoc/vimdoc/injections.scm | 4 + .../treesitter-parsers/queries/vrl/folds.scm | 6 + .../queries/vrl/highlights.scm | 108 + .../queries/vrl/indents.scm | 24 + .../queries/vrl/injections.scm | 6 + .../treesitter-parsers/queries/vrl/locals.scm | 16 + .../treesitter-parsers/queries/vue/folds.scm | 6 + .../queries/vue/highlights.scm | 28 + .../queries/vue/indents.scm | 6 + .../queries/vue/injections.scm | 77 + .../treesitter-parsers/queries/wgsl/folds.scm | 10 + .../queries/wgsl/highlights.scm | 111 + .../treesitter-parsers/queries/wing/folds.scm | 15 + .../queries/wing/highlights.scm | 104 + .../queries/wing/locals.scm | 6 + .../queries/wit/highlights.scm | 155 + .../queries/wit/injections.scm | 2 + .../queries/xcompose/highlights.scm | 17 + .../queries/yaml/highlights.scm | 79 + .../treesitter-parsers/queries/yang/folds.scm | 11 + .../queries/yang/highlights.scm | 54 + .../queries/yang/indents.scm | 10 + .../queries/yang/injections.scm | 6 + .../treesitter-parsers/queries/yuck/folds.scm | 9 + .../queries/yuck/highlights.scm | 107 + .../queries/yuck/indents.scm | 25 + .../queries/yuck/injections.scm | 1 + .../queries/yuck/locals.scm | 21 + .../queries/yuck/nvim-highlights.scm | 150 + .../treesitter-parsers/queries/zig/folds.scm | 16 + .../queries/zig/highlights.scm | 233 + .../queries/zig/indents.scm | 22 + .../queries/zig/injections.scm | 5 + 3809 files changed, 351157 insertions(+) create mode 100644 config/neovim/store/lazy-plugins/better-escape.nvim/.github/workflows/release_please.yml create mode 100644 config/neovim/store/lazy-plugins/better-escape.nvim/CHANGELOG.md create mode 100644 config/neovim/store/lazy-plugins/catppuccin-nvim/lua/catppuccin/groups/integrations/grug_far.lua create mode 100644 config/neovim/store/lazy-plugins/catppuccin-nvim/lua/catppuccin/groups/integrations/nvim_surround.lua create mode 100644 config/neovim/store/lazy-plugins/catppuccin-nvim/lua/catppuccin/groups/integrations/render_markdown.lua create mode 100644 config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/bsfmt.lua create mode 100644 config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/caramel_fmt.lua create mode 100644 config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/crlfmt.lua create mode 100644 config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/d2.lua create mode 100644 config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/dcm_fix.lua create mode 100644 config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/dcm_format.lua create mode 100644 config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/docformatter.lua create mode 100644 config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/docstrfmt.lua create mode 100644 config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/doctoc.lua create mode 100644 config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/efmt.lua create mode 100644 config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/erlfmt.lua create mode 100644 config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/findent.lua create mode 100644 config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/format-queries.lua create mode 100644 config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/fprettify.lua create mode 100644 config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/gluon_fmt.lua create mode 100644 config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/grain_format.lua create mode 100644 config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/hindent.lua create mode 100644 config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/imba_fmt.lua create mode 100644 config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/kcl.lua create mode 100644 config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/llf.lua create mode 100644 config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/lua-format.lua create mode 100644 config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/nickel.lua create mode 100644 config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/npm-groovy-lint.lua create mode 100644 config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/pyink.lua create mode 100644 config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/rstfmt.lua create mode 100644 config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/sleek.lua create mode 100644 config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/stylish-haskell.lua create mode 100644 config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/swiftlint.lua create mode 100644 config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/vsg.lua create mode 100644 config/neovim/store/lazy-plugins/conform.nvim/lua/conform/ft_to_ext.lua create mode 100644 config/neovim/store/lazy-plugins/direnv.vim/LICENSE create mode 100644 config/neovim/store/lazy-plugins/direnv.vim/README.md create mode 100644 config/neovim/store/lazy-plugins/direnv.vim/autoload/direnv.vim create mode 100644 config/neovim/store/lazy-plugins/direnv.vim/autoload/direnv/edit.vim create mode 100644 config/neovim/store/lazy-plugins/direnv.vim/autoload/direnv/extra_vimrc.vim create mode 100644 config/neovim/store/lazy-plugins/direnv.vim/doc/direnv.txt create mode 100644 config/neovim/store/lazy-plugins/direnv.vim/doc/tags create mode 100644 config/neovim/store/lazy-plugins/direnv.vim/ftdetect/direnv.vim create mode 100644 config/neovim/store/lazy-plugins/direnv.vim/ftplugin/direnv.vim create mode 100644 config/neovim/store/lazy-plugins/direnv.vim/plugin/direnv.vim create mode 100644 config/neovim/store/lazy-plugins/direnv.vim/syntax/direnv.vim create mode 100644 config/neovim/store/lazy-plugins/flash.nvim/.editorconfig create mode 100644 config/neovim/store/lazy-plugins/flash.nvim/.github/ISSUE_TEMPLATE/config.yml create mode 100644 config/neovim/store/lazy-plugins/flash.nvim/.github/PULL_REQUEST_TEMPLATE.md create mode 100644 config/neovim/store/lazy-plugins/flash.nvim/.github/dependabot.yml create mode 100644 config/neovim/store/lazy-plugins/flash.nvim/.github/workflows/labeler.yml create mode 100644 config/neovim/store/lazy-plugins/flash.nvim/.github/workflows/pr.yml create mode 100644 config/neovim/store/lazy-plugins/flash.nvim/.github/workflows/stale.yml create mode 100644 config/neovim/store/lazy-plugins/flash.nvim/.github/workflows/update.yml create mode 100755 config/neovim/store/lazy-plugins/flash.nvim/scripts/docs create mode 100755 config/neovim/store/lazy-plugins/flash.nvim/scripts/test create mode 100644 config/neovim/store/lazy-plugins/flash.nvim/tests/minit.lua create mode 100644 config/neovim/store/lazy-plugins/gitsigns.nvim/gitsigns.nvim-scm-1-unstable-2024-08-04-rocks/gitsigns.nvim/scm-1/doc/gitsigns.txt create mode 100644 config/neovim/store/lazy-plugins/gitsigns.nvim/gitsigns.nvim-scm-1-unstable-2024-08-04-rocks/gitsigns.nvim/scm-1/gitsigns.nvim-scm-1.rockspec create mode 100644 config/neovim/store/lazy-plugins/gitsigns.nvim/gitsigns.nvim-scm-1-unstable-2024-08-04-rocks/gitsigns.nvim/scm-1/rock_manifest create mode 100644 config/neovim/store/lazy-plugins/gitsigns.nvim/gitsigns.nvim-scm-1-unstable-2024-08-04-rocks/manifest create mode 100644 config/neovim/store/lazy-plugins/gitsigns.nvim/lua/gitsigns/blame.lua create mode 100644 config/neovim/store/lazy-plugins/gitsigns.nvim/lua/gitsigns/git/blame.lua create mode 100644 config/neovim/store/lazy-plugins/gitsigns.nvim/lua/gitsigns/git/cmd.lua create mode 100644 config/neovim/store/lazy-plugins/gitsigns.nvim/lua/gitsigns/git/repo.lua create mode 100644 config/neovim/store/lazy-plugins/haskell-tools.nvim/haskell-tools.nvim-4.0.0-1-unstable-4.0.0-1-rocks/haskell-tools.nvim/4.0.0-1/doc/haskell-tools.txt create mode 100644 config/neovim/store/lazy-plugins/haskell-tools.nvim/haskell-tools.nvim-4.0.0-1-unstable-4.0.0-1-rocks/haskell-tools.nvim/4.0.0-1/ftplugin/cabal.lua create mode 100644 config/neovim/store/lazy-plugins/haskell-tools.nvim/haskell-tools.nvim-4.0.0-1-unstable-4.0.0-1-rocks/haskell-tools.nvim/4.0.0-1/ftplugin/cabalproject.lua create mode 100644 config/neovim/store/lazy-plugins/haskell-tools.nvim/haskell-tools.nvim-4.0.0-1-unstable-4.0.0-1-rocks/haskell-tools.nvim/4.0.0-1/ftplugin/haskell.lua create mode 100644 config/neovim/store/lazy-plugins/haskell-tools.nvim/haskell-tools.nvim-4.0.0-1-unstable-4.0.0-1-rocks/haskell-tools.nvim/4.0.0-1/ftplugin/lhaskell.lua create mode 100644 config/neovim/store/lazy-plugins/haskell-tools.nvim/haskell-tools.nvim-4.0.0-1-unstable-4.0.0-1-rocks/haskell-tools.nvim/4.0.0-1/haskell-tools.nvim-4.0.0-1.rockspec create mode 100644 config/neovim/store/lazy-plugins/haskell-tools.nvim/haskell-tools.nvim-4.0.0-1-unstable-4.0.0-1-rocks/haskell-tools.nvim/4.0.0-1/rock_manifest create mode 100644 config/neovim/store/lazy-plugins/haskell-tools.nvim/haskell-tools.nvim-4.0.0-1-unstable-4.0.0-1-rocks/manifest create mode 100644 config/neovim/store/lazy-plugins/haskell-tools.nvim/haskell-tools.nvim-4.0.0-1.rockspec create mode 100644 config/neovim/store/lazy-plugins/haskell-tools.nvim/lua/haskell-tools/commands.lua create mode 100644 config/neovim/store/lazy-plugins/luasnip/luasnip-2.3.0-1-unstable-2024-08-01-rocks/luasnip/2.3.0-1/doc/luasnip.txt create mode 100644 config/neovim/store/lazy-plugins/luasnip/luasnip-2.3.0-1-unstable-2024-08-01-rocks/luasnip/2.3.0-1/ftplugin/snippets.vim create mode 100644 config/neovim/store/lazy-plugins/luasnip/luasnip-2.3.0-1-unstable-2024-08-01-rocks/luasnip/2.3.0-1/luasnip-2.3.0-1.rockspec create mode 100644 config/neovim/store/lazy-plugins/luasnip/luasnip-2.3.0-1-unstable-2024-08-01-rocks/luasnip/2.3.0-1/plugin/luasnip.lua create mode 100644 config/neovim/store/lazy-plugins/luasnip/luasnip-2.3.0-1-unstable-2024-08-01-rocks/luasnip/2.3.0-1/plugin/luasnip.vim create mode 100644 config/neovim/store/lazy-plugins/luasnip/luasnip-2.3.0-1-unstable-2024-08-01-rocks/luasnip/2.3.0-1/rock_manifest create mode 100644 config/neovim/store/lazy-plugins/luasnip/luasnip-2.3.0-1-unstable-2024-08-01-rocks/luasnip/2.3.0-1/syntax/snippets.vim create mode 100644 config/neovim/store/lazy-plugins/luasnip/luasnip-2.3.0-1-unstable-2024-08-01-rocks/manifest create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/.github/ISSUE_TEMPLATE/bug-report.yml create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/.github/ISSUE_TEMPLATE/config.yml create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/.github/ISSUE_TEMPLATE/feature-request.yml create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/.github/PULL_REQUEST_TEMPLATE.md create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/.github/workflows/lint.yml create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/.github/workflows/tests.yml create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/.gitignore create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/.pre-commit-config.yaml create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/.stylua.toml create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/.styluaignore create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/CHANGELOG.md create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/CODE_OF_CONDUCT.md create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/CONTRIBUTING.md create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/LICENSE create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/MAINTAINING.md create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/Makefile create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/README.md create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/TESTING.md create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/benchmarks/starter/.gitignore create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/benchmarks/starter/README.md create mode 100755 config/neovim/store/lazy-plugins/mini.nvim/benchmarks/starter/benchmark.sh create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/benchmarks/starter/init-files/init_dashboard-alpha.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/benchmarks/starter/init-files/init_dashboard-original.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/benchmarks/starter/init-files/init_dashboard-starter.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/benchmarks/starter/init-files/init_empty.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/benchmarks/starter/init-files/init_starter-default.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/benchmarks/starter/init-files/init_startify-alpha.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/benchmarks/starter/init-files/init_startify-original.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/benchmarks/starter/init-files/init_startify-starter.lua create mode 100755 config/neovim/store/lazy-plugins/mini.nvim/benchmarks/starter/install.sh create mode 100755 config/neovim/store/lazy-plugins/mini.nvim/benchmarks/starter/make_summary.py create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/benchmarks/starter/startup-summary.md create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/colors/minicyan.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/colors/minischeme.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/colors/randomhue.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/doc/mini-ai.txt create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/doc/mini-align.txt create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/doc/mini-animate.txt create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/doc/mini-base16.txt create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/doc/mini-basics.txt create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/doc/mini-bracketed.txt create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/doc/mini-bufremove.txt create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/doc/mini-clue.txt create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/doc/mini-colors.txt create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/doc/mini-comment.txt create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/doc/mini-completion.txt create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/doc/mini-cursorword.txt create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/doc/mini-deps.txt create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/doc/mini-diff.txt create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/doc/mini-doc.txt create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/doc/mini-extra.txt create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/doc/mini-files.txt create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/doc/mini-fuzzy.txt create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/doc/mini-git.txt create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/doc/mini-hipatterns.txt create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/doc/mini-hues.txt create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/doc/mini-icons.txt create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/doc/mini-indentscope.txt create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/doc/mini-jump.txt create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/doc/mini-jump2d.txt create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/doc/mini-map.txt create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/doc/mini-misc.txt create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/doc/mini-move.txt create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/doc/mini-notify.txt create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/doc/mini-operators.txt create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/doc/mini-pairs.txt create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/doc/mini-pick.txt create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/doc/mini-sessions.txt create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/doc/mini-splitjoin.txt create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/doc/mini-starter.txt create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/doc/mini-statusline.txt create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/doc/mini-surround.txt create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/doc/mini-tabline.txt create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/doc/mini-test.txt create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/doc/mini-trailspace.txt create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/doc/mini-visits.txt create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/doc/mini.txt create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/doc/tags create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/logo.png create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/lua/mini/ai.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/lua/mini/align.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/lua/mini/animate.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/lua/mini/base16.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/lua/mini/basics.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/lua/mini/bracketed.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/lua/mini/bufremove.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/lua/mini/clue.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/lua/mini/colors.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/lua/mini/comment.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/lua/mini/completion.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/lua/mini/cursorword.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/lua/mini/deps.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/lua/mini/diff.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/lua/mini/doc.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/lua/mini/extra.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/lua/mini/files.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/lua/mini/fuzzy.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/lua/mini/git.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/lua/mini/hipatterns.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/lua/mini/hues.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/lua/mini/icons.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/lua/mini/indentscope.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/lua/mini/init.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/lua/mini/jump.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/lua/mini/jump2d.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/lua/mini/map.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/lua/mini/misc.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/lua/mini/move.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/lua/mini/notify.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/lua/mini/operators.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/lua/mini/pairs.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/lua/mini/pick.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/lua/mini/sessions.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/lua/mini/splitjoin.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/lua/mini/starter.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/lua/mini/statusline.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/lua/mini/surround.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/lua/mini/tabline.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/lua/mini/test.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/lua/mini/trailspace.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/lua/mini/visits.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/readmes/mini-ai.md create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/readmes/mini-align.md create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/readmes/mini-animate.md create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/readmes/mini-base16.md create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/readmes/mini-basics.md create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/readmes/mini-bracketed.md create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/readmes/mini-bufremove.md create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/readmes/mini-clue.md create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/readmes/mini-colors.md create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/readmes/mini-comment.md create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/readmes/mini-completion.md create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/readmes/mini-cursorword.md create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/readmes/mini-deps.md create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/readmes/mini-diff.md create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/readmes/mini-doc.md create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/readmes/mini-extra.md create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/readmes/mini-files.md create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/readmes/mini-fuzzy.md create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/readmes/mini-git.md create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/readmes/mini-hipatterns.md create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/readmes/mini-hues.md create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/readmes/mini-icons.md create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/readmes/mini-indentscope.md create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/readmes/mini-jump.md create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/readmes/mini-jump2d.md create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/readmes/mini-map.md create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/readmes/mini-misc.md create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/readmes/mini-move.md create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/readmes/mini-notify.md create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/readmes/mini-operators.md create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/readmes/mini-pairs.md create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/readmes/mini-pick.md create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/readmes/mini-sessions.md create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/readmes/mini-splitjoin.md create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/readmes/mini-starter.md create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/readmes/mini-statusline.md create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/readmes/mini-surround.md create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/readmes/mini-tabline.md create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/readmes/mini-test.md create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/readmes/mini-trailspace.md create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/readmes/mini-visits.md create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/scripts/basic-setup_init.lua create mode 100755 config/neovim/store/lazy-plugins/mini.nvim/scripts/dual_log.sh create mode 100755 config/neovim/store/lazy-plugins/mini.nvim/scripts/dual_push.sh create mode 100755 config/neovim/store/lazy-plugins/mini.nvim/scripts/dual_release.sh create mode 100755 config/neovim/store/lazy-plugins/mini.nvim/scripts/dual_sync.sh create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/scripts/init-deps-example.lua create mode 100755 config/neovim/store/lazy-plugins/mini.nvim/scripts/lintcommit-ci.sh create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/scripts/lintcommit.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/scripts/minidoc.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/scripts/minimal_init.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/scripts/minitest.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-ai/lua-file.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-ai/lua/nvim-treesitter/init.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-ai/lua/nvim-treesitter/query.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-ai/mock-lua-treesitter.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-bracketed/dir-a/file-aa create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-bracketed/file-a create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-bracketed/file-b create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-bracketed/file-c create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-bracketed/file-d create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-bracketed/file-e create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-bracketed/mock/diagnostic.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-bracketed/mock/treesitter.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-colors/mock_cs/colors/mock_cs.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-completion/mock-months-lsp.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-deps/mocks/spawn.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-deps/pack/deps/opt/plugin_1/after/plugin/plug_1.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-deps/pack/deps/opt/plugin_1/after/plugin/plug_1.nonlua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-deps/pack/deps/opt/plugin_1/after/plugin/plug_1.vim create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-deps/pack/deps/opt/plugin_1/after/plugin/subdir/plug_1_sub.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-deps/pack/deps/opt/plugin_1/doc/help_1.txt create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-deps/pack/deps/opt/plugin_1/lua/plug_1.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-deps/pack/deps/opt/plugin_1/plugin/plug_1.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-deps/pack/deps/opt/plugin_1/plugin/plug_1.vim create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-deps/pack/deps/opt/plugin_1/plugin/subdir/plug_1_sub.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-deps/pack/deps/opt/plugin_2/after/plugin/plug_2.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-deps/pack/deps/opt/plugin_2/doc/help_2.txt create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-deps/pack/deps/opt/plugin_2/lua/plug_2.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-deps/pack/deps/opt/plugin_2/plugin/plug_2.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-deps/pack/deps/opt/plugin_3/lua/plug_3.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-deps/snapshots/not-proper-1 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-deps/snapshots/not-proper-2 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-deps/snapshots/snap create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-deps/test-log create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-diff/file create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-diff/git-repo/.git-dir/index create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-diff/git-repo/dir-in-git/file-in-git create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-diff/mocks/spawn.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-doc/.gitignore create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-doc/.styluaignore create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-doc/arguments/file.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-doc/arguments/file_ignore.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-doc/arguments/output_reference.txt create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-doc/buffer-local_script.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-doc/custom-script/gendoc/gendoc-script.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-doc/custom-script/init.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-doc/custom-script/output_reference.txt create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-doc/default-collation/after/file01.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-doc/default-collation/after/file02.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-doc/default-collation/after/init.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-doc/default-collation/colors/file01.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-doc/default-collation/colors/file02.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-doc/default-collation/colors/init.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-doc/default-collation/default-collation_reference.txt create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-doc/default-collation/file01.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-doc/default-collation/file02.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-doc/default-collation/init.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-doc/default-collation/lua/aaa/init.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-doc/default-collation/lua/file01.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-doc/default-collation/lua/file02.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-doc/default-collation/lua/init.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-doc/helpers.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-doc/inference/inference_reference.txt create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-doc/inference/init.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-doc/sections/alias.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-doc/sections/eval.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-doc/sections/init.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-doc/sections/param.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-doc/sections/return.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-doc/sections/sections_reference.txt create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-doc/sections/toc.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-doc/structure/file1.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-doc/structure/file2.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-extra/explorer/Dir2/file2-1 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-extra/explorer/File2 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-extra/explorer/dir1/file1-1 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-extra/explorer/dir1/subdir/file1-1-1 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-extra/explorer/dir3/file3-1 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-extra/explorer/file1 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-extra/explorer/file3 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-extra/git-files/git-file-1 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-extra/git-files/git-file-2 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-extra/lua/nvim-web-devicons.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-extra/mocks/diagnostic-file-1 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-extra/mocks/diagnostic-file-2 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-extra/mocks/diagnostic.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-extra/mocks/git-commit create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-extra/mocks/git-diff create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-extra/mocks/git-diff-unified-0 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-extra/mocks/git-diff-unified-20 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-extra/mocks/keymaps.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-extra/mocks/lsp.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-extra/mocks/spawn.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-extra/real-files/LICENSE create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-extra/real-files/Makefile create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-extra/real-files/a.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-extra/real-files/b.txt create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-extra/real-files/c.gif create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-files/common/.a-dir/aa-file create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-files/common/.a-dir/ab-file create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-files/common/.a-file create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-files/common/A-file-2 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-files/common/a-dir/aa-dir/aaa-file create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-files/common/a-dir/aa-file create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-files/common/a-dir/ab-file create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-files/common/a-file create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-files/common/b-dir/ba-file create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-files/common/b-file create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-files/init-default-explorer.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-files/lua/nvim-web-devicons.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-files/mock-win-functions.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-files/nested/dir-1/dir-11/dir-111/dir-1111/dir-11111/file-111111 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-files/nested/dir-1/dir-12/file-121 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-files/real/LICENSE create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-files/real/Makefile create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-files/real/a.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-files/real/b.txt create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-files/real/c.gif create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-git/File2 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-git/diff-output create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-git/file create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-git/file1 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-git/file3 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-git/git-repo/.git-dir/COMMIT_EDITMSG create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-git/git-repo/.git-dir/HEAD create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-git/git-repo/.git-dir/index create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-git/git-repo/.git-dir/refs/heads/tmp create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-git/git-repo/dir-in-git/file-in-dir-in-git create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-git/git-repo/file-in-git create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-git/help-output create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-git/log-output create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-git/mocks/spawn.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-map/lua/gitsigns.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-map/mock-diagnostic.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-map/resolution_1x2 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-map/resolution_2x1 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-map/resolution_2x2 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-map/resolution_3x2 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-map/resolution_4x2 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-map/src-test-integration.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-misc/Makefile create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-misc/aaa.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-misc/init-restore-cursor.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-misc/mocked-git-repo/bbb.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-misc/restore-cursor.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-pick/builtin-tests/dir1/file1-1 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-pick/builtin-tests/dir1/file1-2 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-pick/builtin-tests/dir2/file2-1 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-pick/builtin-tests/file create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-pick/file create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-pick/lua/nvim-web-devicons.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-pick/mocks/spawn.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-pick/real-files/LICENSE create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-pick/real-files/Makefile create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-pick/real-files/a.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-pick/real-files/b.txt create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-pick/real-files/c.gif create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-sessions/Session.vim create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-sessions/global/session1 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-sessions/global/session2.vim create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-sessions/global/session3.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-sessions/init-files/autoread.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-sessions/init-files/autowrite.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-sessions/local/Session.vim create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-sessions/local/alternative-local-session create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-starter/init-files/test-init.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-starter/sessions/Session.vim create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-starter/sessions/session_global.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-statusline/lua/nvim-web-devicons.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-statusline/mock-diagnostics.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-statusline/mock-lsp.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-surround/lua-file.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-surround/lua/nvim-treesitter/init.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-surround/lua/nvim-treesitter/parsers.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-surround/lua/nvim-treesitter/query.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-surround/mock-lua-treesitter.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-tabline/bad%new.dir/aaa.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-tabline/dir1/aaa create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-tabline/dir1/bad%new.file.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-tabline/dir1/dir_nested/aaa create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-tabline/dir2/aaa create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-tabline/dir2/dir_nested/aaa create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-tabline/lua/nvim-web-devicons.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-test/init_stdout-reporter_works.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-test/intermediate-screenshot create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-test/reference-screenshot create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-test/testref_case-helpers.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-test/testref_collect-busted.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-test/testref_custom-script.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-test/testref_general.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-test/testref_new-set.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-test/testref_reporters.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-test/testref_run-data.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-test/testref_run-hooks.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-test/testref_run-parametrize-error.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-test/testref_run-parametrize.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-test/testref_run.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-trailspace/file create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-visits/dir_1/file_1-1 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-visits/dir_1/file_1-2 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-visits/dir_1/file_1-3 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-visits/dir_1/subdir/file_1-1-1 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-visits/dir_2/file_2-1 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/dir-visits/file create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/helpers.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_ai.lua---Builtin---User-prompt---colors-its-prompts create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_ai.lua---Builtin---User-prompt---colors-its-prompts-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_ai.lua---Builtin---User-prompt---colors-its-prompts-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_ai.lua---Textobject---prompts-helper-message-after-one-idle-second---test-+-args-{-'a'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_ai.lua---Textobject---prompts-helper-message-after-one-idle-second---test-+-args-{-'a'-}-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_ai.lua---Textobject---prompts-helper-message-after-one-idle-second---test-+-args-{-'i'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_ai.lua---Textobject---prompts-helper-message-after-one-idle-second---test-+-args-{-'i'-}-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_ai.lua---Textobject---respects-`config.silent` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Align---cleans-command-line-only-if-helper-message-was-shown create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Align---helper-message-does-not-cause-hit-enter-prompt create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Align---prompts-helper-message-after-one-idle-second---test-+-args-{-'Normal'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Align---prompts-helper-message-after-one-idle-second---test-+-args-{-'Normal'-}-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Align---prompts-helper-message-after-one-idle-second---test-+-args-{-'Normal'-}-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Align---prompts-helper-message-after-one-idle-second---test-+-args-{-'Normal'-}-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Align---prompts-helper-message-after-one-idle-second---test-+-args-{-'Normal'-}-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Align---prompts-helper-message-after-one-idle-second---test-+-args-{-'Normal'-}-006 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Align---prompts-helper-message-after-one-idle-second---test-+-args-{-'Visual'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Align---prompts-helper-message-after-one-idle-second---test-+-args-{-'Visual'-}-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Align---prompts-helper-message-after-one-idle-second---test-+-args-{-'Visual'-}-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Align---prompts-helper-message-after-one-idle-second---test-+-args-{-'Visual'-}-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Align---prompts-helper-message-after-one-idle-second---test-+-args-{-'Visual'-}-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Align---prompts-helper-message-after-one-idle-second---test-+-args-{-'Visual'-}-006 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Align---respects-`config.silent` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Align-with-preview---correctly-restores-visual-selection---test-+-args-{-'Visual-block'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Align-with-preview---correctly-restores-visual-selection---test-+-args-{-'Visual-block'-}-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Align-with-preview---correctly-restores-visual-selection---test-+-args-{-'Visual-char'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Align-with-preview---correctly-restores-visual-selection---test-+-args-{-'Visual-char'-}-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Align-with-preview---correctly-restores-visual-selection---test-+-args-{-'Visual-line'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Align-with-preview---correctly-restores-visual-selection---test-+-args-{-'Visual-line'-}-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Align-with-preview---correctly-shows-all-steps-in-helper-message create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Align-with-preview---respects-`config.silent` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Align-with-preview---uses-option-names-for-main-steps create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Normal-block'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Normal-block'-}-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Normal-block'-}-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Normal-block'-}-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Normal-block'-}-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Normal-char'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Normal-char'-}-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Normal-char'-}-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Normal-char'-}-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Normal-char'-}-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Normal-line'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Normal-line'-}-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Normal-line'-}-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Normal-line'-}-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Normal-line'-}-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Visual-block'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Visual-block'-}-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Visual-block'-}-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Visual-block'-}-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Visual-block'-}-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Visual-char'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Visual-char'-}-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Visual-char'-}-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Visual-char'-}-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Visual-char'-}-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Visual-line'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Visual-line'-}-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Visual-line'-}-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Visual-line'-}-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Visual-line'-}-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Modifiers----BS----does-nothing-if-no-pre-steps create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Modifiers----BS----does-nothing-if-no-pre-steps-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Modifiers----BS----prompts-to-choose-if-ambiguous create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Modifiers----BS----prompts-to-choose-if-ambiguous-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Modifiers----BS----prompts-to-choose-if-ambiguous-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Modifiers----BS----prompts-to-choose-if-ambiguous-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Modifiers----BS----prompts-to-choose-if-ambiguous-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Modifiers----BS----works---test-+-args-{-'pre_justify'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Modifiers----BS----works---test-+-args-{-'pre_justify'-}-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Modifiers----BS----works---test-+-args-{-'pre_merge'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Modifiers----BS----works---test-+-args-{-'pre_merge'-}-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Modifiers----BS----works---test-+-args-{-'pre_split'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Modifiers----BS----works---test-+-args-{-'pre_split'-}-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Modifiers----comma- create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Modifiers----comma--002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Modifiers----equal-sign- create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Modifiers----equal-sign--002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Modifiers----space-bar- create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Modifiers----space-bar--002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Modifiers---f---allows-empty-input create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Modifiers---f---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Modifiers---i---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Modifiers---i---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Modifiers---j---works---test-+-args-{-'c'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Modifiers---j---works---test-+-args-{-'c'-}-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Modifiers---j---works---test-+-args-{-'l'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Modifiers---j---works---test-+-args-{-'l'-}-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Modifiers---j---works---test-+-args-{-'n'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Modifiers---j---works---test-+-args-{-'n'-}-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Modifiers---j---works---test-+-args-{-'r'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Modifiers---j---works---test-+-args-{-'r'-}-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Modifiers---j---works---test-+-args-{-'u'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Modifiers---j---works---test-+-args-{-'u'-}-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Modifiers---m---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Modifiers---m---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Modifiers---p---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Modifiers---s---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Modifiers---s---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_align.lua---Modifiers---t---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Cursor---can-have-only-one-animation-active create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Cursor---can-have-only-one-animation-active-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Cursor---can-have-only-one-animation-active-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Cursor---can-have-only-one-animation-active-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Cursor---does-not-stop-if-mark-should-be-placed-outside-of-range create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Cursor---does-not-stop-if-mark-should-be-placed-outside-of-range-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Cursor---does-not-stop-if-mark-should-be-placed-outside-of-range-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Cursor---does-not-stop-if-mark-should-be-placed-outside-of-range-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Cursor---does-not-stop-if-mark-should-be-placed-outside-of-range-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Cursor---does-not-stop-if-mark-should-be-placed-outside-of-range-006 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Cursor---is-not-animated-if-`path`-output-is-empty-or-`nil` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Cursor---is-not-animated-if-`path`-output-is-empty-or-`nil`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Cursor---respects-`enable`-config-setting create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Cursor---respects-`vim.{g,b}.minianimate_disable`---test-+-args-{-'b'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Cursor---respects-`vim.{g,b}.minianimate_disable`---test-+-args-{-'b'-}-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Cursor---respects-`vim.{g,b}.minianimate_disable`---test-+-args-{-'g'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Cursor---respects-`vim.{g,b}.minianimate_disable`---test-+-args-{-'g'-}-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Cursor---respects-buffer-local-config create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Cursor---stops-on-buffer-change create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Cursor---stops-on-buffer-change-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Cursor---stops-on-buffer-change-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Cursor---stops-on-buffer-change-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Cursor---stops-on-buffer-change-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Cursor---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Cursor---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Cursor---works-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Cursor---works-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Cursor---works-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Cursor---works-when-cursor-and-or-marks-are-outside-of-line create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Cursor---works-when-cursor-and-or-marks-are-outside-of-line-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Cursor---works-when-cursor-and-or-marks-are-outside-of-line-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Cursor---works-when-cursor-and-or-marks-are-outside-of-line-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Cursor---works-when-cursor-and-or-marks-are-outside-of-line-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Cursor---works-when-cursor-and-or-marks-are-outside-of-line-006 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Cursor---works-when-cursor-and-or-marks-are-outside-of-line-007 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Cursor---works-when-cursor-and-or-marks-are-outside-of-line-008 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Cursor---works-when-cursor-and-or-marks-are-outside-of-line-009 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Cursor---works-when-movement-is-triggered-by-outside-command create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Cursor---works-when-movement-is-triggered-by-outside-command-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Cursor---works-when-movement-is-triggered-by-outside-command-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Cursor---works-when-movement-is-triggered-by-outside-command-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Cursor---works-when-movement-is-triggered-by-outside-command-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Cursor---works-with-horizontally-scrolled-window-view create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Cursor---works-with-horizontally-scrolled-window-view-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Cursor---works-with-horizontally-scrolled-window-view-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Cursor---works-with-horizontally-scrolled-window-view-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Cursor---works-with-horizontally-scrolled-window-view-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Cursor---works-with-multibyte-characters create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Cursor---works-with-multibyte-characters-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Cursor---works-with-multibyte-characters-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Cursor---works-with-multibyte-characters-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Cursor---works-with-multibyte-characters-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Cursor---works-with-multibyte-characters-006 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Cursor---works-with-multibyte-characters-007 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Cursor---works-with-multibyte-characters-008 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Cursor---works-with-tabs create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Cursor---works-with-tabs-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Cursor---works-with-tabs-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Cursor---works-with-tabs-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Cursor---works-with-tabs-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Cursor---works-with-tabs-006 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---allows-immediate-another-resize-animation create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---allows-immediate-another-resize-animation-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---allows-immediate-another-resize-animation-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---allows-immediate-another-resize-animation-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---allows-immediate-another-resize-animation-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---allows-immediate-another-resize-animation-006 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---allows-immediate-another-resize-animation-007 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---allows-immediate-another-resize-animation-008 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---allows-immediate-another-resize-animation-009 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---animates-only-for-equal-layouts create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---animates-only-for-equal-layouts-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---does-not-flicker-due-to-high-cursor-column create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---does-not-flicker-due-to-high-cursor-column-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---does-not-flicker-due-to-high-cursor-column-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---does-not-flicker-due-to-high-cursor-column-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---does-not-flicker-due-to-high-cursor-column-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---does-not-flicker-due-to-high-cursor-column-006 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---does-not-flicker-due-to-high-cursor-column-in-current-window create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---does-not-flicker-due-to-high-cursor-column-in-current-window-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---does-not-flicker-due-to-high-cursor-column-in-current-window-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---does-not-flicker-due-to-high-cursor-column-in-current-window-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---does-not-flicker-due-to-high-cursor-column-in-current-window-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---does-not-flicker-due-to-high-cursor-column-in-current-window-006 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---does-not-flicker-due-to-high-cursor-column-in-current-window-007 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---does-not-flicker-due-to-high-cursor-column-in-current-window-008 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---does-not-flicker-due-to-high-cursor-column-in-current-window-009 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---does-not-flicker-due-to-high-cursor-column-in-current-window-010 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---does-not-flicker-due-to-high-cursor-column-in-current-window-011 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---is-not-animated-if-`subresize`-output-is-empty-or-`nil` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---is-not-animated-if-`subresize`-output-is-empty-or-`nil`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---respects-`enable`-config-setting create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---respects-`vim.{g,b}.minianimate_disable`---test-+-args-{-'b'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---respects-`vim.{g,b}.minianimate_disable`---test-+-args-{-'b'-}-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---respects-`vim.{g,b}.minianimate_disable`---test-+-args-{-'b'-}-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---respects-`vim.{g,b}.minianimate_disable`---test-+-args-{-'g'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---respects-`vim.{g,b}.minianimate_disable`---test-+-args-{-'g'-}-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---respects-`vim.{g,b}.minianimate_disable`---test-+-args-{-'g'-}-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---respects-buffer-local-config create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---works-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---works-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---works-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---works-006 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---works-007 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---works-008 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---works-009 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---works-010 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---works-011 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---works-012 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---works-013 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---works-014 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---works-015 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---works-016 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---works-017 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---works-when-resize-is-triggered-by-outside-command create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---works-when-resize-is-triggered-by-outside-command-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---works-when-resize-is-triggered-by-outside-command-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---works-when-resize-is-triggered-by-outside-command-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---works-with-`winheight`-`winwidth` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---works-with-`winheight`-`winwidth`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---works-with-`winheight`-`winwidth`-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---works-with-`winheight`-`winwidth`-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---works-with-`winheight`-`winwidth`-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---works-with-`winheight`-`winwidth`-006 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---works-with-`winheight`-`winwidth`-007 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---works-with-`winheight`-`winwidth`-008 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---works-with-`winheight`-`winwidth`-009 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---works-with-`winheight`-`winwidth`-010 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---works-with-`winheight`-`winwidth`-011 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---works-with-`winheight`-`winwidth`-012 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---works-with-`winheight`-`winwidth`-013 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---works-with-`winheight`-`winwidth`-014 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---works-with-`winheight`-`winwidth`-015 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---works-with-`winheight`-`winwidth`-016 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---works-with-`winheight`-`winwidth`-017 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---works-with-`winheight`-`winwidth`-018 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Resize---works-with-`winheight`-`winwidth`-019 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---allows-immediate-another-scroll-animation create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---allows-immediate-another-scroll-animation-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---allows-immediate-another-scroll-animation-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---allows-immediate-another-scroll-animation-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---allows-immediate-another-scroll-animation-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---allows-immediate-another-scroll-animation-006 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---does-not-animate-in-Select-mode create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---does-not-automatically-animate-after-buffer-change create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---does-not-automatically-animate-after-buffer-change-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---does-not-automatically-animate-result-of-'incsearch' create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---does-not-automatically-animate-result-of-'incsearch'-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---does-not-automatically-animate-result-of-'incsearch'-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---does-not-automatically-animate-result-of-'incsearch'-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---handles-mappings-with--Cmd--CR- create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---handles-mappings-with--Cmd--CR--002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---respects-'scrolloff'-in-presence-of-folds create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---respects-'scrolloff'-in-presence-of-folds-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---respects-'scrolloff'-in-presence-of-folds-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---respects-'scrolloff'-in-presence-of-folds-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---respects-'scrolloff'-in-presence-of-folds-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---respects-folds create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---respects-folds-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---respects-folds-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---respects-folds-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---respects-folds-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---respects-global-'scrolloff' create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---respects-global-'scrolloff'-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---respects-global-'scrolloff'-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---respects-global-'scrolloff'-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---respects-global-'scrolloff'-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---respects-window-local-'scrolloff' create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---respects-window-local-'scrolloff'-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---respects-window-local-'scrolloff'-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---respects-window-local-'scrolloff'-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---respects-window-local-'scrolloff'-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---stops-on-buffer-change create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---stops-on-buffer-change-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---stops-on-buffer-change-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---stops-on-buffer-change-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---stops-on-window-change create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---stops-on-window-change-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---stops-on-window-change-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---stops-on-window-change-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---works-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---works-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---works-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---works-006 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---works-007 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---works-008 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---works-009 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---works-010 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---works-properly-just-after-buffer-change create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---works-properly-just-after-buffer-change-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---works-properly-just-after-window-change create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---works-properly-just-after-window-change-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---works-when-movement-is-triggered-by-outside-command create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---works-when-movement-is-triggered-by-outside-command-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---works-when-movement-is-triggered-by-outside-command-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---works-when-movement-is-triggered-by-outside-command-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_animate.lua---Scroll---works-when-movement-is-triggered-by-outside-command-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_basics.lua---Mappings---Toggle-options---respects-`config.silent` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_basics.lua---Mappings---Toggle-options---shows-feedback-about-new-value create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---'mini.nvim'-compatibility---mini.align create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---'mini.nvim'-compatibility---mini.align-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Clues---are-properly-sorted create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Clues---can-be-configured-after-load create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Clues---can-be-overridden-in-later-entries create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Clues---can-have-callable-description create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Clues---can-have-callables create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Clues---can-have-callables-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Clues---can-have-callables-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Clues---can-have-callables-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Clues---can-have-nested-subarrays create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Clues---handles-no-description create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Clues---handles-showing-group-clues-after-executing-key-with-postkeys create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Clues---handles-showing-group-clues-after-executing-key-with-postkeys-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Clues---has-proper-precedence create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Clues---respects-`vim.b.miniclue_config` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Clues---shows-as-group-a-single-non-exact-clue create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Clues---shows-as-group-a-single-non-exact-clue-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Clues---shows-as-group-a-single-non-exact-clue-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Clues---silently-ignores-non-valid-clues create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Clues---uses-human-readable-names-for-special-keys create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Postkeys---closes-window-if-postkeys-do-not-end-up-key-querying create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Postkeys---persists-window-if-action-changes-tabpage create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Postkeys---persists-window-if-action-changes-tabpage-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Postkeys---shows-window-immediately create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Postkeys---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Postkeys---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Postkeys---works-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Postkeys---works-in-edge-cases create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Postkeys---works-in-edge-cases-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Postkeys---works-in-edge-cases-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Querying-keys---does-not-entirely-block-redraws create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Querying-keys---does-not-entirely-block-redraws-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Querying-keys---takes-into-account-user-supplied-clues create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Querying-keys---takes-into-account-user-supplied-clues-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Showing-keys---allows-zero-delay create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Showing-keys---can-have-'auto'-for-`row`-and-`col`-in-window-config create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Showing-keys---can-have-'auto'-for-`row`-and-`col`-in-window-config-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Showing-keys---can-have-'auto'-for-`row`-and-`col`-in-window-config-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Showing-keys---can-have-'auto'-for-`row`-and-`col`-in-window-config-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Showing-keys---can-have-`config.window.config.width='auto'` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Showing-keys---can-have-callable-`config.window.config` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Showing-keys---can-work-with-small-instance-dimensions create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Showing-keys---does-not-trigger-unnecessary-events create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Showing-keys---highlights-group-descriptions-differently create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Showing-keys---highlights-next-key-with-postkeys-differently create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Showing-keys---indicates-that-description-is-truncated create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Showing-keys---properly-translates-special-keys create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Showing-keys---properly-translates-special-keys-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Showing-keys---properly-translates-special-keys-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Showing-keys---properly-translates-special-keys-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Showing-keys---reacts-to-`VimResized` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Showing-keys---reacts-to-`VimResized`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Showing-keys---respects-`config.window.config` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Showing-keys---respects-`config.window.delay` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Showing-keys---respects-`config.window.delay`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Showing-keys---respects-`config.window.delay`-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Showing-keys---respects-`scroll_down`-and-`scroll_up`-in-`config.window` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Showing-keys---respects-`scroll_down`-and-`scroll_up`-in-`config.window`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Showing-keys---respects-`scroll_down`-and-`scroll_up`-in-`config.window`-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Showing-keys---respects-`scroll_down`-and-`scroll_up`-in-`config.window`-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Showing-keys---respects-`scroll_down`-and-`scroll_up`-in-`config.window`-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Showing-keys---respects-`scroll_down`-and-`scroll_up`-in-`config.window`-006 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Showing-keys---respects-`scroll_down`-and-`scroll_up`-in-`config.window`-007 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Showing-keys---respects-`scroll_down`-and-`scroll_up`-in-`config.window`-008 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Showing-keys---respects-`scroll_down`-and-`scroll_up`-in-`config.window`-009 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Showing-keys---respects-`scroll_down`-and-`scroll_up`-in-`config.window`-010 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Showing-keys---respects-`vim.b.miniclue_config` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Showing-keys---respects-tabline,-statusline,-cmdheight create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Showing-keys---respects-tabline,-statusline,-cmdheight-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Showing-keys---respects-tabline,-statusline,-cmdheight-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Showing-keys---respects-tabline,-statusline,-cmdheight-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Showing-keys---scroll-is-not-persistent create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Showing-keys---scroll-is-not-persistent-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Showing-keys---scroll-is-not-persistent-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Showing-keys---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Showing-keys---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Showing-keys---works-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Showing-keys---works-in-Command-line-window create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Showing-keys---works-in-Command-line-window-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Showing-keys---works-with-multibyte-characters create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---Showing-keys---works-with-multibyte-characters-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---ensure_all_triggers()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---ensure_all_triggers()---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---ensure_buf_triggers()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---gen_clues---builtin_completion()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---gen_clues---g()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---gen_clues---g()---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---gen_clues---marks()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---gen_clues---marks()---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---gen_clues---marks()---works-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---gen_clues---marks()---works-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---gen_clues---marks()---works-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---gen_clues---marks()---works-006 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---gen_clues---marks()---works-007 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---gen_clues---marks()---works-008 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---gen_clues---registers()---respects-`opts.show_contents` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---gen_clues---registers()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---gen_clues---registers()---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---gen_clues---registers()---works-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---gen_clues---registers()---works-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---gen_clues---registers()---works-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---gen_clues---registers()---works-006 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---gen_clues---registers()---works-007 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---gen_clues---registers()---works-008 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---gen_clues---registers()---works-009 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---gen_clues---windows()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---gen_clues---windows()---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---gen_clues---z()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---gen_clues---z()---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_clue.lua---setup()---ensures-valid-triggers-on-`LspAttach`-event create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_colors.lua---interactive()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_colors.lua---interactive()---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_completion.lua---Autocompletion---forces-new-LSP-completion-at-LSP-trigger---test-+-args-{-'completefunc'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_completion.lua---Autocompletion---forces-new-LSP-completion-at-LSP-trigger---test-+-args-{-'completefunc'-}-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_completion.lua---Autocompletion---forces-new-LSP-completion-at-LSP-trigger---test-+-args-{-'omnifunc'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_completion.lua---Autocompletion---forces-new-LSP-completion-at-LSP-trigger---test-+-args-{-'omnifunc'-}-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_completion.lua---Autocompletion---respects-string-`config.fallback_action` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_completion.lua---Autocompletion---respects-string-`config.fallback_action`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_completion.lua---Autocompletion---works-with-LSP-client create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_completion.lua---Autocompletion---works-without-LSP-clients create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_completion.lua---Information-window---accounts-for-border-when-picking-side create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_completion.lua---Information-window---adjusts-window-width create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_completion.lua---Information-window---has-minimal-dimensions-for-small-text create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_completion.lua---Information-window---respects-`config.window.info` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_completion.lua---Information-window---respects-`config.window.info`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_completion.lua---Information-window---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_completion.lua---Manual-completion---uses-`vim.lsp.protocol.CompletionItemKind`-in-LSP-step create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_completion.lua---Signature-help---accounts-for-border-when-picking-side create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_completion.lua---Signature-help---adjusts-window-height create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_completion.lua---Signature-help---has-minimal-dimensions-for-small-text create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_completion.lua---Signature-help---respects-`config.window.signature` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_completion.lua---Signature-help---respects-`config.window.signature`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_completion.lua---Signature-help---updates-highlighting-of-active-parameter create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_completion.lua---Signature-help---updates-highlighting-of-active-parameter-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_completion.lua---Signature-help---updates-highlighting-of-active-parameter-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_completion.lua---Signature-help---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_cursorword.lua---Highlighting---can-stop create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_cursorword.lua---Highlighting---respects-MiniCursorwordCurrent-highlight-group create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_cursorword.lua---Highlighting---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_cursorword.lua---Highlighting---works-on-multibyte-character create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_cursorword.lua---Highlighting---works-on-multibyte-character-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_cursorword.lua---Highlighting---works-with-multiple-windows create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_deps.lua---Commands----DepsAdd-works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_deps.lua---Commands----DepsShowLog-works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_deps.lua---Commands----DepsUpdate-works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_deps.lua---Commands----DepsUpdateOffline-works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_deps.lua---clean()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_deps.lua---clean()---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_deps.lua---update()---can-fold-in-confirm-buffer create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_deps.lua---update()---can-highlight-breaking-changes create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_deps.lua---update()---can-work-with-non-default-branches create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_deps.lua---update()---shows-empty-monitor-log create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_deps.lua---update()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_diff.lua---Diff---`MiniDiffUpdated`-event-can-be-used-to-override-`minidiff_summary_string`-variable create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_diff.lua---Diff---redraws-statusline-when-diff-is-updated create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_diff.lua---Diff---redraws-statusline-when-diff-is-updated-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_diff.lua---Overlay---always-highlights-whole-lines create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_diff.lua---Overlay---word-diff---has-non-zero-interhunk-context create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_diff.lua---Overlay---word-diff---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_diff.lua---Overlay---word-diff---works-with-multibyte-characters create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_diff.lua---Overlay---word-diff---works-with-multibyte-characters-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_diff.lua---Overlay---word-diff---works-with-multibyte-characters-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_diff.lua---Overlay---word-diff---works-with-multibyte-characters-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_diff.lua---Overlay---word-diff---works-with-multibyte-characters-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_diff.lua---Overlay---word-diff---works-with-multibyte-characters-006 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_diff.lua---Overlay---word-diff---works-with-multibyte-characters-007 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_diff.lua---Overlay---word-diff---works-with-multibyte-characters-008 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_diff.lua---Overlay---word-diff---works-with-multibyte-characters-009 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_diff.lua---Overlay---word-diff---works-with-multibyte-characters-010 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_diff.lua---Overlay---word-diff---works-with-one-of-lines-being-empty create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_diff.lua---Overlay---word-diff---works-with-one-of-lines-being-empty-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_diff.lua---Overlay---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_diff.lua---Overlay---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_diff.lua---Overlay---works-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_diff.lua---Overlay---works-at-edge-lines create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_diff.lua---Overlay---works-at-edge-lines-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_diff.lua---Overlay---works-at-edge-lines-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_diff.lua---Overlay---works-when-'change'-overlaps-with-'delete' create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_diff.lua---Overlay---works-with-'add'-hunks create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_diff.lua---Overlay---works-with-'change'-hunks create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_diff.lua---Overlay---works-with-'change'-hunks-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_diff.lua---Overlay---works-with-'delete'-hunks create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_diff.lua---Visualization---forces-redraw-when-it-is-needed create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_diff.lua---Visualization---forces-redraw-when-it-is-needed-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_diff.lua---Visualization---reacts-to-hunk-lines-delete-move create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_diff.lua---Visualization---reacts-to-hunk-lines-delete-move-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_diff.lua---Visualization---respects-`view.signs` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_diff.lua---Visualization---respects-`view.style` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_diff.lua---Visualization---respects-`view.style`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_diff.lua---Visualization---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_diff.lua---Visualization---works-with-'add'-hunks create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_diff.lua---Visualization---works-with-'add'-hunks-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_diff.lua---Visualization---works-with-'change'-hunks create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_diff.lua---Visualization---works-with-'change'-hunks-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_diff.lua---Visualization---works-with-'delete'-hunks create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_diff.lua---Visualization---works-with-'delete'-hunks-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_diff.lua---Visualization---works-with-'delete'-hunks-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_diff.lua---disable()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_diff.lua---set_ref_text()---immediately-updates-diff-data-and-visualization create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_diff.lua---set_ref_text()---removing-reference-text-removes-visualization create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_diff.lua---set_ref_text()---removing-reference-text-removes-visualization-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_diff.lua---toggle_overlay()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_diff.lua---toggle_overlay()---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_diff.lua---toggle_overlay()---works-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_diff.lua---toggle_overlay()---works-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_diff.lua---toggle_overlay()---works-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---buf_lines()---can-not-show-icons create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---buf_lines()---respects-`local_opts.scope` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---buf_lines()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---commands()---respects-user-commands create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---commands()---respects-user-commands-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---commands()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---commands()---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---diagnostic()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---diagnostic()---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---explorer()---can-be-resumed create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---explorer()---can-be-resumed-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---explorer()---can-not-show-icons create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---explorer()---can-not-show-icons-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---explorer()---respects-`local_opts.filter` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---explorer()---respects-`local_opts.filter`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---explorer()---respects-`local_opts.sort` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---explorer()---respects-`local_opts.sort`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---explorer()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---explorer()---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---explorer()---works-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---explorer()---works-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---explorer()---works-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---explorer()---works-006 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---git_branches()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---git_branches()---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---git_commits()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---git_commits()---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---git_files()---can-not-show-icons create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---git_files()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---git_files()---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---git_hunks()---respects-`local_opts.n_context`---test-+-args-{-0-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---git_hunks()---respects-`local_opts.n_context`---test-+-args-{-0-}-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---git_hunks()---respects-`local_opts.n_context`---test-+-args-{-0-}-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---git_hunks()---respects-`local_opts.n_context`---test-+-args-{-20-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---git_hunks()---respects-`local_opts.n_context`---test-+-args-{-20-}-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---git_hunks()---respects-`local_opts.n_context`---test-+-args-{-20-}-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---git_hunks()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---git_hunks()---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---git_hunks()---works-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---git_hunks()---works-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---git_hunks()---works-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---git_hunks()---works-006 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---hipatterns()---respects-`local_opts.highlighters` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---hipatterns()---respects-`local_opts.scope` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---hipatterns()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---hipatterns()---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---history()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---history()---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---hl_groups()---respects-non-default-linked-highlight-groups create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---hl_groups()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---hl_groups()---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---keymaps()---shows-source-of-Lua-callback-in-preview create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---keymaps()---shows-source-of-Lua-callback-in-preview-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---keymaps()---shows-source-of-Lua-callback-in-preview-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---keymaps()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---keymaps()---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---list()---works-for-`change` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---list()---works-for-`change`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---list()---works-for-`jump` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---list()---works-for-`jump`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---list()---works-for-`location` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---list()---works-for-`location`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---list()---works-for-`location`-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---list()---works-for-`location`-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---list()---works-for-`quickfix` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---list()---works-for-`quickfix`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---list()---works-for-`quickfix`-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---list()---works-for-`quickfix`-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---lsp()---works-for-`declaration` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---lsp()---works-for-`declaration`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---lsp()---works-for-`definition` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---lsp()---works-for-`definition`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---lsp()---works-for-`document_symbol` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---lsp()---works-for-`document_symbol`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---lsp()---works-for-`document_symbol`-with-'mini.icons'-set-up create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---lsp()---works-for-`document_symbol`-with-'mini.icons'-set-up-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---lsp()---works-for-`implementation` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---lsp()---works-for-`implementation`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---lsp()---works-for-`references` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---lsp()---works-for-`references`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---lsp()---works-for-`type_definition` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---lsp()---works-for-`type_definition`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---lsp()---works-for-`workspace_symbol` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---lsp()---works-for-`workspace_symbol`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---lsp()---works-for-`workspace_symbol`-with-'mini.icons'-set-up create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---lsp()---works-for-`workspace_symbol`-with-'mini.icons'-set-up-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---marks()---respects-`local_opts.scope` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---marks()---respects-`local_opts.scope`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---marks()---respects-`local_opts.scope`-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---marks()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---marks()---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---marks()---works-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---marks()---works-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---oldfiles()---can-not-show-icons create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---oldfiles()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---options()---correctly-previews-deprecated-options create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---options()---respects-set-options create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---options()---respects-set-options-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---options()---respects-set-options-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---options()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---options()---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---registers()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---registers()---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---spellsuggest()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---spellsuggest()---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---treesitter()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---treesitter()---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---treesitter()---works-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---visit_labels()---can-not-show-icons-after-choosing create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---visit_labels()---respects-`local_opts.sort` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---visit_labels()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---visit_labels()---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---visit_labels()---works-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---visit_paths()---can-not-show-icons create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---visit_paths()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_extra.lua---pickers---visit_paths()---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Cursors---handle-`content.prefix`-returning-different-lengths create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Cursors---shows-whole-line-after-horizontal-scroll create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Cursors---shows-whole-line-after-horizontal-scroll-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Default-explorer---handles-close-without-opening-file create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Default-explorer---handles-close-without-opening-file-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Default-explorer---works-in-`-edit-.` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Default-explorer---works-in-`-tabfind-.` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Default-explorer---works-in-`-tabfind-.`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Default-explorer---works-in-`-vsplit-.` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Default-explorer---works-in-`-vsplit-.`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Default-explorer---works-on-startup create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Events---`MiniFilesWindowOpen`-can-be-used-to-tweak-window-config create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Events---`MiniFilesWindowOpen`-can-be-used-to-tweak-window-config-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Events---`MiniFilesWindowOpen`-can-be-used-to-tweak-window-config-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---can-be-not-confirmed create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---can-be-not-confirmed-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---can-be-not-confirmed-with-preview create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---can-be-not-confirmed-with-preview-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---can-copy-directory create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---can-copy-directory-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---can-copy-directory-inside-itself create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---can-copy-directory-inside-itself-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---can-copy-directory-inside-new-directory create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---can-copy-directory-inside-new-directory-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---can-copy-file create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---can-copy-file-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---can-copy-file-inside-new-directory create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---can-copy-file-inside-new-directory-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---can-create create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---can-create-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---can-delete create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---can-delete-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---can-move-directory create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---can-move-directory-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---can-move-file create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---can-move-file-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---can-move-inside-new-directory create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---can-move-inside-new-directory-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---can-move-while-changing-basename create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---can-move-while-changing-basename-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---can-rename create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---can-rename-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---copy-does-not-override-existing-entry create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---copy-does-not-override-existing-entry-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---copy-does-not-override-existing-entry-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---create-does-not-override-existing-entry create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---create-does-not-override-existing-entry-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---creates-files-in-nested-directories create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---creates-files-in-nested-directories-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---creates-nested-directories create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---creates-nested-directories-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---handles-backslash-on-Unix create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---handles-backslash-on-Unix-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---handles-move-directory-inside-itself create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---handles-move-directory-inside-itself-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---handles-simultaneous-copy-and-move create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---handles-simultaneous-copy-and-move-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---handles-simultaneous-copy-and-rename create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---handles-simultaneous-copy-and-rename-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---ignores-blank-lines create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---ignores-blank-lines-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---ignores-identical-user-copied-entries create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---ignores-identical-user-copied-entries-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---move-does-not-override-existing-entry create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---move-does-not-override-existing-entry-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---move-does-not-override-existing-entry-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---move-works-again-after-undo create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---move-works-again-after-undo-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---rename-does-not-override-existing-entry create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---rename-does-not-override-existing-entry-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---rename-does-not-override-existing-entry-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---rename-works-again-after-undo create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---rename-works-again-after-undo-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---respects-modified-hidden-buffers create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---works-with-problematic-names create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---File-manipulation---works-with-problematic-names-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Mappings---`go_in_plus`-supports--count- create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Mappings---`go_in_plus`-supports--count--002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Mappings---`go_in_plus`-works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Mappings---`go_in`-supports--count- create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Mappings---`go_in`-supports--count--002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Mappings---`go_in`-works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Mappings---`go_in`-works-in-linewise-Visual-mode create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Mappings---`go_in`-works-in-linewise-Visual-mode-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Mappings---`go_in`-works-in-linewise-Visual-mode-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Mappings---`go_out_plus`-supports--count- create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Mappings---`go_out_plus`-supports--count--002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Mappings---`go_out_plus`-supports--count--003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Mappings---`go_out_plus`-works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Mappings---`go_out_plus`-works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Mappings---`go_out_plus`-works-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Mappings---`go_out`-supports--count- create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Mappings---`go_out`-supports--count--002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Mappings---`go_out`-supports--count--003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Mappings---`go_out`-works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Mappings---`reset`-works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Mappings---`reset`-works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Mappings---`reset`-works-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Mappings---`reveal_cwd`-works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Mappings---`reveal_cwd`-works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Mappings---`reveal_cwd`-works-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Mappings---`show_help`-works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Mappings---`show_help`-works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Mappings---`show_help`-works-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Mappings---`synchronize`-works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Mappings---`synchronize`-works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Mappings---`synchronize`-works-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Mappings---`synchronize`-works-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Mappings---`synchronize`-works-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Mappings---`synchronize`-works-006 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Mappings---`trim_left`-works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Mappings---`trim_right`-works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Preview---always-updates-with-cursor create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Preview---does-not-highlight-big-files create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Preview---handles-user-created-lines create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Preview---handles-user-created-lines-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Preview---handles-user-created-lines-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Preview---is-not-removed-when-going-out create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Preview---is-not-removed-when-going-out-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Preview---is-not-shown-if-not-enough-space create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Preview---previews-only-one-level-deep create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Preview---works-after-`trim_left()` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Preview---works-for-directories create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Preview---works-for-directories-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Preview---works-for-directories-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Preview---works-for-files create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Preview---works-for-files-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Preview---works-for-files-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Preview---works-for-files-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Preview---works-for-files-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Windows---correctly-computes-part-of-branch-to-show create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Windows---correctly-computes-part-of-branch-to-show-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Windows---correctly-computes-part-of-branch-to-show-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Windows---correctly-computes-part-of-branch-to-show-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Windows---correctly-computes-part-of-branch-to-show-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Windows---correctly-computes-part-of-branch-to-show-006 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Windows---correctly-computes-part-of-branch-to-show-with-preview create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Windows---correctly-highlight-content-during-editing create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Windows---does-not-wrap-content create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Windows---is-in-sync-with-cursor create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Windows---is-in-sync-with-cursor-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Windows---is-in-sync-with-cursor-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Windows---is-in-sync-with-cursor-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Windows---is-in-sync-with-cursor-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Windows---never-shows-past-end-of-buffer create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Windows---never-shows-past-end-of-buffer-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Windows---never-shows-past-end-of-buffer-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Windows---reacts-on-`VimResized` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Windows---reacts-on-`VimResized`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Windows---reacts-on-`VimResized`-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Windows---reacts-on-`VimResized`-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Windows---respects-tabline-and-statusline-when-computing-height create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Windows---respects-tabline-and-statusline-when-computing-height-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Windows---respects-tabline-and-statusline-when-computing-height-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Windows---respects-tabline-and-statusline-when-computing-height-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Windows---respects-tabline-when-computing-position create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---Windows---works-with-too-small-dimensions create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---close()---checks-for-modified-buffers create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---close()---checks-for-modified-buffers-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---close()---checks-for-modified-buffers-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---close()---handles-invalid-target-window create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---close()---handles-invalid-target-window-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---close()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---close()---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---close()---works-per-tabpage create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---go_in()---works-on-directory create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---go_in()---works-on-directory-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---go_out()---root-update-reuses-buffers-without-their-update create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---go_out()---works-on-branch-root create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---go_out()---works-on-not-branch-root create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---open()---`content.prefix`-can-be-used-to-not-show-prefix create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---open()---`content.prefix`-can-return-`nil` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---open()---`content.prefix`-can-return-`nil`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---open()---`content.prefix`-can-return-`nil`-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---open()---`content.sort`-can-be-used-to-also-filter-items create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---open()---focuses-on-file-entry-when-opened-from-history create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---open()---focuses-on-file-entry-when-opened-from-history-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---open()---focuses-on-file-entry-when-opened-from-history-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---open()---focuses-on-file-entry-when-opened-from-history-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---open()---handles-backslash-on-Unix create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---open()---handles-problematic-entry-names create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---open()---history---handles-external-changes-between-calls create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---open()---history---handles-external-changes-between-calls-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---open()---history---is-shared-across-tabpages create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---open()---history---is-shared-across-tabpages-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---open()---history---is-shared-across-tabpages-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---open()---history---opens-from-history-by-default create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---open()---history---opens-from-history-by-default-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---open()---history---prefers-global-config-before-taking-from-history create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---open()---history---prefers-global-config-before-taking-from-history-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---open()---history---respects-`use_latest` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---open()---history---respects-`use_latest`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---open()---history---stores-whole-branch-and-not-only-visible-windows create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---open()---history---stores-whole-branch-and-not-only-visible-windows-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---open()---normalizes-before-first-refresh-when-focused-on-directory-with-`windows.preview` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---open()---normalizes-before-first-refresh-when-focused-on-file create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---open()---properly-closes-currently-opened-explorer create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---open()---respects-`content.filter` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---open()---respects-`content.filter`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---open()---respects-`content.prefix` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---open()---respects-`content.prefix`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---open()---respects-`content.sort` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---open()---respects-`content.sort`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---open()---respects-`mappings` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---open()---respects-`mappings`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---open()---respects-`vim.b.minifiles_config` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---open()---respects-`windows.max_number` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---open()---respects-`windows.max_number`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---open()---respects-`windows.preview` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---open()---respects-`windows.preview`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---open()---respects-`windows.width_focus`-and-`windows.width_nofocus` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---open()---respects-`windows.width_focus`-and-`windows.width_nofocus`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---open()---respects-`windows.width_preview` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---open()---respects-`windows.width_preview`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---open()---respects-`windows.width_preview`-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---open()---respects-`windows.width_preview`-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---open()---respects-`windows.width_preview`-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---open()---respects-`windows.width_preview`-006 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---open()---uses-`MiniIcons.get()`-with-full-path create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---open()---uses-icon-provider create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---open()---uses-icon-provider-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---open()---uses-icon-provider-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---open()---works-per-tabpage create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---open()---works-per-tabpage-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---open()---works-per-tabpage-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---open()---works-with-directory-path create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---open()---works-with-directory-path-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---open()---works-with-directory-path-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---open()---works-with-file-path create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---open()---works-with-file-path-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---refresh()---does-not-update-buffers-with-`nil`-`filter`-and-`sort` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---refresh()---does-not-update-buffers-with-`nil`-`filter`-and-`sort`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---refresh()---handles-presence-of-modified-buffers create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---refresh()---handles-presence-of-modified-buffers-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---refresh()---handles-presence-of-modified-buffers-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---refresh()---handles-presence-of-modified-buffers-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---refresh()---preserves-explorer-options create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---refresh()---preserves-explorer-options-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---refresh()---updates-buffers-with-non-empty-`content` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---refresh()---updates-buffers-with-non-empty-`content`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---refresh()---updates-buffers-with-non-empty-`content`-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---refresh()---updates-buffers-with-non-empty-`content`-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---refresh()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---reset()---resets-all-cursors create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---reset()---resets-all-cursors-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---reset()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---reset()---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---reset()---works-when-anchor-is-not-in-branch create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---reset()---works-when-anchor-is-not-in-branch-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---reveal_cwd()---properly-places-cursors create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---reveal_cwd()---properly-places-cursors-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---reveal_cwd()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---reveal_cwd()---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---reveal_cwd()---works-when-not-inside-cwd create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---reveal_cwd()---works-when-not-inside-cwd-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---reveal_cwd()---works-when-root-is-already-cwd create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---reveal_cwd()---works-when-root-is-already-cwd-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---reveal_cwd()---works-with-preview create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---reveal_cwd()---works-with-preview-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---show_help()---adjusts-window-width create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---show_help()---handles-mappings-without-description create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---show_help()---handles-non-default-mappings create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---show_help()---opens-relatively-current-window create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---show_help()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---show_help()---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---synchronize()---can-update-external-file-system-changes create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---trim_left()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---trim_left()---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---trim_left()---works-when-in-the-middle-of-the-branch create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---trim_left()---works-when-in-the-middle-of-the-branch-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---trim_right()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---trim_right()---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---trim_right()---works-when-in-the-middle-of-the-branch create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_files.lua---trim_right()---works-when-in-the-middle-of-the-branch-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua----Git---completion---uses-correct-working-directory-for-paths create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua----Git---completion---works-with-explicit-paths create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua----Git---completion---works-with-explicit-paths-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua----Git---completion---works-with-explicit-paths-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua----Git---completion---works-with-explicit-paths-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua----Git---completion---works-with-explicit-paths-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua----Git---completion---works-with-not-supported-command create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua----Git---completion---works-with-not-supported-command-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua----Git---completion---works-with-not-supported-command-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua----Git---completion---works-with-options create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua----Git---completion---works-with-options-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua----Git---completion---works-with-options-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua----Git---completion---works-with-options-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua----Git---completion---works-with-options-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua----Git---completion---works-with-options-006 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua----Git---completion---works-with-options-007 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua----Git---completion---works-with-present-command-modifiers create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua----Git---completion---works-with-subcommand-targets create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua----Git---completion---works-with-subcommand-targets-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua----Git---completion---works-with-subcommand-targets-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua----Git---completion---works-with-subcommand-targets-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua----Git---completion---works-with-subcommand-targets-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua----Git---completion---works-with-subcommand-targets-006 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua----Git---completion---works-with-subcommand-targets-007 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua----Git---completion---works-with-subcommand-targets-008 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua----Git---completion---works-with-subcommand-targets-009 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua----Git---completion---works-with-subcommand-targets-010 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua----Git---completion---works-with-subcommand-targets-011 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua----Git---completion---works-with-subcommand-targets-012 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua----Git---completion---works-with-subcommand-targets-013 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua----Git---completion---works-with-subcommand-targets-014 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua----Git---completion---works-with-subcommand-targets-015 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua----Git---completion---works-with-subcommand-targets-016 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua----Git---completion---works-with-subcommand-targets-017 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua----Git---completion---works-with-subcommand-targets-018 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua----Git---completion---works-with-subcommand-targets-019 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua----Git---completion---works-with-subcommand-targets-020 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua----Git---completion---works-with-subcommand-targets-021 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua----Git---completion---works-with-subcommand-targets-022 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua----Git---completion---works-with-subcommand-targets-023 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua----Git---completion---works-with-subcommand-targets-024 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua----Git---completion---works-with-subcommand-targets-025 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua----Git---completion---works-with-subcommand-targets-026 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua----Git---completion---works-with-subcommand-targets-027 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua----Git---completion---works-with-subcommand-targets-028 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua----Git---completion---works-with-subcommand-targets-029 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua----Git---completion---works-with-subcommand-targets-030 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua----Git---completion---works-with-subcommands create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua----Git---completion---works-with-subcommands-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua----Git---completion---works-with-subcommands-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua----Git---completion---works-with-subcommands-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua----Git---completion---works-with-subcommands-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua----Git---completion---works-with-subcommands-006 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua---Tracking---redraws-statusline-when-summary-is-updated create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua---Tracking---redraws-statusline-when-summary-is-updated-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua---Tracking---redraws-statusline-when-summary-is-updated-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua---Tracking---redraws-statusline-when-summary-is-updated-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua---Tracking---redraws-statusline-when-summary-is-updated-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua---diff_foldexpr()---works-in-`git-log`-output create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua---diff_foldexpr()---works-in-`git-log`-output-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua---diff_foldexpr()---works-in-`git-log`-output-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua---diff_foldexpr()---works-in-`git-log`-output-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua---diff_foldexpr()---works-in-diff-patch create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua---diff_foldexpr()---works-in-diff-patch-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua---diff_foldexpr()---works-in-diff-patch-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_git.lua---diff_foldexpr()---works-in-diff-patch-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---Auto-enable---does-not-enable-for-not-normal-buffers create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---Auto-enable---enables-for-normal-buffers create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---Auto-enable---enables-for-normal-buffers-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---Auto-enable---makes-`-edit`-work create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---Auto-enable---makes-`-edit`-work-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---Autocommands---resets-on-color-scheme-change create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---Autocommands---resets-on-color-scheme-change-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---Autocommands---resets-on-color-scheme-change-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---Highlighters---allows-array-`pattern` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---Highlighters---allows-array-`pattern`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---Highlighters---allows-callable-`group` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---Highlighters---allows-callable-`pattern` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---Highlighters---allows-frontier-pattern-in-`pattern` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---Highlighters---allows-return-`nil`-`group`-to-not-highlight create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---Highlighters---allows-return-`nil`-`pattern`-to-not-highlight create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---Highlighters---allows-return-`nil`-`pattern`-to-not-highlight-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---Highlighters---allows-submatch-in-`pattern` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---Highlighters---allows-submatch-in-`pattern`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---Highlighters---allows-submatch-in-`pattern`-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---Highlighters---allows-submatch-in-`pattern`-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---Highlighters---allows-submatch-in-`pattern`-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---Highlighters---respects-`extmark_opts.priority` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---Highlighters---respects-`extmark_opts.priority`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---Highlighters---respects-`extmark_opts.priority`-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---Highlighters---respects-`extmark_opts` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---Highlighters---silently-skips-wrong-entries create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---disable()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---disable()---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---disable()---works-in-not-current-buffer create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---disable()---works-in-not-current-buffer-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---enable()---does-not-flicker-during-text-insert create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---enable()---does-not-flicker-during-text-insert-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---enable()---does-not-flicker-during-text-insert-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---enable()---reacts-to-buffer-enter create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---enable()---reacts-to-buffer-enter-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---enable()---reacts-to-delete-of-line-with-match create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---enable()---reacts-to-delete-of-line-with-match-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---enable()---reacts-to-delete-of-line-with-match-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---enable()---reacts-to-delete-of-line-with-match-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---enable()---reacts-to-filetype-change create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---enable()---reacts-to-filetype-change-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---enable()---reacts-to-filetype-change-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---enable()---reacts-to-text-change create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---enable()---reacts-to-text-change-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---enable()---reacts-to-text-change-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---enable()---reacts-to-text-change-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---enable()---reacts-to-text-change-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---enable()---reacts-to-window-scroll create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---enable()---reacts-to-window-scroll-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---enable()---reacts-to-window-scroll-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---enable()---reacts-to-window-scroll-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---enable()---respects-`vim.b.minihipatterns_config` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---enable()---respects-`vim.b.minihipatterns_config`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---enable()---respects-`vim.b.minihipatterns_config`-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---enable()---respects-`vim.{g,b}.minihipatterns_disable`---test-+-args-{-'b'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---enable()---respects-`vim.{g,b}.minihipatterns_disable`---test-+-args-{-'g'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---enable()---respects-global-config-after-`setup()` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---enable()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---enable()---works-in-not-current-buffer create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---enable()---works-in-not-normal-buffer create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---enable()---works-with-defaults create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---gen_highlighter---hex_color()---respects-`opts.filter` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---gen_highlighter---hex_color()---respects-`opts.filter`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---gen_highlighter---hex_color()---respects-`opts.priority` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---gen_highlighter---hex_color()---respects-`opts.priority`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---gen_highlighter---hex_color()---respects-`opts.priority`-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---gen_highlighter---hex_color()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---gen_highlighter---hex_color()---works-with-style-'#' create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---gen_highlighter---hex_color()---works-with-style-'inline' create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---gen_highlighter---hex_color()---works-with-style-'line' create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---toggle()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---toggle()---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---update()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---update()---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---update()---works-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---update()---works-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---update()---works-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_hipatterns.lua---update()---works-006 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_indentscope.lua---Auto-drawing---implements-debounce-style-delay create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_indentscope.lua---Auto-drawing---implements-debounce-style-delay-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_indentscope.lua---Auto-drawing---respects-ModeChanged-event create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_indentscope.lua---Auto-drawing---respects-ModeChanged-event-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_indentscope.lua---Auto-drawing---respects-ModeChanged-event-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_indentscope.lua---Auto-drawing---respects-`config.draw.delay` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_indentscope.lua---Auto-drawing---respects-`config.draw.delay`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_indentscope.lua---Auto-drawing---respects-`vim.{g,b}.miniindentscope_disable`---test-+-args-{-'b'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_indentscope.lua---Auto-drawing---respects-`vim.{g,b}.miniindentscope_disable`---test-+-args-{-'b'-}-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_indentscope.lua---Auto-drawing---respects-`vim.{g,b}.miniindentscope_disable`---test-+-args-{-'g'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_indentscope.lua---Auto-drawing---respects-`vim.{g,b}.miniindentscope_disable`---test-+-args-{-'g'-}-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_indentscope.lua---Auto-drawing---respects-common-events---test-+-args-{-'CursorMoved'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_indentscope.lua---Auto-drawing---respects-common-events---test-+-args-{-'CursorMovedI'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_indentscope.lua---Auto-drawing---respects-common-events---test-+-args-{-'TextChanged'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_indentscope.lua---Auto-drawing---respects-common-events---test-+-args-{-'TextChangedI'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_indentscope.lua---Auto-drawing---respects-common-events---test-+-args-{-'TextChangedP'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_indentscope.lua---Auto-drawing---updates-immediately-when-scopes-intersect create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_indentscope.lua---Auto-drawing---updates-immediately-when-scopes-intersect-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_indentscope.lua---Auto-drawing---works-in-Insert-mode create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_indentscope.lua---Auto-drawing---works-in-Insert-mode-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_indentscope.lua---Auto-drawing---works-in-Insert-mode-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_indentscope.lua---Auto-drawing---works-in-Normal-mode create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_indentscope.lua---Auto-drawing---works-in-Normal-mode-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_indentscope.lua---Auto-drawing---works-in-Normal-mode-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_indentscope.lua---draw()---does-not-overshadow-'listchars' create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_indentscope.lua---draw()---does-not-round-time-of-every-animation-step create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_indentscope.lua---draw()---respects-`config.draw.animation` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_indentscope.lua---draw()---respects-`config.draw.animation`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_indentscope.lua---draw()---respects-`config.draw.animation`-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_indentscope.lua---draw()---respects-`config.draw.animation`-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_indentscope.lua---draw()---respects-`config.draw.priority` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_indentscope.lua---draw()---respects-`config.draw.priority`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_indentscope.lua---draw()---respects-`config.symbol` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_indentscope.lua---draw()---respects-`config.symbol`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_indentscope.lua---draw()---shows-symbols-on-wrapped-lines-without-overlapping create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_indentscope.lua---draw()---shows-symbols-on-wrapped-lines-without-overlapping-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_indentscope.lua---draw()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_indentscope.lua---draw()---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_indentscope.lua---draw()---works-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_indentscope.lua---draw()---works-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_indentscope.lua---undraw()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_indentscope.lua---undraw()---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump.lua---Delayed-highlighting---implements-debounce-style-delay create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump.lua---Delayed-highlighting---implements-debounce-style-delay-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump.lua---Delayed-highlighting---implements-debounce-style-delay-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump.lua---Delayed-highlighting---never-highlights-in-Insert-mode create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump.lua---Delayed-highlighting---never-highlights-in-Insert-mode-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump.lua---Delayed-highlighting---respects-'ignorecase' create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump.lua---Delayed-highlighting---respects-'smartcase' create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump.lua---Delayed-highlighting---respects-`config.delay.highlight`---test-+-args-{-'backward'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump.lua---Delayed-highlighting---respects-`config.delay.highlight`---test-+-args-{-'backward'-}-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump.lua---Delayed-highlighting---respects-`config.delay.highlight`---test-+-args-{-'backward_till'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump.lua---Delayed-highlighting---respects-`config.delay.highlight`---test-+-args-{-'backward_till'-}-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump.lua---Delayed-highlighting---respects-`config.delay.highlight`---test-+-args-{-'forward'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump.lua---Delayed-highlighting---respects-`config.delay.highlight`---test-+-args-{-'forward'-}-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump.lua---Delayed-highlighting---respects-`config.delay.highlight`---test-+-args-{-'forward_till'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump.lua---Delayed-highlighting---respects-`config.delay.highlight`---test-+-args-{-'forward_till'-}-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump.lua---Delayed-highlighting---respects-`vim.b.minijump_config` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump.lua---Delayed-highlighting---respects-`vim.b.minijump_config`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump.lua---Delayed-highlighting---stops-immediately-when-not-jumping create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump.lua---Delayed-highlighting---stops-immediately-when-not-jumping-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump.lua---Delayed-highlighting---updates-immediately-within-same-jumping create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump.lua---Delayed-highlighting---updates-immediately-within-same-jumping-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump.lua---Delayed-highlighting---updates-immediately-within-same-jumping-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump.lua---Delayed-highlighting---works---test-+-args-{-'backward'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump.lua---Delayed-highlighting---works---test-+-args-{-'backward'-}-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump.lua---Delayed-highlighting---works---test-+-args-{-'backward_till'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump.lua---Delayed-highlighting---works---test-+-args-{-'backward_till'-}-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump.lua---Delayed-highlighting---works---test-+-args-{-'forward'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump.lua---Delayed-highlighting---works---test-+-args-{-'forward'-}-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump.lua---Delayed-highlighting---works---test-+-args-{-'forward_till'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump.lua---Delayed-highlighting---works---test-+-args-{-'forward_till'-}-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump.lua---Jumping-with-f-t-F-T---respects-`config.silent` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump.lua---Jumping-with-f-t-F-T---shows-helper-message-after-one-idle-second create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump.lua---Jumping-with-f-t-F-T---shows-helper-message-after-one-idle-second-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump.lua---Stop-jumping-after-idle---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump.lua---Stop-jumping-after-idle---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump.lua---Stop-jumping-after-idle---works-if-should-be-done-before-target-highlighting create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---builtin_opts.line_start---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---builtin_opts.single_character---prompts-helper-message-after-one-idle-second create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---builtin_opts.word_start---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---builtin_opts.word_start---works-with-multibyte-characters create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---default_spotter()---correctly-merges-'overlapping'-spots create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---default_spotter()---spots-before-and-after-punctuation create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---default_spotter()---spots-first-capital-letter create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---default_spotter()---spots-start-and-end-of-words create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---default_spotter()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---default_spotter()---works-(almost)-with-multibyte-character create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---gen_pattern_spotter()---handles-patterns-with-'^'-and-'$'---test-+-args-{-'.()..$',-'none'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---gen_pattern_spotter()---handles-patterns-with-'^'-and-'$'---test-+-args-{-'...$',-'end'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---gen_pattern_spotter()---handles-patterns-with-'^'-and-'$'---test-+-args-{-'...$',-'start'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---gen_pattern_spotter()---handles-patterns-with-'^'-and-'$'---test-+-args-{-'^.()..',-'none'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---gen_pattern_spotter()---handles-patterns-with-'^'-and-'$'---test-+-args-{-'^...',-'end'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---gen_pattern_spotter()---handles-patterns-with-'^'-and-'$'---test-+-args-{-'^...',-'start'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---gen_pattern_spotter()---respects-`pattern`-argument create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---gen_pattern_spotter()---respects-`side`-argument---test-+-args-{-'%S+',-'end'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---gen_pattern_spotter()---respects-`side`-argument---test-+-args-{-'%S+',-'start'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---gen_pattern_spotter()---respects-`side`-argument---test-+-args-{-'.().',-'none'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---gen_pattern_spotter()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---gen_pattern_spotter()---works-in-edge-cases create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---gen_pattern_spotter()---works-with-multibyte-characters create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---gen_pattern_spotter()---works-with-multibyte-characters-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---gen_union_spotter()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---setup()---applies-`config.mappings` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---setup()---resets--CR--mapping-in-quickfix-window create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---allows-`hook.before_start`-to-modify-spotter create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---does-not-account-for-current-cursor-position-during-label-computation---test-+-args-{-1,-1-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---does-not-account-for-current-cursor-position-during-label-computation---test-+-args-{-2,-0-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---does-not-account-for-current-cursor-position-during-label-computation---test-+-args-{-3,-0-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---does-not-account-for-current-cursor-position-during-label-computation---test-+-args-{-3,-3-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---does-not-account-for-current-window-during-label-computation---test-+-args-{-'bottomleft'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---does-not-account-for-current-window-during-label-computation---test-+-args-{-'topright'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---handles-overlapping-multi-step-labels create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---handles-overlapping-multi-step-labels-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---handles-overlapping-multi-step-labels-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---handles-overlapping-multi-step-labels-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---handles-very-big-`view.n_steps_ahead` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---handles-very-big-`view.n_steps_ahead`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---highlights-unique-labels-with-different-highlight-group create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---jumps-immediately-to-single-spot create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---overrides-`config`-from-`opts`-argument create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---prompts-helper-message-after-one-idle-second create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---prompts-helper-message-after-one-idle-second-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---prompts-helper-message-after-one-idle-second-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---respects-`allowed_lines.blank` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---respects-`allowed_lines.blank`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---respects-`allowed_lines.cursor_-`---test-+-args-{-'cursor_after'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---respects-`allowed_lines.cursor_-`---test-+-args-{-'cursor_after'-}-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---respects-`allowed_lines.cursor_-`---test-+-args-{-'cursor_at'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---respects-`allowed_lines.cursor_-`---test-+-args-{-'cursor_at'-}-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---respects-`allowed_lines.cursor_-`---test-+-args-{-'cursor_before'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---respects-`allowed_lines.cursor_-`---test-+-args-{-'cursor_before'-}-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---respects-`allowed_lines.fold` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---respects-`allowed_lines.fold`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---respects-`allowed_windows`---test-+-args-{-{current-=-false,not_current-=-false}-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---respects-`allowed_windows`---test-+-args-{-{current-=-false,not_current-=-false}-}-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---respects-`allowed_windows`---test-+-args-{-{current-=-false}-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---respects-`allowed_windows`---test-+-args-{-{current-=-false}-}-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---respects-`allowed_windows`---test-+-args-{-{not_current-=-false}-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---respects-`allowed_windows`---test-+-args-{-{not_current-=-false}-}-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---respects-`config.silent` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---respects-`labels` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---respects-`labels`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---respects-`opts.hl_group_dim` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---respects-`spotter` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---respects-`spotter`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---respects-`view.dim` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---respects-`view.dim`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---respects-`view.dim`-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---respects-`view.n_steps_ahead` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---respects-`view.n_steps_ahead`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---respects-`view.n_steps_ahead`-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---respects-`view.n_steps_ahead`-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---respects-`view.n_steps_ahead`-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---respects-`vim.{g,b}.minijump2d_disable`---test-+-args-{-'b'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---respects-`vim.{g,b}.minijump2d_disable`---test-+-args-{-'g'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---respects-folds create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---respects-folds-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---stops-jumping-if-not-label-was-typed---test-+-args-{-'-C-c-'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---stops-jumping-if-not-label-was-typed---test-+-args-{-'-Down-'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---stops-jumping-if-not-label-was-typed---test-+-args-{-'-Esc-'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---traverses-floating-windows-at-the-end create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---traverses-visible-'regular'-windows-based-on-their-layout create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---uses-`-CR-`-to-jump-to-first-available-spot create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---uses-`spotter`-with-correct-arguments create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---uses-only-all-visible-windows-by-default create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---uses-only-visible-lines create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---uses-only-visible-lines-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---works-in-Operator-pending-mode create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---works-in-Operator-pending-mode-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---works-in-Operator-pending-mode-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---works-in-Operator-pending-mode-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---works-in-Visual-mode create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---start()---works-in-Visual-mode-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---stop()---clears-all-highlighting create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---stop()---clears-all-highlighting-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---stop()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_jump2d.lua---stop()---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---Cursor-in-map-window---opens-enough-folds-in-source-window create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---Cursor-in-map-window---opens-enough-folds-in-source-window-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---Pure-scrollbar---is-active-when-width-is-lower-than-offset create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---Pure-scrollbar---is-active-when-width-is-lower-than-offset-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---Pure-scrollbar---is-active-when-width-is-lower-than-offset-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---Pure-scrollbar---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---Pure-scrollbar---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---Scrollbar---updates-on-cursor-movement create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---Scrollbar---updates-on-cursor-movement-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---Scrollbar---updates-on-cursor-movement-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---Scrollbar---updates-on-cursor-movement-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---Scrollbar---updates-on-source-window-scrolling create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---Scrollbar---updates-on-source-window-scrolling-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---Window---does-not-account-for-folds create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---Window---does-not-account-for-folds-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---Window---does-not-account-for-folds-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---Window---fully-updates-on-buffer-enter create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---Window---fully-updates-on-buffer-enter-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---Window---fully-updates-on-buffer-write create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---Window---fully-updates-on-buffer-write-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---Window---fully-updates-on-mode-change-to-Normal create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---Window---fully-updates-on-mode-change-to-Normal-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---Window---fully-updates-on-text-change-in-Normal-mode create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---Window---fully-updates-on-text-change-in-Normal-mode-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---Window---fully-updates-on-vim-resize create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---Window---fully-updates-on-vim-resize-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---gen_encode_symbols---can-be-used-as-`MiniMap.config.symbols.encode` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---gen_encode_symbols---can-be-used-as-part-of-`opts.symbols.encode` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---gen_integration---builtin_search()---respects-documented-keymaps create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---gen_integration---builtin_search()---respects-documented-keymaps-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---gen_integration---builtin_search()---respects-documented-keymaps-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---gen_integration---builtin_search()---respects-documented-keymaps-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---gen_integration---builtin_search()---updates-when-appropriate create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---gen_integration---builtin_search()---updates-when-appropriate-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---gen_integration---builtin_search()---updates-when-appropriate-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---gen_integration---builtin_search()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---gen_integration---builtin_search()---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---gen_integration---diagnostic()---respects-`hl_groups`-argument create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---gen_integration---diagnostic()---respects-`hl_groups`-argument-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---gen_integration---diagnostic()---respects-`hl_groups`-argument-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---gen_integration---diagnostic()---respects-`hl_groups`-argument-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---gen_integration---diagnostic()---updates-when-appropriate create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---gen_integration---diagnostic()---updates-when-appropriate-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---gen_integration---diagnostic()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---gen_integration---diff()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---gen_integration---gitsigns()---respects-`hl_groups`-argument create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---gen_integration---gitsigns()---updates-when-appropriate create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---gen_integration---gitsigns()---updates-when-appropriate-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---gen_integration---gitsigns()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---open()---allows-more-than-single-character-in-scroll-symbols create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---open()---can-open-pure-scrollbar create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---open()---respects-`MiniMapNormal`-highlight-group create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---open()---respects-`opts.integrations`-argument create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---open()---respects-`opts.symbols`-argument create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---open()---respects-`opts.symbols`-argument-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---open()---respects-`opts.window`-argument create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---open()---shows-appropriate-integration-counts create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---open()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---refresh()---respects-`opts.integrations`-argument create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---refresh()---respects-`opts.symbols`-argument create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---refresh()---respects-`opts.window`-argument create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---refresh()---respects-`parts`-argument create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---refresh()---respects-`parts`-argument-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---refresh()---respects-`parts`-argument-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---refresh()---respects-`parts`-argument-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---refresh()---respects-`parts`-argument-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---refresh()---respects-`vim.{g,b}.minimap_disable`---test-+-args-{-'b'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---refresh()---respects-`vim.{g,b}.minimap_disable`---test-+-args-{-'g'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---refresh()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_map.lua---refresh()---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_misc.lua---zoom()---respects-`config`-argument create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_misc.lua---zoom()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---LSP-progress---handles-not-present-data create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---LSP-progress---handles-not-present-data-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---LSP-progress---handles-not-present-data-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---LSP-progress---respects-`lsp_progress.duration_last` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---LSP-progress---respects-`lsp_progress.duration_last`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---LSP-progress---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---LSP-progress---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---LSP-progress---works-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---LSP-progress---works-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---LSP-progress---works-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---Window---computes-default-dimensions-based-on-buffer-content create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---Window---computes-default-dimensions-based-on-buffer-content-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---Window---fully-updates-on-vim-resize create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---Window---fully-updates-on-vim-resize-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---Window---fully-updates-on-vim-resize-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---Window---fully-updates-on-vim-resize-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---Window---handles-width-computation-for-empty-lines-inside-notification-buffer create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---Window---respects-`content.format` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---Window---respects-`content.sort` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---Window---respects-`window.config` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---Window---respects-`window.config`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---Window---respects-`window.config`-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---Window---respects-`window.max_width_share` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---Window---respects-`window.max_width_share`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---Window---respects-`window.max_width_share`-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---Window---respects-`window.max_width_share`-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---Window---respects-tabline-statusline-cmdline create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---Window---respects-tabline-statusline-cmdline-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---Window---respects-tabline-statusline-cmdline-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---Window---respects-tabline-statusline-cmdline-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---Window---respects-tabline-statusline-cmdline-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---Window---respects-tabline-statusline-cmdline-006 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---Window---respects-tabline-statusline-cmdline-007 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---Window---respects-tabline-statusline-cmdline-008 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---Window---respects-tabline-statusline-cmdline-009 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---Window---respects-tabline-statusline-cmdline-010 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---Window---shows-start-of-buffer-if-it-does-not-fit-whole create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---Window---works-with-multiline-messages create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---Window---wraps-text create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---Window---wraps-text-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---add()---allows-empty-string-message create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---add()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---clear()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---clear()---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---make_notify()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---refresh()---respects-`vim.{g,b}.mininotify_disable`---test-+-args-{-'b'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---refresh()---respects-`vim.{g,b}.mininotify_disable`---test-+-args-{-'b'-}-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---refresh()---respects-`vim.{g,b}.mininotify_disable`---test-+-args-{-'b'-}-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---refresh()---respects-`vim.{g,b}.mininotify_disable`---test-+-args-{-'g'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---refresh()---respects-`vim.{g,b}.mininotify_disable`---test-+-args-{-'g'-}-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---refresh()---respects-`vim.{g,b}.mininotify_disable`---test-+-args-{-'g'-}-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---remove()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---remove()---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---remove()---works-with-several-active-notifications create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---remove()---works-with-several-active-notifications-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---show_history()---respects-`content.format` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---show_history()---reuses-history-buffer create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---show_history()---shows-all-notifications create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---show_history()---sorts-by-update-time create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---show_history()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---update()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_notify.lua---update()---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_operators.lua---Exchange---can-be-canceled create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_operators.lua---Exchange---can-be-canceled-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_operators.lua---Exchange---correctly-highlights-first-step-with-'selection=exclusive' create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_operators.lua---Exchange---highlights-first-step---test-+-args-{-'blockwise'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_operators.lua---Exchange---highlights-first-step---test-+-args-{-'charwise'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_operators.lua---Exchange---highlights-first-step---test-+-args-{-'linewise'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_operators.lua---Exchange---works-with-multibyte-characters create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_operators.lua---Exchange---works-with-multibyte-characters-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_operators.lua---Exchange---works-with-multibyte-characters-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_operators.lua---Exchange---works-with-multibyte-characters-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_operators.lua---Exchange---works-with-multibyte-characters-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pairs.lua----BS--action---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua----Pick---has-proper-complete create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua----Pick---has-proper-complete-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua----Pick---has-proper-complete-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua----Pick---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua----Pick---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Caret---moves-by-query-parts create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Caret---moves-by-query-parts-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Caret---moves-by-query-parts-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Caret---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Caret---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Caret---works-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Choose---works-for-split-tab-variations create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Choose---works-for-split-tab-variations-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Choose---works-for-split-tab-variations-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Info-view---is-updated-after-moving-marking-current-item create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Info-view---is-updated-after-moving-marking-current-item-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Info-view---is-updated-after-moving-marking-current-item-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Info-view---is-updated-after-moving-marking-current-item-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Info-view---respects-custom-mappings create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Info-view---supports-vertical-and-horizontal-scroll create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Info-view---supports-vertical-and-horizontal-scroll-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Info-view---supports-vertical-and-horizontal-scroll-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Info-view---supports-vertical-and-horizontal-scroll-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Info-view---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Main-view---properly-computes-items-range-to-show create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-006 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-007 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-008 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-009 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-010 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-011 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-012 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-013 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-014 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-015 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-016 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-017 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-018 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-019 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-020 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-021 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-022 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-023 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-024 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-025 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Main-view---shows-marked-items-across-queries create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Main-view---shows-marked-items-across-queries-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Main-view---supports-horizontal-scroll create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Main-view---supports-horizontal-scroll-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Main-view---supports-horizontal-scroll-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Main-view---supports-horizontal-scroll-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Main-view---supports-horizontal-scroll-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Main-view---supports-horizontal-scroll-006 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Main-view---works-with-`content_from_bottom`=true create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Main-view---works-with-`content_from_bottom`=true-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Main-view---works-with-`content_from_bottom`=true-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Main-view---works-with-`content_from_bottom`=true-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Main-view---works-with-`content_from_bottom`=true-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Main-view---works-with-`content_from_bottom`=true-006 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Main-view---works-with-`content_from_bottom`=true-007 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Main-view---works-with-`content_from_bottom`=true-008 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Main-view---works-with-`content_from_bottom`=true-009 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Main-view---works-with-`content_from_bottom`=true-010 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Mark---works-without-items-set create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Move---works-when-no-items-are-set create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Overall-view---allows-'none'-as-border create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Overall-view---allows-very-large-dimensions create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Overall-view---correctly-infers-footer-empty-space create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Overall-view---correctly-infers-footer-empty-space-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Overall-view---correctly-infers-footer-empty-space-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Overall-view---does-not-show-footer-if-items-are-not-set create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Overall-view---is-shown-over-number-and-sign-columns create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Overall-view---respects-`options.content_from_bottom`-with-footer create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Overall-view---respects-tabline,-statusline,-'cmdheight' create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Overall-view---respects-tabline,-statusline,-'cmdheight'-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Overall-view---respects-tabline,-statusline,-'cmdheight'-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Overall-view---respects-tabline,-statusline,-'cmdheight'-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Overall-view---shows-prompt create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Overall-view---shows-prompt-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Overall-view---shows-prompt-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Overall-view---shows-prompt-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Overall-view---shows-prompt-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Overall-view---truncates-border-text create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Overall-view---truncates-border-text-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Overall-view---uses-footer-for-extra-info create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Overall-view---uses-footer-for-extra-info-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Overall-view---uses-footer-for-extra-info-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Overall-view---uses-footer-for-extra-info-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Overall-view---uses-footer-for-extra-info-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Overall-view---uses-footer-for-extra-info-006 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Paste---respects-`delay.async`-when-waiting-for-register-label create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Paste---respects-`delay.async`-when-waiting-for-register-label-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Paste---respects-`delay.async`-when-waiting-for-register-label-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Paste---respects-`delay.async`-when-waiting-for-register-label-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Paste---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Paste---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Paste---works-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Preview---is-updated-after-moving-current-item create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Preview---is-updated-after-moving-current-item-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Preview---supports-vertical-and-horizontal-scroll create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Preview---supports-vertical-and-horizontal-scroll-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Preview---supports-vertical-and-horizontal-scroll-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Preview---supports-vertical-and-horizontal-scroll-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Preview---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Refine---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Refine---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Refine---works-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---Refine---works-when-no-items-are-set create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---builtin.buffers()---respects-`local_opts.include_current` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---builtin.buffers()---respects-`local_opts.include_unlisted` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---builtin.buffers()---respects-`source.show`-from-config create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---builtin.buffers()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---builtin.files()---respects-`source.show`-from-config create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---builtin.files()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---builtin.grep()---respects-`source.show`-from-config create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---builtin.grep()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---builtin.grep_live()---respects-`source.show`-from-config create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---builtin.grep_live()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---builtin.help()---handles-consecutive-applications create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---builtin.help()---has-proper-preview create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---builtin.help()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---builtin.help()---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---builtin.help()---works-for-help-tags-with-special-characters create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---builtin.help()---works-when-help-window-is-already-opened create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---builtin.help()---works-with-`builtin.resume()` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---builtin.help()---works-with-`builtin.resume()`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---builtin.resume()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_match()---does-not-block-query-update create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_match()---works-with-active-picker create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_match()---works-with-active-picker-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_preview()---does-not-highlight-big-files create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_preview()---does-not-highlight-big-files-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_preview()---has-fallback create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_preview()---has-fallback-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_preview()---has-syntax-highlighting-in-buffer create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_preview()---has-syntax-highlighting-in-buffer-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_preview()---has-syntax-highlighting-in-file-path create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_preview()---has-syntax-highlighting-in-file-path-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_preview()---loads-context-in-buffer create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_preview()---loads-context-in-buffer-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_preview()---loads-context-in-buffer-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_preview()---loads-context-in-file-path create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_preview()---loads-context-in-file-path-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_preview()---loads-context-in-file-path-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_preview()---respects-`opts.line_position`---1-+-args-{-'bottom'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_preview()---respects-`opts.line_position`---1-+-args-{-'bottom'-}-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_preview()---respects-`opts.line_position`---1-+-args-{-'center'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_preview()---respects-`opts.line_position`---1-+-args-{-'center'-}-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_preview()---respects-`opts.line_position`---1-+-args-{-'top'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_preview()---respects-`opts.line_position`---1-+-args-{-'top'-}-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_preview()---respects-`opts.n_context_lines` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_preview()---respects-`opts.n_context_lines`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_preview()---respects-`source.cwd` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_preview()---shows-line-in-buffer create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_preview()---shows-line-in-file-path create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_preview()---shows-line-in-file-path-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_preview()---shows-position-in-buffer create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_preview()---shows-position-in-file-path create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_preview()---shows-position-in-file-path-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_preview()---shows-region-in-buffer create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_preview()---shows-region-in-buffer-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_preview()---shows-region-in-file-path create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_preview()---shows-region-in-file-path-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_preview()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_preview()---works-for-URI-path create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_preview()---works-for-buffer create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_preview()---works-for-buffer-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_preview()---works-for-buffer-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_preview()---works-for-buffer-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_preview()---works-for-buffer-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_preview()---works-for-directory-path create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_preview()---works-for-directory-path-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_preview()---works-for-file-path create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_preview()---works-for-file-path-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_preview()---works-for-file-path-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_preview()---works-for-file-path-with-tilde create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_preview()---works-for-relative-file-path create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_preview()---works-without-active-picker create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_preview()---works-without-active-picker-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_show()---handles-edge-cases create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_show()---handles-query-similar-to-`default_match` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_show()---handles-query-similar-to-`default_match`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_show()---handles-query-similar-to-`default_match`-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_show()---handles-query-similar-to-`default_match`-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_show()---handles-query-similar-to-`default_match`-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_show()---handles-stritems-with-non-trivial-whitespace create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_show()---respects-'ignorecase'-'smartcase' create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_show()---respects-'ignorecase'-'smartcase'-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_show()---respects-'ignorecase'-'smartcase'-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_show()---respects-'ignorecase'-'smartcase'-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_show()---respects-'ignorecase'-'smartcase'-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_show()---respects-'ignorecase'-'smartcase'-006 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_show()---respects-`opts.icons` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_show()---respects-`opts.icons`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_show()---respects-`opts.icons`-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_show()---respects-`opts.show_icons` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_show()---respects-`opts.show_icons`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_show()---respects-`opts.show_icons`-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_show()---respects-`opts.show_icons`-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_show()---shows-best-match create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_show()---shows-best-match-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_show()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_show()---works-with-multibyte-characters create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_show()---works-with-multibyte-characters-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_show()---works-with-non-single-char-entries-queries create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_show()---works-with-non-single-char-entries-queries-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_show()---works-with-non-single-char-entries-queries-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_show()---works-without-active-picker create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---default_show()---works-without-active-picker-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---refresh()---is-called-on-`VimResized` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---refresh()---is-called-on-`VimResized`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---refresh()---recomputes-window-config create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---refresh()---recomputes-window-config-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---refresh()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---refresh()---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---set_picker_match_inds()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---set_picker_opts()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---set_picker_opts()---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---set_picker_opts()---works-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---set_picker_query()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---start()---can-be-started-without-explicit-items create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---start()---correctly-computes-stritems create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---start()---respects-`delay.async` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---start()---respects-`delay.async`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---start()---respects-`delay.async`-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---start()---respects-`delay.async`-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---start()---respects-`options.content_from_bottom` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---start()---respects-`source.items` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---start()---respects-`source.items`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---start()---respects-`source.items`-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---start()---respects-`source.items`-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---start()---respects-`source.match` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---start()---respects-`source.name` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---start()---respects-`source.preview` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---start()---respects-`source.preview`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---start()---respects-`source.show` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---start()---respects-`source.show`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---start()---respects-`vim.b.minipick_config` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---start()---respects-`window.config` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---start()---respects-`window.config`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---start()---respects-`window.prompt_cursor` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---start()---respects-`window.prompt_cursor`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---start()---respects-`window.prompt_prefix` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---start()---respects-`window.prompt_prefix`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---start()---respects-global-config create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---start()---stops-currently-active-picker create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---start()---stops-impoperly-aborted-previous-picker create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---start()---stops-impoperly-aborted-previous-picker-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---start()---tracks-lost-focus create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---start()---tracks-lost-focus-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---start()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---start()---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---start()---works-on-Neovim-0.9 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---start()---works-on-Neovim-0.9-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---start()---works-with-window-footer create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---start()---works-with-window-footer-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---stop()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---stop()---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---ui_select()---respects-`opts.preview_item` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---ui_select()---shows-only-original-item-in-preview create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_pick.lua---ui_select()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_starter.lua---Default-content---'Recent-files'-section---displays-only-readable-files create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_starter.lua---Default-content---'Recent-files'-section---present-even-if-no-recent-files create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_starter.lua---Default-content---'Sessions'-section---present-even-if-no-sessions-detected create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_starter.lua---Default-content---'Sessions'-section---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_starter.lua---Default-content---computes-`header`-depending-on-time-of-day---test-+-args-{-'00'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_starter.lua---Default-content---computes-`header`-depending-on-time-of-day---test-+-args-{-'04'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_starter.lua---Default-content---computes-`header`-depending-on-time-of-day---test-+-args-{-'08'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_starter.lua---Default-content---computes-`header`-depending-on-time-of-day---test-+-args-{-'12'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_starter.lua---Default-content---computes-`header`-depending-on-time-of-day---test-+-args-{-'16'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_starter.lua---Default-content---computes-`header`-depending-on-time-of-day---test-+-args-{-'20'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_starter.lua---Default-content---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_starter.lua---Highlighting---uses-`MiniStarterItemBullet` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_starter.lua---Highlighting---uses-`MiniStarterItemBullet`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_starter.lua---Highlighting---works-for-current-item create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_starter.lua---Highlighting---works-for-current-item-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_starter.lua---Highlighting---works-for-querying create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_starter.lua---Highlighting---works-for-querying-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_starter.lua---Highlighting---works-for-querying-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_starter.lua---Querying---works-with-`cmdheight=0` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_starter.lua---Resize---updates-Starter-buffer create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_starter.lua---gen_hook---adding_bullet()---respects-`bullet`-argument create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_starter.lua---gen_hook---adding_bullet()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_starter.lua---gen_hook---aligning()---handles-small-windows create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_starter.lua---gen_hook---aligning()---has-output-respecting-`buf_id`-argument create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_starter.lua---gen_hook---aligning()---has-output-respecting-`buf_id`-argument-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_starter.lua---gen_hook---aligning()---respects-arguments---test-+-args-{-''center',-'bottom''-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_starter.lua---gen_hook---aligning()---respects-arguments---test-+-args-{-''center',-'center''-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_starter.lua---gen_hook---aligning()---respects-arguments---test-+-args-{-''center',-'top''-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_starter.lua---gen_hook---aligning()---respects-arguments---test-+-args-{-''left',-'bottom''-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_starter.lua---gen_hook---aligning()---respects-arguments---test-+-args-{-''left',-'center''-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_starter.lua---gen_hook---aligning()---respects-arguments---test-+-args-{-''left',-'top''-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_starter.lua---gen_hook---aligning()---respects-arguments---test-+-args-{-''right',-'bottom''-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_starter.lua---gen_hook---aligning()---respects-arguments---test-+-args-{-''right',-'center''-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_starter.lua---gen_hook---aligning()---respects-arguments---test-+-args-{-''right',-'top''-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_starter.lua---gen_hook---aligning()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_starter.lua---gen_hook---indexing()---respects-arguments---test-+-args-{-''all',-nil'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_starter.lua---gen_hook---indexing()---respects-arguments---test-+-args-{-''section',-nil'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_starter.lua---gen_hook---indexing()---respects-arguments---test-+-args-{-'nil,-{-'AAA'-}'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_starter.lua---gen_hook---indexing()---respects-arguments---test-+-args-{-'nil,-{}'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_starter.lua---gen_hook---indexing()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_starter.lua---gen_hook---padding()---respects-arguments---test-+-args-{-'0,-2'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_starter.lua---gen_hook---padding()---respects-arguments---test-+-args-{-'2,-0'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_starter.lua---gen_hook---padding()---respects-arguments---test-+-args-{-'2,-2'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_starter.lua---gen_hook---padding()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_starter.lua---get_content()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_starter.lua---open()---respects-`vim.b.ministarter_config` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_starter.lua---refresh()---respects-`config.silent` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_starter.lua---refresh()---respects-`config.silent`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_starter.lua---refresh()---respects-`vim.b.ministarter_config` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_starter.lua---refresh()---respects-`vim.b.ministarter_config`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_starter.lua---sections---recent_files()---correctly-identifies-files-from-current-directory create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_starter.lua---sections---recent_files()---respects-`show_path` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_starter.lua---sections---recent_files()---respects-files-in-subdirectories create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_starter.lua---sections---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_statusline.lua---Default-content---active---test-+-args-{-120-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_statusline.lua---Default-content---active---test-+-args-{-39-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_statusline.lua---Default-content---active---test-+-args-{-40-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_statusline.lua---Default-content---active---test-+-args-{-75-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_statusline.lua---Default-content---inactive-is-evaluated-in-the-context-of-its-window create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_surround.lua---Add-surrounding---prompts-helper-message-after-one-idle-second create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_surround.lua---Add-surrounding---prompts-helper-message-after-one-idle-second-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_surround.lua---Add-surrounding---respects-`config.silent` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_surround.lua---Builtin---Function-call---colors-its-prompts create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_surround.lua---Builtin---Function-call---colors-its-prompts-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_surround.lua---Builtin---Tag---colors-its-prompts create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_surround.lua---Builtin---Tag---colors-its-prompts-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_surround.lua---Builtin---User-prompt---colors-its-prompts create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_surround.lua---Builtin---User-prompt---colors-its-prompts-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_surround.lua---Builtin---User-prompt---colors-its-prompts-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_surround.lua---Delete-surrounding---prompts-helper-message-after-one-idle-second create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_surround.lua---Delete-surrounding---prompts-helper-message-after-one-idle-second-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_surround.lua---Delete-surrounding---respects-`config.silent` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_surround.lua---Delete-surrounding---respects-`config.silent`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_surround.lua---Find-surrounding---prompts-helper-message-after-one-idle-second create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_surround.lua---Find-surrounding---prompts-helper-message-after-one-idle-second-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_surround.lua---Highlight-surrounding---removes-highlighting-in-correct-buffer create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_surround.lua---Highlight-surrounding---removes-highlighting-in-correct-buffer-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_surround.lua---Highlight-surrounding---removes-highlighting-per-line create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_surround.lua---Highlight-surrounding---removes-highlighting-per-line-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_surround.lua---Highlight-surrounding---removes-highlighting-per-line-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_surround.lua---Highlight-surrounding---respects-`config.n_lines` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_surround.lua---Highlight-surrounding---respects-`v-count`-for-input-surrounding create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_surround.lua---Highlight-surrounding---respects-`vim.b.minisurround_config` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_surround.lua---Highlight-surrounding---respects-`vim.b.minisurround_config`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_surround.lua---Highlight-surrounding---respects-`vim.{g,b}.minisurround_disable`---test-+-args-{-'b'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_surround.lua---Highlight-surrounding---respects-`vim.{g,b}.minisurround_disable`---test-+-args-{-'g'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_surround.lua---Highlight-surrounding---works-in-extended-mappings create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_surround.lua---Highlight-surrounding---works-in-extended-mappings-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_surround.lua---Highlight-surrounding---works-in-extended-mappings-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_surround.lua---Highlight-surrounding---works-with-dot-repeat create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_surround.lua---Highlight-surrounding---works-with-dot-repeat-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_surround.lua---Highlight-surrounding---works-with-dot-repeat-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_surround.lua---Highlight-surrounding---works-with-dot-repeat-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_surround.lua---Highlight-surrounding---works-with-dot-repeat-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_surround.lua---Highlight-surrounding---works-with-dot-repeat-006 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_surround.lua---Highlight-surrounding---works-with-multiline-input-surroundings create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_surround.lua---Highlight-surrounding---works-with-multiline-input-surroundings-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_surround.lua---Highlight-surrounding---works-with-multiline-input-surroundings-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_surround.lua---Highlight-surrounding---works-with-multiline-input-surroundings-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_surround.lua---Replace-surrounding---prompts-helper-message-after-one-idle-second create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_surround.lua---Replace-surrounding---prompts-helper-message-after-one-idle-second-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_surround.lua---Replace-surrounding---prompts-helper-message-after-one-idle-second-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_surround.lua---Replace-surrounding---respects-`config.silent` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_surround.lua---Replace-surrounding---respects-`config.silent`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_surround.lua---gen_spec---input---treesitter()---works-with-empty-region create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_tabline.lua---Screen---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_tabline.lua---Screen---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_tabline.lua---Screen---works-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_tabline.lua---Screen---works-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_tabline.lua---Screen---works-005 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_test.lua---expect---reference_screenshot()---correctly-infers-reference-path create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_test.lua---expect---reference_screenshot()---correctly-infers-reference-path-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_test.lua---expect---reference_screenshot()---correctly-infers-reference-path-004 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_test.lua---expect---reference_screenshot()---correctly-sanitizes-path-for-Windows- create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_test.lua---expect---reference_screenshot()---correctly-sanitizes-path-for-Windows-#2- create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_test.lua---expect---reference_screenshot()---works-with-multibyte-characters create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_test.lua---gen_reporter---buffer---test-+-args-{-''-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_test.lua---gen_reporter---buffer---test-+-args-{-'group_depth-=-2'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_test.lua---gen_reporter---buffer---test-+-args-{-'window-=-{-width-=-0.9---vim.o.columns,-col-=-0.05---vim.o.columns-}'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_test.lua---gen_reporter---stdout---test-+-args-{-''-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_test.lua---gen_reporter---stdout---test-+-args-{-'TEST_GROUP_DEPTH=2'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_test.lua---gen_reporter---stdout---test-+-args-{-'TEST_QUIT_ON_FINISH=false'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_trailspace.lua---Trailspace-autohighlighting---respects-BufEnter-BufLeave create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_trailspace.lua---Trailspace-autohighlighting---respects-BufEnter-BufLeave-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_trailspace.lua---Trailspace-autohighlighting---respects-BufEnter-BufLeave-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_trailspace.lua---Trailspace-autohighlighting---respects-InsertEnter-InsertLeave create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_trailspace.lua---Trailspace-autohighlighting---respects-InsertEnter-InsertLeave-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_trailspace.lua---Trailspace-autohighlighting---respects-InsertEnter-InsertLeave-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_trailspace.lua---Trailspace-autohighlighting---respects-OptionSet create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_trailspace.lua---Trailspace-autohighlighting---respects-OptionSet-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_trailspace.lua---Trailspace-autohighlighting---respects-WinEnter-WinLeave create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_trailspace.lua---Trailspace-autohighlighting---respects-WinEnter-WinLeave-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_trailspace.lua---Trailspace-autohighlighting---respects-WinEnter-WinLeave-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_trailspace.lua---Trailspace-highlighting-on-startup---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_trailspace.lua---highlight()---respects-`config.only_in_normal_buffers`---test-+-args-{-false,-''-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_trailspace.lua---highlight()---respects-`config.only_in_normal_buffers`---test-+-args-{-false,-'help'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_trailspace.lua---highlight()---respects-`config.only_in_normal_buffers`---test-+-args-{-false,-'nofile'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_trailspace.lua---highlight()---respects-`config.only_in_normal_buffers`---test-+-args-{-true,-''-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_trailspace.lua---highlight()---respects-`config.only_in_normal_buffers`---test-+-args-{-true,-'help'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_trailspace.lua---highlight()---respects-`config.only_in_normal_buffers`---test-+-args-{-true,-'nofile'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_trailspace.lua---highlight()---respects-`vim.b.minitrailspace_config` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_trailspace.lua---highlight()---respects-`vim.{g,b}.minitrailspace_disable`---test-+-args-{-'b'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_trailspace.lua---highlight()---respects-`vim.{g,b}.minitrailspace_disable`---test-+-args-{-'g'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_trailspace.lua---highlight()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_trailspace.lua---highlight()---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_trailspace.lua---highlight()---works-after-`clearmatches()` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_trailspace.lua---highlight()---works-after-`clearmatches()`-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_trailspace.lua---highlight()---works-only-in-Normal-mode---test-+-args-{-'-'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_trailspace.lua---highlight()---works-only-in-Normal-mode---test-+-args-{-'R'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_trailspace.lua---highlight()---works-only-in-Normal-mode---test-+-args-{-'i'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_trailspace.lua---highlight()---works-only-in-Normal-mode---test-+-args-{-'v'-} create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_trailspace.lua---unhighlight()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_trailspace.lua---unhighlight()---works-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_trailspace.lua---unhighlight()---works-after-`clearmatches()` create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_visits.lua---add_label()---asks-user-for-label-if-it-is-not-supplied create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_visits.lua---add_label()---asks-user-for-label-if-it-is-not-supplied-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_visits.lua---add_label()---asks-user-for-label-if-it-is-not-supplied-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_visits.lua---add_label()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_visits.lua---remove_label()---asks-user-for-label-if-it-is-not-supplied create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_visits.lua---remove_label()---asks-user-for-label-if-it-is-not-supplied-002 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_visits.lua---remove_label()---asks-user-for-label-if-it-is-not-supplied-003 create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/screenshots/tests-test_visits.lua---remove_label()---works create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/test_ai.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/test_align.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/test_animate.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/test_base16.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/test_basics.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/test_bracketed.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/test_bufremove.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/test_clue.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/test_colors.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/test_comment.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/test_completion.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/test_cursorword.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/test_deps.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/test_diff.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/test_doc.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/test_extra.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/test_files.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/test_fuzzy.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/test_git.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/test_hipatterns.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/test_hues.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/test_icons.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/test_indentscope.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/test_jump.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/test_jump2d.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/test_map.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/test_misc.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/test_move.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/test_notify.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/test_operators.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/test_pairs.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/test_pick.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/test_sessions.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/test_splitjoin.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/test_starter.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/test_statusline.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/test_surround.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/test_tabline.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/test_test.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/test_trailspace.lua create mode 100644 config/neovim/store/lazy-plugins/mini.nvim/tests/test_visits.lua create mode 100644 config/neovim/store/lazy-plugins/noice.nvim/.editorconfig create mode 100644 config/neovim/store/lazy-plugins/noice.nvim/.github/ISSUE_TEMPLATE/config.yml create mode 100644 config/neovim/store/lazy-plugins/noice.nvim/.github/PULL_REQUEST_TEMPLATE.md create mode 100644 config/neovim/store/lazy-plugins/noice.nvim/.github/dependabot.yml create mode 100644 config/neovim/store/lazy-plugins/noice.nvim/.github/workflows/labeler.yml create mode 100644 config/neovim/store/lazy-plugins/noice.nvim/.github/workflows/pr.yml create mode 100644 config/neovim/store/lazy-plugins/noice.nvim/.github/workflows/stale.yml create mode 100644 config/neovim/store/lazy-plugins/noice.nvim/.github/workflows/update.yml create mode 100644 config/neovim/store/lazy-plugins/noice.nvim/lazy.lua create mode 100644 config/neovim/store/lazy-plugins/noice.nvim/lua/noice/integrations/fzf.lua create mode 100755 config/neovim/store/lazy-plugins/noice.nvim/scripts/test create mode 100644 config/neovim/store/lazy-plugins/noice.nvim/tests/minit.lua create mode 100644 config/neovim/store/lazy-plugins/nui.nvim/nui.nvim-0.3.0-1-unstable-2024-06-26-rocks/manifest create mode 100644 config/neovim/store/lazy-plugins/nui.nvim/nui.nvim-0.3.0-1-unstable-2024-06-26-rocks/nui.nvim/0.3.0-1/nui.nvim-0.3.0-1.rockspec create mode 100644 config/neovim/store/lazy-plugins/nui.nvim/nui.nvim-0.3.0-1-unstable-2024-06-26-rocks/nui.nvim/0.3.0-1/rock_manifest create mode 100644 config/neovim/store/lazy-plugins/nui.nvim/nui.nvim-0.3.0-1-unstable-2024-06-26-rocks/nui.nvim/0.3.0-1/tests/helpers/init.lua create mode 100644 config/neovim/store/lazy-plugins/nui.nvim/nui.nvim-0.3.0-1-unstable-2024-06-26-rocks/nui.nvim/0.3.0-1/tests/init.lua create mode 100644 config/neovim/store/lazy-plugins/nui.nvim/nui.nvim-0.3.0-1-unstable-2024-06-26-rocks/nui.nvim/0.3.0-1/tests/nui/input/init_spec.lua create mode 100644 config/neovim/store/lazy-plugins/nui.nvim/nui.nvim-0.3.0-1-unstable-2024-06-26-rocks/nui.nvim/0.3.0-1/tests/nui/layout/init_spec.lua create mode 100644 config/neovim/store/lazy-plugins/nui.nvim/nui.nvim-0.3.0-1-unstable-2024-06-26-rocks/nui.nvim/0.3.0-1/tests/nui/layout/utils_spec.lua create mode 100644 config/neovim/store/lazy-plugins/nui.nvim/nui.nvim-0.3.0-1-unstable-2024-06-26-rocks/nui.nvim/0.3.0-1/tests/nui/line/init_spec.lua create mode 100644 config/neovim/store/lazy-plugins/nui.nvim/nui.nvim-0.3.0-1-unstable-2024-06-26-rocks/nui.nvim/0.3.0-1/tests/nui/menu/init_spec.lua create mode 100644 config/neovim/store/lazy-plugins/nui.nvim/nui.nvim-0.3.0-1-unstable-2024-06-26-rocks/nui.nvim/0.3.0-1/tests/nui/object/init_spec.lua create mode 100644 config/neovim/store/lazy-plugins/nui.nvim/nui.nvim-0.3.0-1-unstable-2024-06-26-rocks/nui.nvim/0.3.0-1/tests/nui/popup/border_spec.lua create mode 100644 config/neovim/store/lazy-plugins/nui.nvim/nui.nvim-0.3.0-1-unstable-2024-06-26-rocks/nui.nvim/0.3.0-1/tests/nui/popup/init_spec.lua create mode 100644 config/neovim/store/lazy-plugins/nui.nvim/nui.nvim-0.3.0-1-unstable-2024-06-26-rocks/nui.nvim/0.3.0-1/tests/nui/split/init_spec.lua create mode 100644 config/neovim/store/lazy-plugins/nui.nvim/nui.nvim-0.3.0-1-unstable-2024-06-26-rocks/nui.nvim/0.3.0-1/tests/nui/table/init_spec.lua create mode 100644 config/neovim/store/lazy-plugins/nui.nvim/nui.nvim-0.3.0-1-unstable-2024-06-26-rocks/nui.nvim/0.3.0-1/tests/nui/text/init_spec.lua create mode 100644 config/neovim/store/lazy-plugins/nui.nvim/nui.nvim-0.3.0-1-unstable-2024-06-26-rocks/nui.nvim/0.3.0-1/tests/nui/tree/init_spec.lua create mode 100644 config/neovim/store/lazy-plugins/nvim-cmp/nvim-cmp-scm-1-unstable-2024-08-01-rocks/manifest create mode 100644 config/neovim/store/lazy-plugins/nvim-cmp/nvim-cmp-scm-1-unstable-2024-08-01-rocks/nvim-cmp/scm-1/autoload/cmp.vim create mode 100644 config/neovim/store/lazy-plugins/nvim-cmp/nvim-cmp-scm-1-unstable-2024-08-01-rocks/nvim-cmp/scm-1/doc/cmp.txt create mode 100644 config/neovim/store/lazy-plugins/nvim-cmp/nvim-cmp-scm-1-unstable-2024-08-01-rocks/nvim-cmp/scm-1/nvim-cmp-scm-1.rockspec create mode 100644 config/neovim/store/lazy-plugins/nvim-cmp/nvim-cmp-scm-1-unstable-2024-08-01-rocks/nvim-cmp/scm-1/plugin/cmp.lua create mode 100644 config/neovim/store/lazy-plugins/nvim-cmp/nvim-cmp-scm-1-unstable-2024-08-01-rocks/nvim-cmp/scm-1/rock_manifest create mode 100644 config/neovim/store/lazy-plugins/nvim-jdtls/.editorconfig create mode 100644 config/neovim/store/lazy-plugins/nvim-jdtls/.github/ISSUE_TEMPLATE/bug.yml create mode 100644 config/neovim/store/lazy-plugins/nvim-jdtls/.github/ISSUE_TEMPLATE/config.yml create mode 100644 config/neovim/store/lazy-plugins/nvim-jdtls/.github/ISSUE_TEMPLATE/feature.yml create mode 100644 config/neovim/store/lazy-plugins/nvim-jdtls/.github/linters/.luacheckrc create mode 100644 config/neovim/store/lazy-plugins/nvim-jdtls/.github/workflows/linter.yml create mode 100644 config/neovim/store/lazy-plugins/nvim-jdtls/.github/workflows/tests.yml create mode 100644 config/neovim/store/lazy-plugins/nvim-jdtls/.luacheckrc create mode 100644 config/neovim/store/lazy-plugins/nvim-jdtls/.luarc.json create mode 100644 config/neovim/store/lazy-plugins/nvim-jdtls/.markdownlint.yaml create mode 100644 config/neovim/store/lazy-plugins/nvim-jdtls/LICENSE.txt create mode 100644 config/neovim/store/lazy-plugins/nvim-jdtls/README.md create mode 100644 config/neovim/store/lazy-plugins/nvim-jdtls/doc/jdtls.txt create mode 100644 config/neovim/store/lazy-plugins/nvim-jdtls/doc/tags create mode 100755 config/neovim/store/lazy-plugins/nvim-jdtls/lemmy.sh create mode 100644 config/neovim/store/lazy-plugins/nvim-jdtls/lua/jdtls.lua create mode 100644 config/neovim/store/lazy-plugins/nvim-jdtls/lua/jdtls/dap.lua create mode 100644 config/neovim/store/lazy-plugins/nvim-jdtls/lua/jdtls/junit.lua create mode 100644 config/neovim/store/lazy-plugins/nvim-jdtls/lua/jdtls/path.lua create mode 100644 config/neovim/store/lazy-plugins/nvim-jdtls/lua/jdtls/setup.lua create mode 100644 config/neovim/store/lazy-plugins/nvim-jdtls/lua/jdtls/testng.lua create mode 100644 config/neovim/store/lazy-plugins/nvim-jdtls/lua/jdtls/tests.lua create mode 100644 config/neovim/store/lazy-plugins/nvim-jdtls/lua/jdtls/ui.lua create mode 100644 config/neovim/store/lazy-plugins/nvim-jdtls/lua/jdtls/util.lua create mode 100644 config/neovim/store/lazy-plugins/nvim-jdtls/plugin/nvim_jdtls.vim create mode 100644 config/neovim/store/lazy-plugins/nvim-jdtls/tests/junit_spec.lua create mode 100644 config/neovim/store/lazy-plugins/nvim-jdtls/tests/minimal.vim create mode 100644 config/neovim/store/lazy-plugins/nvim-lint/lua/lint/linters/ameba.lua create mode 100644 config/neovim/store/lazy-plugins/nvim-lint/lua/lint/linters/ghdl.lua create mode 100644 config/neovim/store/lazy-plugins/nvim-lint/lua/lint/linters/protolint.lua create mode 100644 config/neovim/store/lazy-plugins/nvim-lint/lua/lint/linters/spectral.lua create mode 100644 config/neovim/store/lazy-plugins/nvim-lint/lua/lint/linters/vsg.lua create mode 100644 config/neovim/store/lazy-plugins/nvim-lint/tests/ameba_spec.lua create mode 100644 config/neovim/store/lazy-plugins/nvim-lspconfig/lua/lspconfig/server_configurations/ballerina.lua create mode 100644 config/neovim/store/lazy-plugins/nvim-lspconfig/lua/lspconfig/server_configurations/bazelrc-lsp.lua create mode 100644 config/neovim/store/lazy-plugins/nvim-lspconfig/lua/lspconfig/server_configurations/bitbake_ls.lua create mode 100644 config/neovim/store/lazy-plugins/nvim-lspconfig/lua/lspconfig/server_configurations/djlsp.lua create mode 100644 config/neovim/store/lazy-plugins/nvim-lspconfig/lua/lspconfig/server_configurations/fish_lsp.lua create mode 100644 config/neovim/store/lazy-plugins/nvim-lspconfig/lua/lspconfig/server_configurations/glasgow.lua create mode 100644 config/neovim/store/lazy-plugins/nvim-lspconfig/lua/lspconfig/server_configurations/janet_lsp.lua create mode 100644 config/neovim/store/lazy-plugins/nvim-lspconfig/lua/lspconfig/server_configurations/protols.lua create mode 100644 config/neovim/store/lazy-plugins/nvim-lspconfig/lua/lspconfig/server_configurations/pug.lua create mode 100644 config/neovim/store/lazy-plugins/nvim-lspconfig/lua/lspconfig/server_configurations/superhtml.lua create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/ada/injections.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/agda/injections.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/apex/injections.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/bibtex/injections.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/blueprint/injections.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/cmake/injections.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/commonlisp/injections.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/cooklang/injections.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/corn/injections.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/diff/injections.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/ebnf/injections.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/editorconfig/folds.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/editorconfig/highlights.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/editorconfig/injections.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/elm/folds.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/erlang/injections.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/fortran/injections.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/fsh/injections.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/func/injections.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/fusion/injections.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/gitignore/injections.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/glimmer/injections.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/goctl/folds.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/goctl/highlights.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/goctl/indents.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/goctl/injections.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/gotmpl/folds.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/gotmpl/locals.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/hack/injections.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/helm/folds.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/helm/locals.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/hoon/injections.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/idl/indents.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/ini/injections.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/jsonnet/injections.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/liquidsoap/injections.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/llvm/injections.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/mermaid/injections.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/mlir/injections.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/nginx/folds.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/nginx/highlights.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/nginx/injections.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/nickel/injections.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/ninja/injections.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/nix/indents.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/powershell/folds.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/powershell/highlights.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/powershell/indents.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/powershell/injections.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/powershell/locals.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/prisma/injections.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/problog/folds.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/problog/highlights.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/problog/indents.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/problog/injections.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/prolog/folds.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/prolog/highlights.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/prolog/indents.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/prolog/injections.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/proto/injections.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/ralph/highlights.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/ralph/injections.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/rescript/folds.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/rescript/highlights.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/rescript/indents.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/rescript/injections.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/rescript/locals.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/robot/injections.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/robots/highlights.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/robots/injections.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/scss/injections.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/smithy/injections.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/solidity/injections.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/swift/injections.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/systemverilog/folds.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/systemverilog/highlights.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/systemverilog/injections.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/tcl/injections.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/templ/folds.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/textproto/injections.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/usd/injections.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/vala/injections.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/vhdl/folds.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/vhdl/highlights.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/vhdl/injections.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/vhs/injections.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/vrl/folds.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/vrl/highlights.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/vrl/indents.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/vrl/injections.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/vrl/locals.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/wgsl/injections.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/wing/injections.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/queries/wit/folds.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/tests/indent/angular/defer.html create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/tests/indent/angular/for.html create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/tests/indent/angular/if-else.html create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/tests/indent/angular/switch-case.html create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/tests/indent/angular_spec.lua create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/tests/indent/nix/conds.nix create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/tests/indent/nix/general.nix create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/tests/indent/nix_spec.lua create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/tests/indent/php/issue-6888.php create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/tests/indent/python/parenthesized_conditions.py create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/tests/indent/r/incomplete_pipe.R create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/tests/indent/rescript/basic.res create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/tests/indent/rescript/complex.res create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/tests/indent/rescript/conditional.res create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/tests/indent/rescript_spec.lua create mode 100644 config/neovim/store/lazy-plugins/nvim-treesitter/tests/query/injections/query/test-query-injections.scm create mode 100644 config/neovim/store/lazy-plugins/nvim-ufo/lua/ufo/provider/marker.lua create mode 100644 config/neovim/store/lazy-plugins/persisted.nvim/lua/persisted/log.lua create mode 100644 config/neovim/store/lazy-plugins/promise-async/spec/error_spec.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/lua/rainbow-delimiters/_test/highlight.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/queries/awk/rainbow-delimiters.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/queries/htmldjango/rainbow-delimiters.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/queries/wgsl/rainbow-delimiters.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/busted.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/astro/regular.astro create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/awk/regular.awk create mode 100755 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/bash/regular.sh create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/c/regular.c create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/c_sharp/HelloWorld.cs create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/c_sharp/array.cs create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/c_sharp/attributes.cs create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/c_sharp/generics.cs create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/c_sharp/loop.cs create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/c_sharp/misc.cs create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/c_sharp/parens.cs create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/c_sharp/switch.cs create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/clojure/regular.clj create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/commonlisp/regular.lisp create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/cpp/regular.cpp create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/css/regular.css create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/cuda/regular.cu create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/cue/regular.cue create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/dart/regular.dart create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/elixir/regular.exs create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/elm/Regular.elm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/fennel/regular.fnl create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/fish/regular.fish create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/go/regular.go create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/haskell/regular.hs create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/html/regular.html create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/htmldjango/regular.html create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/janet_simple/regular.janet create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/java/HelloWorld.java create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/java/LambdaTest.java create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/javascript/regular.js create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/json/regular.json create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/json5/regular.json5 create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/jsonc/regular.jsonc create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/jsonnet/arithmetic.jsonnet create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/jsonnet/cocktail-comprehensions.jsonnet create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/jsonnet/computed-fields.jsonnet create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/jsonnet/function.jsonnet create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/jsx/regular.jsx create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/julia/regular.jl create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/kotlin/Test.kt create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/latex/regular.tex create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/lua/regular.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/luadoc/regular.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/make/makefile create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/markdown/extra.md create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/markdown/regular.md create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/nim/regular.nim create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/nix/regular.nix create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/perl/regular.pl create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/php/regular.php create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/python/regular.py create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/query/regular.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/r/regular.r create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/racket/regular.rkt create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/rasi/regular.rasi create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/regex/regular.txt create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/rst/regular.rst create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/ruby/regular.rb create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/rust/regular.rs create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/scheme/regular.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/scss/regular.scss create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/sql/regular.sql create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/starlark/regular.star create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/svelte/regular.svelte create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/systemverilog/regular.sv create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/teal/regular.tl create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/templ/regular.templ create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/terraform/basic.tf create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/toml/regular.toml create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/tsx/regular.tsx create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/typescript/regular.d.ts create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/typescript/regular.ts create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/typst/regular.typ create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/verilog/regular.v create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/vim/regular.vim create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/vue/pug-template.vue create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/vue/regular.vue create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/vue/scss-style.vue create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/vue/typescript-script.vue create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/wgsl/regular.wgsl create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/xml/regular.xml create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/yaml/regular.yaml create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/zig/regular.zig create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/astro/rainbow-delimiters/regular.astro.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/awk/rainbow-delimiters/regular.awk.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/bash/rainbow-delimiters/regular.sh.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/c/rainbow-delimiters/regular.c.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/c_sharp/rainbow-delimiters/HelloWorld.cs.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/c_sharp/rainbow-delimiters/array.cs.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/c_sharp/rainbow-delimiters/attributes.cs.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/c_sharp/rainbow-delimiters/generics.cs.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/c_sharp/rainbow-delimiters/loop.cs.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/c_sharp/rainbow-delimiters/misc.cs.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/c_sharp/rainbow-delimiters/parens.cs.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/c_sharp/rainbow-delimiters/switch.cs.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/clojure/rainbow-delimiters/regular.clj.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/commonlisp/rainbow-delimiters/regular.lisp.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/cpp/rainbow-delimiters/regular.cpp.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/css/rainbow-delimiters/regular.css.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/cuda/rainbow-delimiters/regular.cu.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/cue/rainbow-delimiters/regular.cue.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/dart/rainbow-delimiters/regular.dart.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/elixir/rainbow-delimiters/regular.exs.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/elm/rainbow-delimiters/Regular.elm.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/fennel/rainbow-delimiters/regular.fnl.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/fish/rainbow-delimiters/regular.fish.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/go/rainbow-delimiters/regular.go.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/haskell/rainbow-delimiters/regular.hs.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/hcl/rainbow-delimiters/basic.tf.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/html/rainbow-delimiters/regular.html.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/htmldjango/rainbow-delimiters/regular.html.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/janet_simple/rainbow-delimiters/regular.janet.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/java/rainbow-delimiters/HelloWorld.java.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/java/rainbow-delimiters/LambdaTest.java.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/javascript/rainbow-delimiters-react/regular.js.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/javascript/rainbow-delimiters/regular.js.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/javascript/rainbow-tags-react/regular.js.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/json/rainbow-delimiters/regular.json.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/json5/rainbow-delimiters/regular.json5.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/jsonc/rainbow-delimiters/regular.jsonc.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/jsonnet/rainbow-delimiters/arithmetic.jsonnet.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/jsonnet/rainbow-delimiters/cocktail-comprehensions.jsonnet.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/jsonnet/rainbow-delimiters/computed-fields.jsonnet.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/jsonnet/rainbow-delimiters/function.jsonnet.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/julia/rainbow-delimiters/regular.jl.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/kotlin/rainbow-delimiters/Test.kt.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/latex/rainbow-blocks/regular.tex.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/latex/rainbow-delimiters/regular.tex.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/lua/rainbow-blocks/regular.lua.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/lua/rainbow-delimiters/regular.lua.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/luadoc/rainbow-delimiters/regular.lua.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/make/rainbow-delimiters/makefile.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/markdown/rainbow-delimiters/extra.md.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/markdown/rainbow-delimiters/regular.md.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/nim/rainbow-delimiters/regular.nim.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/nix/rainbow-delimiters/regular.nix.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/perl/rainbow-delimiters/regular.pl.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/php/rainbow-delimiters/regular.php.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/python/rainbow-delimiters/regular.py.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/query/rainbow-blocks/regular.scm.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/query/rainbow-delimiters/regular.scm.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/r/rainbow-delimiters/regular.r.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/racket/rainbow-delimiters/regular.rkt.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/rasi/rainbow-delimiters/regular.rasi.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/regex/rainbow-delimiters/regular.txt.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/rst/rainbow-delimiters/regular.rst.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/ruby/rainbow-delimiters/regular.rb.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/rust/rainbow-delimiters/regular.rs.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/scheme/rainbow-delimiters/regular.scm.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/scss/rainbow-delimiters/regular.scss.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/sql/rainbow-delimiters/regular.sql.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/starlark/rainbow-delimiters/regular.star.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/svelte/rainbow-delimiters/regular.svelte.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/teal/rainbow-delimiters/regular.tl.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/templ/rainbow-delimiters/regular.templ.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/terraform/rainbow-delimiters/basic.tf.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/toml/rainbow-delimiters/regular.toml.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/tsx/rainbow-delimiters/regular.tsx.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/tsx/rainbow-parens/regular.tsx.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/tsx/rainbow-tags-react/regular.tsx.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/typescript/rainbow-delimiters/regular.d.ts.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/typescript/rainbow-delimiters/regular.ts.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/typst/rainbow-delimiters/regular.typ.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/verilog/rainbow-blocks/regular.v.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/verilog/rainbow-blocks/systemverilog.sv.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/verilog/rainbow-blocks/verilog.v.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/verilog/rainbow-delimiters/regular.v.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/verilog/rainbow-delimiters/systemverilog.sv.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/verilog/rainbow-delimiters/verilog.v.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/vim/rainbow-delimiters/regular.vim.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/vue/rainbow-delimiters/pug-template.vue.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/vue/rainbow-delimiters/regular.vue.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/vue/rainbow-delimiters/scss-style.vue.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/vue/rainbow-delimiters/typescript-script.vue.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/wgsl/rainbow-delimiters/regular.wgsl.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/xml/rainbow-delimiters/regular.xml.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/yaml/rainbow-delimiters/regular.yaml.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/zig/rainbow-delimiters/regular.zig.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/ada/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/agda/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/angular/folds.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/angular/indents.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/angular/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/angular/locals.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/apex/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/asm/highlights.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/asm/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/beancount/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/bibtex/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/blueprint/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/bp/folds.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/bp/highlights.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/bp/indents.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/bp/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/bp/locals.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/cmake/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/commonlisp/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/cooklang/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/corn/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/d/locals.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/diff/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/disassembly/highlights.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/disassembly/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/djot/folds.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/djot/highlights.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/djot/indents.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/djot/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/djot/locals.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/dot/indents.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/earthfile/highlights.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/earthfile/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/ebnf/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/editorconfig/folds.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/editorconfig/highlights.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/editorconfig/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/elm/folds.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/erlang/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/faust/highlights.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/faust/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/fidl/folds.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/fidl/highlights.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/fidl/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/fortran/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/fsh/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/func/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/fusion/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/gdshader/highlights.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/gdshader/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/git_config/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/gitignore/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/glimmer/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/gnuplot/highlights.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/gnuplot/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/goctl/folds.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/goctl/highlights.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/goctl/indents.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/goctl/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/godot_resource/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/gotmpl/folds.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/gotmpl/highlights.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/gotmpl/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/gotmpl/locals.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/groovy/folds.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/groovy/indents.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/groovy/locals.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/hack/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/haskell/locals.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/helm/folds.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/helm/highlights.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/helm/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/helm/locals.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/hlsplaylist/highlights.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/hlsplaylist/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/hoon/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/hyprlang/folds.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/hyprlang/highlights.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/hyprlang/indents.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/hyprlang/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/idl/highlights.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/idl/indents.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/idl/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/ini/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/inko/folds.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/inko/highlights.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/inko/indents.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/inko/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/inko/locals.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/jsonnet/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/just/folds.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/just/highlights.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/just/indents.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/just/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/just/locals.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/koto/folds.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/koto/highlights.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/koto/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/koto/locals.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/lalrpop/folds.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/liquid/highlights.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/liquid/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/liquidsoap/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/llvm/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/mermaid/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/meson/indents.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/mlir/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/muttrc/highlights.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/muttrc/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/nginx/folds.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/nginx/highlights.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/nginx/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/nickel/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/ninja/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/nix/indents.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/php_only/folds.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/php_only/highlights.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/php_only/indents.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/php_only/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/php_only/locals.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/printf/highlights.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/prisma/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/problog/folds.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/problog/highlights.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/problog/indents.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/problog/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/prolog/folds.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/prolog/highlights.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/prolog/indents.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/prolog/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/proto/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/qmljs/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/ralph/highlights.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/ralph/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/rasi/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/readline/folds.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/readline/highlights.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/readline/indents.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/readline/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/robot/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/robots/highlights.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/robots/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/roc/highlights.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/roc/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/roc/locals.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/scss/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/slint/folds.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/slint/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/slint/locals.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/smithy/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/snakemake/indents.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/solidity/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/sourcepawn/highlights.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/sourcepawn/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/sourcepawn/locals.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/svelte/locals.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/swift/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/systemverilog/folds.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/systemverilog/highlights.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/systemverilog/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/tact/folds.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/tact/highlights.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/tact/indents.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/tact/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/tact/locals.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/tcl/folds.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/tcl/highlights.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/tcl/indents.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/tcl/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/templ/folds.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/textproto/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/tmux/highlights.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/tmux/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/typespec/highlights.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/typespec/indents.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/typespec/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/typst/folds.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/typst/highlights.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/typst/indents.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/typst/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/usd/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/vala/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/vento/highlights.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/vento/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/vhdl/folds.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/vhdl/highlights.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/vhdl/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/vhs/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/wgsl/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/wing/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/wit/folds.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/wit/highlights.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/wit/injections.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/zathurarc/highlights.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/zathurarc/injections.scm create mode 100755 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/scripts/ci-install.sh create mode 100755 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/scripts/format-queries.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/angular/defer.html create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/angular/for.html create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/angular/if-else.html create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/angular/switch-case.html create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/angular_spec.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/dot/test.dot create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/dot_spec.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/meson/cond.meson create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/meson/dict.meson create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/meson/func.meson create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/meson/list.meson create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/meson/loop.meson create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/meson/meson.build create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/meson/method.meson create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/meson/ternary.meson create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/meson_spec.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/nix/conds.nix create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/nix/general.nix create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/nix_spec.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/php/issue-4848.php create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/php/issue-6888.php create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/python/parenthesized_conditions.py create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/query/test.scm create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/query_spec.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/rust/tuple.rs create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/yuck/indent.yuck create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/yuck_spec.lua create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/query/highlights/latex/test.tex create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/query/highlights/php/keywords.php create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/query/highlights/php/types.php create mode 100644 config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/query/highlights/php/variables.php create mode 100644 config/neovim/store/lazy-plugins/rustaceanvim/lua/rustaceanvim/neotest/parser.lua create mode 100644 config/neovim/store/lazy-plugins/rustaceanvim/rustaceanvim-5.2.0-1-unstable-5.2.0-1-rocks/manifest create mode 100644 config/neovim/store/lazy-plugins/rustaceanvim/rustaceanvim-5.2.0-1-unstable-5.2.0-1-rocks/rustaceanvim/5.2.0-1/doc/mason.txt create mode 100644 config/neovim/store/lazy-plugins/rustaceanvim/rustaceanvim-5.2.0-1-unstable-5.2.0-1-rocks/rustaceanvim/5.2.0-1/doc/rustaceanvim.txt create mode 100644 config/neovim/store/lazy-plugins/rustaceanvim/rustaceanvim-5.2.0-1-unstable-5.2.0-1-rocks/rustaceanvim/5.2.0-1/ftplugin/rust.lua create mode 100644 config/neovim/store/lazy-plugins/rustaceanvim/rustaceanvim-5.2.0-1-unstable-5.2.0-1-rocks/rustaceanvim/5.2.0-1/ftplugin/rust.vim create mode 100644 config/neovim/store/lazy-plugins/rustaceanvim/rustaceanvim-5.2.0-1-unstable-5.2.0-1-rocks/rustaceanvim/5.2.0-1/ftplugin/toml.lua create mode 100644 config/neovim/store/lazy-plugins/rustaceanvim/rustaceanvim-5.2.0-1-unstable-5.2.0-1-rocks/rustaceanvim/5.2.0-1/rock_manifest create mode 100644 config/neovim/store/lazy-plugins/rustaceanvim/rustaceanvim-5.2.0-1-unstable-5.2.0-1-rocks/rustaceanvim/5.2.0-1/rustaceanvim-5.2.0-1.rockspec create mode 100644 config/neovim/store/lazy-plugins/rustaceanvim/rustaceanvim-5.2.0-1.rockspec create mode 100644 config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/manifest create mode 100644 config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/autoload/health/telescope.vim create mode 100644 config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/data/memes/planets/earth create mode 100644 config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/data/memes/planets/jupiter create mode 100644 config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/data/memes/planets/mars create mode 100644 config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/data/memes/planets/mercury create mode 100644 config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/data/memes/planets/moon create mode 100644 config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/data/memes/planets/neptune create mode 100644 config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/data/memes/planets/pluto create mode 100644 config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/data/memes/planets/saturn create mode 100644 config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/data/memes/planets/uranus create mode 100644 config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/data/memes/planets/venus create mode 100644 config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/doc/secret.txt create mode 100644 config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/doc/telescope.txt create mode 100644 config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/doc/telescope_changelog.txt create mode 100644 config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/ftplugin/TelescopePrompt.lua create mode 100644 config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/ftplugin/TelescopeResults.lua create mode 100644 config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/plugin/telescope.lua create mode 100644 config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/rock_manifest create mode 100644 config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/scripts/gendocs.lua create mode 100644 config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/scripts/minimal_init.vim create mode 100644 config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/telescope.nvim-scm-1.rockspec create mode 100644 config/neovim/store/lazy-plugins/todo-comments.nvim/.editorconfig create mode 100644 config/neovim/store/lazy-plugins/todo-comments.nvim/.github/ISSUE_TEMPLATE/config.yml create mode 100644 config/neovim/store/lazy-plugins/todo-comments.nvim/.github/PULL_REQUEST_TEMPLATE.md create mode 100644 config/neovim/store/lazy-plugins/todo-comments.nvim/.github/dependabot.yml create mode 100644 config/neovim/store/lazy-plugins/todo-comments.nvim/.github/workflows/labeler.yml create mode 100644 config/neovim/store/lazy-plugins/todo-comments.nvim/.github/workflows/pr.yml create mode 100644 config/neovim/store/lazy-plugins/todo-comments.nvim/.github/workflows/stale.yml create mode 100644 config/neovim/store/lazy-plugins/todo-comments.nvim/.github/workflows/update.yml create mode 100644 config/neovim/store/lazy-plugins/todo-comments.nvim/lua/todo-comments/fzf.lua create mode 100644 config/neovim/store/lazy-plugins/trouble.nvim/.editorconfig create mode 100644 config/neovim/store/lazy-plugins/trouble.nvim/.github/ISSUE_TEMPLATE/config.yml create mode 100644 config/neovim/store/lazy-plugins/trouble.nvim/.github/PULL_REQUEST_TEMPLATE.md create mode 100644 config/neovim/store/lazy-plugins/trouble.nvim/.github/dependabot.yml create mode 100644 config/neovim/store/lazy-plugins/trouble.nvim/.github/workflows/labeler.yml create mode 100644 config/neovim/store/lazy-plugins/trouble.nvim/.github/workflows/pr.yml create mode 100644 config/neovim/store/lazy-plugins/trouble.nvim/.github/workflows/stale.yml create mode 100644 config/neovim/store/lazy-plugins/trouble.nvim/.github/workflows/update.yml create mode 100644 config/neovim/store/lazy-plugins/trouble.nvim/.neoconf.json create mode 100644 config/neovim/store/lazy-plugins/trouble.nvim/docs/examples.md create mode 100644 config/neovim/store/lazy-plugins/trouble.nvim/docs/filter.md create mode 100644 config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/api.lua create mode 100644 config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/async.lua create mode 100644 config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/cache.lua create mode 100644 config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/command.lua create mode 100644 config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/config/actions.lua create mode 100644 config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/config/highlights.lua create mode 100644 config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/config/init.lua create mode 100644 config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/config/parser.lua create mode 100644 config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/docs.lua create mode 100644 config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/filter.lua create mode 100644 config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/format.lua create mode 100644 config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/item.lua create mode 100644 config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/promise.lua create mode 100644 config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/sort.lua create mode 100644 config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/sources/diagnostics.lua create mode 100644 config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/sources/fzf.lua create mode 100644 config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/sources/init.lua create mode 100644 config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/sources/lsp.lua create mode 100644 config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/sources/qf.lua create mode 100644 config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/sources/telescope.lua create mode 100644 config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/spec.lua create mode 100644 config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/tree.lua create mode 100644 config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/view/indent.lua create mode 100644 config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/view/init.lua create mode 100644 config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/view/main.lua create mode 100644 config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/view/preview.lua create mode 100644 config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/view/render.lua create mode 100644 config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/view/section.lua create mode 100644 config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/view/text.lua create mode 100644 config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/view/treesitter.lua create mode 100644 config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/view/window.lua create mode 100755 config/neovim/store/lazy-plugins/trouble.nvim/scripts/docs create mode 100755 config/neovim/store/lazy-plugins/trouble.nvim/scripts/test create mode 100644 config/neovim/store/lazy-plugins/trouble.nvim/tests/minit.lua create mode 100644 config/neovim/store/lazy-plugins/trouble.nvim/tests/parser_spec.lua create mode 100644 config/neovim/store/lazy-plugins/trouble.nvim/tests/spec_spec.lua create mode 100644 config/neovim/store/lazy-plugins/vimtex/autoload/vimtex/syntax/p/apacite.vim create mode 100644 config/neovim/store/lazy-plugins/vimtex/autoload/vimtex/syntax/p/robust_externalize.vim create mode 100644 config/neovim/store/lazy-plugins/vimtex/test/example-markdown/after/syntax/markdown.vim create mode 100644 config/neovim/store/lazy-plugins/vimtex/test/example-markdown/syntax/markdown.vim create mode 100644 config/neovim/store/lazy-plugins/vimtex/test/example-markdown/test.lua create mode 100644 config/neovim/store/lazy-plugins/vimtex/test/example-markdown/test.md create mode 100644 config/neovim/store/lazy-plugins/vimtex/test/test-completion-bibtex/test_apacite.tex create mode 100644 config/neovim/store/lazy-plugins/vimtex/test/test-completion-bibtex/test_apacite.vim create mode 100644 config/neovim/store/lazy-plugins/vimtex/test/test-syntax/test-apacite.tex create mode 100644 config/neovim/store/lazy-plugins/vimtex/test/test-syntax/test-apacite.vim create mode 100644 config/neovim/store/lazy-plugins/vimtex/test/test-syntax/test-robust-externalize.tex create mode 100644 config/neovim/store/lazy-plugins/vimtex/test/test-syntax/test-robust-externalize.vim create mode 100644 config/neovim/store/lazy-plugins/which-key.nvim/.editorconfig create mode 100644 config/neovim/store/lazy-plugins/which-key.nvim/.github/.release-please-manifest.json create mode 100644 config/neovim/store/lazy-plugins/which-key.nvim/.github/ISSUE_TEMPLATE/config.yml create mode 100644 config/neovim/store/lazy-plugins/which-key.nvim/.github/PULL_REQUEST_TEMPLATE.md create mode 100644 config/neovim/store/lazy-plugins/which-key.nvim/.github/dependabot.yml create mode 100644 config/neovim/store/lazy-plugins/which-key.nvim/.github/release-please-config.json create mode 100644 config/neovim/store/lazy-plugins/which-key.nvim/.github/workflows/labeler.yml create mode 100644 config/neovim/store/lazy-plugins/which-key.nvim/.github/workflows/pr.yml create mode 100644 config/neovim/store/lazy-plugins/which-key.nvim/.github/workflows/stale.yml create mode 100644 config/neovim/store/lazy-plugins/which-key.nvim/.github/workflows/update.yml create mode 100644 config/neovim/store/lazy-plugins/which-key.nvim/NEWS.md create mode 100644 config/neovim/store/lazy-plugins/which-key.nvim/lua/which-key/buf.lua create mode 100644 config/neovim/store/lazy-plugins/which-key.nvim/lua/which-key/docs.lua create mode 100644 config/neovim/store/lazy-plugins/which-key.nvim/lua/which-key/extras.lua create mode 100644 config/neovim/store/lazy-plugins/which-key.nvim/lua/which-key/icons.lua create mode 100644 config/neovim/store/lazy-plugins/which-key.nvim/lua/which-key/migrate.lua create mode 100644 config/neovim/store/lazy-plugins/which-key.nvim/lua/which-key/node.lua create mode 100644 config/neovim/store/lazy-plugins/which-key.nvim/lua/which-key/plugins/presets.lua create mode 100644 config/neovim/store/lazy-plugins/which-key.nvim/lua/which-key/presets.lua create mode 100644 config/neovim/store/lazy-plugins/which-key.nvim/lua/which-key/state.lua create mode 100644 config/neovim/store/lazy-plugins/which-key.nvim/lua/which-key/triggers.lua create mode 100644 config/neovim/store/lazy-plugins/which-key.nvim/lua/which-key/win.lua create mode 100644 config/neovim/store/lazy-plugins/which-key.nvim/plugin/which-key.lua create mode 100755 config/neovim/store/lazy-plugins/which-key.nvim/scripts/docs create mode 100755 config/neovim/store/lazy-plugins/which-key.nvim/scripts/test create mode 100644 config/neovim/store/lazy-plugins/which-key.nvim/tests/buf_spec.lua create mode 100644 config/neovim/store/lazy-plugins/which-key.nvim/tests/helpers.lua create mode 100644 config/neovim/store/lazy-plugins/which-key.nvim/tests/layout_spec.lua create mode 100644 config/neovim/store/lazy-plugins/which-key.nvim/tests/mappings_spec.lua create mode 100644 config/neovim/store/lazy-plugins/which-key.nvim/tests/minit.lua create mode 100644 config/neovim/store/lazy-plugins/which-key.nvim/tests/util_spec.lua create mode 100644 config/neovim/store/nvim-treesitter/queries/ada/injections.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/agda/injections.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/apex/injections.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/bibtex/injections.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/blueprint/injections.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/cmake/injections.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/commonlisp/injections.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/cooklang/injections.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/corn/injections.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/diff/injections.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/ebnf/injections.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/editorconfig/folds.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/editorconfig/highlights.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/editorconfig/injections.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/elm/folds.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/erlang/injections.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/fortran/injections.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/fsh/injections.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/func/injections.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/fusion/injections.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/gitignore/injections.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/glimmer/injections.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/goctl/folds.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/goctl/highlights.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/goctl/indents.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/goctl/injections.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/gotmpl/folds.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/gotmpl/locals.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/hack/injections.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/helm/folds.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/helm/locals.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/hoon/injections.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/idl/indents.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/ini/injections.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/jsonnet/injections.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/liquidsoap/injections.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/llvm/injections.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/mermaid/injections.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/mlir/injections.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/nginx/folds.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/nginx/highlights.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/nginx/injections.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/nickel/injections.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/ninja/injections.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/nix/indents.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/powershell/folds.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/powershell/highlights.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/powershell/indents.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/powershell/injections.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/powershell/locals.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/prisma/injections.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/problog/folds.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/problog/highlights.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/problog/indents.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/problog/injections.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/prolog/folds.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/prolog/highlights.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/prolog/indents.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/prolog/injections.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/proto/injections.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/ralph/highlights.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/ralph/injections.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/rescript/folds.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/rescript/highlights.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/rescript/indents.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/rescript/injections.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/rescript/locals.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/robot/injections.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/robots/highlights.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/robots/injections.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/scss/injections.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/smithy/injections.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/solidity/injections.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/swift/injections.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/systemverilog/folds.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/systemverilog/highlights.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/systemverilog/injections.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/tcl/injections.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/templ/folds.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/textproto/injections.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/usd/injections.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/vala/injections.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/vhdl/folds.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/vhdl/highlights.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/vhdl/injections.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/vhs/injections.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/vrl/folds.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/vrl/highlights.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/vrl/indents.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/vrl/injections.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/vrl/locals.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/wgsl/injections.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/wing/injections.scm create mode 100644 config/neovim/store/nvim-treesitter/queries/wit/folds.scm create mode 100644 config/neovim/store/nvim-treesitter/tests/indent/angular/defer.html create mode 100644 config/neovim/store/nvim-treesitter/tests/indent/angular/for.html create mode 100644 config/neovim/store/nvim-treesitter/tests/indent/angular/if-else.html create mode 100644 config/neovim/store/nvim-treesitter/tests/indent/angular/switch-case.html create mode 100644 config/neovim/store/nvim-treesitter/tests/indent/angular_spec.lua create mode 100644 config/neovim/store/nvim-treesitter/tests/indent/nix/conds.nix create mode 100644 config/neovim/store/nvim-treesitter/tests/indent/nix/general.nix create mode 100644 config/neovim/store/nvim-treesitter/tests/indent/nix_spec.lua create mode 100644 config/neovim/store/nvim-treesitter/tests/indent/php/issue-6888.php create mode 100644 config/neovim/store/nvim-treesitter/tests/indent/python/parenthesized_conditions.py create mode 100644 config/neovim/store/nvim-treesitter/tests/indent/r/incomplete_pipe.R create mode 100644 config/neovim/store/nvim-treesitter/tests/indent/rescript/basic.res create mode 100644 config/neovim/store/nvim-treesitter/tests/indent/rescript/complex.res create mode 100644 config/neovim/store/nvim-treesitter/tests/indent/rescript/conditional.res create mode 100644 config/neovim/store/nvim-treesitter/tests/indent/rescript_spec.lua create mode 100644 config/neovim/store/nvim-treesitter/tests/query/injections/query/test-query-injections.scm create mode 100755 config/neovim/store/treesitter-parsers/parser/editorconfig.so create mode 100755 config/neovim/store/treesitter-parsers/parser/goctl.so create mode 100755 config/neovim/store/treesitter-parsers/parser/nginx.so create mode 100755 config/neovim/store/treesitter-parsers/parser/powershell.so create mode 100755 config/neovim/store/treesitter-parsers/parser/problog.so create mode 100755 config/neovim/store/treesitter-parsers/parser/prolog.so create mode 100755 config/neovim/store/treesitter-parsers/parser/ralph.so create mode 100755 config/neovim/store/treesitter-parsers/parser/rescript.so create mode 100755 config/neovim/store/treesitter-parsers/parser/robots.so create mode 100755 config/neovim/store/treesitter-parsers/parser/systemverilog.so create mode 100755 config/neovim/store/treesitter-parsers/parser/vhdl.so create mode 100755 config/neovim/store/treesitter-parsers/parser/vrl.so create mode 100644 config/neovim/store/treesitter-parsers/queries/ada/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/ada/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/ada/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/ada/textobjects.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/agda/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/apex/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/apex/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/apex/tags.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/arduino/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/arduino/tags.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/asm/asm/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/asm/asm/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/astro/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/astro/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/authzed/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/authzed/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/awk/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/bash/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/bass/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/bass/helix/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/bass/helix/highlights.scm.tmpl create mode 100644 config/neovim/store/treesitter-parsers/queries/bass/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/bass/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/bass/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/bass/locals.scm.tmpl create mode 100644 config/neovim/store/treesitter-parsers/queries/bass/nvim/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/bass/nvim/highlights.scm.tmpl create mode 100644 config/neovim/store/treesitter-parsers/queries/bass/nvim/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/bibtex/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/bibtex/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/bibtex/tags.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/bicep/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/bicep/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/bicep/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/bicep/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/bicep/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/bitbake/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/bitbake/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/bitbake/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/bitbake/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/bitbake/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/blueprint/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/bp/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/bp/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/bp/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/bp/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/bp/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/c/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/c/tags.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/c_sharp/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/c_sharp/tags.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/cairo/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/cairo/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/cairo/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/cairo/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/cairo/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/capnp/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/capnp/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/capnp/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/capnp/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/capnp/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/chatito/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/chatito/tags.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/clojure/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/commonlisp/tags.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/corn/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/corn/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/corn/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/corn/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/cpon/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/cpon/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/cpon/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/cpon/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/cpon/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/cpp/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/cpp/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/cpp/tags.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/css/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/csv/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/cue/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/cue/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/cue/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/cue/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/cue/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/d/helix-highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/d/helix-indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/d/helix-injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/d/helix-textobjects.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/d/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/d/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/d/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/d/nova-folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/d/nova-highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/d/nova-symbols.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/d/textobjects.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/dart/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/dart/test.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/devicetree/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/diff/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/disassembly/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/djot/context.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/djot/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/djot/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/djot/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/djot/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/djot/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/djot/textobjects.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/dockerfile/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/dot/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/dot/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/doxygen/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/doxygen/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/doxygen/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/earthfile/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/earthfile/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/ebnf/ebnf/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/editorconfig/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/eex/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/eex/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/elixir/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/elixir/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/elixir/tags.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/elm/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/elm/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/elm/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/elm/tags.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/elsa/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/elsa/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/elsa/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/elsa/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/elsa/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/elvish/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/elvish/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/embedded_template/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/embedded_template/injections-ejs.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/embedded_template/injections-erb.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/erlang/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/facility/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/facility/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/facility/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/facility/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/faust/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/faust/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/faust/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/fidl/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/fidl/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/fidl/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/firrtl/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/firrtl/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/firrtl/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/firrtl/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/firrtl/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/fish/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/foam/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/foam/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/foam/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/foam/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/foam/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/foam/textobjects.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/foam/textsubjects-container-outer.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/foam/textsubjects-smart.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/forth/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/fortran/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/fortran/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/fortran/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/fsh/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/func/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/fusion/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/fusion/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/fusion/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/fusion/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/gdshader/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/git_config/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/git_rebase/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/gitattributes/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/gitcommit/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/gitcommit/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/gleam/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/gleam/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/gleam/tags.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/glimmer/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/glimmer/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/glimmer/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/glimmer/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/glsl/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/gn/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/gn/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/gn/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/gn/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/gn/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/gnuplot/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/gnuplot/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/gnuplot/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/go/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/go/structure.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/go/tags.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/gomod/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/gomod/structure.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/gosum/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/gotmpl/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/gowork/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/gpg/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/graphql/graphql/formatter.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/graphql/graphql/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/groovy/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/groovy/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/groovy/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/hack/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/hare/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/hare/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/hare/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/hare/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/hare/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/haskell/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/haskell/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/haskell/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/heex/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/heex/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/hjson/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/hocon/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/hoon/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/html/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/html/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/htmldjango/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/htmldjango/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/http/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/http/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/hurl/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/hurl/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/hurl/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/hurl/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/hyprlang/hyprlang/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/hyprlang/hyprlang/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/hyprlang/hyprlang/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/hyprlang/hyprlang/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/idl/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/idl/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/idl/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/ini/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/ini/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/inko/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/inko/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/inko/tags.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/ispc/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/ispc/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/janet_simple/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/java/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/java/tags.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/javascript/highlights-jsx.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/javascript/highlights-params.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/javascript/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/javascript/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/javascript/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/javascript/tags.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/jsdoc/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/json/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/json5/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/jsonnet/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/jsonnet/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/jsonnet/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/just/just/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/just/just/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/just/just/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/just/just/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/just/just/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/just/just/textobjects.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/kconfig/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/kconfig/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/kconfig/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/kconfig/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/kconfig/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/kdl/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/kdl/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/kdl/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/kdl/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/kdl/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/kotlin/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/koto/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/koto/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/koto/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/koto/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/kusto/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/lalrpop/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/lalrpop/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/lalrpop/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/leo/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/leo/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/linkerscript/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/linkerscript/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/linkerscript/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/linkerscript/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/linkerscript/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/liquid/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/liquid/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/liquidsoap/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/liquidsoap/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/llvm/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/lua/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/lua/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/lua/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/lua/tags.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/luadoc/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/luap/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/luau/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/luau/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/luau/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/luau/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/luau/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/m68k/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/m68k/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/make/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/markdown/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/markdown/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/markdown_inline/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/markdown_inline/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/matlab/emacs/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/matlab/emacs/textobjects.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/matlab/helix/context.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/matlab/helix/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/matlab/helix/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/matlab/helix/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/matlab/helix/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/matlab/helix/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/matlab/helix/textobjects.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/matlab/neovim/context.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/matlab/neovim/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/matlab/neovim/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/matlab/neovim/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/matlab/neovim/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/matlab/neovim/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/matlab/neovim/tags.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/matlab/neovim/textobjects.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/mermaid/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/meson/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/meson/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/mlir/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/mlir/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/nasm/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/nasm/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/nasm/textobjects.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/nginx/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/nginx/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/nginx/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/nickel/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/nickel/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/nim/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/ninja/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/ninja/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/ninja/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/nix/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/nix/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/nix/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/nqc/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/nqc/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/nqc/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/nqc/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/nqc/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/objc/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/objc/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/objc/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/objc/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/objc/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/objdump/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/ocamllex/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/ocamllex/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/odin/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/odin/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/odin/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/odin/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/odin/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/org/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/org/markup.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/pascal/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/pascal/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/pem/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/perl/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/perl/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/perl/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/po/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/po/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/po/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/pod/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/poe_filter/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/pony/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/pony/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/pony/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/pony/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/pony/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/pony/tags.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/powershell/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/printf/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/prisma/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/problog/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/prolog/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/properties/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/properties/tags.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/proto/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/proto/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/prql/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/prql/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/psv/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/pug/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/puppet/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/puppet/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/puppet/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/puppet/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/puppet/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/purescript/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/purescript/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/purescript/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/purescript/textobjects.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/pymanifest/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/python/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/python/tags.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/ql/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/ql/tags.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/qmldir/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/qmldir/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/qmljs/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/qmljs/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/query/query/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/query/query/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/query/query/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/r/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/r/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/r/tags.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/racket/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/racket/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/racket/tags.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/ralph/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/ralph/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/rasi/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/rasi/indent.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/rasi/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/rbs/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/rbs/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/rbs/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/rbs/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/re2c/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/re2c/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/re2c/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/re2c/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/re2c/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/readline/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/readline/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/readline/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/regex/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/rego/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/rego/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/requirements/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/rescript/rescript/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/rescript/rescript/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/rescript/rescript/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/rescript/rescript/textobjects.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/rnoweb/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/robot/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/robot/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/robot/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/robots/highlight.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/robots/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/roc/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/roc/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/roc/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/roc/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/roc/tags.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/roc/textobjects.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/ron/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/ron/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/ron/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/ron/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/ron/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/ruby/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/ruby/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/ruby/tags.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/rust/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/rust/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/rust/tags.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/scala/scala/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/scala/scala/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/scfg/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/scheme/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/scss/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/smali/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/smali/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/smali/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/smali/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/smali/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/smithy/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/snakemake/snakemake/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/snakemake/snakemake/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/snakemake/snakemake/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/snakemake/snakemake/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/snakemake/snakemake/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/solidity/highlights-nvim.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/solidity/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/solidity/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/solidity/tags.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/soql/highlights-distinct.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/soql/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/sosl/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/sourcepawn/context.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/sourcepawn/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/sourcepawn/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/sourcepawn/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/sourcepawn/tags.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/sql/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/sql/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/squirrel/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/squirrel/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/squirrel/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/squirrel/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/squirrel/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/ssh_config/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/ssh_config/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/starlark/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/starlark/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/starlark/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/starlark/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/starlark/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/strace/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/supercollider/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/supercollider/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/supercollider/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/supercollider/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/svelte/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/svelte/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/svelte/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/svelte/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/svelte/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/swift/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/swift/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/swift/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/swift/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/swift/tags.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/swift/textobjects.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/systemtap/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/systemtap/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/t32/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/t32/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/t32/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/t32/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/t32/tags.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/tablegen/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/tablegen/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/tablegen/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/tablegen/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/tablegen/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/tact/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/tact/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/tact/tags.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/tcl/tcl/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/tcl/tcl/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/tcl/tcl/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/teal/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/teal/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/teal/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/templ/templ/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/templ/templ/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/templ/templ/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/templ/templ/structure.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/textproto/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/textproto/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/textproto/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/thrift/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/thrift/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/thrift/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/thrift/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/thrift/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/tiger/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/tiger/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/tiger/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/tiger/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/tiger/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/tiger/tags.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/tiger/textobjects.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/tlaplus/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/tlaplus/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/todotxt/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/toml/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/tsv/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/twig/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/twig/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/typespec/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/typespec/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/typespec/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/typoscript/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/typst/typst/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/typst/typst/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/udev/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/udev/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/udev/tags.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/ungrammar/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/ungrammar/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/ungrammar/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/ungrammar/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/ungrammar/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/unison/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/usd/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/uxntal/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/uxntal/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/uxntal/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/uxntal/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/uxntal/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/v/helix.highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/v/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/vala/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/vala/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/vala/nvim/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/vento/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/vento/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/vhdl/Helix/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/vhdl/Neovim/context.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/vhdl/Neovim/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/vhdl/Neovim/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/vhdl/Neovim/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/vhdl/Neovim/textobjects.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/vhs/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/vim/vim/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/vim/vim/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/vim/vim/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/vimdoc/vimdoc/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/vimdoc/vimdoc/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/vrl/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/vrl/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/vrl/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/vrl/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/vrl/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/vue/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/vue/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/vue/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/vue/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/wgsl/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/wgsl/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/wing/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/wing/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/wing/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/wit/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/wit/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/xcompose/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/yaml/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/yang/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/yang/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/yang/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/yang/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/yuck/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/yuck/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/yuck/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/yuck/injections.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/yuck/locals.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/yuck/nvim-highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/zig/folds.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/zig/highlights.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/zig/indents.scm create mode 100644 config/neovim/store/treesitter-parsers/queries/zig/injections.scm diff --git a/config/neovim/store/lazy-plugins/better-escape.nvim/.github/workflows/release_please.yml b/config/neovim/store/lazy-plugins/better-escape.nvim/.github/workflows/release_please.yml new file mode 100644 index 00000000..e0c9ad7c --- /dev/null +++ b/config/neovim/store/lazy-plugins/better-escape.nvim/.github/workflows/release_please.yml @@ -0,0 +1,17 @@ +name: Release Please + +on: + push: + branches: + - master + +jobs: + release: + name: Release + runs-on: ubuntu-latest + steps: + - uses: google-github-actions/release-please-action@v3 + with: + token: ${{ secrets.PAT }} + release-type: simple + package-name: better-escape.nvim diff --git a/config/neovim/store/lazy-plugins/better-escape.nvim/CHANGELOG.md b/config/neovim/store/lazy-plugins/better-escape.nvim/CHANGELOG.md new file mode 100644 index 00000000..7e5f789b --- /dev/null +++ b/config/neovim/store/lazy-plugins/better-escape.nvim/CHANGELOG.md @@ -0,0 +1,43 @@ +# Changelog + +## [2.3.2](https://github.com/max397574/better-escape.nvim/compare/v2.3.1...v2.3.2) (2024-07-27) + + +### Bug Fixes + +* macro regression ([25a1400](https://github.com/max397574/better-escape.nvim/commit/25a14001e587ce3068b3b2204c330fdd5a09b877)) + +## [2.3.1](https://github.com/max397574/better-escape.nvim/compare/v2.3.0...v2.3.1) (2024-07-20) + + +### Bug Fixes + +* change nvim_input to nvim_feedkeys ([ea38a94](https://github.com/max397574/better-escape.nvim/commit/ea38a944837e00e4a9f62614cb46bdccf3cda976)) +* change nvim_input to nvim_feedkeys for function mappings ([ec832a0](https://github.com/max397574/better-escape.nvim/commit/ec832a05c1f6c7826cc209bede6fbc2d0d50b1c1)) +* other plugin's feedkeys ([9cbc693](https://github.com/max397574/better-escape.nvim/commit/9cbc6934e9258dc95405fcb3f7fdab499e5606be)) +* unmap after applying configuration, fixes https://github.com/max397574/better-escape.nvim/issues/89 ([975cceb](https://github.com/max397574/better-escape.nvim/commit/975cceb1d7b841f16731862132a0ffb2acda3f8b)) + +## [2.3.0](https://github.com/max397574/better-escape.nvim/compare/v2.2.0...v2.3.0) (2024-07-09) + + +### Features + +* add `default_mappings` option and update docs ([7b35162](https://github.com/max397574/better-escape.nvim/commit/7b351629d4f08039977e290961915d916a985aa3)) + + +### Bug Fixes + +* clear_mappings' postion ([3dbf3e1](https://github.com/max397574/better-escape.nvim/commit/3dbf3e1626d9180c4f42e3aa39dd47a1c046cd8b)) +* log the endkey not the startkey ([#74](https://github.com/max397574/better-escape.nvim/issues/74)) ([3b41a90](https://github.com/max397574/better-escape.nvim/commit/3b41a905799577e3259ead9056bcabb72dedf537)) + +## [2.2.0](https://github.com/max397574/better-escape.nvim/compare/v2.1.1...v2.2.0) (2024-07-08) + + +### Features + +* add release please ([769c1e2](https://github.com/max397574/better-escape.nvim/commit/769c1e2d349731cb0d78da440a68b50485140d64)) + + +### Bug Fixes + +* make the sequence <subkey> work ([#70](https://github.com/max397574/better-escape.nvim/issues/70)) ([9ba7653](https://github.com/max397574/better-escape.nvim/commit/9ba7653f376da79e858dc5f413157621d0b507c7)) diff --git a/config/neovim/store/lazy-plugins/catppuccin-nvim/lua/catppuccin/groups/integrations/grug_far.lua b/config/neovim/store/lazy-plugins/catppuccin-nvim/lua/catppuccin/groups/integrations/grug_far.lua new file mode 100644 index 00000000..1bee5055 --- /dev/null +++ b/config/neovim/store/lazy-plugins/catppuccin-nvim/lua/catppuccin/groups/integrations/grug_far.lua @@ -0,0 +1,9 @@ +local M = {} + +function M.get() + return { + GrugFarResultsMatch = { link = "IncSearch" }, + } +end + +return M diff --git a/config/neovim/store/lazy-plugins/catppuccin-nvim/lua/catppuccin/groups/integrations/nvim_surround.lua b/config/neovim/store/lazy-plugins/catppuccin-nvim/lua/catppuccin/groups/integrations/nvim_surround.lua new file mode 100644 index 00000000..51c5a355 --- /dev/null +++ b/config/neovim/store/lazy-plugins/catppuccin-nvim/lua/catppuccin/groups/integrations/nvim_surround.lua @@ -0,0 +1,9 @@ +local M = {} + +function M.get() + return { + NvimSurroundHighlight = { bg = U.darken(C.peach, 0.6, C.base), style = { "bold" } }, + } +end + +return M diff --git a/config/neovim/store/lazy-plugins/catppuccin-nvim/lua/catppuccin/groups/integrations/render_markdown.lua b/config/neovim/store/lazy-plugins/catppuccin-nvim/lua/catppuccin/groups/integrations/render_markdown.lua new file mode 100644 index 00000000..8b2f1b5f --- /dev/null +++ b/config/neovim/store/lazy-plugins/catppuccin-nvim/lua/catppuccin/groups/integrations/render_markdown.lua @@ -0,0 +1,27 @@ +local M = {} + +-- markdown.nvim highlight groups: +-- https://github.com/MeanderingProgrammer/markdown.nvim?tab=readme-ov-file#colors + +function M.get() + local groups = { + RenderMarkdownCode = { bg = C.surface0 }, + RenderMarkdownCodeInline = { bg = C.surface1 }, + RenderMarkdownBullet = { fg = C.sky }, + RenderMarkdownTableHead = { fg = C.blue }, + RenderMarkdownTableRow = { fg = C.lavender }, + } + + local syntax = require("catppuccin.groups.syntax").get() + local base = not O.transparent_background and C.base or nil + + for i = 1, 6 do + local color = syntax["rainbow" .. i].fg + groups["RenderMarkdownH" .. i] = { fg = color } + groups["RenderMarkdownH" .. i .. "Bg"] = { bg = U.darken(color, 0.30, base) } + end + + return groups +end + +return M diff --git a/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/bsfmt.lua b/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/bsfmt.lua new file mode 100644 index 00000000..6f3b3192 --- /dev/null +++ b/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/bsfmt.lua @@ -0,0 +1,10 @@ +---@type conform.FileFormatterConfig +return { + meta = { + url = "https://github.com/rokucommunity/brighterscript-formatter", + description = "A code formatter for BrighterScript (and BrightScript).", + }, + command = "bsfmt", + args = { "$FILENAME", "--write" }, + stdin = false, +} diff --git a/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/caramel_fmt.lua b/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/caramel_fmt.lua new file mode 100644 index 00000000..9640c157 --- /dev/null +++ b/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/caramel_fmt.lua @@ -0,0 +1,10 @@ +---@type conform.FileFormatterConfig +return { + meta = { + url = "https://caramel.run/manual/reference/cli/fmt.html", + description = "Format Caramel code.", + }, + command = "caramel", + args = { "fmt", "$FILENAME" }, + stdin = false, +} diff --git a/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/crlfmt.lua b/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/crlfmt.lua new file mode 100644 index 00000000..93600f19 --- /dev/null +++ b/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/crlfmt.lua @@ -0,0 +1,10 @@ +---@type conform.FileFormatterConfig +return { + meta = { + url = "https://github.com/cockroachdb/crlfmt", + description = "Formatter for CockroachDB's additions to the Go style guide.", + }, + command = "crlfmt", + args = { "-w", "$FILENAME" }, + stdin = false, +} diff --git a/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/d2.lua b/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/d2.lua new file mode 100644 index 00000000..2858e805 --- /dev/null +++ b/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/d2.lua @@ -0,0 +1,9 @@ +---@type conform.FileFormatterConfig +return { + meta = { + url = "https://github.com/terrastruct/d2", + description = "D2 is a modern diagram scripting language that turns text to diagrams.", + }, + command = "d2", + args = { "fmt", "-" }, +} diff --git a/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/dcm_fix.lua b/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/dcm_fix.lua new file mode 100644 index 00000000..1f0426e3 --- /dev/null +++ b/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/dcm_fix.lua @@ -0,0 +1,10 @@ +---@type conform.FileFormatterConfig +return { + meta = { + url = "https://dcm.dev/docs/cli/formatting/fix/", + description = "Fixes issues produced by dcm analyze, dcm check-unused-code or dcm check-dependencies commands.", + }, + command = "dcm", + args = { "fix", "$FILENAME" }, + stdin = false, +} diff --git a/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/dcm_format.lua b/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/dcm_format.lua new file mode 100644 index 00000000..04adf676 --- /dev/null +++ b/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/dcm_format.lua @@ -0,0 +1,10 @@ +---@type conform.FileFormatterConfig +return { + meta = { + url = "https://dcm.dev/docs/cli/formatting/format/", + description = "Formats .dart files.", + }, + command = "dcm", + args = { "format", "$FILENAME" }, + stdin = false, +} diff --git a/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/docformatter.lua b/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/docformatter.lua new file mode 100644 index 00000000..fa2edb01 --- /dev/null +++ b/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/docformatter.lua @@ -0,0 +1,10 @@ +---@type conform.FileFormatterConfig +return { + meta = { + url = "https://pypi.org/project/docformatter/", + description = "docformatter automatically formats docstrings to follow a subset of the PEP 257 conventions.", + }, + command = "docformatter", + args = { "--in-place", "$FILENAME" }, + stdin = false, +} diff --git a/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/docstrfmt.lua b/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/docstrfmt.lua new file mode 100644 index 00000000..28522118 --- /dev/null +++ b/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/docstrfmt.lua @@ -0,0 +1,9 @@ +---@type conform.FileFormatterConfig +return { + meta = { + url = "https://github.com/LilSpazJoekp/docstrfmt", + description = "reStructuredText formatter.", + }, + command = "docstrfmt", + stdin = true, +} diff --git a/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/doctoc.lua b/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/doctoc.lua new file mode 100644 index 00000000..c27d11dc --- /dev/null +++ b/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/doctoc.lua @@ -0,0 +1,12 @@ +---@type conform.FileFormatterConfig +return { + meta = { + url = "https://github.com/thlorenz/doctoc", + description = "Generates table of contents for markdown files inside local git repository.", + }, + command = "doctoc", + stdin = false, + args = { + "$FILENAME", + }, +} diff --git a/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/efmt.lua b/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/efmt.lua new file mode 100644 index 00000000..59ebd387 --- /dev/null +++ b/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/efmt.lua @@ -0,0 +1,10 @@ +---@type conform.FileFormatterConfig +return { + meta = { + url = "https://github.com/sile/efmt", + description = "Erlang code formatter.", + }, + command = "efmt", + args = { "-" }, + stdin = true, +} diff --git a/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/erlfmt.lua b/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/erlfmt.lua new file mode 100644 index 00000000..ddcd1e2d --- /dev/null +++ b/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/erlfmt.lua @@ -0,0 +1,10 @@ +---@type conform.FileFormatterConfig +return { + meta = { + url = "https://github.com/WhatsApp/erlfmt", + description = "An automated code formatter for Erlang.", + }, + command = "erlfmt", + args = { "-w", "$FILENAME" }, + stdin = false, +} diff --git a/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/findent.lua b/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/findent.lua new file mode 100644 index 00000000..9f3a0020 --- /dev/null +++ b/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/findent.lua @@ -0,0 +1,9 @@ +---@type conform.FileFormatterConfig +return { + meta = { + url = "https://github.com/wvermin/findent", + description = "Indent, relabel and convert Fortran sources.", + }, + command = "findent", + stdin = true, +} diff --git a/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/format-queries.lua b/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/format-queries.lua new file mode 100644 index 00000000..42b4efa1 --- /dev/null +++ b/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/format-queries.lua @@ -0,0 +1,26 @@ +---@return nil|string +local function get_format_script() + return vim.api.nvim_get_runtime_file("scripts/format-queries.lua", false)[1] +end + +---@type conform.FileFormatterConfig +return { + meta = { + url = "https://github.com/nvim-treesitter/nvim-treesitter/blob/main/CONTRIBUTING.md#formatting", + description = "Tree-sitter query formatter.", + }, + condition = function() + local ok = pcall(vim.treesitter.language.inspect, "query") + return ok and get_format_script() ~= nil + end, + command = "nvim", + args = function() + local script = get_format_script() + assert(script) + -- Manually set the runtimepath to put nvim-treesitter first. The format-queries script relies + -- on the nvim-treesitter parser; the one bundled with Neovim may be outdated. + local rtp = vim.fn.fnamemodify(script, ":h:h") + return { "-c", "set rtp^=" .. rtp, "-l", script, "$FILENAME" } + end, + stdin = false, +} diff --git a/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/fprettify.lua b/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/fprettify.lua new file mode 100644 index 00000000..b63a828f --- /dev/null +++ b/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/fprettify.lua @@ -0,0 +1,14 @@ +---@type conform.FileFormatterConfig +return { + meta = { + url = "https://github.com/fortran-lang/fprettify", + description = "Auto-formatter for modern fortran source code.", + }, + command = "fprettify", + args = { + -- --silent is recommended for editor integrations https://github.com/fortran-lang/fprettify?tab=readme-ov-file#editor-integration + "--silent", + "-", + }, + stdin = true, +} diff --git a/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/gluon_fmt.lua b/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/gluon_fmt.lua new file mode 100644 index 00000000..964c4974 --- /dev/null +++ b/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/gluon_fmt.lua @@ -0,0 +1,10 @@ +---@type conform.FileFormatterConfig +return { + meta = { + url = "https://github.com/gluon-lang/gluon", + description = "Code formatting for the gluon programming language.", + }, + command = "gluon", + args = { "fmt", "$FILENAME" }, + stdin = false, +} diff --git a/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/grain_format.lua b/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/grain_format.lua new file mode 100644 index 00000000..c7a1b362 --- /dev/null +++ b/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/grain_format.lua @@ -0,0 +1,10 @@ +---@type conform.FileFormatterConfig +return { + meta = { + url = "https://grain-lang.org/docs/tooling/grain_cli#grain-format", + description = "Code formatter for the grain programming language.", + }, + command = "grain", + args = { "format", "$FILENAME" }, + stdin = true, +} diff --git a/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/hindent.lua b/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/hindent.lua new file mode 100644 index 00000000..bf2656a8 --- /dev/null +++ b/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/hindent.lua @@ -0,0 +1,10 @@ +---@type conform.FileFormatterConfig +return { + meta = { + url = "https://github.com/mihaimaruseac/hindent", + description = "Haskell pretty printer.", + }, + command = "hindent", + args = { "$FILENAME" }, + stdin = false, +} diff --git a/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/imba_fmt.lua b/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/imba_fmt.lua new file mode 100644 index 00000000..680bb918 --- /dev/null +++ b/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/imba_fmt.lua @@ -0,0 +1,11 @@ +---@type conform.FileFormatterConfig +return { + meta = { + url = "https://imba.io/", + description = "Code formatter for the Imba programming language.", + }, + command = "imba", + stdin = false, + -- `-f` is used to ignore the git status of the file. + args = { "fmt", "-f", "$FILENAME" }, +} diff --git a/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/kcl.lua b/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/kcl.lua new file mode 100644 index 00000000..adaa547d --- /dev/null +++ b/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/kcl.lua @@ -0,0 +1,10 @@ +---@type conform.FileFormatterConfig +return { + meta = { + url = "https://www.kcl-lang.io/docs/tools/cli/kcl/fmt", + description = "The KCL Format tool modifies the files according to the KCL code style.", + }, + command = "kcl", + args = { "fmt", "$FILENAME" }, + stdin = false, +} diff --git a/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/llf.lua b/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/llf.lua new file mode 100644 index 00000000..ca9aa96b --- /dev/null +++ b/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/llf.lua @@ -0,0 +1,9 @@ +---@type conform.FileFormatterConfig +return { + meta = { + url = "https://repo.or.cz/llf.git", + description = "A LaTeX reformatter / beautifier.", + }, + command = "llf", + stdin = true, +} diff --git a/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/lua-format.lua b/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/lua-format.lua new file mode 100644 index 00000000..683a4a44 --- /dev/null +++ b/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/lua-format.lua @@ -0,0 +1,9 @@ +---@type conform.FileFormatterConfig +return { + meta = { + url = "https://github.com/Koihik/LuaFormatter", + description = "Code formatter for Lua.", + }, + command = "lua-format", + stdin = true, +} diff --git a/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/nickel.lua b/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/nickel.lua new file mode 100644 index 00000000..e7cbaa48 --- /dev/null +++ b/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/nickel.lua @@ -0,0 +1,10 @@ +---@type conform.FileFormatterConfig +return { + meta = { + url = "https://nickel-lang.org/", + description = "Code formatter for the Nickel programming language.", + }, + command = "nickel", + stdin = false, + args = { "format", "$FILENAME" }, +} diff --git a/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/npm-groovy-lint.lua b/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/npm-groovy-lint.lua new file mode 100644 index 00000000..39d594cd --- /dev/null +++ b/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/npm-groovy-lint.lua @@ -0,0 +1,12 @@ +---@type conform.FileFormatterConfig +return { + meta = { + url = "https://github.com/nvuillam/npm-groovy-lint", + description = "Lint, format and auto-fix your Groovy / Jenkinsfile / Gradle files using command line.", + }, + command = "npm-groovy-lint", + args = { "--fix", "$FILENAME" }, + -- https://github.com/nvuillam/npm-groovy-lint/blob/14e2649ff7ca642dba3e901c17252b178bea8b1b/lib/groovy-lint.js#L48 + exit_codes = { 0, 1 }, -- 1 = expected error + stdin = false, +} diff --git a/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/pyink.lua b/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/pyink.lua new file mode 100644 index 00000000..cce1059d --- /dev/null +++ b/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/pyink.lua @@ -0,0 +1,15 @@ +---@type conform.FileFormatterConfig +return { + meta = { + url = "https://github.com/google/pyink", + description = "A Python formatter, forked from Black with a few different formatting behaviors.", + }, + command = "pyink", + args = { + "--stdin-filename", + "$FILENAME", + "--quiet", + "-", + }, + stdin = true, +} diff --git a/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/rstfmt.lua b/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/rstfmt.lua new file mode 100644 index 00000000..cd845bf3 --- /dev/null +++ b/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/rstfmt.lua @@ -0,0 +1,10 @@ +---@type conform.FileFormatterConfig +return { + meta = { + url = "https://github.com/dzhu/rstfmt", + description = "A formatter for reStructuredText.", + }, + command = "rstfmt", + args = { "$FILENAME" }, + stdin = false, +} diff --git a/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/sleek.lua b/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/sleek.lua new file mode 100644 index 00000000..ae680173 --- /dev/null +++ b/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/sleek.lua @@ -0,0 +1,9 @@ +---@type conform.FileFormatterConfig +return { + meta = { + url = "https://github.com/nrempel/sleek", + description = "Sleek is a CLI tool for formatting SQL.", + }, + command = "sleek", + stdin = true, +} diff --git a/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/stylish-haskell.lua b/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/stylish-haskell.lua new file mode 100644 index 00000000..be4f2e34 --- /dev/null +++ b/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/stylish-haskell.lua @@ -0,0 +1,10 @@ +---@type conform.FileFormatterConfig +return { + meta = { + url = "https://github.com/haskell/stylish-haskell", + description = "Haskell code prettifier.", + }, + command = "stylish-haskell", + args = {}, + stdin = true, +} diff --git a/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/swiftlint.lua b/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/swiftlint.lua new file mode 100644 index 00000000..1a6bd6ff --- /dev/null +++ b/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/swiftlint.lua @@ -0,0 +1,11 @@ +---@type conform.FileFormatterConfig +return { + meta = { + url = "https://github.com/realm/SwiftLint", + description = "A tool to enforce Swift style and conventions.", + }, + command = "swiftlint", + stdin = true, + args = { "lint", "--use-stdin", "--fix", "--format" }, + cwd = require("conform.util").root_file({ ".swiftlint.yml", "Package.swift" }), +} diff --git a/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/vsg.lua b/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/vsg.lua new file mode 100644 index 00000000..ca0059ed --- /dev/null +++ b/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/formatters/vsg.lua @@ -0,0 +1,52 @@ +local config_files = { + "vsg_config.yaml", + "vsg_config.yml", + "vsg_config.json", + "vsg.yaml", + "vsg.yml", + "vsg.json", + ".vsg_config.yaml", + ".vsg_config.yml", + ".vsg_config.json", + ".vsg.yaml", + ".vsg.yml", + ".vsg.json", +} + +local function find_config(dirname) + local paths = { + dirname, + (os.getenv("XDG_CONFIG_HOME") or os.getenv("HOME") .. "/.config") .. "/vsg", + } + + for _, path in ipairs(paths) do + local config = vim.fs.find(config_files, { + path = path, + upward = path == dirname, + })[1] + if config then + return config + end + end +end + +---@type conform.FileFormatterConfig +return { + meta = { + url = "https://github.com/jeremiah-c-leary/vhdl-style-guide", + description = "Style guide enforcement for VHDL.", + }, + command = "vsg", + stdin = false, + args = function(_, ctx) + local args = { "-of", "syntastic", "--fix", "-f", "$FILENAME" } + local config_file = find_config(ctx.dirname) + + if config_file then + table.insert(args, "-c") + table.insert(args, config_file) + end + + return args + end, +} diff --git a/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/ft_to_ext.lua b/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/ft_to_ext.lua new file mode 100644 index 00000000..7c6e1958 --- /dev/null +++ b/config/neovim/store/lazy-plugins/conform.nvim/lua/conform/ft_to_ext.lua @@ -0,0 +1,13 @@ +return { + elixir = "ex", + graphql = "gql", + javascript = "js", + javascriptreact = "jsx", + markdown = "md", + perl = "pl", + python = "py", + ruby = "rb", + rust = "rs", + typescript = "ts", + typescriptreact = "tsx", +} diff --git a/config/neovim/store/lazy-plugins/direnv.vim/LICENSE b/config/neovim/store/lazy-plugins/direnv.vim/LICENSE new file mode 100644 index 00000000..76939bc0 --- /dev/null +++ b/config/neovim/store/lazy-plugins/direnv.vim/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2019 zimbatm and contributors + +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. diff --git a/config/neovim/store/lazy-plugins/direnv.vim/README.md b/config/neovim/store/lazy-plugins/direnv.vim/README.md new file mode 100644 index 00000000..c827525f --- /dev/null +++ b/config/neovim/store/lazy-plugins/direnv.vim/README.md @@ -0,0 +1,29 @@ +direnv.vim - yup +================ + +This plugin aim is to integrate [Direnv][direnv] and (Neo)Vim. Because Vim can +shell out to other tools it's nice if the environment is in sync with the usual +shell. + +See detail in the [doc][]. + +Install +------- + +Clone the repository to load by [packages][]. + +```sh +git clone https://github.com/direnv/direnv.vim \ + ~/.vim/pack/foo/start/direnv.vim +``` + +Or use your favorite plugin manager. + +TODO +---- + +- Allow/deny authorization mechanism. + +[direnv]: https://direnv.net +[packages]: https://vimhelp.org/repeat.txt.html#packages +[doc]: https://github.com/direnv/direnv.vim/blob/master/doc/direnv.txt diff --git a/config/neovim/store/lazy-plugins/direnv.vim/autoload/direnv.vim b/config/neovim/store/lazy-plugins/direnv.vim/autoload/direnv.vim new file mode 100644 index 00000000..0c401c15 --- /dev/null +++ b/config/neovim/store/lazy-plugins/direnv.vim/autoload/direnv.vim @@ -0,0 +1,138 @@ +" direnv.vim - support for direnv +" Author: zimbatm & Hauleth +" Version: 0.3 + +scriptencoding utf-8 + +let s:direnv_cmd = get(g:, 'direnv_cmd', '/nix/store/1mrvvx2ygfyfz8sn3gg5f3qidvd9s8j1-direnv-2.34.0/bin/direnv') +let s:direnv_interval = get(g:, 'direnv_interval', 500) +let s:direnv_max_wait = get(g:, 'direnv_max_wait', 5) +let s:direnv_auto = get(g:, 'direnv_auto', 1) +let s:job_status = { 'running': 0, 'stdout': [], 'stderr': [] } + +if !exists('g:direnv_silent_load') + let g:direnv_silent_load = 0 +endif + +function! direnv#auto() abort + return s:direnv_auto +endfunction + +function! direnv#post_direnv_load() abort + call direnv#extra_vimrc#load() + doautocmd User DirenvLoaded +endfunction + +function! direnv#on_stdout(_, data, ...) abort + if a:data != [''] + call extend(s:job_status.stdout, a:data) + end +endfunction + +function! direnv#on_stderr(_, data, ...) abort + if a:data != [''] + call extend(s:job_status.stderr, a:data) + end +endfunction + +function! direnv#on_exit(_, status, ...) abort + let s:job_status.running = 0 + + if !g:direnv_silent_load + for l:m in s:job_status.stderr + if l:m isnot# '' + echom l:m + endif + endfor + endif + exec join(s:job_status.stdout, "\n") + call direnv#post_direnv_load() +endfunction + +function! direnv#job_status_reset() abort + let s:job_status['stdout'] = [] + let s:job_status['stderr'] = [] +endfunction + +function! direnv#err_cb(_, data) abort + call direnv#on_stderr(0, split(a:data, "\n", 1)) +endfunction + +function! direnv#out_cb(_, data) abort + call direnv#on_stdout(0, split(a:data, "\n", 1)) +endfunction + +function! direnv#exit_cb(_, status) abort + call direnv#on_exit(0, a:status) +endfunction + +if has('nvim') + let s:job = + \ { + \ 'on_stdout': 'direnv#on_stdout', + \ 'on_stderr': 'direnv#on_stderr', + \ 'on_exit': 'direnv#on_exit' + \ } +else + let s:job = + \ { + \ 'out_cb': 'direnv#out_cb', + \ 'err_cb': 'direnv#err_cb', + \ 'exit_cb': 'direnv#exit_cb' + \ } +endif + +function! direnv#export() abort + call s:export_debounced.do() +endfunction + +function! direnv#export_core() abort + if !executable(s:direnv_cmd) + echom 'No Direnv executable, add it to your PATH or set correct g:direnv_cmd' + return + endif + + let l:cmd = [s:direnv_cmd, 'export', 'vim'] + if has('nvim') + call jobstart(l:cmd, s:job) + elseif has('job') && has('channel') + if !has('timers') + if s:job_status.running + return + endif + let s:job_status.running = 1 + endif + call direnv#job_status_reset() + call job_start(l:cmd, s:job) + else + let l:tmp = tempname() + echom system(printf(join(l:cmd).' '.&shellredir, l:tmp)) + exe 'source '.l:tmp + call delete(l:tmp) + call direnv#post_direnv_load() + endif +endfunction + +let s:export_debounced = {'id': 0, 'counter': 0} + +if has('timers') + function! s:export_debounced.call(...) + let self.id = 0 + let self.counter = 0 + call direnv#export_core() + endfunction + + function! s:export_debounced.do() + call timer_stop(self.id) + if self.counter < s:direnv_max_wait + let self.counter = self.counter + 1 + let self.id = timer_start(s:direnv_interval, self.call) + else + call self.call() + endif + endfunction +else + function! s:export_debounced.do() + call direnv#export_core() + endfunction +endif diff --git a/config/neovim/store/lazy-plugins/direnv.vim/autoload/direnv/edit.vim b/config/neovim/store/lazy-plugins/direnv.vim/autoload/direnv/edit.vim new file mode 100644 index 00000000..7a2ea35e --- /dev/null +++ b/config/neovim/store/lazy-plugins/direnv.vim/autoload/direnv/edit.vim @@ -0,0 +1,56 @@ +" direnv.vim - support for direnv +" Author: JINNOUCHI Yasushi +" Version: 0.2 + +let s:direnv_edit_mode = get(g:, 'direnv_edit_mode', 'edit') + +function! direnv#edit#envrc() abort + if $DIRENV_DIR !=# '' + let l:envrc_dir = substitute($DIRENV_DIR, '^-', '', '') + else + let l:envrc_dir = getcwd() + endif + let l:envrc = l:envrc_dir . '/.envrc' + if !filereadable(l:envrc) + echom 'new .envrc file will be created:' l:envrc_dir + endif + call direnv#edit#execute(l:envrc) +endfunction + +function! direnv#edit#direnvrc() abort + if $XDG_CONFIG_HOME ==# '' + let l:direnvrc_dir = $HOME . '/.config/direnv' + else + let l:direnvrc_dir = $XDG_CONFIG_HOME . '/direnv' + endif + if filereadable(l:direnvrc_dir . '/direnvrc') + let l:direnvrc = l:direnvrc_dir . '/direnvrc' + elseif filereadable($HOME . '/.direnvrc') + let l:direnvrc = $HOME . '/.direnvrc' + else + let l:direnvrc = l:direnvrc_dir . '/direnvrc' + if !isdirectory(l:direnvrc_dir) + let l:result = direnv#edit#mkdir(l:direnvrc_dir) + if !l:result + echoerr 'Vim cannot create the directory:' l:direnvrc_dir + return + endif + endif + endif + if !filereadable(l:direnvrc) + echom 'new direnvrc file will be created:' l:direnvrc + endif + call direnv#edit#execute(l:direnvrc) +endfunction + +function! direnv#edit#mkdir(dir) abort + if !exists('*mkdir') + return 0 + endif + let l:result = mkdir(a:dir, 'p', 0700) + return l:result +endfunction + +function! direnv#edit#execute(file) abort + execute ':' . s:direnv_edit_mode a:file +endfunction diff --git a/config/neovim/store/lazy-plugins/direnv.vim/autoload/direnv/extra_vimrc.vim b/config/neovim/store/lazy-plugins/direnv.vim/autoload/direnv/extra_vimrc.vim new file mode 100644 index 00000000..a089563d --- /dev/null +++ b/config/neovim/store/lazy-plugins/direnv.vim/autoload/direnv/extra_vimrc.vim @@ -0,0 +1,28 @@ +" direnv.vim - support for direnv +" Author: JINNOUCHI Yasushi +" Version: 0.2 + +" load() sources local vimrc's described in $EXTRA_VIMRC +function! direnv#extra_vimrc#load() abort + let b:direnv_loaded_extra_vimrcs = get(b:, 'direnv_loaded_extra_vimrcs', {}) + if $DIRENV_EXTRA_VIMRC !=# '' + for l:path in split($DIRENV_EXTRA_VIMRC, ':') + if filereadable(l:path) && !has_key(b:direnv_loaded_extra_vimrcs, l:path) + execute 'source' l:path + let b:direnv_loaded_extra_vimrcs[l:path] = 1 + endif + endfor + endif +endfunction + +" check() checks $DIRENV_DIR and call load() +function! direnv#extra_vimrc#check() abort + if $DIRENV_DIR !=# '' + let l:filedir = expand('%:p:h') + let l:direnv_dir = substitute($DIRENV_DIR, '^-', '', '') + " TODO think about Windows? + if stridx(l:filedir, l:direnv_dir) == 0 + call direnv#post_direnv_load() + endif + endif +endfunction diff --git a/config/neovim/store/lazy-plugins/direnv.vim/doc/direnv.txt b/config/neovim/store/lazy-plugins/direnv.vim/doc/direnv.txt new file mode 100644 index 00000000..3ac0d6b7 --- /dev/null +++ b/config/neovim/store/lazy-plugins/direnv.vim/doc/direnv.txt @@ -0,0 +1,167 @@ +*direnv.txt* Plugin to integrate Direnv and (Neo)Vim + +Author: zimbatm + delphinus +License: MIT License + +============================================================================= +CONTENTS *direnv-contents* + + INTRODUCTION |direnv-introduction| + INSTALLATION |direnv-installation| + EXTRA VIMRC |direnv-installation| + COMMANDS |direnv-commands| + CONFIGURATION |direnv-configuration| + CAVEATS |direnv-caveats| + +============================================================================= +INTRODUCTION *direnv-introduction* + +This plugin aim is to integrate Direnv and (Neo)Vim. + + *direnv-introduction-features* +Features~ + +* Run Direnv's hook appropriately every when Vim changes its current + directory. +* Run your local `.vimrc` in the current directory when `use vim` directive + exists in `.envrc`. +* Add |ftdetect|, |ftplugin|, and |syntax| to make easy to write your own `.envrc`'s. + +============================================================================= +INSTALLATION *direnv-installation* + +Clone the repository to load by |packages|. + + *direnv-installation-forvim* +For Vim~ +> + git clone https://github.com/direnv/direnv.vim \ + ~/.vim/pack/foo/start/direnv.vim +< + *direnv-installation-forneovim* +For Neovim~ +> + git clone https://github.com/direnv/direnv.vim \ + ~/.local/share/nvim/site/pack/foo/start/direnv.vim + +Or you can use any plugin manager you like. + +============================================================================= +EXTRA VIMRC *direnv-extravimrc* + +When you use `use vim` directive in the `.envrc`, you can source `.vimrc.local` +(in default) in changing the current directory of Vim. +> + # in your .envrc (Direnv settings) + use vim + # you can set your own filename + use vim .my-vimrc + +With `use vim` directives, Direnv sets the paths in `$DIRENV_EXTRA_VIMRC` +environmental variable. This plugin reads the variable and sources them. + +Internally, this plugin remembers the sourced filenames and does not source it +again even when `DirenvExport` is called in the same buffer. + +NOTE: Unlike the other features of Direnv, this “sourcing” is irreversible. +You should NOT change settings globally in your `.vimrc.local` because it +affects other windows/buffers. +> + " in your .vimrc.local + " This sets the value only for the window you are in. + setlocal scrolloff=3 + " Also set buffer-local variable for this use. + let b:ale_fixers = ['prettier', 'eslint'] + +============================================================================= +COMMANDS *direnv-commands* + +`:DirenvExport` *direnv-commands-direnvexport* + +Run the Direnv command and load the valid settings. This command will be +executed automatically (and asynchronously) by |autocmd| events in default. + +NOTE: The kind of events this command will be called depends on your (Neo) +Vim's version. See |direnv-caveats|. + +`:EditDirenvrc` *direnv-commands-editdirenvrc* + +Open the global setting file for the Direnv command. This searches files +ordered below. + +* `$XDG_CONFIG_HOME/direnv/direnvrc` +* `~/.config/direnv/direnvrc` +* `~/.direnvrc` + +`:EditEnvrc` *direnv-commands-editenvrc* + +Open the detected `.envrc` if found or a new buffer to edit `.envrc` on the +current directory otherwise. + +============================================================================= +CONFIGURATION *direnv-configuration* + +All configuration variables must be set before loading the plugin (typically +in your `.vimrc` or `init.vim`). + +`g:direnv_auto` *direnv-configuration-direnvauto* + +It will not execute |direnv-commands-direnvexport| automatically if the value +is `0`. Default: `1`. +> + " Call DirenvExport on your demand + let g:direnv_auto = 0 + +`g:direnv_edit_mode` *direnv-configuration-direnveditmode* + +Select the command to open buffers to edit. Default: `'edit'`. +> + " split the window before editing files + let g:direnv_edit_mode = 'split' + " split vertically + let g:direnv_edit_mode = 'vsplit' + +`g:direnv_silent_load` *direnv-configuration-direnvsilentload* + +Stop echoing output from Direnv command. Default: `0`. +> + " Silently call the Direnv command + let g:direnv_silent_load = 1 + +============================================================================= +AUTOCMD EVENTS *direnv-autocmdevents* + +`DirenvLoaded` *direnv-autocmdevents-direnvloaded* + +This plugin calls this |User| event just after sourcing extra vimrc (See +|direnv-extravimrc|). +> + " Announce when loaded extra vimrc's + autocmd User DirenvLoaded :echo 'loaded extra vimrc' + + +============================================================================= +CAVEATS *direnv-caveats* + +Environmental variable keys~ + +The Vimscript syntax seems to limit keys to alphanumeric characters. If any +environmental variable key is something different, the plugin might fail. + +Autocmd events to be called~ + +The newer Vim builds (>8.0.1459) & Neovim have |Dirchanged| that is fired on +directory changes. Direnv command will be fired only on |VimEnter| & +|DirChanged| with them. + +For older Vim's, there is a fallback that it fires on each |BufEnter|. This is +not an ideal solution, but for now we have no other solutions. + +Asynchronous loading~ + +Due to asynchronous calls for Direnv, it can happen that variables from +`.envrc` will not be available yet, if you work too fast. + +============================================================================= +vim:tw=78:fo=tcq2mM:ts=8:ft=help:norl diff --git a/config/neovim/store/lazy-plugins/direnv.vim/doc/tags b/config/neovim/store/lazy-plugins/direnv.vim/doc/tags new file mode 100644 index 00000000..ce6df47d --- /dev/null +++ b/config/neovim/store/lazy-plugins/direnv.vim/doc/tags @@ -0,0 +1,19 @@ +direnv-autocmdevents direnv.txt /*direnv-autocmdevents* +direnv-autocmdevents-direnvloaded direnv.txt /*direnv-autocmdevents-direnvloaded* +direnv-caveats direnv.txt /*direnv-caveats* +direnv-commands direnv.txt /*direnv-commands* +direnv-commands-direnvexport direnv.txt /*direnv-commands-direnvexport* +direnv-commands-editdirenvrc direnv.txt /*direnv-commands-editdirenvrc* +direnv-commands-editenvrc direnv.txt /*direnv-commands-editenvrc* +direnv-configuration direnv.txt /*direnv-configuration* +direnv-configuration-direnvauto direnv.txt /*direnv-configuration-direnvauto* +direnv-configuration-direnveditmode direnv.txt /*direnv-configuration-direnveditmode* +direnv-configuration-direnvsilentload direnv.txt /*direnv-configuration-direnvsilentload* +direnv-contents direnv.txt /*direnv-contents* +direnv-extravimrc direnv.txt /*direnv-extravimrc* +direnv-installation direnv.txt /*direnv-installation* +direnv-installation-forneovim direnv.txt /*direnv-installation-forneovim* +direnv-installation-forvim direnv.txt /*direnv-installation-forvim* +direnv-introduction direnv.txt /*direnv-introduction* +direnv-introduction-features direnv.txt /*direnv-introduction-features* +direnv.txt direnv.txt /*direnv.txt* diff --git a/config/neovim/store/lazy-plugins/direnv.vim/ftdetect/direnv.vim b/config/neovim/store/lazy-plugins/direnv.vim/ftdetect/direnv.vim new file mode 100644 index 00000000..ca5d370d --- /dev/null +++ b/config/neovim/store/lazy-plugins/direnv.vim/ftdetect/direnv.vim @@ -0,0 +1,5 @@ +" direnv.vim - support for direnv +" Author: JINNOUCHI Yasushi +" Version: 0.2 + +autocmd BufRead,BufNewFile .envrc*,.direnvrc*,direnvrc* setfiletype direnv diff --git a/config/neovim/store/lazy-plugins/direnv.vim/ftplugin/direnv.vim b/config/neovim/store/lazy-plugins/direnv.vim/ftplugin/direnv.vim new file mode 100644 index 00000000..2a61c2dc --- /dev/null +++ b/config/neovim/store/lazy-plugins/direnv.vim/ftplugin/direnv.vim @@ -0,0 +1,15 @@ +" direnv.vim - support for direnv +" Author: JINNOUCHI Yasushi +" Version: 0.2 + +if exists('b:did_ftplugin') + finish +endif +let b:did_ftplugin = 1 + +setlocal commentstring=#\ %s + +augroup direnv-buffer + autocmd! * + autocmd BufWritePost DirenvExport +augroup END diff --git a/config/neovim/store/lazy-plugins/direnv.vim/plugin/direnv.vim b/config/neovim/store/lazy-plugins/direnv.vim/plugin/direnv.vim new file mode 100644 index 00000000..b415a9dc --- /dev/null +++ b/config/neovim/store/lazy-plugins/direnv.vim/plugin/direnv.vim @@ -0,0 +1,37 @@ +" direnv.vim - support for direnv +" Author: zimbatm & Hauleth +" Version: 0.2 + +if exists('g:loaded_direnv') || &compatible || v:version < 700 + finish +endif +let g:loaded_direnv = 1 + +" MacVim (vim 8.0) with patches 1-1272 throws an error if a job option is given +" extra fields that it does not recognize. If the job ran even with the error +" message, this could be fixed with `silent!`, but the job doesn't run. +" +" To fix this, we give `vim` an empty `s:job` dictionary that calls back to the +" `s:job_status` dictionary. `nvim` gets `s:job` set as `s:job_status`. + +command! -nargs=0 DirenvExport call direnv#export() +command! -nargs=0 EditDirenvrc call direnv#edit#direnvrc() +command! -nargs=0 EditEnvrc call direnv#edit#envrc() + +if direnv#auto() + augroup direnv_rc + au! + autocmd VimEnter * DirenvExport + autocmd BufEnter * call direnv#extra_vimrc#check() + " need this to avoid an error on loading + autocmd User DirenvLoaded : + + if exists('##DirChanged') + autocmd DirChanged * DirenvExport + else + autocmd BufEnter * DirenvExport + endif + augroup END +endif + +" vi: fdm=marker sw=2 sts=2 et diff --git a/config/neovim/store/lazy-plugins/direnv.vim/syntax/direnv.vim b/config/neovim/store/lazy-plugins/direnv.vim/syntax/direnv.vim new file mode 100644 index 00000000..07e27f63 --- /dev/null +++ b/config/neovim/store/lazy-plugins/direnv.vim/syntax/direnv.vim @@ -0,0 +1,89 @@ +" direnv.vim - support for direnv +" Author: JINNOUCHI Yasushi +" Version: 0.2 + +if exists('b:current_syntax') + finish +endif + +" To use syntax for bash in sh.vim, set the g:is_bash value temporarily. +let s:current = get(g:, 'is_bash', '__NO_VALUE__') +let g:is_bash = 1 +runtime! syntax/sh.vim +if s:current ==# '__NO_VALUE__' + unlet g:is_bash +else + let g:is_bash = s:current +endif +unlet s:current + +let b:current_syntax = 'direnv' + +" Func: with commands {{{ +" `has` func takes one argument that represents a CLI command. +syn keyword direnvCommandFunc has nextgroup=direnvCommand,shSingleQuote,shDoubleQuote skipwhite +hi def link direnvCommandFunc shStatement + +" command name is almost the same as direnvPath, but has a different color. +syn region direnvCommand start=/[^'"[:space:]]/ skip=/\\./ end=/\([][(){}#`'";\\[:space:]]\)\@=\|$/ contained nextgroup=shComment skipwhite +hi def link direnvCommand shCommandSub +" }}} + +" Func: with paths {{{ +" These funcs takes one argument that represents a file/dir path. +syn keyword direnvPathFunc dotenv dotenv_if_exists env_vars_required fetchurl join_args user_rel_path on_git_branch find_up has source_env source_env_if_exists source_up source_up_if_exists source_url PATH_add MANPATH_add load_prefix watch_file watch_dir semver_search strict_env unstrict_env nextgroup=direnvPath,shSingleQuote,shDoubleQuote skipwhite +hi def link direnvPathFunc shStatement + +" path string can end before non-escaped [, ], (, ), {, }, #, `, ', ", ;, \, and spaces. +syn region direnvPath start=/[^'"[:space:]]/ skip=/\\./ end=/\([][(){}#`'";\\[:space:]]\)\@=\|$/ contained nextgroup=shComment skipwhite +hi def link direnvPath Directory + +" `expand_path` takes one or two arguments that represents a dir path. +syn keyword direnvExpandPathFunc expand_path nextgroup=direnvExpandPathRel,shSingleQuote,shDoubleQuote skipwhite +hi def link direnvExpandPathFunc shStatement + +syn region direnvExpandPathRel start=/[^'"[:space:]]/ skip=/\\./ end=/\%(\s\|\_$\)/ contained nextgroup=direnvPath,shSingleQuote,shDoubleQuote skipwhite +hi def link direnvExpandPathRel Directory + +" `path_add` takes two arguments that represents a variable name and a dir +" path. +syn keyword direnvPathAddFunc PATH_add MANPATH_add PATH_rm path_rm path_add nextgroup=direnvVar skipwhite +hi def link direnvPathAddFunc shStatement + +syn match direnvVar /\S\+/ nextgroup=direnvPath,shSingleQuote,shDoubleQuote contained skipwhite +hi def link direnvVar shCommandSub +" }}} + +" Func: use {{{ +syn keyword direnvUseFunc use use_flake use_guix use_julia use_nix use_node use_nodenv use_rbenv use_vim rvm nextgroup=direnvUseCommand skipwhite +hi def link direnvUseFunc shStatement + +" `use rbenv/nix/guix` takes several arguments. +syn match direnvUseCommand /\S\+/ contained +hi def link direnvUseCommand shCommandSub +" }}} + +" Func: layout {{{ +" `layout` takes one argument that represents a language name. +syn keyword direnvLayoutFunc layout layout_anaconda layout_go layout_julia layout_node layout_perl layout_php layout_pipenv layout_pyenv layout_python layout_python2 layout_python3 layout_ruby nextgroup=direnvLayoutLanguage,direnvLayoutLanguagePath skipwhite +hi def link direnvLayoutFunc shStatement + +syn keyword direnvLayoutLanguage go node perl python3 ruby contained +hi def link direnvLayoutLanguage shCommandSub + +" `layout python` takes one more argument that represents a file path. +syn keyword direnvLayoutLanguagePath python nextgroup=direnvPath,shSingleQuote,shDoubleQuote contained skipwhite +hi def link direnvLayoutLanguagePath shCommandSub +" }}} + +" Func: others {{{ +" `direnv_load` takes several arguments. +syn keyword direnvFunc direnv_apply_dump direnv_layout_dir direnv_load direnv_version log_error log_status +hi def link direnvFunc shStatement +" }}} + +syn cluster direnvStatement contains=direnvCommandFunc,direnvPathFunc,direnvExpandPathFunc,direnvPathAddFunc,direnvUseFunc,direnvLayoutFunc,direnvFunc +syn cluster shArithParenList add=@direnvStatement +syn cluster shCommandSubList add=@direnvStatement + +" vim:se fdm=marker: diff --git a/config/neovim/store/lazy-plugins/flash.nvim/.editorconfig b/config/neovim/store/lazy-plugins/flash.nvim/.editorconfig new file mode 100644 index 00000000..8b176d56 --- /dev/null +++ b/config/neovim/store/lazy-plugins/flash.nvim/.editorconfig @@ -0,0 +1,7 @@ +root = true + +[*] +insert_final_newline = true +indent_style = space +indent_size = 2 +charset = utf-8 diff --git a/config/neovim/store/lazy-plugins/flash.nvim/.github/ISSUE_TEMPLATE/config.yml b/config/neovim/store/lazy-plugins/flash.nvim/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 00000000..f4cfd7ee --- /dev/null +++ b/config/neovim/store/lazy-plugins/flash.nvim/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,5 @@ +blank_issues_enabled: false +contact_links: + - name: Ask a question + url: https://github.com/folke/flash.nvim/discussions + about: Use Github discussions instead diff --git a/config/neovim/store/lazy-plugins/flash.nvim/.github/PULL_REQUEST_TEMPLATE.md b/config/neovim/store/lazy-plugins/flash.nvim/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 00000000..3f7c92ea --- /dev/null +++ b/config/neovim/store/lazy-plugins/flash.nvim/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,16 @@ +## Description + + + +## Related Issue(s) + + + +## Screenshots + + + diff --git a/config/neovim/store/lazy-plugins/flash.nvim/.github/dependabot.yml b/config/neovim/store/lazy-plugins/flash.nvim/.github/dependabot.yml new file mode 100644 index 00000000..5ace4600 --- /dev/null +++ b/config/neovim/store/lazy-plugins/flash.nvim/.github/dependabot.yml @@ -0,0 +1,6 @@ +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" diff --git a/config/neovim/store/lazy-plugins/flash.nvim/.github/workflows/labeler.yml b/config/neovim/store/lazy-plugins/flash.nvim/.github/workflows/labeler.yml new file mode 100644 index 00000000..0908727b --- /dev/null +++ b/config/neovim/store/lazy-plugins/flash.nvim/.github/workflows/labeler.yml @@ -0,0 +1,8 @@ +name: "PR Labeler" +on: + - pull_request_target + +jobs: + labeler: + uses: folke/github/.github/workflows/labeler.yml@main + secrets: inherit diff --git a/config/neovim/store/lazy-plugins/flash.nvim/.github/workflows/pr.yml b/config/neovim/store/lazy-plugins/flash.nvim/.github/workflows/pr.yml new file mode 100644 index 00000000..6d9df366 --- /dev/null +++ b/config/neovim/store/lazy-plugins/flash.nvim/.github/workflows/pr.yml @@ -0,0 +1,18 @@ +name: PR Title + +on: + pull_request_target: + types: + - opened + - edited + - synchronize + - reopened + - ready_for_review + +permissions: + pull-requests: read + +jobs: + pr-title: + uses: folke/github/.github/workflows/pr.yml@main + secrets: inherit diff --git a/config/neovim/store/lazy-plugins/flash.nvim/.github/workflows/stale.yml b/config/neovim/store/lazy-plugins/flash.nvim/.github/workflows/stale.yml new file mode 100644 index 00000000..4e0273bc --- /dev/null +++ b/config/neovim/store/lazy-plugins/flash.nvim/.github/workflows/stale.yml @@ -0,0 +1,11 @@ +name: Stale Issues & PRs + +on: + schedule: + - cron: "30 1 * * *" + +jobs: + stale: + if: contains(fromJSON('["folke", "LazyVim"]'), github.repository_owner) + uses: folke/github/.github/workflows/stale.yml@main + secrets: inherit diff --git a/config/neovim/store/lazy-plugins/flash.nvim/.github/workflows/update.yml b/config/neovim/store/lazy-plugins/flash.nvim/.github/workflows/update.yml new file mode 100644 index 00000000..6784ef9c --- /dev/null +++ b/config/neovim/store/lazy-plugins/flash.nvim/.github/workflows/update.yml @@ -0,0 +1,13 @@ +name: Update Repo + +on: + workflow_dispatch: + schedule: + # Run every hour + - cron: "0 * * * *" + +jobs: + update: + if: contains(fromJSON('["folke", "LazyVim"]'), github.repository_owner) + uses: folke/github/.github/workflows/update.yml@main + secrets: inherit diff --git a/config/neovim/store/lazy-plugins/flash.nvim/scripts/docs b/config/neovim/store/lazy-plugins/flash.nvim/scripts/docs new file mode 100755 index 00000000..cd1dbd97 --- /dev/null +++ b/config/neovim/store/lazy-plugins/flash.nvim/scripts/docs @@ -0,0 +1,3 @@ +#!/nix/store/4bj2kxdm1462fzcc2i2s4dn33g2angcc-bash-5.2p32/bin/bash + +nvim -u tests/minit.lua -l lua/flash/docs.lua diff --git a/config/neovim/store/lazy-plugins/flash.nvim/scripts/test b/config/neovim/store/lazy-plugins/flash.nvim/scripts/test new file mode 100755 index 00000000..0bc1a330 --- /dev/null +++ b/config/neovim/store/lazy-plugins/flash.nvim/scripts/test @@ -0,0 +1,3 @@ +#!/nix/store/4bj2kxdm1462fzcc2i2s4dn33g2angcc-bash-5.2p32/bin/bash + +nvim -l tests/minit.lua --minitest diff --git a/config/neovim/store/lazy-plugins/flash.nvim/tests/minit.lua b/config/neovim/store/lazy-plugins/flash.nvim/tests/minit.lua new file mode 100644 index 00000000..709b39ae --- /dev/null +++ b/config/neovim/store/lazy-plugins/flash.nvim/tests/minit.lua @@ -0,0 +1,15 @@ +#!/usr/bin/env -S nvim -l + +vim.env.LAZY_STDPATH = ".tests" +vim.env.LAZY_PATH = vim.fs.normalize("~/projects/lazy.nvim") +load(vim.fn.system("curl -s https://raw.githubusercontent.com/folke/lazy.nvim/main/bootstrap.lua"))() + +-- Setup lazy.nvim +require("lazy.minit").setup({ + spec = { + { + dir = vim.uv.cwd(), + opts = {}, + }, + }, +}) diff --git a/config/neovim/store/lazy-plugins/gitsigns.nvim/gitsigns.nvim-scm-1-unstable-2024-08-04-rocks/gitsigns.nvim/scm-1/doc/gitsigns.txt b/config/neovim/store/lazy-plugins/gitsigns.nvim/gitsigns.nvim-scm-1-unstable-2024-08-04-rocks/gitsigns.nvim/scm-1/doc/gitsigns.txt new file mode 100644 index 00000000..1e6d35b9 --- /dev/null +++ b/config/neovim/store/lazy-plugins/gitsigns.nvim/gitsigns.nvim-scm-1-unstable-2024-08-04-rocks/gitsigns.nvim/scm-1/doc/gitsigns.txt @@ -0,0 +1,1256 @@ +*gitsigns.txt* Gitsigns +*gitsigns.nvim* + +Author: Lewis Russell +Version: v0.9.0 +Homepage: +License: MIT license + +============================================================================== +INTRODUCTION *gitsigns* + +Gitsigns is a plugin for Neovim that provides integration with Git via a +feature set which includes (but not limited to): + • Provides signs in the |signcolumn| to show changed/added/removed lines. + • Mappings to operate on hunks to stage, undo or reset against Git's index. + +Gitsigns is implemented entirely in Lua which is built into Neovim and +requires no external dependencies other than git. This is unlike other plugins +that require python, node, etc, which need to communicate with Neovim using +|RPC|. By default, Gitsigns also uses Neovim's built-in diff library +(`vim.diff`) unlike other similar plugins that need to run `git-diff` as an +external process which is less efficient, has tighter bottlenecks and requires +file IO. + +============================================================================== +USAGE *gitsigns-usage* + +For basic setup with all batteries included: +>lua + require('gitsigns').setup() +< + +Configuration can be passed to the setup function. Here is an example with most +of the default settings: +>lua + require('gitsigns').setup { + signs = { + add = { text = '┃' }, + change = { text = '┃' }, + delete = { text = '_' }, + topdelete = { text = '‾' }, + changedelete = { text = '~' }, + untracked = { text = '┆' }, + }, + signs_staged = { + add = { text = '┃' }, + change = { text = '┃' }, + delete = { text = '_' }, + topdelete = { text = '‾' }, + changedelete = { text = '~' }, + untracked = { text = '┆' }, + }, + signs_staged_enable = true, + signcolumn = true, -- Toggle with `:Gitsigns toggle_signs` + numhl = false, -- Toggle with `:Gitsigns toggle_numhl` + linehl = false, -- Toggle with `:Gitsigns toggle_linehl` + word_diff = false, -- Toggle with `:Gitsigns toggle_word_diff` + watch_gitdir = { + follow_files = true + }, + auto_attach = true, + attach_to_untracked = false, + current_line_blame = false, -- Toggle with `:Gitsigns toggle_current_line_blame` + current_line_blame_opts = { + virt_text = true, + virt_text_pos = 'eol', -- 'eol' | 'overlay' | 'right_align' + delay = 1000, + ignore_whitespace = false, + virt_text_priority = 100, + }, + current_line_blame_formatter = ', - ', + sign_priority = 6, + update_debounce = 100, + status_formatter = nil, -- Use default + max_file_length = 40000, -- Disable if file is longer than this (in lines) + preview_config = { + -- Options passed to nvim_open_win + border = 'single', + style = 'minimal', + relative = 'cursor', + row = 0, + col = 1 + }, + } +< + +============================================================================== +MAPPINGS *gitsigns-mappings* + +Custom mappings can be defined in the `on_attach` callback in the config table +passed to |gitsigns-setup()|. See |gitsigns-config-on_attach|. + +Most actions can be repeated with `.` if you have |vim-repeat| installed. + +============================================================================== +FUNCTIONS *gitsigns-functions* + +Note functions with the {async} attribute are run asynchronously and accept +an optional {callback} argument. + + +setup({cfg}) *gitsigns.setup()* + Setup and start Gitsigns. + + Parameters: ~ + {cfg} (table|nil): Configuration for Gitsigns. + See |gitsigns-usage| for more details. + +attach({bufnr}, {ctx}, {callback?}) *gitsigns.attach()* + Attach Gitsigns to the buffer. + + Attributes: ~ + {async} + + Parameters: ~ + {bufnr} (integer): Buffer number + {ctx} (table|nil): + Git context data that may optionally be used to attach to any + buffer that represents a real git object. + • {file}: (string) + Path to the file represented by the buffer, relative to the + top-level. + • {toplevel}: (string?) + Path to the top-level of the parent git repository. + • {gitdir}: (string?) + Path to the git directory of the parent git repository + (typically the ".git/" directory). + • {commit}: (string?) + The git revision that the file belongs to. + • {base}: (string?) + The git revision that the file should be compared to. + +detach({bufnr}) *gitsigns.detach()* + Detach Gitsigns from the buffer {bufnr}. If {bufnr} is not + provided then the current buffer is used. + + Parameters: ~ + {bufnr} (integer): Buffer number + +detach_all() *gitsigns.detach_all()* + Detach Gitsigns from all buffers it is attached to. + +refresh() *gitsigns.refresh()* + Refresh all buffers. + + Attributes: ~ + {async} + +get_actions() *gitsigns.get_actions()* + Get all the available line specific actions for the current + buffer at the cursor position. + + + Returns: ~ + (table|nil): Dictionary of action name to function which when called + performs action. + +setloclist({nr}, {target}) *gitsigns.setloclist()* + Populate the location list with hunks. Automatically opens the + location list window. + + Alias for: `setqflist({target}, { use_location_list = true, nr = {nr} }` + + Attributes: ~ + {async} + + Parameters: ~ + {nr?} (integer): Window number or the |window-ID|. + `0` for the current window (default). + {target} (integer|string): See |gitsigns.setqflist()|. + +setqflist({target}, {opts}, {callback?}) *gitsigns.setqflist()* + Populate the quickfix list with hunks. Automatically opens the + quickfix window. + + Attributes: ~ + {async} + + Parameters: ~ + {target} (integer|string): + Specifies which files hunks are collected from. + Possible values. + • [integer]: The buffer with the matching buffer + number. `0` for current buffer (default). + • `"attached"`: All attached buffers. + • `"all"`: All modified files for each git + directory of all attached buffers in addition + to the current working directory. + {opts} (table|nil): Additional options: + • {use_location_list}: (boolean) + Populate the location list instead of the + quickfix list. Default to `false`. + • {nr}: (integer) + Window number or ID when using location list. + Expand folds when navigating to a hunk which is + inside a fold. Defaults to `0`. + • {open}: (boolean) + Open the quickfix/location list viewer. + Defaults to `true`. + +show({revision}, {callback}) *gitsigns.show()* + Show revision {base} of the current file, if it is given, or + with the currently set base (index by default). + + If {base} is the index, then the opened buffer is editable and + any written changes will update the index accordingly. + + Examples: >vim + " View the index version of the file + :Gitsigns show + + " View revision of file in the last commit + :Gitsigns show ~1 +< + + For a more complete list of ways to specify bases, see + |gitsigns-revision|. + + Attributes: ~ + {async} + +diffthis({base}, {opts}) *gitsigns.diffthis()* + Perform a |vimdiff| on the given file with {base} if it is + given, or with the currently set base (index by default). + + If {base} is the index, then the opened buffer is editable and + any written changes will update the index accordingly. + + Examples: >vim + " Diff against the index + :Gitsigns diffthis + + " Diff against the last commit + :Gitsigns diffthis ~1 +< + + For a more complete list of ways to specify bases, see + |gitsigns-revision|. + + Attributes: ~ + {async} + + Parameters: ~ + {base} (string|nil): Revision to diff against. Defaults to index. + {opts} (table|nil): Additional options: + • {vertical}: {boolean}. Split window vertically. Defaults to + config.diff_opts.vertical. If running via command line, then + this is taken from the command modifiers. + • {split}: {string}. One of: 'aboveleft', 'belowright', + 'botright', 'rightbelow', 'leftabove', 'topleft'. Defaults to + 'aboveleft'. If running via command line, then this is taken + from the command modifiers. + +reset_base({global}) *gitsigns.reset_base()* + Reset the base revision to diff against back to the + index. + + Alias for `change_base(nil, {global})` . + +change_base({base}, {global}, {callback?}) *gitsigns.change_base()* + Change the base revision to diff against. If {base} is not + given, then the original base is used. If {global} is given + and true, then change the base revision of all buffers, + including any new buffers. + + Attributes: ~ + {async} + + Examples: >vim + " Change base to 1 commit behind head + :lua require('gitsigns').change_base('HEAD~1') + + " Also works using the Gitsigns command + :Gitsigns change_base HEAD~1 + + " Other variations + :Gitsigns change_base ~1 + :Gitsigns change_base ~ + :Gitsigns change_base ^ + + " Commits work too + :Gitsigns change_base 92eb3dd + + " Revert to original base + :Gitsigns change_base +< + + For a more complete list of ways to specify bases, see + |gitsigns-revision|. + + Parameters: ~ + {base} (string|nil): The object/revision to diff against. + {global} (boolean|nil): Change the base of all buffers. + +blame({callback?}) *gitsigns.blame()* + Run git-blame on the current file and open the results + in a scroll-bound vertical split. + + Mappings: + is mapped to open a menu with the other mappings + Note: must be held to activate the mappings whilst the menu is + open. + s [Show commit] in a vertical split. + S [Show commit] in a new tab. + r [Reblame at commit] + + Attributes: ~ + {async} + +blame_line({opts}, {callback?}) *gitsigns.blame_line()* + Run git blame on the current line and show the results in a + floating window. If already open, calling this will cause the + window to get focus. + + Attributes: ~ + {async} + + Parameters: ~ + {opts} (table|nil): Additional options: + • {full}: (boolean) + Display full commit message with hunk. + • {ignore_whitespace}: (boolean) + Ignore whitespace when running blame. + • {extra_opts}: (string[]) + Extra options passed to `git-blame`. + +get_hunks({bufnr}) *gitsigns.get_hunks()* + Get hunk array for specified buffer. + + Parameters: ~ + {bufnr} (integer): Buffer number, if not provided (or 0) + will use current buffer. + + Returns: ~ + (table|nil): Array of hunk objects. + Each hunk object has keys: + • `"type"`: String with possible values: "add", "change", + "delete" + • `"head"`: Header that appears in the unified diff + output. + • `"lines"`: Line contents of the hunks prefixed with + either `"-"` or `"+"`. + • `"removed"`: Sub-table with fields: + • `"start"`: Line number (1-based) + • `"count"`: Line count + • `"added"`: Sub-table with fields: + • `"start"`: Line number (1-based) + • `"count"`: Line count + +select_hunk() *gitsigns.select_hunk()* + Select the hunk under the cursor. + +preview_hunk_inline() *gitsigns.preview_hunk_inline()* + Preview the hunk at the cursor position inline in the buffer. + +preview_hunk() *gitsigns.preview_hunk()* + Preview the hunk at the cursor position in a floating + window. If the preview is already open, calling this + will cause the window to get focus. + +prev_hunk({opts}, {callback?}) *gitsigns.prev_hunk()* + DEPRECATED: use |gitsigns.nav_hunk()| + + Jump to the previous hunk in the current buffer. If a hunk preview + (popup or inline) was previously opened, it will be re-opened + at the previous hunk. + + Attributes: ~ + {async} + + Parameters: ~ + See |gitsigns.nav_hunk()|. + +next_hunk({opts}, {callback?}) *gitsigns.next_hunk()* + DEPRECATED: use |gitsigns.nav_hunk()| + + Jump to the next hunk in the current buffer. If a hunk preview + (popup or inline) was previously opened, it will be re-opened + at the next hunk. + + Attributes: ~ + {async} + + Parameters: ~ + See |gitsigns.nav_hunk()|. + +nav_hunk({direction}, {opts}, {callback?}) *gitsigns.nav_hunk()* + Jump to hunk in the current buffer. If a hunk preview + (popup or inline) was previously opened, it will be re-opened + at the next hunk. + + Attributes: ~ + {async} + + Parameters: ~ + {direction} ('first'|'last'|'next'|'prev'): + {opts} (table|nil): Configuration table. Keys: + • {wrap}: (boolean) + Whether to loop around file or not. Defaults + to the value 'wrapscan' + • {navigation_message}: (boolean) + Whether to show navigation messages or not. + Looks at 'shortmess' for default behaviour. + • {foldopen}: (boolean) + Expand folds when navigating to a hunk which is + inside a fold. Defaults to `true` if 'foldopen' + contains `search`. + • {preview}: (boolean) + Automatically open preview_hunk() upon navigating + to a hunk. + • {greedy}: (boolean) + Only navigate between non-contiguous hunks. Only useful if + 'diff_opts' contains `linematch`. Defaults to `true`. + • {target}: (`'unstaged'|'staged'|'all'`) + Which kinds of hunks to target. Defaults to `'unstaged'`. + • {count}: (integer) + Number of times to advance. Defaults to |v:count1|. + +reset_buffer_index() *gitsigns.reset_buffer_index()* + Unstage all hunks for current buffer in the index. Note: + Unlike |gitsigns.undo_stage_hunk()| this doesn't simply undo + stages, this runs an `git reset` on current buffers file. + + Attributes: ~ + {async} + +stage_buffer() *gitsigns.stage_buffer()* + Stage all hunks in current buffer. + + Attributes: ~ + {async} + +undo_stage_hunk() *gitsigns.undo_stage_hunk()* + Undo the last call of stage_hunk(). + + Note: only the calls to stage_hunk() performed in the current + session can be undone. + + Attributes: ~ + {async} + +reset_buffer() *gitsigns.reset_buffer()* + Reset the lines of all hunks in the buffer. + +reset_hunk({range}, {opts}, {callback?}) *gitsigns.reset_hunk()* + Reset the lines of the hunk at the cursor position, or all + lines in the given range. If {range} is provided, all lines in + the given range are reset. This supports partial-hunks, + meaning if a range only includes a portion of a particular + hunk, only the lines within the range will be reset. + + Parameters: ~ + {range} (table|nil): List-like table of two integers making + up the line range from which you want to reset the hunks. + If running via command line, then this is taken from the + command modifiers. + {opts} (table|nil): Additional options: + • {greedy}: (boolean) + Stage all contiguous hunks. Only useful if 'diff_opts' + contains `linematch`. Defaults to `true`. + +stage_hunk({range}, {opts}, {callback?}) *gitsigns.stage_hunk()* + Stage the hunk at the cursor position, or all lines in the + given range. If {range} is provided, all lines in the given + range are staged. This supports partial-hunks, meaning if a + range only includes a portion of a particular hunk, only the + lines within the range will be staged. + + Attributes: ~ + {async} + + Parameters: ~ + {range} (table|nil): List-like table of two integers making + up the line range from which you want to stage the hunks. + If running via command line, then this is taken from the + command modifiers. + {opts} (table|nil): Additional options: + • {greedy}: (boolean) + Stage all contiguous hunks. Only useful if 'diff_opts' + contains `linematch`. Defaults to `true`. + +toggle_deleted({value}) *gitsigns.toggle_deleted()* + Toggle |gitsigns-config-show_deleted| + + Parameters: ~ + {value} (boolean|nil): Value to set toggle. If `nil` + the toggle value is inverted. + + Returns: ~ + (boolean): Current value of |gitsigns-config-show_deleted| + +toggle_current_line_blame({value}) *gitsigns.toggle_current_line_blame()* + Toggle |gitsigns-config-current_line_blame| + + Parameters: ~ + {value} (boolean|nil): Value to set toggle. If `nil` + the toggle value is inverted. + + Returns: ~ + (boolean): Current value of |gitsigns-config-current_line_blame| + +toggle_word_diff({value}) *gitsigns.toggle_word_diff()* + Toggle |gitsigns-config-word_diff| + + Parameters: ~ + {value} (boolean|nil): Value to set toggle. If `nil` + the toggle value is inverted. + + Returns: ~ + (boolean): Current value of |gitsigns-config-word_diff| + +toggle_linehl({value}) *gitsigns.toggle_linehl()* + Toggle |gitsigns-config-linehl| + + Parameters: ~ + {value} (boolean|nil): Value to set toggle. If `nil` + the toggle value is inverted. + + Returns: ~ + (boolean): Current value of |gitsigns-config-linehl| + +toggle_numhl({value}) *gitsigns.toggle_numhl()* + Toggle |gitsigns-config-numhl| + + Parameters: ~ + {value} (boolean|nil): Value to set toggle. If `nil` + the toggle value is inverted. + + + Returns: ~ + (boolean): Current value of |gitsigns-config-numhl| + +toggle_signs({value}) *gitsigns.toggle_signs()* + Toggle |gitsigns-config-signbooleancolumn| + + Parameters: ~ + {value} (boolean|nil): Value to set toggle. If `nil` + the toggle value is inverted. + + Returns: ~ + (boolean): Current value of |gitsigns-config-signcolumn| + + +============================================================================== +CONFIGURATION *gitsigns-config* + +This section describes the configuration fields which can be passed to +|gitsigns.setup()|. Note fields of type `table` may be marked with extended +meaning the field is merged with the default, with the user value given higher +precedence. This allows only specific sub-fields to be configured without +having to redefine the whole field. + +signs *gitsigns-config-signs* + Type: `table[extended]` + Default: > + { + add = { text = '┃' }, + change = { text = '┃' }, + delete = { text = '▁' }, + topdelete = { text = '▔' }, + changedelete = { text = '~' }, + untracked = { text = '┆' }, + } +< + Configuration for signs: + • `text` specifies the character to use for the sign. + • `show_count` to enable showing count of hunk, e.g. number of deleted + lines. + + The highlights `GitSigns[kind][type]` is used for each kind of sign. E.g. + 'add' signs uses the highlights: + • `GitSignsAdd` (for normal text signs) + • `GitSignsAddNr` (for signs when `config.numhl == true`) + • `GitSignsAddLn `(for signs when `config.linehl == true`) + • `GitSignsAddCul `(for signs when `config.culhl == true`) + + See |gitsigns-highlight-groups|. + +signs_staged *gitsigns-config-signs_staged* + Type: `table[extended]` + Default: > + { + add = { text = '┃' }, + change = { text = '┃' }, + delete = { text = '▁' }, + topdelete = { text = '▔' }, + changedelete = { text = '~' }, + } +< + Configuration for signs of staged hunks. + + See |gitsigns-config-signs|. + +signs_staged_enable *gitsigns-config-signs_staged_enable* + Type: `boolean`, Default: `true` + + Show signs for staged hunks. + + When enabled the signs defined in |git-config-signs_staged|` are used. + +worktrees *gitsigns-config-worktrees* + Type: `table`, Default: `nil` + + Detached working trees. + + Array of tables with the keys `gitdir` and `toplevel`. + + If normal attaching fails, then each entry in the table is attempted + with the work tree details set. + + Example: >lua + worktrees = { + { + toplevel = vim.env.HOME, + gitdir = vim.env.HOME .. '/projects/dotfiles/.git' + } + } + +on_attach *gitsigns-config-on_attach* + Type: `function`, Default: `nil` + + Callback called when attaching to a buffer. Mainly used to setup keymaps. + The buffer number is passed as the first argument. + + This callback can return `false` to prevent attaching to the buffer. + + Example: >lua + on_attach = function(bufnr) + if vim.api.nvim_buf_get_name(bufnr):match() then + -- Don't attach to specific buffers whose name matches a pattern + return false + end + + -- Setup keymaps + vim.api.nvim_buf_set_keymap(bufnr, 'n', 'hs', 'lua require"gitsigns".stage_hunk()', {}) + ... -- More keymaps + end +< + +watch_gitdir *gitsigns-config-watch_gitdir* + Type: `table[extended]` + Default: > + `{ + enable = true, + follow_files = true + }` +< + When opening a file, a libuv watcher is placed on the respective + `.git` directory to detect when changes happen to use as a trigger to + update signs. + + Fields: ~ + • `enable`: + Whether the watcher is enabled. + + • `follow_files`: + If a file is moved with `git mv`, switch the buffer to the new location. + +sign_priority *gitsigns-config-sign_priority* + Type: `number`, Default: `6` + + Priority to use for signs. + +signcolumn *gitsigns-config-signcolumn* + Type: `boolean`, Default: `true` + + Enable/disable symbols in the sign column. + + When enabled the highlights defined in `signs.*.hl` and symbols defined + in `signs.*.text` are used. + +numhl *gitsigns-config-numhl* + Type: `boolean`, Default: `false` + + Enable/disable line number highlights. + + When enabled the highlights defined in `signs.*.numhl` are used. If + the highlight group does not exist, then it is automatically defined + and linked to the corresponding highlight group in `signs.*.hl`. + +linehl *gitsigns-config-linehl* + Type: `boolean`, Default: `false` + + Enable/disable line highlights. + + When enabled the highlights defined in `signs.*.linehl` are used. If + the highlight group does not exist, then it is automatically defined + and linked to the corresponding highlight group in `signs.*.hl`. + +culhl *gitsigns-config-culhl* + Type: `boolean`, Default: `false` + + Enable/disable highlights for the sign column when the cursor is on + the same line. + + When enabled the highlights defined in `signs.*.culhl` are used. If + the highlight group does not exist, then it is automatically defined + and linked to the corresponding highlight group in `signs.*.hl`. + +show_deleted *gitsigns-config-show_deleted* + Type: `boolean`, Default: `false` + + Show the old version of hunks inline in the buffer (via virtual lines). + + Note: Virtual lines currently use the highlight `GitSignsDeleteVirtLn`. + +diff_opts *gitsigns-config-diff_opts* + Type: `table[extended]`, Default: derived from 'diffopt' + + Diff options. If the default value is used, then changes to 'diffopt' are + automatically applied. + + Fields: ~ + • algorithm: string + Diff algorithm to use. Values: + • "myers" the default algorithm + • "minimal" spend extra time to generate the + smallest possible diff + • "patience" patience diff algorithm + • "histogram" histogram diff algorithm + • internal: boolean + Use Neovim's built in xdiff library for running diffs. + • indent_heuristic: boolean + Use the indent heuristic for the internal + diff library. + • vertical: boolean + Start diff mode with vertical splits. + • linematch: integer + Enable second-stage diff on hunks to align lines. + Requires `internal=true`. + • ignore_blank_lines: boolean + Ignore changes where lines are blank. + • ignore_whitespace_change: boolean + Ignore changes in amount of white space. + It should ignore adding trailing white space, + but not leading white space. + • ignore_whitespace: boolean + Ignore all white space changes. + • ignore_whitespace_change_at_eol: boolean + Ignore white space changes at end of line. + +base *gitsigns-config-base* + Type: `string`, Default: index + + The object/revision to diff against. + See |gitsigns-revision|. + +count_chars *gitsigns-config-count_chars* + Type: `table` + Default: > + `{ "1", "2", "3", "4", "5", "6", "7", "8", "9", + ["+"] = ">" + }` +< + The count characters used when `signs.*.show_count` is enabled. The + `+` entry is used as a fallback. With the default, any count outside + of 1-9 uses the `>` character in the sign. + + Possible use cases for this field: + • to specify unicode characters for the counts instead of 1-9. + • to define characters to be used for counts greater than 9. + +status_formatter *gitsigns-config-status_formatter* + Type: `function` + Default: > + function(status) + local added, changed, removed = status.added, status.changed, status.removed + local status_txt = {} + if added and added > 0 then table.insert(status_txt, '+'..added ) end + if changed and changed > 0 then table.insert(status_txt, '~'..changed) end + if removed and removed > 0 then table.insert(status_txt, '-'..removed) end + return table.concat(status_txt, ' ') + end +< + Function used to format `b:gitsigns_status`. + +max_file_length *gitsigns-config-max_file_length* + Type: `number`, Default: `40000` + + Max file length (in lines) to attach to. + +preview_config *gitsigns-config-preview_config* + Type: `table[extended]` + Default: > + `{ + border = "single", + col = 1, + relative = "cursor", + row = 0, + style = "minimal" + }` +< + Option overrides for the Gitsigns preview window. Table is passed directly + to `nvim_open_win`. + +auto_attach *gitsigns-config-auto_attach* + Type: `boolean`, Default: `true` + + Automatically attach to files. + +attach_to_untracked *gitsigns-config-attach_to_untracked* + Type: `boolean`, Default: `false` + + Attach to untracked files. + +update_debounce *gitsigns-config-update_debounce* + Type: `number`, Default: `100` + + Debounce time for updates (in milliseconds). + +current_line_blame *gitsigns-config-current_line_blame* + Type: `boolean`, Default: `false` + + Adds an unobtrusive and customisable blame annotation at the end of + the current line. + + The highlight group used for the text is `GitSignsCurrentLineBlame`. + +current_line_blame_opts *gitsigns-config-current_line_blame_opts* + Type: `table[extended]` + Default: > + `{ + delay = 1000, + virt_text = true, + virt_text_pos = "eol", + virt_text_priority = 100 + }` +< + Options for the current line blame annotation. + + Fields: ~ + • virt_text: boolean + Whether to show a virtual text blame annotation. + • virt_text_pos: string + Blame annotation position. Available values: + `eol` Right after eol character. + `overlay` Display over the specified column, without + shifting the underlying text. + `right_align` Display right aligned in the window. + • delay: integer + Sets the delay (in milliseconds) before blame virtual text is + displayed. + • ignore_whitespace: boolean + Ignore whitespace when running blame. + • virt_text_priority: integer + Priority of virtual text. + • extra_opts: string[] + Extra options passed to `git-blame`. + +current_line_blame_formatter *gitsigns-config-current_line_blame_formatter* + Type: `string|function`, Default: `" , - "` + + String or function used to format the virtual text of + |gitsigns-config-current_line_blame|. + + When a string, accepts the following format specifiers: + + • `` + • `` + • `` + • `` + • `` + • `` or `` + • `` + • `` + • `` + • `` or `` + • `` + • `` + • `` + • `` + + For `` and ``, `FORMAT` can + be any valid date format that is accepted by `os.date()` with the + addition of `%R` (defaults to `%Y-%m-%d`): + + • `%a` abbreviated weekday name (e.g., Wed) + • `%A` full weekday name (e.g., Wednesday) + • `%b` abbreviated month name (e.g., Sep) + • `%B` full month name (e.g., September) + • `%c` date and time (e.g., 09/16/98 23:48:10) + • `%d` day of the month (16) [01-31] + • `%H` hour, using a 24-hour clock (23) [00-23] + • `%I` hour, using a 12-hour clock (11) [01-12] + • `%M` minute (48) [00-59] + • `%m` month (09) [01-12] + • `%p` either "am" or "pm" (pm) + • `%S` second (10) [00-61] + • `%w` weekday (3) [0-6 = Sunday-Saturday] + • `%x` date (e.g., 09/16/98) + • `%X` time (e.g., 23:48:10) + • `%Y` full year (1998) + • `%y` two-digit year (98) [00-99] + • `%%` the character `%´ + • `%R` relative (e.g., 4 months ago) + + When a function: + Parameters: ~ + {name} Git user name returned from `git config user.name` . + {blame_info} Table with the following keys: + • `abbrev_sha`: string + • `orig_lnum`: integer + • `final_lnum`: integer + • `author`: string + • `author_mail`: string + • `author_time`: integer + • `author_tz`: string + • `committer`: string + • `committer_mail`: string + • `committer_time`: integer + • `committer_tz`: string + • `summary`: string + • `previous`: string + • `filename`: string + • `boundary`: true? + + Note that the keys map onto the output of: + `git blame --line-porcelain` + + Return: ~ + The result of this function is passed directly to the `opts.virt_text` + field of |nvim_buf_set_extmark| and thus must be a list of + [text, highlight] tuples. + +current_line_blame_formatter_nc + *gitsigns-config-current_line_blame_formatter_nc* + Type: `string|function`, Default: `" "` + + String or function used to format the virtual text of + |gitsigns-config-current_line_blame| for lines that aren't committed. + + See |gitsigns-config-current_line_blame_formatter| for more information. + +trouble *gitsigns-config-trouble* + Type: `boolean`, Default: true if installed + + When using setqflist() or setloclist(), open Trouble instead of the + quickfix/location list window. + +word_diff *gitsigns-config-word_diff* + Type: `boolean`, Default: `false` + + Highlight intra-line word differences in the buffer. + Requires `config.diff_opts.internal = true` . + + Uses the highlights: + • For word diff in previews: + • `GitSignsAddInline` + • `GitSignsChangeInline` + • `GitSignsDeleteInline` + • For word diff in buffer: + • `GitSignsAddLnInline` + • `GitSignsChangeLnInline` + • `GitSignsDeleteLnInline` + • For word diff in virtual lines (e.g. show_deleted): + • `GitSignsAddVirtLnInline` + • `GitSignsChangeVirtLnInline` + • `GitSignsDeleteVirtLnInline` + +debug_mode *gitsigns-config-debug_mode* + Type: `boolean`, Default: `false` + + Enables debug logging and makes the following functions + available: `dump_cache`, `debug_messages`, `clear_debug`. + + +============================================================================== +HIGHLIGHT GROUPS *gitsigns-highlight-groups* + +These are the highlights groups used by Gitsigns. + +Note if a highlight is not defined, it will be automatically derived by +searching for other defined highlights in order. + + *hl-GitSignsAdd* +GitSignsAdd + Used for the text of 'add' signs. + + Fallbacks: `GitGutterAdd`, `SignifySignAdd`, `DiffAddedGutter`, `Added`, `DiffAdd` + *hl-GitSignsChange* +GitSignsChange + Used for the text of 'change' signs. + + Fallbacks: `GitGutterChange`, `SignifySignChange`, `DiffModifiedGutter`, `Changed`, `DiffChange` + *hl-GitSignsDelete* +GitSignsDelete + Used for the text of 'delete' signs. + + Fallbacks: `GitGutterDelete`, `SignifySignDelete`, `DiffRemovedGutter`, `Removed`, `DiffDelete` + *hl-GitSignsChangedelete* +GitSignsChangedelete + Used for the text of 'changedelete' signs. + + Fallbacks: `GitSignsChange` + *hl-GitSignsTopdelete* +GitSignsTopdelete + Used for the text of 'topdelete' signs. + + Fallbacks: `GitSignsDelete` + *hl-GitSignsUntracked* +GitSignsUntracked + Used for the text of 'untracked' signs. + + Fallbacks: `GitSignsAdd` + *hl-GitSignsAddNr* +GitSignsAddNr + Used for number column (when `config.numhl == true`) of 'add' signs. + + Fallbacks: `GitGutterAddLineNr`, `GitSignsAdd` + *hl-GitSignsChangeNr* +GitSignsChangeNr + Used for number column (when `config.numhl == true`) of 'change' signs. + + Fallbacks: `GitGutterChangeLineNr`, `GitSignsChange` + *hl-GitSignsDeleteNr* +GitSignsDeleteNr + Used for number column (when `config.numhl == true`) of 'delete' signs. + + Fallbacks: `GitGutterDeleteLineNr`, `GitSignsDelete` + *hl-GitSignsChangedeleteNr* +GitSignsChangedeleteNr + Used for number column (when `config.numhl == true`) of 'changedelete' signs. + + Fallbacks: `GitSignsChangeNr` + *hl-GitSignsTopdeleteNr* +GitSignsTopdeleteNr + Used for number column (when `config.numhl == true`) of 'topdelete' signs. + + Fallbacks: `GitSignsDeleteNr` + *hl-GitSignsUntrackedNr* +GitSignsUntrackedNr + Used for number column (when `config.numhl == true`) of 'untracked' signs. + + Fallbacks: `GitSignsAddNr` + *hl-GitSignsAddLn* +GitSignsAddLn + Used for buffer line (when `config.linehl == true`) of 'add' signs. + + Fallbacks: `GitGutterAddLine`, `SignifyLineAdd`, `DiffAdd` + *hl-GitSignsChangeLn* +GitSignsChangeLn + Used for buffer line (when `config.linehl == true`) of 'change' signs. + + Fallbacks: `GitGutterChangeLine`, `SignifyLineChange`, `DiffChange` + *hl-GitSignsChangedeleteLn* +GitSignsChangedeleteLn + Used for buffer line (when `config.linehl == true`) of 'changedelete' signs. + + Fallbacks: `GitSignsChangeLn` + *hl-GitSignsUntrackedLn* +GitSignsUntrackedLn + Used for buffer line (when `config.linehl == true`) of 'untracked' signs. + + Fallbacks: `GitSignsAddLn` + *hl-GitSignsAddCul* +GitSignsAddCul + Used for the text of 'add' signs when the cursor is on the same line as the sign. + + Fallbacks: `GitSignsAdd` + *hl-GitSignsChangeCul* +GitSignsChangeCul + Used for the text of 'change' signs when the cursor is on the same line as the sign. + + Fallbacks: `GitSignsChange` + *hl-GitSignsDeleteCul* +GitSignsDeleteCul + Used for the text of 'delete' signs when the cursor is on the same line as the sign. + + Fallbacks: `GitSignsDelete` + *hl-GitSignsChangedeleteCul* +GitSignsChangedeleteCul + Used for the text of 'changedelete' signs when the cursor is on the same line as the sign. + + Fallbacks: `GitSignsChangeCul` + *hl-GitSignsTopdeleteCul* +GitSignsTopdeleteCul + Used for the text of 'topdelete' signs when the cursor is on the same line as the sign. + + Fallbacks: `GitSignsDeleteCul` + *hl-GitSignsUntrackedCul* +GitSignsUntrackedCul + Used for the text of 'untracked' signs when the cursor is on the same line as the sign. + + Fallbacks: `GitSignsAddCul` + *hl-GitSignsAddPreview* +GitSignsAddPreview + Used for added lines in previews. + + Fallbacks: `GitGutterAddLine`, `SignifyLineAdd`, `DiffAdd` + *hl-GitSignsDeletePreview* +GitSignsDeletePreview + Used for deleted lines in previews. + + Fallbacks: `GitGutterDeleteLine`, `SignifyLineDelete`, `DiffDelete` + *hl-GitSignsCurrentLineBlame* +GitSignsCurrentLineBlame + Used for current line blame. + + Fallbacks: `NonText` + *hl-GitSignsAddInline* +GitSignsAddInline + Used for added word diff regions in inline previews. + + Fallbacks: `TermCursor` + *hl-GitSignsDeleteInline* +GitSignsDeleteInline + Used for deleted word diff regions in inline previews. + + Fallbacks: `TermCursor` + *hl-GitSignsChangeInline* +GitSignsChangeInline + Used for changed word diff regions in inline previews. + + Fallbacks: `TermCursor` + *hl-GitSignsAddLnInline* +GitSignsAddLnInline + Used for added word diff regions when `config.word_diff == true`. + + Fallbacks: `GitSignsAddInline` + *hl-GitSignsChangeLnInline* +GitSignsChangeLnInline + Used for changed word diff regions when `config.word_diff == true`. + + Fallbacks: `GitSignsChangeInline` + *hl-GitSignsDeleteLnInline* +GitSignsDeleteLnInline + Used for deleted word diff regions when `config.word_diff == true`. + + Fallbacks: `GitSignsDeleteInline` + *hl-GitSignsDeleteVirtLn* +GitSignsDeleteVirtLn + Used for deleted lines shown by inline `preview_hunk_inline()` or `show_deleted()`. + + Fallbacks: `GitGutterDeleteLine`, `SignifyLineDelete`, `DiffDelete` + *hl-GitSignsDeleteVirtLnInLine* +GitSignsDeleteVirtLnInLine + Used for word diff regions in lines shown by inline `preview_hunk_inline()` or `show_deleted()`. + + Fallbacks: `GitSignsDeleteLnInline` + *hl-GitSignsVirtLnum* +GitSignsVirtLnum + Used for line numbers in inline hunks previews. + + Fallbacks: `GitSignsDeleteVirtLn` + +============================================================================== +COMMAND *gitsigns-command* + + *:Gitsigns* +:Gitsigns {subcmd} {args} Run a Gitsigns command. {subcmd} can be any + function documented in |gitsigns-functions|. + Each argument in {args} will be attempted to be + parsed as a Lua value using `loadstring`, however + if this fails the argument will remain as the + string given by ||. + + Note this command is equivalent to: >vim + :lua require('gitsigns').{subcmd}({args}) +< + Examples: >vim + :Gitsigns diffthis HEAD~1 + :Gitsigns blame_line + :Gitsigns toggle_signs + :Gitsigns toggle_current_line_blame + :Gitsigns change_base ~ + :Gitsigns reset_buffer + :Gitsigns change_base nil true +< + +============================================================================== +SPECIFYING OBJECTS *gitsigns-object* *gitsigns-revision* + +Gitsigns objects are Git revisions as defined in the "SPECIFYING REVISIONS" +section in the gitrevisions(7) man page. For commands that accept an optional +base, the default is the file in the index. Examples: + +Additionally, Gitsigns also accepts the value `FILE` to specify the working +version of a file. + +Object Meaning ~ +@ Version of file in the commit referenced by @ aka HEAD +main Version of file in the commit referenced by main +main^ Version of file in the parent of the commit referenced by main +main~ " +main~1 " +main...other Version of file in the merge base of main and other +@^ Version of file in the parent of HEAD +@~2 Version of file in the grandparent of HEAD +92eb3dd Version of file in the commit 92eb3dd +:1 The file's common ancestor during a conflict +:2 The alternate file in the target branch during a conflict + +============================================================================== +STATUSLINE *gitsigns-statusline* + + *b:gitsigns_status* *b:gitsigns_status_dict* +The buffer variables `b:gitsigns_status` and `b:gitsigns_status_dict` are +provided. `b:gitsigns_status` is formatted using `config.status_formatter` +. `b:gitsigns_status_dict` is a dictionary with the keys: + + • `added` - Number of added lines. + • `changed` - Number of changed lines. + • `removed` - Number of removed lines. + • `head` - Name of current HEAD (branch or short commit hash). + • `root` - Top level directory of the working tree. + • `gitdir` - .git directory. + +Example: +>vim + set statusline+=%{get(b:,'gitsigns_status','')} +< + *b:gitsigns_head* *g:gitsigns_head* +Use `g:gitsigns_head` and `b:gitsigns_head` to return the name of the current +HEAD (usually branch name). If the current HEAD is detached then this will be +a short commit hash. `g:gitsigns_head` returns the current HEAD for the +current working directory, whereas `b:gitsigns_head` returns the current HEAD +for each buffer. + + *b:gitsigns_blame_line* *b:gitsigns_blame_line_dict* +Provided if |gitsigns-config-current_line_blame| is enabled. +`b:gitsigns_blame_line` if formatted using +`config.current_line_blame_formatter`. `b:gitsigns_blame_line_dict` is a +dictionary containing of the blame object for the current line. For complete +list of keys, see the {blame_info} argument from +|gitsigns-config-current_line_blame_formatter|. + +============================================================================== +TEXT OBJECTS *gitsigns-textobject* + +Since text objects are defined via keymaps, these are exposed and configurable +via the config, see |gitsigns-config-keymaps|. The lua implementation is +exposed through |gitsigns.select_hunk()|. + +============================================================================== +EVENTS *gitsigns-events* + +|User| |autocommands| provided to allow extending behaviors. + +Example: >lua + vim.api.nvim_create_autocmd('User', { + pattern = 'GitSignsUpdate', + callback = function(args) + print(os.time(), ' Gitsigns made an update on ', args.data.buffer) + end + }) +< + *User_GitSignsUpdate* +GitSignsUpdate After Gitsigns updates its knowledge about hunks. + Provides `bufnr` in the autocmd user data. + + *User_GitSignsChanged* +GitSignsChanged After any event in which Gitsigns can potentially change + the repository. Provides `file` in the autocmd user data. + +------------------------------------------------------------------------------ +vim:tw=78:ts=8:ft=help:norl: diff --git a/config/neovim/store/lazy-plugins/gitsigns.nvim/gitsigns.nvim-scm-1-unstable-2024-08-04-rocks/gitsigns.nvim/scm-1/gitsigns.nvim-scm-1.rockspec b/config/neovim/store/lazy-plugins/gitsigns.nvim/gitsigns.nvim-scm-1-unstable-2024-08-04-rocks/gitsigns.nvim/scm-1/gitsigns.nvim-scm-1.rockspec new file mode 100644 index 00000000..773609e3 --- /dev/null +++ b/config/neovim/store/lazy-plugins/gitsigns.nvim/gitsigns.nvim-scm-1-unstable-2024-08-04-rocks/gitsigns.nvim/scm-1/gitsigns.nvim-scm-1.rockspec @@ -0,0 +1,37 @@ +local _MODREV, _SPECREV = 'scm', '-1' + +rockspec_format = "3.0" +package = 'gitsigns.nvim' +version = _MODREV .. _SPECREV + +description = { + summary = 'Git signs written in pure lua', + detailed = [[ + Super fast git decorations implemented purely in Lua. + ]], + homepage = 'http://github.com/lewis6991/gitsigns.nvim', + license = 'MIT/X11', + labels = { 'neovim' } +} + +dependencies = { + 'lua == 5.1', +} + +source = { + url = 'http://github.com/lewis6991/gitsigns.nvim/archive/v' .. _MODREV .. '.zip', + dir = 'gitsigns.nvim-' .. _MODREV, +} + +if _MODREV == 'scm' then + source = { + url = 'git://github.com/lewis6991/gitsigns.nvim', + } +end + +build = { + type = 'builtin', + copy_directories = { + 'doc' + } +} diff --git a/config/neovim/store/lazy-plugins/gitsigns.nvim/gitsigns.nvim-scm-1-unstable-2024-08-04-rocks/gitsigns.nvim/scm-1/rock_manifest b/config/neovim/store/lazy-plugins/gitsigns.nvim/gitsigns.nvim-scm-1-unstable-2024-08-04-rocks/gitsigns.nvim/scm-1/rock_manifest new file mode 100644 index 00000000..fcdb7cf9 --- /dev/null +++ b/config/neovim/store/lazy-plugins/gitsigns.nvim/gitsigns.nvim-scm-1-unstable-2024-08-04-rocks/gitsigns.nvim/scm-1/rock_manifest @@ -0,0 +1,53 @@ +rock_manifest = { + doc = { + ["gitsigns.txt"] = "ed2c2a9eac117833753afc9dd55adcf4" + }, + ["gitsigns.nvim-scm-1.rockspec"] = "a9b165d604ce401cfeea760a9366418d", + lua = { + gitsigns = { + ["actions.lua"] = "ac0661d45e50424f5f59924528b1c031", + ["async.lua"] = "ab34c767e5b6c917335d19f2acc6fd36", + ["attach.lua"] = "44664690d66389b4487d934ebcad98e6", + ["blame.lua"] = "05feea95e221a2409a8d44334c47529f", + ["cache.lua"] = "523c72aa06168f06b3ecd34fd04cbe9d", + cli = { + ["argparse.lua"] = "fb6c9ffda01b2090f3c252ecaf00f68a" + }, + ["cli.lua"] = "00273191aa1ca467c5edbd9531f8fd9d", + ["config.lua"] = "8743742b5a5b0a0713f0352ff4e88db0", + ["current_line_blame.lua"] = "48e477d836e39ab98e58c2b027dd9db8", + ["debounce.lua"] = "5a28036b5ac45c1f93f9883b855e564f", + debug = { + ["log.lua"] = "f7e994b68e9cbcf91adfeb5bc379d7b1" + }, + ["debug.lua"] = "6a819b17a531b74ee11622145097afae", + ["diff.lua"] = "0c462ae71c77899e81da151dcfdf77eb", + ["diff_ext.lua"] = "31454455cd645f1518d8363446e8d0f6", + ["diff_int.lua"] = "8e73883f55811dcb68ad481d389aa687", + ["diffthis.lua"] = "aaac58016e9982bb14e942f9e4e24c52", + git = { + ["blame.lua"] = "e779f4344bcc41cdb92c1a1be5eb2815", + ["cmd.lua"] = "449c03c67b7ae516babc41d6da0dc66e", + ["repo.lua"] = "1efe3178f64b77e0fc22cad55d9586a0", + ["version.lua"] = "068a582ed4565978eb1f6eb089a6fa6c" + }, + ["git.lua"] = "0d3e8859ff8cf7ebd3beb739b64a8c49", + ["highlight.lua"] = "f0bf039b629818fbfae8a6fad161f9a2", + ["hunks.lua"] = "ee058ee8b056b055cd8404460ca6921f", + ["manager.lua"] = "f6e7e2430f2f28a4dbcfd2479f2c8480", + ["message.lua"] = "523ee4df9da4a7fa9b5ab2100eb27ac4", + ["popup.lua"] = "2fcf3052f95d81cb5c0bb04ca4e06aae", + ["repeat.lua"] = "798544de97c774bc8e10eecfd6479585", + ["signs.lua"] = "a22dd6943d762dffcdbb8d2db4d885bb", + ["status.lua"] = "a229a7213a3fbecfcf2d98aaf587fcab", + system = { + ["compat.lua"] = "05d2b6d08602fba46be9b540288091e7" + }, + ["system.lua"] = "d73fac4f6e734cc8ce9f13d6be027503", + ["test.lua"] = "082f7c7a556bf27352a378d047b8e79b", + ["util.lua"] = "d30ad092850bd48a1446ce069320f5a7", + ["watcher.lua"] = "978875698d84bc1f715c55fefa72bcc1" + }, + ["gitsigns.lua"] = "bf3f49482d8340f4be41060d7f461fd1" + } +} diff --git a/config/neovim/store/lazy-plugins/gitsigns.nvim/gitsigns.nvim-scm-1-unstable-2024-08-04-rocks/manifest b/config/neovim/store/lazy-plugins/gitsigns.nvim/gitsigns.nvim-scm-1-unstable-2024-08-04-rocks/manifest new file mode 100644 index 00000000..8d5cccd5 --- /dev/null +++ b/config/neovim/store/lazy-plugins/gitsigns.nvim/gitsigns.nvim-scm-1-unstable-2024-08-04-rocks/manifest @@ -0,0 +1,173 @@ +commands = {} +dependencies = { + ["gitsigns.nvim"] = { + ["scm-1"] = { + { + constraints = { + { + op = "==", + version = { + 5, 1, string = "5.1" + } + } + }, + name = "lua" + } + } + } +} +modules = { + gitsigns = { + "gitsigns.nvim/scm-1" + }, + ["gitsigns.actions"] = { + "gitsigns.nvim/scm-1" + }, + ["gitsigns.async"] = { + "gitsigns.nvim/scm-1" + }, + ["gitsigns.attach"] = { + "gitsigns.nvim/scm-1" + }, + ["gitsigns.blame"] = { + "gitsigns.nvim/scm-1" + }, + ["gitsigns.cache"] = { + "gitsigns.nvim/scm-1" + }, + ["gitsigns.cli"] = { + "gitsigns.nvim/scm-1" + }, + ["gitsigns.cli.argparse"] = { + "gitsigns.nvim/scm-1" + }, + ["gitsigns.config"] = { + "gitsigns.nvim/scm-1" + }, + ["gitsigns.current_line_blame"] = { + "gitsigns.nvim/scm-1" + }, + ["gitsigns.debounce"] = { + "gitsigns.nvim/scm-1" + }, + ["gitsigns.debug"] = { + "gitsigns.nvim/scm-1" + }, + ["gitsigns.debug.log"] = { + "gitsigns.nvim/scm-1" + }, + ["gitsigns.diff"] = { + "gitsigns.nvim/scm-1" + }, + ["gitsigns.diff_ext"] = { + "gitsigns.nvim/scm-1" + }, + ["gitsigns.diff_int"] = { + "gitsigns.nvim/scm-1" + }, + ["gitsigns.diffthis"] = { + "gitsigns.nvim/scm-1" + }, + ["gitsigns.git"] = { + "gitsigns.nvim/scm-1" + }, + ["gitsigns.git.blame"] = { + "gitsigns.nvim/scm-1" + }, + ["gitsigns.git.cmd"] = { + "gitsigns.nvim/scm-1" + }, + ["gitsigns.git.repo"] = { + "gitsigns.nvim/scm-1" + }, + ["gitsigns.git.version"] = { + "gitsigns.nvim/scm-1" + }, + ["gitsigns.highlight"] = { + "gitsigns.nvim/scm-1" + }, + ["gitsigns.hunks"] = { + "gitsigns.nvim/scm-1" + }, + ["gitsigns.manager"] = { + "gitsigns.nvim/scm-1" + }, + ["gitsigns.message"] = { + "gitsigns.nvim/scm-1" + }, + ["gitsigns.popup"] = { + "gitsigns.nvim/scm-1" + }, + ["gitsigns.repeat"] = { + "gitsigns.nvim/scm-1" + }, + ["gitsigns.signs"] = { + "gitsigns.nvim/scm-1" + }, + ["gitsigns.status"] = { + "gitsigns.nvim/scm-1" + }, + ["gitsigns.system"] = { + "gitsigns.nvim/scm-1" + }, + ["gitsigns.system.compat"] = { + "gitsigns.nvim/scm-1" + }, + ["gitsigns.test"] = { + "gitsigns.nvim/scm-1" + }, + ["gitsigns.util"] = { + "gitsigns.nvim/scm-1" + }, + ["gitsigns.watcher"] = { + "gitsigns.nvim/scm-1" + } +} +repository = { + ["gitsigns.nvim"] = { + ["scm-1"] = { + { + arch = "installed", + commands = {}, + dependencies = {}, + modules = { + gitsigns = "gitsigns.lua", + ["gitsigns.actions"] = "gitsigns/actions.lua", + ["gitsigns.async"] = "gitsigns/async.lua", + ["gitsigns.attach"] = "gitsigns/attach.lua", + ["gitsigns.blame"] = "gitsigns/blame.lua", + ["gitsigns.cache"] = "gitsigns/cache.lua", + ["gitsigns.cli"] = "gitsigns/cli.lua", + ["gitsigns.cli.argparse"] = "gitsigns/cli/argparse.lua", + ["gitsigns.config"] = "gitsigns/config.lua", + ["gitsigns.current_line_blame"] = "gitsigns/current_line_blame.lua", + ["gitsigns.debounce"] = "gitsigns/debounce.lua", + ["gitsigns.debug"] = "gitsigns/debug.lua", + ["gitsigns.debug.log"] = "gitsigns/debug/log.lua", + ["gitsigns.diff"] = "gitsigns/diff.lua", + ["gitsigns.diff_ext"] = "gitsigns/diff_ext.lua", + ["gitsigns.diff_int"] = "gitsigns/diff_int.lua", + ["gitsigns.diffthis"] = "gitsigns/diffthis.lua", + ["gitsigns.git"] = "gitsigns/git.lua", + ["gitsigns.git.blame"] = "gitsigns/git/blame.lua", + ["gitsigns.git.cmd"] = "gitsigns/git/cmd.lua", + ["gitsigns.git.repo"] = "gitsigns/git/repo.lua", + ["gitsigns.git.version"] = "gitsigns/git/version.lua", + ["gitsigns.highlight"] = "gitsigns/highlight.lua", + ["gitsigns.hunks"] = "gitsigns/hunks.lua", + ["gitsigns.manager"] = "gitsigns/manager.lua", + ["gitsigns.message"] = "gitsigns/message.lua", + ["gitsigns.popup"] = "gitsigns/popup.lua", + ["gitsigns.repeat"] = "gitsigns/repeat.lua", + ["gitsigns.signs"] = "gitsigns/signs.lua", + ["gitsigns.status"] = "gitsigns/status.lua", + ["gitsigns.system"] = "gitsigns/system.lua", + ["gitsigns.system.compat"] = "gitsigns/system/compat.lua", + ["gitsigns.test"] = "gitsigns/test.lua", + ["gitsigns.util"] = "gitsigns/util.lua", + ["gitsigns.watcher"] = "gitsigns/watcher.lua" + } + } + } + } +} diff --git a/config/neovim/store/lazy-plugins/gitsigns.nvim/lua/gitsigns/blame.lua b/config/neovim/store/lazy-plugins/gitsigns.nvim/lua/gitsigns/blame.lua new file mode 100644 index 00000000..c7e715dd --- /dev/null +++ b/config/neovim/store/lazy-plugins/gitsigns.nvim/lua/gitsigns/blame.lua @@ -0,0 +1,400 @@ +local async = require('gitsigns.async') +local cache = require('gitsigns.cache').cache +local log = require('gitsigns.debug.log') +local util = require('gitsigns.util') + +local api = vim.api + +local hash_colors = {} --- @type table + +local ns = api.nvim_create_namespace('gitsigns_blame_win') +local ns_hl = api.nvim_create_namespace('gitsigns_blame_win_hl') + +--- Convert a hex char to a rgb color component +--- +--- Taken from vim-fugitive: +--- Avoid color components lower than 0x20 and higher than 0xdf to help +--- avoid colors that blend into the background, light or dark. +--- @param x string hex char +--- @return integer +local function mod(x) + local y = tonumber(x, 16) + return math.min(0xdf, 0x20 + math.floor((y * 0x10 + (15 - y)) * 0.75)) +end + +--- Taken from vim-fugitive +--- Use 3 characters of the commit hash, limiting the maximum total colors to +--- 4,096. +--- @param sha string +--- @return string +local function get_hash_color(sha) + local r, g, b = sha:match('(%x)%x(%x)%x(%x)') + local color = mod(r) * 0x10000 + mod(g) * 0x100 + mod(b) + + if hash_colors[sha] then + return hash_colors[sha] + end + + local hl_name = string.format('GitSignsBlameColor.%s%s%s', r, g, b) + api.nvim_set_hl(0, hl_name, { fg = color }) + hash_colors[color] = hl_name + + return hl_name +end + +---@param amount integer +---@param text string +---@return string +local function lalign(amount, text) + local len = vim.str_utfindex(text) + return text .. string.rep(' ', math.max(0, amount - len)) +end + +local chars = { + first = '┍', + mid = '│', + last = '┕', + single = '╺', +} + +local M = {} + +--- @param blame table +--- @param win integer +--- @param main_win integer +--- @param buf_sha string +local function render(blame, win, main_win, buf_sha) + local max_author_len = 0 + + for _, blame_info in pairs(blame) do + max_author_len = math.max(max_author_len, (vim.str_utfindex(blame_info.commit.author))) + end + + local lines = {} --- @type string[] + local last_sha --- @type string? + local cnt = 0 + local commit_lines = {} --- @type table + for i, hl in pairs(blame) do + local sha = hl.commit.abbrev_sha + local next_sha = blame[i + 1] and blame[i + 1].commit.abbrev_sha or nil + if sha == last_sha then + cnt = cnt + 1 + local c = sha == next_sha and chars.mid or chars.last + lines[i] = cnt == 1 and string.format('%s %s', c, hl.commit.summary) or c + else + cnt = 0 + commit_lines[i] = true + lines[i] = string.format( + '%s %s %s %s', + chars.first, + sha, + lalign(max_author_len, hl.commit.author), + util.expand_format('', hl.commit) + ) + end + last_sha = sha + end + + local win_width = #lines[1] + api.nvim_win_set_width(win, win_width + 1) + + local bufnr = api.nvim_win_get_buf(win) + local main_buf = api.nvim_win_get_buf(main_win) + + api.nvim_buf_set_lines(bufnr, 0, -1, false, lines) + + -- Apply highlights + for i, blame_info in ipairs(blame) do + local hash_color = get_hash_color(blame_info.commit.abbrev_sha) + + api.nvim_buf_set_extmark(bufnr, ns, i - 1, 0, { + end_col = commit_lines[i] and 12 or 1, + hl_group = hash_color, + }) + + if commit_lines[i] then + local width = string.len(lines[i]) + api.nvim_buf_set_extmark(bufnr, ns, i - 1, width - 10, { + end_col = width, + hl_group = 'Title', + }) + else + api.nvim_buf_set_extmark(bufnr, ns, i - 1, 2, { + end_row = i, + end_col = 0, + hl_group = 'Comment', + }) + end + + if buf_sha == blame_info.commit.sha then + api.nvim_buf_set_extmark(bufnr, ns, i - 1, 0, { + line_hl_group = '@markup.italic', + }) + end + + if commit_lines[i] and commit_lines[i + 1] then + api.nvim_buf_set_extmark(bufnr, ns, i - 1, 0, { + virt_lines = { + { { chars.last, hash_color }, { ' ' }, { blame[i].commit.summary, 'Comment' } }, + }, + }) + + local fillchar = string.rep(vim.opt.fillchars:get().diff or '-', 1000) + + api.nvim_buf_set_extmark(main_buf, ns, i - 1, 0, { + virt_lines = { { { fillchar, 'Comment' } } }, + virt_lines_leftcol = true, + }) + end + end +end + +--- @param blame table +--- @param win integer +--- @param revision? string +--- @param parent? boolean +local function reblame(blame, win, revision, parent) + local blm_win = api.nvim_get_current_win() + local lnum = unpack(api.nvim_win_get_cursor(blm_win)) + local sha = blame[lnum].commit.sha + if parent then + sha = sha .. '^' + end + if sha == revision then + return + end + + vim.cmd.quit() + api.nvim_set_current_win(win) + + require('gitsigns').show( + sha, + vim.schedule_wrap(function() + local bufnr = api.nvim_get_current_buf() + local ok = vim.wait(1000, function() + return cache[bufnr] ~= nil + end) + if not ok then + error('Timeout waiting for attach') + end + async.run(M.blame) + end) + ) +end + +--- @param win integer +--- @param open 'vsplit'|'tabnew' +--- @param bcache Gitsigns.CacheEntry +local show_commit = async.create(3, function(win, open, bcache) + local cursor = api.nvim_win_get_cursor(win)[1] + local sha = bcache.blame[cursor].commit.sha + local res = bcache.git_obj.repo:command({ 'show', sha }) + async.scheduler() + local commit_buf = api.nvim_create_buf(true, true) + api.nvim_buf_set_name(commit_buf, bcache:get_rev_bufname(sha, true)) + api.nvim_buf_set_lines(commit_buf, 0, -1, false, res) + vim.cmd[open]({ mods = { keepalt = true } }) + api.nvim_win_set_buf(0, commit_buf) + vim.bo[commit_buf].filetype = 'git' +end) + +--- @param augroup integer +--- @param wins integer[] +local function sync_cursors(augroup, wins) + local cursor_save --- @type integer? + + ---@param w integer + local function sync_cursor(w) + local b = api.nvim_win_get_buf(w) + api.nvim_create_autocmd('BufLeave', { + buffer = b, + group = augroup, + callback = function() + cursor_save = unpack(api.nvim_win_get_cursor(w)) + end, + }) + + api.nvim_create_autocmd('BufEnter', { + group = augroup, + buffer = b, + callback = function() + local cur_cursor, cur_cursor_col = unpack(api.nvim_win_get_cursor(w)) + if cursor_save and cursor_save ~= cur_cursor then + api.nvim_win_set_cursor(w, { cursor_save, vim.o.startofline and 0 or cur_cursor_col }) + end + end, + }) + end + + for _, w in ipairs(wins) do + sync_cursor(w) + end +end + +--- @param name string +--- @param items [string, string][] +local function menu(name, items) + local max_len = 0 + for _, item in ipairs(items) do + max_len = math.max(max_len, #item[1]) --- @type integer + end + + for _, item in ipairs(items) do + local item_nm, action = item[1], item[2] + local pad = string.rep(' ', max_len - #item_nm) + local lhs = string.format('%s%s (%s)', item_nm, pad, action):gsub(' ', [[\ ]]) + local cmd = string.format('nmenu ]%s.%s %s', name, lhs, action) + + vim.cmd(cmd) + end +end + +--- @async +M.blame = function() + local __FUNC__ = 'blame' + local bufnr = api.nvim_get_current_buf() + local win = api.nvim_get_current_win() + local bcache = cache[bufnr] + if not bcache then + log.dprint('Not attached') + return + end + + bcache:get_blame() + local blame = assert(bcache.blame) + + -- Save position to align 'scrollbind' + local top = vim.fn.line('w0') + vim.wo.scrolloff + local current = vim.fn.line('.') + + vim.cmd.vsplit({ mods = { keepalt = true, split = 'aboveleft' } }) + local blm_win = api.nvim_get_current_win() + + local blm_bufnr = api.nvim_create_buf(false, true) + api.nvim_win_set_buf(blm_win, blm_bufnr) + + render(blame, blm_win, win, bcache.git_obj.revision) + + local blm_bo = vim.bo[blm_bufnr] + blm_bo.buftype = 'nofile' + blm_bo.bufhidden = 'wipe' + blm_bo.modifiable = false + blm_bo.filetype = 'gitsigns-blame' + + local blm_wlo = vim.wo[blm_win][0] + blm_wlo.foldcolumn = '0' + blm_wlo.foldenable = false + blm_wlo.number = false + blm_wlo.relativenumber = false + blm_wlo.scrollbind = true + blm_wlo.signcolumn = 'no' + blm_wlo.spell = false + blm_wlo.winfixwidth = true + blm_wlo.wrap = false + + if vim.wo[win].winbar ~= '' and blm_wlo.winbar == '' then + local name = api.nvim_buf_get_name(bufnr) + blm_wlo.winbar = vim.fn.fnamemodify(name, ':.') + end + + if vim.fn.exists('&winfixbuf') then + blm_wlo.winfixbuf = true + end + + vim.cmd(tostring(top)) + vim.cmd('normal! zt') + vim.cmd(tostring(current)) + vim.cmd('normal! 0') + + local cur_wlo = vim.wo[win][0] + local cur_orig_wlo = { cur_wlo.foldenable, cur_wlo.scrollbind, cur_wlo.wrap } + cur_wlo.foldenable = false + cur_wlo.scrollbind = true + cur_wlo.wrap = false + + vim.cmd.redraw() + vim.cmd.syncbind() + + vim.keymap.set('n', '', function() + vim.cmd.popup(']GitsignsBlame') + end, { + desc = 'Open blame context menu', + buffer = blm_bufnr, + }) + + vim.keymap.set('n', 'r', function() + reblame(blame, win, bcache.git_obj.revision) + end, { + desc = 'Reblame at commit', + buffer = blm_bufnr, + }) + + vim.keymap.set('n', 'R', function() + reblame(blame, win, bcache.git_obj.revision, true) + end, { + desc = 'Reblame at commit parent', + buffer = blm_bufnr, + }) + + vim.keymap.set('n', 's', function() + show_commit(blm_win, 'vsplit', bcache) + end, { + desc = 'Show commit in a vertical split', + buffer = blm_bufnr, + }) + + vim.keymap.set('n', 'S', function() + show_commit(blm_win, 'tabnew', bcache) + end, { + desc = 'Show commit in a new tab', + buffer = blm_bufnr, + }) + + menu('GitsignsBlame', { + { 'Reblame at commit', 'r' }, + { 'Reblame at commit parent', 'R' }, + { 'Show commit (vsplit)', 's' }, + { ' (tab)', 'S' }, + }) + + local group = api.nvim_create_augroup('GitsignsBlame', {}) + + api.nvim_create_autocmd({ 'CursorMoved', 'BufLeave' }, { + buffer = blm_bufnr, + group = group, + callback = function() + api.nvim_buf_clear_namespace(blm_bufnr, ns_hl, 0, -1) + api.nvim_buf_clear_namespace(bufnr, ns_hl, 0, -1) + end, + }) + + -- Highlight the same commit under the cursor + api.nvim_create_autocmd('CursorMoved', { + buffer = blm_bufnr, + group = group, + callback = function() + local cursor = unpack(api.nvim_win_get_cursor(blm_win)) + local cur_sha = blame[cursor].commit.abbrev_sha + for i, info in pairs(blame) do + if info.commit.abbrev_sha == cur_sha then + api.nvim_buf_set_extmark(blm_bufnr, ns_hl, i - 1, 0, { + line_hl_group = '@markup.strong', + }) + end + end + end, + }) + + api.nvim_create_autocmd('WinClosed', { + pattern = tostring(blm_win), + group = group, + callback = function() + api.nvim_buf_clear_namespace(bufnr, ns, 0, -1) + cur_wlo.foldenable, cur_wlo.scrollbind, cur_wlo.wrap = unpack(cur_orig_wlo) + end, + }) + + sync_cursors(group, { win, blm_win }) +end + +return M diff --git a/config/neovim/store/lazy-plugins/gitsigns.nvim/lua/gitsigns/git/blame.lua b/config/neovim/store/lazy-plugins/gitsigns.nvim/lua/gitsigns/git/blame.lua new file mode 100644 index 00000000..0a9d5498 --- /dev/null +++ b/config/neovim/store/lazy-plugins/gitsigns.nvim/lua/gitsigns/git/blame.lua @@ -0,0 +1,268 @@ +local uv = vim.uv or vim.loop + +local error_once = require('gitsigns.message').error_once +local log = require('gitsigns.debug.log') + +--- @class Gitsigns.CommitInfo +--- @field author string +--- @field author_mail string +--- @field author_time integer +--- @field author_tz string +--- @field committer string +--- @field committer_mail string +--- @field committer_time integer +--- @field committer_tz string +--- @field summary string +--- @field sha string +--- @field abbrev_sha string +--- @field boundary? true + +--- @class Gitsigns.BlameInfoPublic: Gitsigns.BlameInfo, Gitsigns.CommitInfo +--- @field body? string[] +--- @field hunk_no? integer +--- @field num_hunks? integer +--- @field hunk? string[] +--- @field hunk_head? string + +--- @class Gitsigns.BlameInfo +--- @field orig_lnum integer +--- @field final_lnum integer +--- @field commit Gitsigns.CommitInfo +--- @field filename string +--- @field previous_filename? string +--- @field previous_sha? string + +local NOT_COMMITTED = { + author = 'Not Committed Yet', + author_mail = '', + committer = 'Not Committed Yet', + committer_mail = '', +} + +local M = {} + +--- @param file string +--- @return Gitsigns.CommitInfo +local function not_committed(file) + local time = os.time() + return { + sha = string.rep('0', 40), + abbrev_sha = string.rep('0', 8), + author = 'Not Committed Yet', + author_mail = '', + author_tz = '+0000', + author_time = time, + committer = 'Not Committed Yet', + committer_time = time, + committer_mail = '', + committer_tz = '+0000', + summary = 'Version of ' .. file, + } +end + +--- @param file string +--- @param lnum integer +--- @return Gitsigns.BlameInfo +function M.get_blame_nc(file, lnum) + return { + orig_lnum = 0, + final_lnum = lnum, + commit = not_committed(file), + filename = file, + } +end + +---@param x any +---@return integer +local function asinteger(x) + return assert(tonumber(x)) +end + +--- @param readline fun(): string? +--- @param commits table +--- @param result table +local function incremental_iter(readline, commits, result) + local line = assert(readline()) + + --- @type string, string, string, string + local sha, orig_lnum_str, final_lnum_str, size_str = line:match('(%x+) (%d+) (%d+) (%d+)') + assert(sha) + + local orig_lnum = asinteger(orig_lnum_str) + local final_lnum = asinteger(final_lnum_str) + local size = asinteger(size_str) + + --- @type table + local commit = commits[sha] or { + sha = sha, + abbrev_sha = sha:sub(1, 8), + } + + --- @type string, string + local previous_sha, previous_filename + + line = assert(readline()) + + -- filename terminates the entry + while not line:match('^filename ') do + local key, value = line:match('^([^%s]+) (.*)') + if key == 'previous' then + previous_sha, previous_filename = line:match('^previous (%x+) (.*)') + elseif key then + key = key:gsub('%-', '_') --- @type string + if vim.endswith(key, '_time') then + value = tonumber(value) + end + commit[key] = value + else + commit[line] = true + if line ~= 'boundary' then + log.dprintf("Unknown tag: '%s'", line) + end + end + line = assert(readline()) + end + + local filename = assert(line:match('^filename (.*)')) + + -- New in git 2.41: + -- The output given by "git blame" that attributes a line to contents + -- taken from the file specified by the "--contents" option shows it + -- differently from a line attributed to the working tree file. + if + commit.author_mail == '' + or commit.author_mail == 'External file (--contents)' + then + commit = vim.tbl_extend('force', commit, NOT_COMMITTED) + end + commits[sha] = commit + + for j = 0, size - 1 do + result[final_lnum + j] = { + final_lnum = final_lnum + j, + orig_lnum = orig_lnum + j, + commit = commits[sha], + filename = filename, + previous_filename = previous_filename, + previous_sha = previous_sha, + } + end +end + +--- @param data string +--- @return string[] +local function data_to_lines(data) + local lines = vim.split(data, '\n') + if lines[#lines] == '' then + lines[#lines] = nil + end + return lines +end + +--- @param f fun(readline: fun(): string?)) +--- @return fun(data: string?) +local function bufferred_line_reader(f) + --- @param data string? + return coroutine.wrap(function(data) + if not data then + return + end + + local data_lines = data_to_lines(data) + local i = 0 + + local function readline(peek) + if not data_lines[i + 1] then + data = coroutine.yield() + if not data then + return + end + data_lines = data_to_lines(data) + i = 0 + end + + if peek then + return data_lines[ i+ 1] + end + i = i + 1 + return data_lines[i] + end + + while readline(true) do + f(readline) + end + end) +end + +--- @param obj Gitsigns.GitObj +--- @param lines string[] +--- @param lnum? integer +--- @param revision? string +--- @param opts? Gitsigns.BlameOpts +--- @return table +function M.run_blame(obj, lines, lnum, revision, opts) + local ret = {} --- @type table + + if not obj.object_name or obj.repo.abbrev_head == '' then + -- As we support attaching to untracked files we need to return something if + -- the file isn't isn't tracked in git. + -- If abbrev_head is empty, then assume the repo has no commits + local commit = not_committed(obj.file) + for i in ipairs(lines) do + ret[i] = { + orig_lnum = 0, + final_lnum = i, + commit = commit, + filename = obj.file, + } + end + return ret + end + + local args = { 'blame', '--contents', '-', '--incremental' } + + opts = opts or {} + + if opts.ignore_whitespace then + args[#args + 1] = '-w' + end + + if lnum then + vim.list_extend(args, { '-L', lnum .. ',+1' }) + end + + if opts.extra_opts then + vim.list_extend(args, opts.extra_opts) + end + + local ignore_file = obj.repo.toplevel .. '/.git-blame-ignore-revs' + if uv.fs_stat(ignore_file) then + vim.list_extend(args, { '--ignore-revs-file', ignore_file }) + end + + args[#args + 1] = revision + args[#args + 1] = '--' + args[#args + 1] = obj.file + + local commits = {} --- @type table + + local reader = bufferred_line_reader(function(readline) + incremental_iter(readline, commits, ret) + end) + + --- @param data string? + local function on_stdout(_, data) + reader(data) + end + + local _, stderr = obj.repo:command(args, { stdin = lines, stdout = on_stdout, ignore_error = true }) + + if stderr then + error_once('Error running git-blame: ' .. stderr) + return {} + end + + return ret +end + +return M diff --git a/config/neovim/store/lazy-plugins/gitsigns.nvim/lua/gitsigns/git/cmd.lua b/config/neovim/store/lazy-plugins/gitsigns.nvim/lua/gitsigns/git/cmd.lua new file mode 100644 index 00000000..6ec0b4ae --- /dev/null +++ b/config/neovim/store/lazy-plugins/gitsigns.nvim/lua/gitsigns/git/cmd.lua @@ -0,0 +1,72 @@ +local async = require('gitsigns.async') +local log = require('gitsigns.debug.log') + +local system = require('gitsigns.system').system + +--- @type fun(cmd: string[], opts?: vim.SystemOpts): vim.SystemCompleted +local asystem = async.wrap(3, system) + +--- @class Gitsigns.Git.JobSpec : vim.SystemOpts +--- @field ignore_error? boolean + +--- @async +--- @param args string[] +--- @param spec? Gitsigns.Git.JobSpec +--- @return string[] stdout, string? stderr +local function git_command(args, spec) + spec = spec or {} + + local cmd = { + 'git', + '--no-pager', + '--no-optional-locks', + '--literal-pathspecs', + '-c', + 'gc.auto=0', -- Disable auto-packing which emits messages to stderr + unpack(args), + } + + if spec.text == nil then + spec.text = true + end + + -- Fix #895. Only needed for Nvim 0.9 and older + spec.clear_env = true + + --- @type vim.SystemCompleted + local obj = asystem(cmd, spec) + + if not spec.ignore_error and obj.code > 0 then + log.eprintf( + "Received exit code %d when running command\n'%s':\n%s", + obj.code, + table.concat(cmd, ' '), + obj.stderr + ) + end + + local stdout_lines = vim.split(obj.stdout or '', '\n') + + if spec.text then + -- If stdout ends with a newline, then remove the final empty string after + -- the split + if stdout_lines[#stdout_lines] == '' then + stdout_lines[#stdout_lines] = nil + end + end + + if log.verbose then + log.vprintf('%d lines:', #stdout_lines) + for i = 1, math.min(10, #stdout_lines) do + log.vprintf('\t%s', stdout_lines[i]) + end + end + + if obj.stderr == '' then + obj.stderr = nil + end + + return stdout_lines, obj.stderr +end + +return git_command diff --git a/config/neovim/store/lazy-plugins/gitsigns.nvim/lua/gitsigns/git/repo.lua b/config/neovim/store/lazy-plugins/gitsigns.nvim/lua/gitsigns/git/repo.lua new file mode 100644 index 00000000..2bd61160 --- /dev/null +++ b/config/neovim/store/lazy-plugins/gitsigns.nvim/lua/gitsigns/git/repo.lua @@ -0,0 +1,265 @@ +local async = require('gitsigns.async') +local git_command = require('gitsigns.git.cmd') +local log = require('gitsigns.debug.log') +local util = require('gitsigns.util') + +local system = require('gitsigns.system').system +local check_version = require('gitsigns.git.version').check + +--- @type fun(cmd: string[], opts?: vim.SystemOpts): vim.SystemCompleted +local asystem = async.wrap(3, system) + +local uv = vim.uv or vim.loop + +--- @class Gitsigns.RepoInfo +--- @field gitdir string +--- @field toplevel string +--- @field detached boolean +--- @field abbrev_head string + +--- @class Gitsigns.Repo : Gitsigns.RepoInfo +--- +--- Username configured for the repo. +--- Needed for to determine "You" in current line blame. +--- @field username string +local M = {} + +--- Run git command the with the objects gitdir and toplevel +--- @async +--- @param args string[] +--- @param spec? Gitsigns.Git.JobSpec +--- @return string[] stdout, string? stderr +function M:command(args, spec) + spec = spec or {} + spec.cwd = self.toplevel + + local args1 = { '--git-dir', self.gitdir } + + if self.detached then + vim.list_extend(args1, { '--work-tree', self.toplevel }) + end + + vim.list_extend(args1, args) + + return git_command(args1, spec) +end + +--- @param base string? +--- @return string[] +function M:files_changed(base) + --- @type string[] + local results + if base and base ~= ':0' then + results = self:command({ 'diff', '--name-status', base }) + + for i, result in ipairs(results) do + results[i] = vim.split(string.gsub(result, '\t', ' '), ' ', { plain = true })[2] + end + return results + else + results = self:command({ 'status', '--porcelain', '--ignore-submodules' }) + + local ret = {} --- @type string[] + for _, line in ipairs(results) do + if line:sub(1, 2):match('^.M') then + ret[#ret + 1] = line:sub(4, -1) + end + end + return ret + end +end + +--- @param encoding string +--- @return boolean +local function iconv_supported(encoding) + -- TODO(lewis6991): needs https://github.com/neovim/neovim/pull/21924 + if vim.startswith(encoding, 'utf-16') then + return false + elseif vim.startswith(encoding, 'utf-32') then + return false + end + return true +end + +--- Get version of file in the index, return array lines +--- @param object string +--- @param encoding? string +--- @return string[] stdout, string? stderr +function M:get_show_text(object, encoding) + local stdout, stderr = self:command({ 'show', object }, { text = false, ignore_error = true }) + + if encoding and encoding ~= 'utf-8' and iconv_supported(encoding) then + for i, l in ipairs(stdout) do + stdout[i] = vim.iconv(l, encoding, 'utf-8') + end + end + + return stdout, stderr +end + +--- @async +function M:update_abbrev_head() + local info = M.get_info(self.toplevel) + if not info then + log.eprintf('Could not get info for repo at %s', self.gitdir) + return + end + self.abbrev_head = info.abbrev_head +end + +--- @async +--- @private +--- @param info Gitsigns.RepoInfo +--- @return Gitsigns.Repo +local function new(info) + local self = setmetatable({}, { __index = M }) + for k, v in + pairs(info --[[@as table]]) + do + ---@diagnostic disable-next-line:no-unknown + self[k] = v + end + + self.username = self:command({ 'config', 'user.name' }, { ignore_error = true })[1] + + return self +end + +--- @type table +local repo_cache = setmetatable({}, { __mode = 'v' }) + +--- @async +--- @param dir string +--- @param gitdir? string +--- @param toplevel? string +--- @return Gitsigns.Repo? +function M.get(dir, gitdir, toplevel) + local info = M.get_info(dir, gitdir, toplevel) + if not info then + return + end + + gitdir = info.gitdir + if not repo_cache[gitdir] then + repo_cache[gitdir] = {1, new(info)} + else + local refcount = repo_cache[gitdir][1] + repo_cache[gitdir][1] = refcount + 1 + end + + return repo_cache[gitdir][2] +end + +function M:unref() + local gitdir = self.gitdir + local repo = repo_cache[gitdir] + if not repo then + -- Already reclaimed by GC + return + end + local refcount = repo[1] + if refcount <= 1 then + repo_cache[gitdir] = nil + else + repo_cache[gitdir][1] = refcount - 1 + end +end + +local has_cygpath = jit and jit.os == 'Windows' and vim.fn.executable('cygpath') == 1 + +--- @generic S +--- @param path S +--- @return S +local function normalize_path(path) + if path and has_cygpath and not uv.fs_stat(path) then + -- If on windows and path isn't recognizable as a file, try passing it + -- through cygpath + path = asystem({ 'cygpath', '-aw', path }).stdout + end + return path +end + +--- @async +--- @param gitdir? string +--- @param head_str string +--- @param cwd string +--- @return string +local function process_abbrev_head(gitdir, head_str, cwd) + if not gitdir then + return head_str + end + if head_str == 'HEAD' then + local short_sha = git_command({ 'rev-parse', '--short', 'HEAD' }, { + ignore_error = true, + cwd = cwd, + })[1] or '' + if log.debug_mode and short_sha ~= '' then + short_sha = 'HEAD' + end + if + util.path_exists(gitdir .. '/rebase-merge') + or util.path_exists(gitdir .. '/rebase-apply') + then + return short_sha .. '(rebasing)' + end + return short_sha + end + return head_str +end + +--- @async +--- @param cwd string +--- @param gitdir? string +--- @param toplevel? string +--- @return Gitsigns.RepoInfo? +function M.get_info(cwd, gitdir, toplevel) + -- Does git rev-parse have --absolute-git-dir, added in 2.13: + -- https://public-inbox.org/git/20170203024829.8071-16-szeder.dev@gmail.com/ + local has_abs_gd = check_version({ 2, 13 }) + + -- Wait for internal scheduler to settle before running command (#215) + async.scheduler() + + local args = {} + + if gitdir then + vim.list_extend(args, { '--git-dir', gitdir }) + end + + if toplevel then + vim.list_extend(args, { '--work-tree', toplevel }) + end + + vim.list_extend(args, { + 'rev-parse', + '--show-toplevel', + has_abs_gd and '--absolute-git-dir' or '--git-dir', + '--abbrev-ref', + 'HEAD', + }) + + local stdout = git_command(args, { + ignore_error = true, + cwd = toplevel or cwd, + }) + + if not stdout[1] then + return + end + + local toplevel_r = normalize_path(stdout[1]) + local gitdir_r = normalize_path(stdout[2]) + + if not has_abs_gd then + gitdir_r = assert(uv.fs_realpath(gitdir_r)) + end + + return { + toplevel = toplevel_r, + gitdir = gitdir_r, + abbrev_head = process_abbrev_head(gitdir_r, stdout[3], cwd), + detached = toplevel_r and gitdir_r ~= toplevel_r .. '/.git', + } +end + +return M diff --git a/config/neovim/store/lazy-plugins/haskell-tools.nvim/haskell-tools.nvim-4.0.0-1-unstable-4.0.0-1-rocks/haskell-tools.nvim/4.0.0-1/doc/haskell-tools.txt b/config/neovim/store/lazy-plugins/haskell-tools.nvim/haskell-tools.nvim-4.0.0-1-unstable-4.0.0-1-rocks/haskell-tools.nvim/4.0.0-1/doc/haskell-tools.txt new file mode 100644 index 00000000..35653ff1 --- /dev/null +++ b/config/neovim/store/lazy-plugins/haskell-tools.nvim/haskell-tools.nvim-4.0.0-1-unstable-4.0.0-1-rocks/haskell-tools.nvim/4.0.0-1/doc/haskell-tools.txt @@ -0,0 +1,580 @@ +============================================================================== +Table of Contents *haskell-tools.contents* + +Introduction ··························································· |intro| +The haskell-tools module ······································· |haskell-tools| +plugin configuration ···································· |haskell-tools.config| +haskell-language-server LSP client tools ··················· |haskell-tools.lsp| +haskell-tools nvim-dap setup ······························· |haskell-tools.dap| +haskell-tools Hoogle search ····························· |haskell-tools.hoogle| +haskell-tools GHCi REPL module ···························· |haskell-tools.repl| +haskell-tools Project module ··························· |haskell-tools.project| +haskell-tools fast-tags module ···························· |haskell-tools.tags| +haskell-tools Logging ······································ |haskell-tools.log| + +============================================================================== +Introduction *intro* + +This plugin automatically configures the `haskell-language-server` builtin LSP client +and integrates with other haskell tools. + +WARNING: +Do not call the `lspconfig.hls` setup or set up the lsp manually, +as doing so may cause conflicts. + +NOTE: This plugin is a filetype plugin. +There is no need to call a `setup` function. + +============================================================================== +The haskell-tools module *haskell-tools* + +Entry-point into this plugin's public API. + +HaskellTools *HaskellTools* + + +============================================================================== +plugin configuration *haskell-tools.config* + +To configure haskell-tools.nvim, set the variable `vim.g.haskell_tools`, +which is a `haskell-tools.Opts` table, in your neovim configuration. + +Example: +> +---@type haskell-tools.Opts +vim.g.haskell_tools = { + ---@type haskell-tools.tools.Opts + tools = { + -- ... + }, + ---@type haskell-tools.lsp.ClientOpts + hls = { + on_attach = function(client, bufnr) + -- Set keybindings, etc. here. + end, + -- ... + }, + ---@type haskell-tools.dap.Opts + dap = { + -- ... + }, + } +< + +Note: `vim.g.haskell_tools` can also be a function that returns a 'haskell-tools.Opts' table. + + +haskell-tools.Opts *haskell-tools.Opts* + + Fields: ~ + {tools?} (haskell-tools.tools.Opts) + haskell-tools module options. + {hls?} (haskell-tools.lsp.ClientOpts) + haskell-language-server client options. + {dap?} (haskell-tools.dap.Opts) + debug adapter config for nvim-dap. + + +haskell-tools.tools.Opts *haskell-tools.tools.Opts* + + Fields: ~ + {codeLens?} (haskell-tools.codeLens.Opts) + LSP codeLens options. + {hoogle?} (haskell-tools.hoogle.Opts) + Hoogle type signature search options. + {hover?} (haskell-tools.hover.Opts) + LSP hover options. + {definition?} (haskell-tools.definition.Opts) LSP go-to-definition options. + {repl?} (haskell-tools.repl.Opts) + GHCi repl options. + {tags?} (haskell-tools.fast-tags.Opts) + fast-tags module options. + {log?} (haskell-tools.log.Opts) + haskell-tools logger options. + + +haskell-tools.codeLens.Opts *haskell-tools.codeLens.Opts* + + Fields: ~ + {autoRefresh?} (fun():boolean|boolean) + (default: `true`) Whether to auto-refresh code-lenses. + + +haskell-tools.hoogle.Opts *haskell-tools.hoogle.Opts* + + Fields: ~ + {mode?} (haskell-tools.hoogle.Mode) + Use a telescope with a local hoogle installation or a web backend, + or use the browser for hoogle signature search? + + +haskell-tools.hoogle.Mode *haskell-tools.hoogle.Mode* + + Type: ~ + "auto"|"telescope-local"|"telescope-web"|"browser" + + +haskell-tools.hover.Opts *haskell-tools.hover.Opts* + + Fields: ~ + {enable?} (fun():boolean|boolean) + (default: `true`) Whether to enable haskell-tools hover. + {border?} (string[][]) + The hover window's border. Set to `nil` to disable. + {stylize_markdown?} (boolean) + (default: `false`) The builtin LSP client's default behaviour is to stylize markdown. + Setting this option to false sets the file type to markdown + and enables treesitter syntax highligting for Haskell snippets if nvim-treesitter is installed. + {auto_focus?} (boolean) + (default: `false`) Whether to automatically switch to the hover window. + + +haskell-tools.definition.Opts *haskell-tools.definition.Opts* + + Fields: ~ + {hoogle_signature_fallback?} (fun():boolean|boolean) + (default: `false`) Configure |vim.lsp.definition| to fall back to hoogle search + (does not affect |vim.lsp.tagfunc|). + + +haskell-tools.repl.Opts *haskell-tools.repl.Opts* + + Fields: ~ + {handler?} (fun():haskell-tools.repl.Handler|haskell-tools.repl.Handler) + `'builtin'`: Use the simple builtin repl. + `'toggleterm'`: Use akinsho/toggleterm.nvim. + {prefer?} (fun():haskell-tools.repl.Backend|haskell-tools.repl.Backend) + Prefer cabal or stack when both stack and cabal project files are present? + {builtin?} (haskell-tools.repl.builtin.Opts) + Configuration for the builtin repl. + {auto_focus?} (boolean) + Whether to auto-focus the repl on toggle or send. If unset, the handler decides. + + +haskell-tools.repl.Handler *haskell-tools.repl.Handler* + + Type: ~ + "builtin"|"toggleterm" + + +haskell-tools.repl.Backend *haskell-tools.repl.Backend* + + Type: ~ + "cabal"|"stack" + + +haskell-tools.repl.builtin.Opts *haskell-tools.repl.builtin.Opts* + + Fields: ~ + {create_repl_window?} (fun(view:haskell-tools.repl.View):fun(mk_repl_cmd:mk_ht_repl_cmd_fun)) + How to create the repl window. + Should return a function that calls one of the |haskell-tools.repl.View|'s functions. + + +haskell-tools.repl.View *haskell-tools.repl.View* + + Fields: ~ + {create_repl_split?} (fun(opts:haskell-tools.repl.view.Opts):mk_ht_repl_cmd_fun) + Create the REPL in a horizontally split window. + {create_repl_vsplit?} (fun(opts:haskell-tools.repl.view.Opts):mk_ht_repl_cmd_fun) + Create the REPL in a vertically split window. + {create_repl_tabnew?} (fun(opts:haskell-tools.repl.view.Opts):mk_ht_repl_cmd_fun) + Create the REPL in a new tab. + {create_repl_cur_win?} (fun(opts:haskell-tools.repl.view.Opts):mk_ht_repl_cmd_fun) + Create the REPL in the current window. + + +haskell-tools.repl.view.Opts *haskell-tools.repl.view.Opts* + + Fields: ~ + {delete_buffer_on_exit?} (boolean) + Whether to delete the buffer when the Repl quits. + {size?} (fun():number|number) + The size of the window or a function that determines it. + + +mk_ht_repl_cmd_fun *mk_ht_repl_cmd_fun* + + Type: ~ + fun():string[]|nil + + +haskell-tools.fast-tags.Opts *haskell-tools.fast-tags.Opts* + + Fields: ~ + {enable?} (boolean|fun():boolean) + Enabled by default if the `fast-tags` executable is found. + {package_events?} (string[]) + The |autocmd| events to trigger package tag generation. + + +haskell-tools.log.Opts *haskell-tools.log.Opts* + + Fields: ~ + {level?} (number|string) + The log level. + + See: ~ + |vim.log.levels| + + +haskell-tools.lsp.ClientOpts *haskell-tools.lsp.ClientOpts* + + Fields: ~ + {auto_attach?} (fun():boolean|boolean) + Whether to automatically attach the LSP client. + Defaults to `true` if the haskell-language-server executable is found. + {debug?} (boolean) + Whether to enable haskell-language-server debug logging. + {on_attach?} (fun(client:number,bufnr:number,ht:HaskellTools)) + Callback that is invoked when the client attaches to a buffer. + {cmd?} (fun():string[]|string[]) + The command to start haskell-language-server with. + {capabilities?} (lsp.ClientCapabilities) + LSP client capabilities. + {settings?} (fun(project_root:string|nil):table|table) + The haskell-language-server settings or a function that creates them. + To view the default settings, run `haskell-language-server generate-default-config`. + {default_settings?} (table) + The default haskell-language-server settings that will be used if no settings are specified or detected. + {logfile?} (string) + The path to the haskell-language-server log file. + + + To print all options that are available for your haskell-language-server version, run `haskell-language-server-wrapper generate-default-config` +See: https://haskell-language-server.readthedocs.io/en/latest/configuration.html. + +haskell-tools.dap.Opts *haskell-tools.dap.Opts* + + Fields: ~ + {cmd?} (string[]) + The command to start the debug adapter server with. + {logFile?} (string) + Log file path for detected configurations. + {logLevel?} (haskell-tools.debugAdapter.LogLevel) + The log level for detected configurations. + {auto_discover?} (boolean|haskell-tools.dap.AddConfigOpts) Set to `false` to disable auto-discovery of launch configurations. `true` uses the default configurations options`. + + +haskell-tools.debugAdapter.LogLevel *haskell-tools.debugAdapter.LogLevel* + + Type: ~ + "Debug"|"Info"|"Warning"|"Error" + + +haskell-tools.dap.AddConfigOpts *haskell-tools.dap.AddConfigOpts* + + Fields: ~ + {autodetect} (boolean) + Whether to automatically detect launch configurations for the project. + {settings_file_pattern} (string) + File name or pattern to search for. + Defaults to 'launch.json'. + + +============================================================================== +haskell-language-server LSP client tools *haskell-tools.lsp* + + The following commands are available: + + * `:Hls start` - Start the LSP client. + * `:Hls stop` - Stop the LSP client. + * `:Hls restart` - Restart the LSP client. + * `:Hls evalAll` - Evaluate all code snippets in comments. + +haskell-tools.load_hls_settings.Opts *haskell-tools.load_hls_settings.Opts* + + Fields: ~ + {settings_file_pattern} (string|nil) File name or pattern to search for. Defaults to 'hls.json' + + +haskell-tools.Hls *haskell-tools.Hls* + + + *Hls.load_hls_settings* +Hls.load_hls_settings({project_root}, {opts}) + Search the project root for a haskell-language-server settings JSON file and load it to a Lua table. + Falls back to the `hls.default_settings` if no file is found or file cannot be read or decoded. + + Parameters: ~ + {project_root} (string|nil) The project root + {opts} (haskell-tools.load_hls_settings.Opts|nil) + + Returns: ~ + (table) hls_settings + + See: ~ + |https://haskell-language-server.readthedocs.io/en/latest/configuration.html| + + +Hls.start({bufnr}) *Hls.start* + Start or attach the LSP client. + Fails silently if the buffer's filetype is not one of the filetypes specified in the config. + + Parameters: ~ + {bufnr} (number|nil) The buffer number (optional), defaults to the current buffer + + Returns: ~ + (number|nil) The LSP client ID + + +Hls.stop({bufnr}) *Hls.stop* + Stop the LSP client. + + Parameters: ~ + {bufnr} (number|nil) The buffer number (optional), defaults to the current buffer + + Returns: ~ + (table[]) A list of clients that will be stopped + + +Hls.restart({bufnr}) *Hls.restart* + Restart the LSP client. + Fails silently if the buffer's filetype is not one of the filetypes specified in the config. + + Parameters: ~ + {bufnr} (number|nil) The buffer number (optional), defaults to the current buffer + + Returns: ~ + (number|nil) The LSP client ID after restart + + +Hls.buf_eval_all({bufnr}) *Hls.buf_eval_all* + Evaluate all code snippets in comments. + + Parameters: ~ + {bufnr} (number|nil) Defaults to the current buffer. + + Returns: ~ + (nil) + + +============================================================================== +haskell-tools nvim-dap setup *haskell-tools.dap* + +haskell-tools.dap.LaunchConfiguration *haskell-tools.dap.LaunchConfiguration* + + +haskell-tools.Dap *haskell-tools.Dap* + + + *Dap.discover_configurations* +Dap.discover_configurations({bufnr}, {opts}) + Discover nvim-dap launch configurations for haskell-debug-adapter. + + Parameters: ~ + {bufnr} (number|nil) The buffer number + {opts} (haskell-tools.dap.AddConfigOpts|nil) + + Returns: ~ + (nil) + + +============================================================================== +haskell-tools Hoogle search *haskell-tools.hoogle* + +haskell-tools.Hoogle *haskell-tools.Hoogle* + + +Hoogle.hoogle_signature({options}) *Hoogle.hoogle_signature* + + Parameters: ~ + {options} (table|nil) Includes the `search_term` and options to pass to the telescope picker (if available) + + Returns: ~ + (nil) + + +============================================================================== +haskell-tools GHCi REPL module *haskell-tools.repl* + + The following commands are available: + + * `:Haskell repl toggle {file?}` - Toggle a GHCi repl. + * `:Haskell repl quit` - Quit the current repl. + * `:Haskell repl load {file?}` - Load a Haskell file into the repl. + * `:Haskell repl reload` - Reload the current repl. + * `:Haskell repl paste_type {register?}` - Query the repl for the type of |registers| {register} + * `:Haskell repl cword_type` - Query the repl for the type of |cword| + * `:Haskell repl paste_info {register?}` - Query the repl for the info on |registers| {register} + * `:Haskell repl cword_info` - Query the repl for info on |cword| + +haskell-tools.Repl *haskell-tools.Repl* + + +Repl.buf_mk_repl_cmd() *Repl.buf_mk_repl_cmd* + Create the command to create a repl for the current buffer. + + Returns: ~ + (table|nil) command + + +Repl.operator() *Repl.operator* + + See: ~ + |operatorfunc| + + +Repl.paste({reg}) *Repl.paste* + Paste from register `reg` to the REPL + + Parameters: ~ + {reg} (string|nil) register (defaults to '"') + + +Repl.paste_type({reg}) *Repl.paste_type* + Query the REPL for the type of register `reg` + + Parameters: ~ + {reg} (string|nil) register (defaults to '"') + + +Repl.cword_type() *Repl.cword_type* + Query the REPL for the type of word under the cursor + + +Repl.paste_info({reg}) *Repl.paste_info* + Query the REPL for info on register `reg` + + Parameters: ~ + {reg} (string|nil) register (defaults to '"') + + +Repl.cword_info() *Repl.cword_info* + Query the REPL for the type of word under the cursor + + +Repl.load_file({filepath}) *Repl.load_file* + Load a file into the REPL + + Parameters: ~ + {filepath} (string) The absolute file path + + +Repl.reload() *Repl.reload* + Reload the repl + + +============================================================================== +haskell-tools Project module *haskell-tools.project* + + The following commands are available: + + * `:Haskell projectFile` - Open the project file for the current buffer (cabal.project or stack.yaml). + * `:Haskell packageYaml` - Open the package.yaml file for the current buffer. + * `:Haskell packageCabal` - Open the *.cabal file for the current buffer. + +haskell-tools.Project *haskell-tools.Project* + + +Project.root_dir({project_file}) *Project.root_dir* + Get the project's root directory + + Parameters: ~ + {project_file} (string) The path to a project file + + Returns: ~ + (string|nil) + + +Project.open_package_yaml() *Project.open_package_yaml* + Open the package.yaml of the package containing the current buffer. + + Returns: ~ + (nil) + + +Project.open_package_cabal() *Project.open_package_cabal* + Open the *.cabal file of the package containing the current buffer. + + Returns: ~ + (nil) + + +Project.open_project_file() *Project.open_project_file* + Open the current buffer's project file (cabal.project or stack.yaml). + + Returns: ~ + (nil) + + +============================================================================== +haskell-tools fast-tags module *haskell-tools.tags* + + *haskell-tools.tags.generate_project_tags.Opts* +haskell-tools.tags.generate_project_tags.Opts + + Fields: ~ + {refresh} (boolean) Whether to refresh the tags if they have already been generated + + +haskell-tools.FastTags *haskell-tools.FastTags* + for the project (default: true) + + + *FastTags.generate_project_tags* +FastTags.generate_project_tags({path}, {opts}) + Generates tags for the current project + + Parameters: ~ + {path} (string|nil) File path + {opts} (haskell-tools.tags.generate_project_tags.Opts|nil) Options + + +FastTags.generate_package_tags({path}) *FastTags.generate_package_tags* + Generate tags for the package containing `path` + + Parameters: ~ + {path} (string|nil) File path + + +============================================================================== +haskell-tools Logging *haskell-tools.log* + + The following commands are available: + + * `:Haskell log setLevel` - Set the haskell-tools.nvim and LSP client log level. + * `:Haskell log openLog` - Open the haskell-tools.nvim log file. + * `:Haskell log openHlsLog` - Open the haskell-language-server log file. + +haskell-tools.Log *haskell-tools.Log* + + +Log.get_hls_logfile() *Log.get_hls_logfile* + Get the haskell-language-server log file + + Returns: ~ + (string) filepath + + +Log.get_logfile() *Log.get_logfile* + Get the haskell-tools.nvim log file path. + + Returns: ~ + (string) filepath + + +Log.nvim_open_hls_logfile() *Log.nvim_open_hls_logfile* + Open the haskell-language-server log file + + Returns: ~ + (nil) + + +Log.nvim_open_logfile() *Log.nvim_open_logfile* + Open the haskell-tools.nvim log file. + + Returns: ~ + (nil) + + +Log.set_level() *Log.set_level* + + Returns: ~ + (nil) + + See: ~ + |vim.log.levels| + + +vim:tw=78:ts=8:noet:ft=help:norl: diff --git a/config/neovim/store/lazy-plugins/haskell-tools.nvim/haskell-tools.nvim-4.0.0-1-unstable-4.0.0-1-rocks/haskell-tools.nvim/4.0.0-1/ftplugin/cabal.lua b/config/neovim/store/lazy-plugins/haskell-tools.nvim/haskell-tools.nvim-4.0.0-1-unstable-4.0.0-1-rocks/haskell-tools.nvim/4.0.0-1/ftplugin/cabal.lua new file mode 100644 index 00000000..262f37c6 --- /dev/null +++ b/config/neovim/store/lazy-plugins/haskell-tools.nvim/haskell-tools.nvim-4.0.0-1-unstable-4.0.0-1-rocks/haskell-tools.nvim/4.0.0-1/ftplugin/cabal.lua @@ -0,0 +1 @@ +require('haskell-tools.internal').ftplugin() diff --git a/config/neovim/store/lazy-plugins/haskell-tools.nvim/haskell-tools.nvim-4.0.0-1-unstable-4.0.0-1-rocks/haskell-tools.nvim/4.0.0-1/ftplugin/cabalproject.lua b/config/neovim/store/lazy-plugins/haskell-tools.nvim/haskell-tools.nvim-4.0.0-1-unstable-4.0.0-1-rocks/haskell-tools.nvim/4.0.0-1/ftplugin/cabalproject.lua new file mode 100644 index 00000000..262f37c6 --- /dev/null +++ b/config/neovim/store/lazy-plugins/haskell-tools.nvim/haskell-tools.nvim-4.0.0-1-unstable-4.0.0-1-rocks/haskell-tools.nvim/4.0.0-1/ftplugin/cabalproject.lua @@ -0,0 +1 @@ +require('haskell-tools.internal').ftplugin() diff --git a/config/neovim/store/lazy-plugins/haskell-tools.nvim/haskell-tools.nvim-4.0.0-1-unstable-4.0.0-1-rocks/haskell-tools.nvim/4.0.0-1/ftplugin/haskell.lua b/config/neovim/store/lazy-plugins/haskell-tools.nvim/haskell-tools.nvim-4.0.0-1-unstable-4.0.0-1-rocks/haskell-tools.nvim/4.0.0-1/ftplugin/haskell.lua new file mode 100644 index 00000000..262f37c6 --- /dev/null +++ b/config/neovim/store/lazy-plugins/haskell-tools.nvim/haskell-tools.nvim-4.0.0-1-unstable-4.0.0-1-rocks/haskell-tools.nvim/4.0.0-1/ftplugin/haskell.lua @@ -0,0 +1 @@ +require('haskell-tools.internal').ftplugin() diff --git a/config/neovim/store/lazy-plugins/haskell-tools.nvim/haskell-tools.nvim-4.0.0-1-unstable-4.0.0-1-rocks/haskell-tools.nvim/4.0.0-1/ftplugin/lhaskell.lua b/config/neovim/store/lazy-plugins/haskell-tools.nvim/haskell-tools.nvim-4.0.0-1-unstable-4.0.0-1-rocks/haskell-tools.nvim/4.0.0-1/ftplugin/lhaskell.lua new file mode 100644 index 00000000..262f37c6 --- /dev/null +++ b/config/neovim/store/lazy-plugins/haskell-tools.nvim/haskell-tools.nvim-4.0.0-1-unstable-4.0.0-1-rocks/haskell-tools.nvim/4.0.0-1/ftplugin/lhaskell.lua @@ -0,0 +1 @@ +require('haskell-tools.internal').ftplugin() diff --git a/config/neovim/store/lazy-plugins/haskell-tools.nvim/haskell-tools.nvim-4.0.0-1-unstable-4.0.0-1-rocks/haskell-tools.nvim/4.0.0-1/haskell-tools.nvim-4.0.0-1.rockspec b/config/neovim/store/lazy-plugins/haskell-tools.nvim/haskell-tools.nvim-4.0.0-1-unstable-4.0.0-1-rocks/haskell-tools.nvim/4.0.0-1/haskell-tools.nvim-4.0.0-1.rockspec new file mode 100644 index 00000000..d84b4166 --- /dev/null +++ b/config/neovim/store/lazy-plugins/haskell-tools.nvim/haskell-tools.nvim-4.0.0-1-unstable-4.0.0-1-rocks/haskell-tools.nvim/4.0.0-1/haskell-tools.nvim-4.0.0-1.rockspec @@ -0,0 +1,40 @@ +local git_ref = '4.0.0' +local modrev = '4.0.0' +local specrev = '1' + +local repo_url = 'https://github.com/mrcjkb/haskell-tools.nvim' + +rockspec_format = '3.0' +package = 'haskell-tools.nvim' +version = modrev ..'-'.. specrev + +description = { + summary = ' 🦥 Supercharge your Haskell experience in neovim!', + detailed = [[ +This plugin automatically configures the haskell-language-server builtin LSP client +and integrates with other Haskell tools. See the README's #features section +for more info.]], + labels = { 'dap', 'debug-adapter-protocol', 'fast-tags', 'haskell', 'hoogle', 'language-server', 'language-server-protocol', 'lsp', 'lsp-client', 'lua', 'neovim', 'neovim-plugin', 'nvim', 'plugin', 'repl', 'tagfunc', 'telescope', 'vim' } , + homepage = 'https://github.com/mrcjkb/haskell-tools.nvim', + license = 'GPL-2.0' +} + +dependencies = { 'lua >= 5.1' } + +test_dependencies = { } + +source = { + url = repo_url .. '/archive/' .. git_ref .. '.zip', + dir = 'haskell-tools.nvim-' .. '4.0.0', +} + +if modrev == 'scm' or modrev == 'dev' then + source = { + url = repo_url:gsub('https', 'git') + } +end + +build = { + type = 'builtin', + copy_directories = { 'doc', 'ftplugin' } , +} diff --git a/config/neovim/store/lazy-plugins/haskell-tools.nvim/haskell-tools.nvim-4.0.0-1-unstable-4.0.0-1-rocks/haskell-tools.nvim/4.0.0-1/rock_manifest b/config/neovim/store/lazy-plugins/haskell-tools.nvim/haskell-tools.nvim-4.0.0-1-unstable-4.0.0-1-rocks/haskell-tools.nvim/4.0.0-1/rock_manifest new file mode 100644 index 00000000..e6917422 --- /dev/null +++ b/config/neovim/store/lazy-plugins/haskell-tools.nvim/haskell-tools.nvim-4.0.0-1-unstable-4.0.0-1-rocks/haskell-tools.nvim/4.0.0-1/rock_manifest @@ -0,0 +1,73 @@ +rock_manifest = { + doc = { + ["haskell-tools.txt"] = "727cc3d507969c15da72d8fc078b8f5c" + }, + ftplugin = { + ["cabal.lua"] = "4f72e96d3601fed58fd4a24e9633172d", + ["cabalproject.lua"] = "4f72e96d3601fed58fd4a24e9633172d", + ["haskell.lua"] = "4f72e96d3601fed58fd4a24e9633172d", + ["lhaskell.lua"] = "4f72e96d3601fed58fd4a24e9633172d" + }, + ["haskell-tools.nvim-4.0.0-1.rockspec"] = "d9f68f3f100a893c53e199412b290aca", + lua = { + ["haskell-tools"] = { + ["commands.lua"] = "196ecaed184ea3aac299908789ec907c", + config = { + ["check.lua"] = "25ad72d0043d59c98fea0d7262bc3af6", + ["init.lua"] = "c5de71c6a83b03f9b3281eb153bb0a4e", + ["internal.lua"] = "ad38f5368950178cce22d6328f87104e" + }, + dap = { + ["init.lua"] = "c6c938e8b498b5204d94e698c463a453", + ["internal.lua"] = "d31fbe6dc31b3cc94916fa5d7a042902" + }, + ["deps.lua"] = "bc917d0fb10a9c6b9f57838ad6c15770", + ["health.lua"] = "2973c5710025bea8a5eb7fadaf291050", + hoogle = { + ["helpers.lua"] = "cbbd886b653824acfad1f6ee9f3e24a5", + ["init.lua"] = "ab7621676750cb3bfa7c0a4598ac8bfc", + ["local.lua"] = "b2a230bfe523fbf20a1e25b35b99b77b", + ["web.lua"] = "acf3c84bf67b25fa37de256e83f3fabc" + }, + ["init.lua"] = "a47dd52851320ba781a3d37301cc0068", + ["internal.lua"] = "9b5503d7a3f874c2e1227b2613449661", + log = { + ["init.lua"] = "34e3645981b674afbfedb4bb38c1c720", + ["internal.lua"] = "abf7c2d2f5397138bfe53bfea4f8f22f" + }, + lsp = { + ["definition.lua"] = "04348f8215b227a5da688b92e1cfe23b", + ["eval.lua"] = "69614508eab450ad811c9cbdd46130a9", + ["helpers.lua"] = "db4e09ce2ad6c821a562a672c34fc353", + ["hover.lua"] = "2aa35d13516fa0aadb38c128c0e2f636", + ["init.lua"] = "fa1e72e1227141163ece82c07371ddd3" + }, + ["os.lua"] = "9ac35aebb3f78518df747a54d376b301", + ["parser.lua"] = "e68b0de6ec66c30918ec6a1008ed4884", + project = { + ["cabal.lua"] = "278495ec4fae050d00d8c777b21d7225", + ["helpers.lua"] = "02d5e2b6261082776a01edcdd91acb09", + ["init.lua"] = "4a382b5d3ae48ed5d58089fe641bcd6d", + ["stack.lua"] = "9c013778ee77288578963b22b25b77e1" + }, + repl = { + ["builtin.lua"] = "bb346659484daab7f479f35d4c12b688", + ["init.lua"] = "e262c0947f43a68b2fe3ff64e5e555d4", + ["toggleterm.lua"] = "61c197873d8e659bfcc8a903d1c73261" + }, + ["strings.lua"] = "61ee9372c3074bf51f2619b9e135910d", + ["tags.lua"] = "65d95ec2dc2c55e28aab5f8a1e71eb56", + types = { + ["internal.lua"] = "0360b137c2d65a32ea862f498154af7b" + } + }, + telescope = { + _extensions = { + ht = { + ["extension.lua"] = "040c10b48645d3230bba5952281ea858" + }, + ["ht.lua"] = "ebd1a0ec34353b6b42b5e6012ff69dd9" + } + } + } +} diff --git a/config/neovim/store/lazy-plugins/haskell-tools.nvim/haskell-tools.nvim-4.0.0-1-unstable-4.0.0-1-rocks/manifest b/config/neovim/store/lazy-plugins/haskell-tools.nvim/haskell-tools.nvim-4.0.0-1-unstable-4.0.0-1-rocks/manifest new file mode 100644 index 00000000..b56f7657 --- /dev/null +++ b/config/neovim/store/lazy-plugins/haskell-tools.nvim/haskell-tools.nvim-4.0.0-1-unstable-4.0.0-1-rocks/manifest @@ -0,0 +1,173 @@ +commands = {} +dependencies = { + ["haskell-tools.nvim"] = { + ["4.0.0-1"] = { + { + constraints = { + { + op = ">=", + version = { + 5, 1, string = "5.1" + } + } + }, + name = "lua" + } + } + } +} +modules = { + ["haskell-tools.commands"] = { + "haskell-tools.nvim/4.0.0-1" + }, + ["haskell-tools.config.check"] = { + "haskell-tools.nvim/4.0.0-1" + }, + ["haskell-tools.config.init"] = { + "haskell-tools.nvim/4.0.0-1" + }, + ["haskell-tools.config.internal"] = { + "haskell-tools.nvim/4.0.0-1" + }, + ["haskell-tools.dap.init"] = { + "haskell-tools.nvim/4.0.0-1" + }, + ["haskell-tools.dap.internal"] = { + "haskell-tools.nvim/4.0.0-1" + }, + ["haskell-tools.deps"] = { + "haskell-tools.nvim/4.0.0-1" + }, + ["haskell-tools.health"] = { + "haskell-tools.nvim/4.0.0-1" + }, + ["haskell-tools.hoogle.helpers"] = { + "haskell-tools.nvim/4.0.0-1" + }, + ["haskell-tools.hoogle.init"] = { + "haskell-tools.nvim/4.0.0-1" + }, + ["haskell-tools.hoogle.local"] = { + "haskell-tools.nvim/4.0.0-1" + }, + ["haskell-tools.hoogle.web"] = { + "haskell-tools.nvim/4.0.0-1" + }, + ["haskell-tools.init"] = { + "haskell-tools.nvim/4.0.0-1" + }, + ["haskell-tools.internal"] = { + "haskell-tools.nvim/4.0.0-1" + }, + ["haskell-tools.log.init"] = { + "haskell-tools.nvim/4.0.0-1" + }, + ["haskell-tools.log.internal"] = { + "haskell-tools.nvim/4.0.0-1" + }, + ["haskell-tools.lsp.definition"] = { + "haskell-tools.nvim/4.0.0-1" + }, + ["haskell-tools.lsp.eval"] = { + "haskell-tools.nvim/4.0.0-1" + }, + ["haskell-tools.lsp.helpers"] = { + "haskell-tools.nvim/4.0.0-1" + }, + ["haskell-tools.lsp.hover"] = { + "haskell-tools.nvim/4.0.0-1" + }, + ["haskell-tools.lsp.init"] = { + "haskell-tools.nvim/4.0.0-1" + }, + ["haskell-tools.os"] = { + "haskell-tools.nvim/4.0.0-1" + }, + ["haskell-tools.parser"] = { + "haskell-tools.nvim/4.0.0-1" + }, + ["haskell-tools.project.cabal"] = { + "haskell-tools.nvim/4.0.0-1" + }, + ["haskell-tools.project.helpers"] = { + "haskell-tools.nvim/4.0.0-1" + }, + ["haskell-tools.project.init"] = { + "haskell-tools.nvim/4.0.0-1" + }, + ["haskell-tools.project.stack"] = { + "haskell-tools.nvim/4.0.0-1" + }, + ["haskell-tools.repl.builtin"] = { + "haskell-tools.nvim/4.0.0-1" + }, + ["haskell-tools.repl.init"] = { + "haskell-tools.nvim/4.0.0-1" + }, + ["haskell-tools.repl.toggleterm"] = { + "haskell-tools.nvim/4.0.0-1" + }, + ["haskell-tools.strings"] = { + "haskell-tools.nvim/4.0.0-1" + }, + ["haskell-tools.tags"] = { + "haskell-tools.nvim/4.0.0-1" + }, + ["haskell-tools.types.internal"] = { + "haskell-tools.nvim/4.0.0-1" + }, + ["telescope._extensions.ht"] = { + "haskell-tools.nvim/4.0.0-1" + }, + ["telescope._extensions.ht.extension"] = { + "haskell-tools.nvim/4.0.0-1" + } +} +repository = { + ["haskell-tools.nvim"] = { + ["4.0.0-1"] = { + { + arch = "installed", + commands = {}, + dependencies = {}, + modules = { + ["haskell-tools.commands"] = "haskell-tools/commands.lua", + ["haskell-tools.config.check"] = "haskell-tools/config/check.lua", + ["haskell-tools.config.init"] = "haskell-tools/config/init.lua", + ["haskell-tools.config.internal"] = "haskell-tools/config/internal.lua", + ["haskell-tools.dap.init"] = "haskell-tools/dap/init.lua", + ["haskell-tools.dap.internal"] = "haskell-tools/dap/internal.lua", + ["haskell-tools.deps"] = "haskell-tools/deps.lua", + ["haskell-tools.health"] = "haskell-tools/health.lua", + ["haskell-tools.hoogle.helpers"] = "haskell-tools/hoogle/helpers.lua", + ["haskell-tools.hoogle.init"] = "haskell-tools/hoogle/init.lua", + ["haskell-tools.hoogle.local"] = "haskell-tools/hoogle/local.lua", + ["haskell-tools.hoogle.web"] = "haskell-tools/hoogle/web.lua", + ["haskell-tools.init"] = "haskell-tools/init.lua", + ["haskell-tools.internal"] = "haskell-tools/internal.lua", + ["haskell-tools.log.init"] = "haskell-tools/log/init.lua", + ["haskell-tools.log.internal"] = "haskell-tools/log/internal.lua", + ["haskell-tools.lsp.definition"] = "haskell-tools/lsp/definition.lua", + ["haskell-tools.lsp.eval"] = "haskell-tools/lsp/eval.lua", + ["haskell-tools.lsp.helpers"] = "haskell-tools/lsp/helpers.lua", + ["haskell-tools.lsp.hover"] = "haskell-tools/lsp/hover.lua", + ["haskell-tools.lsp.init"] = "haskell-tools/lsp/init.lua", + ["haskell-tools.os"] = "haskell-tools/os.lua", + ["haskell-tools.parser"] = "haskell-tools/parser.lua", + ["haskell-tools.project.cabal"] = "haskell-tools/project/cabal.lua", + ["haskell-tools.project.helpers"] = "haskell-tools/project/helpers.lua", + ["haskell-tools.project.init"] = "haskell-tools/project/init.lua", + ["haskell-tools.project.stack"] = "haskell-tools/project/stack.lua", + ["haskell-tools.repl.builtin"] = "haskell-tools/repl/builtin.lua", + ["haskell-tools.repl.init"] = "haskell-tools/repl/init.lua", + ["haskell-tools.repl.toggleterm"] = "haskell-tools/repl/toggleterm.lua", + ["haskell-tools.strings"] = "haskell-tools/strings.lua", + ["haskell-tools.tags"] = "haskell-tools/tags.lua", + ["haskell-tools.types.internal"] = "haskell-tools/types/internal.lua", + ["telescope._extensions.ht"] = "telescope/_extensions/ht.lua", + ["telescope._extensions.ht.extension"] = "telescope/_extensions/ht/extension.lua" + } + } + } + } +} diff --git a/config/neovim/store/lazy-plugins/haskell-tools.nvim/haskell-tools.nvim-4.0.0-1.rockspec b/config/neovim/store/lazy-plugins/haskell-tools.nvim/haskell-tools.nvim-4.0.0-1.rockspec new file mode 100644 index 00000000..d84b4166 --- /dev/null +++ b/config/neovim/store/lazy-plugins/haskell-tools.nvim/haskell-tools.nvim-4.0.0-1.rockspec @@ -0,0 +1,40 @@ +local git_ref = '4.0.0' +local modrev = '4.0.0' +local specrev = '1' + +local repo_url = 'https://github.com/mrcjkb/haskell-tools.nvim' + +rockspec_format = '3.0' +package = 'haskell-tools.nvim' +version = modrev ..'-'.. specrev + +description = { + summary = ' 🦥 Supercharge your Haskell experience in neovim!', + detailed = [[ +This plugin automatically configures the haskell-language-server builtin LSP client +and integrates with other Haskell tools. See the README's #features section +for more info.]], + labels = { 'dap', 'debug-adapter-protocol', 'fast-tags', 'haskell', 'hoogle', 'language-server', 'language-server-protocol', 'lsp', 'lsp-client', 'lua', 'neovim', 'neovim-plugin', 'nvim', 'plugin', 'repl', 'tagfunc', 'telescope', 'vim' } , + homepage = 'https://github.com/mrcjkb/haskell-tools.nvim', + license = 'GPL-2.0' +} + +dependencies = { 'lua >= 5.1' } + +test_dependencies = { } + +source = { + url = repo_url .. '/archive/' .. git_ref .. '.zip', + dir = 'haskell-tools.nvim-' .. '4.0.0', +} + +if modrev == 'scm' or modrev == 'dev' then + source = { + url = repo_url:gsub('https', 'git') + } +end + +build = { + type = 'builtin', + copy_directories = { 'doc', 'ftplugin' } , +} diff --git a/config/neovim/store/lazy-plugins/haskell-tools.nvim/lua/haskell-tools/commands.lua b/config/neovim/store/lazy-plugins/haskell-tools.nvim/lua/haskell-tools/commands.lua new file mode 100644 index 00000000..c7d116eb --- /dev/null +++ b/config/neovim/store/lazy-plugins/haskell-tools.nvim/lua/haskell-tools/commands.lua @@ -0,0 +1,223 @@ +local HtCommands = {} + +local ht = require('haskell-tools') + +---@class haskell-tools.Subcommand +--- +---The command implementation +---@field impl fun(args: string[], opts: vim.api.keyset.user_command) +--- +---Command completions callback, taking the lead of the subcommand's arguments +---Or a list of subcommands +---@field complete? string[] | fun(subcmd_arg_lead: string): string[] +--- +---Whether this command supports a bang! +---@field bang? boolean + +---@param arg_lead string +local function complete_haskell_files(arg_lead) + vim.print(arg_lead) + return vim + .iter(vim.list_extend(vim.fn.getcompletion(arg_lead, 'file'), vim.fn.getcompletion(arg_lead, 'buffer'))) + :filter(function(file_path) + local ext = vim.fn.fnamemodify(file_path, ':e') + return ext == 'hs' or ext == '' + end) + :totable() +end + +---@param args? string[] +---@return string? +local function get_single_opt_arg(args) + if type(args) ~= 'table' then + return + end + if #args > 1 then + require('haskell-tools.log.internal').warn { 'Too many arguments!', args } + end + return #args > 0 and args[1] or nil +end + +---@param args? string[] +---@return string +local function get_filepath_arg(args) + if not args or #args == 0 then + return vim.api.nvim_buf_get_name(0) + end + vim.validate('filepath', args[1], 'string') + local filepath = vim.fn.expand(args[1]) + ---@cast filepath string + return filepath +end + +---@type table +local command_tbl = { + packageYaml = { + impl = function() + ht.project.open_package_yaml() + end, + }, + packageCabal = { + impl = function() + ht.project.open_package_cabal() + end, + }, + projectFile = { + impl = function() + ht.project.open_project_file() + end, + }, +} + +---@param name string The name of the subcommand +---@param subcmd_tbl table The subcommand's subcommand table +local function register_subcommand_tbl(name, subcmd_tbl) + command_tbl[name] = { + impl = function(args, ...) + local subcmd = subcmd_tbl[table.remove(args, 1)] + subcmd.impl(args, ...) + end, + complete = function(subcmd_arg_lead) + local subcmd, next_arg_lead = subcmd_arg_lead:match('^(%S+)%s(.*)$') + if subcmd and next_arg_lead and subcmd_tbl[subcmd] and subcmd_tbl[subcmd].complete then + return subcmd_tbl[subcmd].complete(next_arg_lead) + end + if subcmd_arg_lead and subcmd_arg_lead ~= '' then + return vim + .iter(subcmd_tbl) + ---@param subcmd_name string + :filter(function(subcmd_name) + return subcmd_name:find(subcmd_arg_lead) ~= nil + end) + :totable() + end + return vim.tbl_keys(subcmd_tbl) + end, + } +end + +---@type table +local repl_subcommands = { + toggle = { + impl = function(args) + local filepath = get_filepath_arg(args) + ht.repl.toggle(filepath) + end, + complete = complete_haskell_files, + }, + load = { + impl = function(args) + local filepath = get_filepath_arg(args) + ht.repl.load_file(filepath) + end, + complete = complete_haskell_files, + }, + quit = { + impl = ht.repl.quit, + }, + reload = { + impl = ht.repl.reload, + }, + paste_type = { + impl = function(args) + local reg = get_single_opt_arg(args) + ht.repl.paste_type(reg) + end, + }, + cword_type = { + impl = ht.repl.cword_type, + }, + paste_info = { + impl = function(args) + local reg = get_single_opt_arg(args) + ht.repl.paste_info(reg) + end, + }, + cword_info = { + impl = ht.repl.cword_info, + }, +} + +-- TODO: Smarter completions. load, quit and reload should only be suggested when a repl is active +register_subcommand_tbl('repl', repl_subcommands) + +local log_command_tbl = { + openHlsLog = { + impl = function() + ht.log.nvim_open_hls_logfile() + end, + }, + openLog = { + impl = function() + require('haskell-tools').log.nvim_open_logfile() + end, + }, + setLevel = { + impl = function(args) + local level = vim.fn.expand(args[1]) + ---@cast level string + require('haskell-tools').log.set_level(tonumber(level) or level) + end, + complete = function(arg_lead) + local levels = vim.tbl_keys(vim.log.levels) + return vim.tbl_filter(function(command) + return command:find(arg_lead) ~= nil + end, levels) + end, + }, +} + +register_subcommand_tbl('log', log_command_tbl) + +---@generic K, V +---@param predicate fun(V):boolean +---@param tbl table +---@return K[] +local function tbl_keys_by_value_filter(predicate, tbl) + local ret = {} + for k, v in pairs(tbl) do + if predicate(v) then + ret[k] = v + end + end + return vim.tbl_keys(ret) +end + +local function haskell_cmd(opts) + local fargs = opts.fargs + local cmd = fargs[1] + local args = #fargs > 1 and vim.list_slice(fargs, 2, #fargs) or {} + local command = command_tbl[cmd] + if not command then + vim.notify('Haskell: Unknown command: ' .. cmd, vim.log.levels.ERROR) + return + end + command.impl(args, opts) +end + +function HtCommands.init() + vim.api.nvim_create_user_command('Haskell', haskell_cmd, { + nargs = '+', + desc = 'haskell-tools.nvim commands', + complete = function(arg_lead, cmdline, _) + local commands = cmdline:match("^['<,'>]*Haskell!") ~= nil + -- bang! + and tbl_keys_by_value_filter(function(command) + return command.bang == true + end, command_tbl) + or vim.tbl_keys(command_tbl) + local subcmd, subcmd_arg_lead = cmdline:match("^['<,'>]*Haskell[!]*%s(%S+)%s(.*)$") + if subcmd and subcmd_arg_lead and command_tbl[subcmd] and command_tbl[subcmd].complete then + return command_tbl[subcmd].complete(subcmd_arg_lead) + end + if cmdline:match("^['<,'>]*Haskell[!]*%s+%w*$") then + return vim.tbl_filter(function(command) + return command:find(arg_lead) ~= nil + end, commands) + end + end, + bang = false, -- might change + }) +end + +return HtCommands diff --git a/config/neovim/store/lazy-plugins/luasnip/luasnip-2.3.0-1-unstable-2024-08-01-rocks/luasnip/2.3.0-1/doc/luasnip.txt b/config/neovim/store/lazy-plugins/luasnip/luasnip-2.3.0-1-unstable-2024-08-01-rocks/luasnip/2.3.0-1/doc/luasnip.txt new file mode 100644 index 00000000..91a9d88f --- /dev/null +++ b/config/neovim/store/lazy-plugins/luasnip/luasnip-2.3.0-1-unstable-2024-08-01-rocks/luasnip/2.3.0-1/doc/luasnip.txt @@ -0,0 +1,3709 @@ +*luasnip.txt* For NVIM v0.8.0 Last change: 2024 August 01 + +============================================================================== +Table of Contents *luasnip-table-of-contents* + +1. Basics |luasnip-basics| + - Jump-Index |luasnip-basics-jump-index| + - Adding Snippets |luasnip-basics-adding-snippets| + - Snippet Insertion |luasnip-basics-snippet-insertion| +2. Node |luasnip-node| + - Api |luasnip-node-api| +3. Snippets |luasnip-snippets| + - Data |luasnip-snippets-data| +4. TextNode |luasnip-textnode| +5. InsertNode |luasnip-insertnode| +6. FunctionNode |luasnip-functionnode| +7. Node Reference |luasnip-node-reference| +8. ChoiceNode |luasnip-choicenode| +9. SnippetNode |luasnip-snippetnode| +10. IndentSnippetNode |luasnip-indentsnippetnode| +11. DynamicNode |luasnip-dynamicnode| +12. RestoreNode |luasnip-restorenode| +13. Key Indexer |luasnip-key-indexer| +14. Absolute Indexer |luasnip-absolute-indexer| +15. MultiSnippet |luasnip-multisnippet| +16. Extras |luasnip-extras| + - Lambda |luasnip-extras-lambda| + - Match |luasnip-extras-match| + - Repeat |luasnip-extras-repeat| + - Partial |luasnip-extras-partial| + - Nonempty |luasnip-extras-nonempty| + - Dynamic Lambda |luasnip-extras-dynamic-lambda| + - FMT |luasnip-extras-fmt| + - Conditions |luasnip-extras-conditions| + - On The Fly-Snippets |luasnip-extras-on-the-fly-snippets| + - select_choice |luasnip-extras-select_choice| + - Filetype-Functions |luasnip-extras-filetype-functions| + - Postfix-Snippet |luasnip-extras-postfix-snippet| + - Treesitter-Postfix-Snippet |luasnip-extras-treesitter-postfix-snippet| + - Snippet List |luasnip-extras-snippet-list| + - Snippet Location |luasnip-extras-snippet-location| +17. Extend Decorator |luasnip-extend-decorator| +18. LSP-Snippets |luasnip-lsp-snippets| + - Snipmate Parser |luasnip-lsp-snippets-snipmate-parser| + - Transformations |luasnip-lsp-snippets-transformations| +19. Variables |luasnip-variables| + - Environment Namespaces |luasnip-variables-environment-namespaces| + - LSP-Variables |luasnip-variables-lsp-variables| +20. Loaders |luasnip-loaders| + - Snippet-specific filetypes |luasnip-loaders-snippet-specific-filetypes| + - VS-Code |luasnip-loaders-vs-code| + - SNIPMATE |luasnip-loaders-snipmate| + - Lua |luasnip-loaders-lua| + - edit_snippets |luasnip-loaders-edit_snippets| +21. SnippetProxy |luasnip-snippetproxy| +22. ext_opts |luasnip-ext_opts| +23. Docstrings |luasnip-docstrings| +24. Docstring-Cache |luasnip-docstring-cache| +25. Events |luasnip-events| +26. Cleanup |luasnip-cleanup| +27. Logging |luasnip-logging| +28. Source |luasnip-source| +29. Config-Options |luasnip-config-options| +30. Troubleshooting |luasnip-troubleshooting| + - Adding Snippets |luasnip-troubleshooting-adding-snippets| +31. API |luasnip-api| +> + __ ____ + /\ \ /\ _`\ __ + \ \ \ __ __ __ \ \,\L\_\ ___ /\_\ _____ + \ \ \ __/\ \/\ \ /'__`\\/_\__ \ /' _ `\/\ \/\ '__`\ + \ \ \L\ \ \ \_\ \/\ \L\.\_/\ \L\ \/\ \/\ \ \ \ \ \L\ \ + \ \____/\ \____/\ \__/.\_\ `\____\ \_\ \_\ \_\ \ ,__/ + \/___/ \/___/ \/__/\/_/\/_____/\/_/\/_/\/_/\ \ \/ + \ \_\ + \/_/ +< + +LuaSnip is a snippet engine written entirely in Lua. It has some great features +like inserting text (`luasnip-function-node`) or nodes (`luasnip-dynamic-node`) +based on user input, parsing LSP syntax and switching nodes +(`luasnip-choice-node`). For basic setup like mappings and installing, check +the README. + +All code snippets in this help assume the following: + +>lua + local ls = require("luasnip") + local s = ls.snippet + local sn = ls.snippet_node + local isn = ls.indent_snippet_node + local t = ls.text_node + local i = ls.insert_node + local f = ls.function_node + local c = ls.choice_node + local d = ls.dynamic_node + local r = ls.restore_node + local events = require("luasnip.util.events") + local ai = require("luasnip.nodes.absolute_indexer") + local extras = require("luasnip.extras") + local l = extras.lambda + local rep = extras.rep + local p = extras.partial + local m = extras.match + local n = extras.nonempty + local dl = extras.dynamic_lambda + local fmt = require("luasnip.extras.fmt").fmt + local fmta = require("luasnip.extras.fmt").fmta + local conds = require("luasnip.extras.expand_conditions") + local postfix = require("luasnip.extras.postfix").postfix + local types = require("luasnip.util.types") + local parse = require("luasnip.util.parser").parse_snippet + local ms = ls.multi_snippet + local k = require("luasnip.nodes.key_indexer").new_key +< + +As noted in the |luasnip-loaders-lua|-section: + + + By default, the names from `luasnip.config.snip_env` + + will be used, but it’s possible to customize them by setting `snip_env` in + `setup`. +Furthermore, note that while this document assumes you have defined `ls` to be +`require("luasnip")`, it is **not** provided in the default set of variables. + + +============================================================================== +1. Basics *luasnip-basics* + +In LuaSnip, snippets are made up of `nodes`. These can contain either + +- static text (`textNode`) +- text that can be edited (`insertNode`) +- text that can be generated from the contents of other nodes (`functionNode`) +- other nodes + - `choiceNode`: allows choosing between two nodes (which might contain more + nodes) + - `restoreNode`: store and restore input to nodes +- or nodes that can be generated based on input (`dynamicNode`). + +Snippets are always created using the `s(trigger:string, +nodes:table)`-function. It is explained in more detail in |luasnip-snippets|, +but the gist is that it creates a snippet that contains the nodes specified in +`nodes`, which will be inserted into a buffer if the text before the cursor +matches `trigger` when `ls.expand` is called. + + +JUMP-INDEX *luasnip-basics-jump-index* + +Nodes that can be jumped to (`insertNode`, `choiceNode`, `dynamicNode`, +`restoreNode`, `snippetNode`) all require a "jump-index" so luasnip knows the +order in which these nodes are supposed to be visited ("jumped to"). + +>lua + s("trig", { + i(1), t"text", i(2), t"text again", i(3) + }) +< + +These indices don’t "run" through the entire snippet, like they do in +textmate-snippets (`"$1 ${2: $3 $4}"`), they restart at 1 in each nested +snippetNode: + +>lua + s("trig", { + i(1), t" ", sn(2, { + t" ", i(1), t" ", i(2) + }) + }) +< + +(roughly equivalent to the given textmate-snippet). + + +ADDING SNIPPETS *luasnip-basics-adding-snippets* + +The snippets for a given filetype have to be added to luasnip via +`ls.add_snippets(filetype, snippets)`. Snippets that should be accessible +globally (in all filetypes) have to be added to the special filetype `all`. + +>lua + ls.add_snippets("all", { + s("ternary", { + -- equivalent to "${1:cond} ? ${2:then} : ${3:else}" + i(1, "cond"), t(" ? "), i(2, "then"), t(" : "), i(3, "else") + }) + }) +< + +It is possible to make snippets from one filetype available to another using +`ls.filetype_extend`, more info on that in the section |luasnip-api|. + + +SNIPPET INSERTION *luasnip-basics-snippet-insertion* + +When a new snippet is expanded, it can be connected with the snippets that have +already been expanded in the buffer in various ways. First of all, Luasnip +distinguishes between root-snippets and child-snippets. The latter are nested +inside other snippets, so when jumping through a snippet, one may also traverse +the child-snippets expanded inside it, more or less as if the child just +contains more nodes of the parent. Root-snippets are of course characterised by +not being child-snippets. When expanding a new snippet, it becomes a child of +the snippet whose region it is expanded inside, and a root if it is not inside +any snippet’s region. If it is inside another snippet, the specific node it +is inside is determined, and the snippet then nested inside that node. + +- If that node is interactive (for example, an `insertNode`), the new snippet + will be traversed when the node is visited, as long as the + configuration-option `link_children` is enabled. If it is not enabled, it is + possible to jump from the snippet to the node, but not the other way around. +- If that node is not interactive, the snippet will be linked to the currently + active node, also such that it will not be jumped to again once it is left. + This is to prevent jumping large distances across the buffer as much as + possible. There may still be one large jump from the snippet back to the + current node it is nested inside, but that seems hard to avoid. + Thus, one should design snippets such that the regions where other snippets + may be expanded are inside `insertNodes`. + +If the snippet is not a child, but a root, it can be linked up with the roots +immediately adjacent to it by enabling `link_roots` in `setup`. Since by +default only one root is remembered, one should also set `keep_roots` if +`link_roots` is enabled. The two are separate options, since roots that are not +linked can still be reached by `ls.activate_node()`. This setup (remember +roots, but don’t jump to them) is useful for a super-tab like mapping +(`` and jump on the same key), where one would like to still enter +previous roots. Since there would almost always be more jumps if the roots are +linked, regular `` would not work almost all the time, and thus +`link_roots` has to stay disabled. + + +============================================================================== +2. Node *luasnip-node* + +Every node accepts, as its last parameter, an optional table of arguments. +There are some common ones (which are listed here), and some that only apply to +some nodes (`user_args` for function/dynamicNode). These `opts` are only +mentioned if they accept options that are not common to all nodes. + +Common opts: + +- `node_ext_opts` and `merge_node_ext_opts`: Control `ext_opts` (most likely + highlighting) of the node. Described in detail in |luasnip-ext_opts| +- `key`: The node can be referred to by this key. Useful for either |luasnip-key-indexer| or for finding the node at runtime (See + |luasnip-snippets-api|), for example inside a `dynamicNode`. The keys + do not have to be unique across the entire lifetime of the snippet, but at any + point in time, the snippet may contain each key only once. This means it is + fine to return a keyed node from a `dynamicNode`, because even if it will be + generated multiple times, those will not be valid at the same time. +- `node_callbacks`: Define event-callbacks for this node (see + |luasnip-events|). + Accepts a table that maps an event, e.g. `events.enter` to the callback + (essentially the same as `callbacks` passed to `s`, only that there is no + first mapping from jump-index to the table of callbacks). + + +API *luasnip-node-api* + +- `get_jump_index()`: this method returns the jump-index of a node. If a node + doesn’t have a jump-index, this method returns `nil` instead. +- `get_buf_position(opts) -> {from_position, to_position}`: + Determines the range of the buffer occupied by this node. `from`- and + `to_position` are `row,column`-tuples, `0,0`-indexed (first line is 0, first + column is 0) and end-inclusive (see |api-indexing|, this is extmarks + indexing). + - `opts`: `table|nil`, options, valid keys are: + - `raw`: `bool`, default `true`. This can be used to switch between + byte-columns (`raw=true`) and visual columns (`raw=false`). This makes a + difference if the line contains characters represented by multiple bytes + in UTF, for example `ÿ`. + + +============================================================================== +3. Snippets *luasnip-snippets* + +The most direct way to define snippets is `s`: + +>lua + s({trig="trigger"}, {}) +< + +(This snippet is useless beyond serving as a minimal example) + +`s(context, nodes, opts) -> snippet` + +- `context`: Either table or a string. Passing a string is equivalent to passing + >lua + { + trig = context + } + < + The following keys are valid: + - `trig`: string, the trigger of the snippet. If the text in front of (to the + left of) the cursor when `ls.expand()` is called matches it, the snippet will + be expanded. By default, "matches" means the text in front of the cursor + matches the trigger exactly, this behaviour can be modified through + `trigEngine` + - `name`: string, can be used by e.g. `nvim-compe` to identify the snippet. + - `desc` (or `dscr`): string, description of the snippet, -separated or table for + multiple lines. + - `wordTrig`: boolean, if true, the snippet is only expanded if the word + (`[%w_]+`) before the cursor matches the trigger entirely. True by default. + - `regTrig`: boolean, whether the trigger should be interpreted as a lua pattern. + False by default. Consider setting `trigEngine` to `"pattern"` instead, it is + more expressive, and in line with other settings. + - `trigEngine`: (function|string), determines how `trig` is interpreted, and what + it means for it to "match" the text in front of the cursor. This behaviour can + be completely customized by passing a function, but the predefined ones, which + are accessible by passing their identifier, should suffice in most cases: + - `"plain"`: the default-behaviour, the trigger has to match the text before + the cursor exactly. + - `"pattern"`: the trigger is interpreted as a lua-pattern, and is a match if + `trig .. "$"` matches the line up to the cursor. Capture-groups will be + accessible as `snippet.captures`. + - `"ecma"`: the trigger is interpreted as an ECMAscript-regex, and is a + match if `trig .. "$"` matches the line up to the cursor. Capture-groups + will be accessible as `snippet.captures`. + This `trigEngine` requires `jsregexp` (see + |luasnip-lsp-snippets-transformations|) to be installed, if it + is not, this engine will behave like `"plain"`. + - `"vim"`: the trigger is interpreted as a vim-regex, and is a match if + `trig .. "$"` matches the line up to the cursor. As with the other + regex/pattern-engines, captures will be available as `snippet.captures`, + but there is one caveat: the matching is done using `matchlist`, so for + now empty-string submatches will be interpreted as unmatched, and the + corresponding `snippet.capture[i]` will be `nil` (this will most likely + change, don’t rely on this behavior). + Besides these predefined engines, it is also possible to create new ones: + Instead of a string, pass a function which satisfies `trigEngine(trigger, opts) + -> (matcher(line_to_cursor, trigger) -> whole_match, captures)` (ie. the + function receives `trig` and `trigEngineOpts` can, for example, precompile a + regex, and then returns a function responsible for determining whether the + current cursor-position (represented by the line up to the cursor) matches the + trigger (it is passed again here so engines which don’t do any + trigger-specific work (like compilation) can just return a static `matcher`), + and what the capture-groups are). The `lua`-engine, for example, can be + implemented like this: + >lua + local function matcher(line_to_cursor, trigger) + -- look for match which ends at the cursor. + -- put all results into a list, there might be many capture-groups. + local find_res = { line_to_cursor:find(trigger .. "$") } + + if #find_res > 0 then + -- if there is a match, determine matching string, and the + -- capture-groups. + local captures = {} + -- find_res[1] is `from`, find_res[2] is `to` (which we already know + -- anyway). + local from = find_res[1] + local match = line_to_cursor:sub(from, #line_to_cursor) + -- collect capture-groups. + for i = 3, #find_res do + captures[i - 2] = find_res[i] + end + return match, captures + else + return nil + end + end + + local function engine(trigger) + -- don't do any special work here, can't precompile lua-pattern. + return matcher + end + < + The predefined engines are defined in `trig_engines.lua` + , + read it for more examples. + - `trigEngineOpts`: `table`, options for the used trigEngine. The + valid options are: + - `max_len`: number, upper bound on the length of the trigger. + If this is set, the `line_to_cursor` will be truncated (from the cursor of + course) to `max_len` characters before performing the match. + This is implemented because feeding long `line_to_cursor` into eg. the + pattern-trigEngine will hurt performance quite a bit (see issue + Luasnip#1103). + This option is implemented for all `trigEngines`. + - `docstring`: string, textual representation of the snippet, specified like + `desc`. Overrides docstrings loaded from json. + - `docTrig`: string, used as `line_to_cursor` during docstring-generation. This + might be relevant if the snippet relies on specific values in the + capture-groups (for example, numbers, which won’t work with the default + `$CAPTURESN` used during docstring-generation) + - `hidden`: boolean, hint for completion-engines. If set, the snippet should not + show up when querying snippets. + - `priority`: positive number, Priority of the snippet, 1000 by default. Snippets + with high priority will be matched to a trigger before those with a lower one. + The priority for multiple snippets can also be set in `add_snippets`. + - `snippetType`: string, should be either `snippet` or `autosnippet` (ATTENTION: + singular form is used), decides whether this snippet has to be triggered by + `ls.expand()` or whether is triggered automatically (don’t forget to set + `ls.config.setup({ enable_autosnippets = true })` if you want to use this + feature). If unset it depends on how the snippet is added of which type the + snippet will be. + - `resolveExpandParams`: `fn(snippet, line_to_cursor, matched_trigger, captures) + -> table|nil`, where + - `snippet`: `Snippet`, the expanding snippet object + - `line_to_cursor`: `string`, the line up to the cursor. + - `matched_trigger`: `string`, the fully matched trigger (can be retrieved + from `line_to_cursor`, but we already have that info here :D) + - `captures`: `captures` as returned by `trigEngine`. + This function will be evaluated in `Snippet:matches()` to decide whether the + snippet can be expanded or not. Returns a table if the snippet can be expanded, + `nil` if can not. The returned table can contain any of these fields: + - `trigger`: `string`, the fully matched trigger. + - `captures`: `table`, this list could update the capture-groups from + parameter in snippet expansion. + Both `trigger` and `captures` can override the values returned via + `trigEngine`. + - `clear_region`: `{ "from": {, }, "to": {, } }`, + both (0, 0)-indexed, the region where text has to be cleared before + inserting the snippet. + - `env_override`: `map string->(string[]|string)`, override or extend + the snippet’s environment (`snip.env`) + If any of these is `nil`, the default is used (`trigger` and `captures` as + returned by `trigEngine`, `clear_region` such that exactly the trigger is + deleted, no overridden environment-variables). + A good example for the usage of `resolveExpandParams` can be found in the + implementation of `postfix` + . + - `condition`: `fn(line_to_cursor, matched_trigger, captures) -> bool`, where + - `line_to_cursor`: `string`, the line up to the cursor. + - `matched_trigger`: `string`, the fully matched trigger (can be retrieved + from `line_to_cursor`, but we already have that info here :D) + - `captures`: if the trigger is pattern, this list contains the + capture-groups. Again, could be computed from `line_to_cursor`, but we + already did so. + - `show_condition`: `f(line_to_cursor) -> bool`. + - `line_to_cursor`: `string`, the line up to the cursor. + This function is (should be) evaluated by completion engines, indicating + whether the snippet should be included in current completion candidates. + Defaults to a function returning `true`. This is different from `condition` + because `condition` is evaluated by LuaSnip on snippet expansion (and thus has + access to the matched trigger and captures), while `show_condition` is (should + be) evaluated by the completion engines when scanning for available snippet + candidates. + - `filetype`: `string`, the filetype of the snippet. This overrides the filetype + the snippet is added (via `add_snippet`) as. +- `nodes`: A single node or a list of nodes. The nodes that make up the snippet. +- `opts`: A table with the following valid keys: + - `callbacks`: Contains functions that are called upon entering/leaving a node of + this snippet. For example: to print text upon entering the _second_ node of a + snippet, `callbacks` should be set as follows: + >lua + { + -- position of the node, not the jump-index!! + -- s("trig", {t"first node", t"second node", i(1, "third node")}). + [2] = { + [events.enter] = function(node, _event_args) print("2!") end + } + } + < + To register a callback for the snippets’ own events, the key `[-1]` may be + used. More info on events in |luasnip-events| + - `child_ext_opts`, `merge_child_ext_opts`: Control `ext_opts` applied to the + children of this snippet. More info on those in the |luasnip-ext_opts|-section. + +The `opts`-table, as described here, can also be passed to e.g. `snippetNode` +and `indentSnippetNode`. It is also possible to set `condition` and +`show_condition` (described in the documentation of the `context`-table) from +`opts`. They should, however, not be set from both. + + +DATA *luasnip-snippets-data* + +Snippets contain some interesting tables during runtime: + +- `snippet.env`: Contains variables used in the LSP-protocol, for example + `TM_CURRENT_LINE` or `TM_FILENAME`. It’s possible to add customized variables + here too, check |luasnip-variables-environment-namespaces| +- `snippet.captures`: If the snippet was triggered by a pattern (`regTrig`), and + the pattern contained capture-groups, they can be retrieved here. +- `snippet.trigger`: The string that triggered this snippet. Again, only + interesting if the snippet was triggered through `regTrig`, for getting the + full match. + +These variables/tables primarily come in handy in `dynamic/functionNodes`, +where the snippet can be accessed through the immediate parent +(`parent.snippet`), which is passed to the function. (in most cases `parent == +parent.snippet`, but the `parent` of the dynamicNode is not always the +surrounding snippet, it could be a `snippetNode`). + +## Api + +- `invalidate()`: call this method to effectively remove the snippet. The + snippet will no longer be able to expand via `expand` or `expand_auto`. It + will also be hidden from lists (at least if the plugin creating the list + respects the `hidden`-key), but it might be necessary to call + `ls.refresh_notify(ft)` after invalidating snippets. +- `get_keyed_node(key)`: Returns the currently visible node associated with + `key`. + + +============================================================================== +4. TextNode *luasnip-textnode* + +The most simple kind of node; just text. + +>lua + s("trigger", { t("Wow! Text!") }) +< + +This snippet expands to + +> + Wow! Text!⎵ +< + +where ⎵ is the cursor. + +Multiline strings can be defined by passing a table of lines rather than a +string: + +>lua + s("trigger", { + t({"Wow! Text!", "And another line."}) + }) +< + +`t(text, node_opts)`: + +- `text`: `string` or `string[]` +- `node_opts`: `table`, see |luasnip-node| + + +============================================================================== +5. InsertNode *luasnip-insertnode* + +These Nodes contain editable text and can be jumped to- and from (e.g. +traditional placeholders and tabstops, like `$1` in textmate-snippets). + +The functionality is best demonstrated with an example: + +>lua + s("trigger", { + t({"After expanding, the cursor is here ->"}), i(1), + t({"", "After jumping forward once, cursor is here ->"}), i(2), + t({"", "After jumping once more, the snippet is exited there ->"}), i(0), + }) +< + +The Insert Nodes are visited in order `1,2,3,..,n,0`. (The jump-index 0 also +_has_ to belong to an `insertNode`!) So the order of InsertNode-jumps is as +follows: + +1. After expansion, the cursor is at InsertNode 1, +2. after jumping forward once at InsertNode 2, +3. and after jumping forward again at InsertNode 0. + +If no 0-th InsertNode is found in a snippet, one is automatically inserted +after all other nodes. + +The jump-order doesn’t have to follow the "textual" order of the nodes: + +>lua + s("trigger", { + t({"After jumping forward once, cursor is here ->"}), i(2), + t({"", "After expanding, the cursor is here ->"}), i(1), + t({"", "After jumping once more, the snippet is exited there ->"}), i(0), + }) +< + +The above snippet will behave as follows: + +1. After expansion, we will be at InsertNode 1. +2. After jumping forward, we will be at InsertNode 2. +3. After jumping forward again, we will be at InsertNode 0. + +An **important** (because here Luasnip differs from other snippet engines) +detail is that the jump-indices restart at 1 in nested snippets: + +>lua + s("trigger", { + i(1, "First jump"), + t(" :: "), + sn(2, { + i(1, "Second jump"), + t" : ", + i(2, "Third jump") + }) + }) +< + +as opposed to e.g. the textmate syntax, where tabstops are snippet-global: + +>snippet + ${1:First jump} :: ${2: ${3:Third jump} : ${4:Fourth jump}} +< + +(this is not exactly the same snippet of course, but as close as possible) (the +restart-rule only applies when defining snippets in lua, the above +textmate-snippet will expand correctly when parsed). + +`i(jump_index, text, node_opts)` + +- `jump_index`: `number`, this determines when this node will be jumped to (see + |luasnip-basics-jump-index|). +- `text`: `string|string[]`, a single string for just one line, a list with >1 + entries for multiple lines. + This text will be SELECTed when the `insertNode` is jumped into. +- `node_opts`: `table`, described in |luasnip-node| + +If the `jump_index` is `0`, replacing its’ `text` will leave it outside the +`insertNode` (for reasons, check out Luasnip#110). + + +============================================================================== +6. FunctionNode *luasnip-functionnode* + +Function Nodes insert text based on the content of other nodes using a +user-defined function: + +>lua + local function fn( + args, -- text from i(2) in this example i.e. { { "456" } } + parent, -- parent snippet or parent node + user_args -- user_args from opts.user_args + ) + return '[' .. args[1][1] .. user_args .. ']' + end + + s("trig", { + i(1), t '<-i(1) ', + f(fn, -- callback (args, parent, user_args) -> string + {2}, -- node indice(s) whose text is passed to fn, i.e. i(2) + { user_args = { "user_args_value" }} -- opts + ), + t ' i(2)->', i(2), t '<-i(2) i(0)->', i(0) + }) +< + +`f(fn, argnode_references, node_opts)`: - `fn`: `function(argnode_text, parent, +user_args1,...,user_argsn) -> text` - `argnode_text`: `string[][]`, the text +currently contained in the argnodes (e.g. `{{line1}, {line1, line2}}`). The +snippet indent will be removed from all lines following the first. + +- `parent`: The immediate parent of the `functionNode`. It is included here as it + allows easy access to some information that could be useful in functionNodes + (see |luasnip-snippets-data| for some examples). Many snippets access the + surrounding snippet just as `parent`, but if the `functionNode` is nested + within a `snippetNode`, the immediate parent is a `snippetNode`, not the + surrounding snippet (only the surrounding snippet contains data like `env` or + `captures`). +- `user_args`: The `user_args` passed in `opts`. Note that there may be multiple + user_args (e.g. `user_args1, ..., user_argsn`). + +`fn` shall return a string, which will be inserted as is, or a table of strings +for multiline strings, where all lines following the first will be prefixed +with the snippets’ indentation. + +- `argnode_references`: `node_reference[]|node_refernce|nil`. Either no, a + single, or multiple |luasnip-node-reference|s. Changing any of these will + trigger a re-evaluation of `fn`, and insertion of the updated text. If no node + reference is passed, the `functionNode` is evaluated once upon expansion. +- `node_opts`: `table`, see |luasnip-node|. One additional key is supported: + - `user_args`: `any[]`, these will be passed to `fn` as `user_arg1`-`user_argn`. + These make it easier to reuse similar functions, for example a functionNode + that wraps some text in different delimiters (`()`, `[]`, …). + >lua + local function reused_func(_,_, user_arg1) + return user_arg1 + end + + s("trig", { + f(reused_func, {}, { + user_args = {"text"} + }), + f(reused_func, {}, { + user_args = {"different text"} + }), + }) + < + +**Examples**: + +- Use captures from the regex trigger using a functionNode: + >lua + s({trig = "b(%d)", regTrig = true}, + f(function(args, snip) return + "Captured Text: " .. snip.captures[1] .. "." end, {}) + ) + < +- `argnodes_text` during function evaluation: + >lua + s("trig", { + i(1, "text_of_first"), + i(2, {"first_line_of_second", "second_line_of_second"}), + f(function(args, snip) + --here + -- order is 2,1, not 1,2!! + end, {2, 1} )}) + < + At `--here`, `args` would look as follows (provided no text was changed after + expansion): + >lua + args = { + {"first_line_of_second", "second_line_of_second"}, + {"text_of_first"} + } + < +- |luasnip-absolute-indexer|: + >lua + s("trig", { + i(1, "text_of_first"), + i(2, {"first_line_of_second", "second_line_of_second"}), + f(function(args, snip) + -- just concat first lines of both. + return args[1][1] .. args[2][1] + end, {ai[2], ai[1]} )}) + < + +If the function only performs simple operations on text, consider using the +`lambda` from `luasnip.extras` (See |luasnip-extras-lambda|) + + +============================================================================== +7. Node Reference *luasnip-node-reference* + +Node references are used to refer to other nodes in various parts of +luasnip’s API. For example, argnodes in functionNode, dynamicNode or lambda +are node references. These references can be either of: + +- `number`: the jump-index of the node. + This will be resolved relative to the parent of the node this is passed to. + (So, only nodes with the same parent can be referenced. This is very easy to + grasp, but also limiting) +- `key_indexer`: the key of the node, if it is present. This will come in + handy if the node that is being referred to is not in the same + snippet/snippetNode as the one the node reference is passed to. + Also, it is the proper way to refer to a non-interactive node (a + functionNode, for example) +- `absolute_indexer`: the absolute position of the node. Just like + `key_indexer`, it allows addressing non-sibling nodes, but is a bit more + awkward to handle since a path from root to node has to be determined, + whereas `key_indexer` just needs the key to match. + Due to this, `key_indexer` should be generally preferred. + (More information in |luasnip-absolute-indexer|). +- `node`: just the node. Usage of this is discouraged since it can lead to + subtle errors (for example, if the node passed here is captured in a closure + and therefore not copied with the remaining tables in the snippet; there’s a + big comment about just this in commit 8bfbd61). + + +============================================================================== +8. ChoiceNode *luasnip-choicenode* + +ChoiceNodes allow choosing between multiple nodes. + +>lua + s("trig", c(1, { + t("Ugh boring, a text node"), + i(nil, "At least I can edit something now..."), + f(function(args) return "Still only counts as text!!" end, {}) + })) +< + +`c(jump_index, choices, node_opts)` + +- `jump_index`: `number`, since choiceNodes can be jumped to, they need a + jump-index (Info in |luasnip-basics-jump-index|). +- `choices`: `node[]|node`, the choices. The first will be initially active. + A list of nodes will be turned into a `snippetNode`. +- `node_opts`: `table`. `choiceNode` supports the keys common to all nodes + described in |luasnip-node|, and one additional key: + - `restore_cursor`: `false` by default. If it is set, and the node that was being + edited also appears in the switched to choice (can be the case if a + `restoreNode` is present in both choice) the cursor is restored relative to + that node. The default is `false` as enabling might lead to decreased + performance. It’s possible to override the default by wrapping the + `choiceNode` constructor in another function that sets `opts.restore_cursor` to + `true` and then using that to construct `choiceNode`s: + >lua + local function restore_cursor_choice(pos, choices, opts) + if opts then + opts.restore_cursor = true + else + opts = {restore_cursor = true} + end + return c(pos, choices, opts) + end + < + +Jumpable nodes that normally expect an index as their first parameter don’t +need one inside a choiceNode; their jump-index is the same as the +choiceNodes’. + +As it is only possible (for now) to change choices from within the choiceNode, +make sure that all of the choices have some place for the cursor to stop at! + +This means that in `sn(nil, {...nodes...})` `nodes` has to contain e.g. an +`i(1)`, otherwise luasnip will just "jump through" the nodes, making it +impossible to change the choice. + +>lua + c(1, { + t"some text", -- textNodes are just stopped at. + i(nil, "some text"), -- likewise. + sn(nil, {t"some text"}) -- this will not work! + sn(nil, {i(1), t"some text"}) -- this will. + }) +< + +The active choice for a choiceNode can be changed by either calling one of +`ls.change_choice(1)` (forwards) or `ls.change_choice(-1)` (backwards), or by +calling `ls.set_choice(choice_indx)`. + +One way to easily interact with choiceNodes is binding `change_choice(1/-1)` to +keys: + +>lua + -- set keybinds for both INSERT and VISUAL. + vim.api.nvim_set_keymap("i", "", "luasnip-next-choice", {}) + vim.api.nvim_set_keymap("s", "", "luasnip-next-choice", {}) + vim.api.nvim_set_keymap("i", "", "luasnip-prev-choice", {}) + vim.api.nvim_set_keymap("s", "", "luasnip-prev-choice", {}) +< + +Apart from this, there is also a picker (see |luasnip-select_choice| where no +cycling is necessary and any choice can be selected right away, via +`vim.ui.select`. + + +============================================================================== +9. SnippetNode *luasnip-snippetnode* + +SnippetNodes directly insert their contents into the surrounding snippet. This +is useful for `choiceNode`s, which only accept one child, or `dynamicNode`s, +where nodes are created at runtime and inserted as a `snippetNode`. + +Their syntax is similar to `s`, however, where snippets require a table +specifying when to expand, `snippetNode`s, similar to `insertNode`s, expect a +jump-index. + +>lua + s("trig", sn(1, { + t("basically just text "), + i(1, "And an insertNode.") + })) +< + +`sn(jump_index, nodes, node_opts)` + +- `jump_index`: `number`, the usual |luasnip-jump-index|. +- `nodes`: `node[]|node`, just like for `s`. + Note that `snippetNode`s don’t accept an `i(0)`, so the jump-indices of the nodes + inside them have to be in `1,2,...,n`. +- `node_opts`: `table`: again, the keys common to all nodes (documented in + |luasnip-node|) are supported, but also + - `callbacks`, + - `child_ext_opts` and + - `merge_child_ext_opts`, + which are further explained in |luasnip-snippets|. + + +============================================================================== +10. IndentSnippetNode *luasnip-indentsnippetnode* + +By default, all nodes are indented at least as deep as the trigger. With these +nodes it’s possible to override that behaviour: + +>lua + s("isn", { + isn(1, { + t({"This is indented as deep as the trigger", + "and this is at the beginning of the next line"}) + }, "") + }) +< + +(Note the empty string passed to isn). + +Indent is only applied after linebreaks, so it’s not possible to remove +indent on the line where the snippet was triggered using `ISN` (That is +possible via regex triggers where the entire line before the trigger is +matched). + +Another nice use case for `ISN` is inserting text, e.g. `//` or some other +comment string before the nodes of the snippet: + +>lua + s("isn2", { + isn(1, t({"//This is", "A multiline", "comment"}), "$PARENT_INDENT//") + }) +< + +Here the `//` before `This is` is important, once again, because indent is only +applied after linebreaks. + +To enable such usage, `$PARENT_INDENT` in the indentstring is replaced by the +parent’s indent. + +`isn(jump_index, nodes, indentstring, node_opts)` + +All of these parameters except `indentstring` are exactly the same as in +|luasnip-snippetnode|. + +- `indentstring`: `string`, will be used to indent the nodes inside this + `snippetNode`. + All occurrences of `"$PARENT_INDENT"` are replaced with the actual indent of + the parent. + + +============================================================================== +11. DynamicNode *luasnip-dynamicnode* + +Very similar to functionNode, but returns a snippetNode instead of just text, +which makes them very powerful as parts of the snippet can be changed based on +user input. + +`d(jump_index, function, node-references, opts)`: + +- `jump_index`: `number`, just like all jumpable nodes, its’ position in the + jump-list (|luasnip-basics-jump-index|). +- `function`: `fn(args, parent, old_state, user_args) -> snippetNode` This + function is called when the argnodes’ text changes. It should generate and + return (wrapped inside a `snippetNode`) nodes, which will be inserted at the + dynamicNode’s place. `args`, `parent` and `user_args` are also explained in + |luasnip-functionnode| + - `args`: `table of text` (`{{"node1line1", "node1line2"}, {"node2line1"}}`) + from nodes the `dynamicNode` depends on. + - `parent`: the immediate parent of the `dynamicNode`. + - `old_state`: a user-defined table. This table may contain anything; its + intended usage is to preserve information from the previously generated + `snippetNode`. If the `dynamicNode` depends on other nodes, it may be + reconstructed, which means all user input (text inserted in `insertNodes`, + changed choices) to the previous `dynamicNode` is lost. + The `old_state` table must be stored in `snippetNode` returned by + the function (`snippetNode.old_state`). + The second example below illustrates the usage of `old_state`. + - `user_args`: passed through from `dynamicNode`-opts; may have more than one + argument. +- `node_references`: `node_reference[]|node_references|nil`, + |luasnip-node-references| to the nodes the dynamicNode depends on: if any of + these trigger an update (for example, if the text inside them changes), the + `dynamicNode`s’ function will be executed, and the result inserted at the + `dynamicNode`s place. (`dynamicNode` behaves exactly the same as `functionNode` + in this regard). +- `opts`: In addition to the common |luasnip-node|-keys, there is, again, + - `user_args`, which is described in |luasnip-functionnode|. + +**Examples**: + +This `dynamicNode` inserts an `insertNode` which copies the text inside the +first `insertNode`. + +>lua + s("trig", { + t"text: ", i(1), t{"", "copy: "}, + d(2, function(args) + -- the returned snippetNode doesn't need a position; it's inserted + -- "inside" the dynamicNode. + return sn(nil, { + -- jump-indices are local to each snippetNode, so restart at 1. + i(1, args[1]) + }) + end, + {1}) + }) +< + +This snippet makes use of `old_state` to count the number of updates. + +To store/restore values generated by the `dynamicNode` or entered into +`insert/choiceNode`, consider using the shortly-introduced `restoreNode` +instead of `old_state`. + +>lua + local function count(_, _, old_state) + old_state = old_state or { + updates = 0 + } + + old_state.updates = old_state.updates + 1 + + local snip = sn(nil, { + t(tostring(old_state.updates)) + }) + + snip.old_state = old_state + return snip + end + + ls.add_snippets("all", + s("trig", { + i(1, "change to update"), + d(2, count, {1}) + }) + ) +< + +As with `functionNode`, `user_args` can be used to reuse similar `dynamicNode`- +functions. + + +============================================================================== +12. RestoreNode *luasnip-restorenode* + +This node can store and restore a snippetNode as is. This includes changed +choices and changed text. Its’ usage is best demonstrated by an example: + +>lua + s("paren_change", { + c(1, { + sn(nil, { t("("), r(1, "user_text"), t(")") }), + sn(nil, { t("["), r(1, "user_text"), t("]") }), + sn(nil, { t("{"), r(1, "user_text"), t("}") }), + }), + }, { + stored = { + -- key passed to restoreNodes. + ["user_text"] = i(1, "default_text") + } + }) +< + +Here the text entered into `user_text` is preserved upon changing choice. + +`r(jump_index, key, nodes, node_opts)`: + +- `jump_index`, when to jump to this node. +- `key`, `string`: `restoreNode`s with the same key share their content. +- `nodes`, `node[]|node`: the content of the `restoreNode`. + Can either be a single node, or a table of nodes (both of which will be + wrapped inside a `snippetNode`, except if the single node already is a + `snippetNode`). + The content for a given key may be defined multiple times, but if the + contents differ, it’s undefined which will actually be used. + If a key’s content is defined in a `dynamicNode`, it will not be initially + used for `restoreNodes` outside that `dynamicNode`. A way around this + limitation is defining the content in the `restoreNode` outside the + `dynamicNode`. + +The content for a key may also be defined in the `opts`-parameter of the +snippet-constructor, as seen in the example above. The `stored`-table accepts +the same values as the `nodes`-parameter passed to `r`. If no content is +defined for a key, it defaults to the empty `insertNode`. + +An important-to-know limitation of `restoreNode` is that, for a given key, only +one may be visible at a time. See this issue + for details. + +The `restoreNode` is especially useful for storing input across updates of a +`dynamicNode`. Consider this: + +>lua + local function simple_restore(args, _) + return sn(nil, {i(1, args[1]), i(2, "user_text")}) + end + + s("rest", { + i(1, "preset"), t{"",""}, + d(2, simple_restore, 1) + }) +< + +Every time the `i(1)` in the outer snippet is changed, the text inside the +`dynamicNode` is reset to `"user_text"`. This can be prevented by using a +`restoreNode`: + +>lua + local function simple_restore(args, _) + return sn(nil, {i(1, args[1]), r(2, "dyn", i(nil, "user_text"))}) + end + + s("rest", { + i(1, "preset"), t{"",""}, + d(2, simple_restore, 1) + }) +< + +Now the entered text is stored. + +`restoreNode`s indent is not influenced by `indentSnippetNodes` right now. If +that really bothers you feel free to open an issue. + + +============================================================================== +13. Key Indexer *luasnip-key-indexer* + +A very flexible way of referencing nodes (|luasnip-node-reference|). While the +straightforward way of addressing nodes via their |luasnip-jump-index| suffices +in most cases, a `dynamic/functionNode` can only depend on nodes in the same +snippet(Node), its siblings (since the index is interpreted as relative to +their parent). Accessing a node with a different parent is thus not possible. +Secondly, and less relevant, only nodes that actually have a jump-index can be +referred to (a `functionNode`, for example, cannot be depended on). Both of +these restrictions are lifted with `key_indexer`: It allows addressing nodes by +their key, which can be set when the node is constructed, and is wholly +independent of the nodes’ position in the snippet, thus enabling descriptive +labeling. + +The following snippets demonstrate the issue and the solution by using +`key_indexer`: + +First, the addressed problem of referring to nodes outside the `functionNode`s +parent: + +>lua + s("trig", { + i(1), c(2, { + sn(nil, { + t"cannot access the argnode :(", + f(function(args) + return args[1] + end, {???}) -- can't refer to i(1), since it isn't a sibling of `f`. + }), + t"sample_text" + }) + }) +< + +And the solution: first give the node we want to refer to a key, and then pass +the same to the `functionNode`. + +>lua + s("trig", { + i(1, "", {key = "i1-key"}), c(2, { + sn(nil, { i(1), + t"can access the argnode :)", + f(function(args) + return args[1] + end, k("i1-key") ) + }), + t"sample_text" + }) + }) +< + + +============================================================================== +14. Absolute Indexer *luasnip-absolute-indexer* + +`absolute_indexer` allows accessing nodes by their unique jump-index path from +the snippet-root. This makes it almost as powerful as |luasnip-key-indexer|, +but again removes the possibility of referring to non-jumpable nodes and makes +it all a bit more error-prone since the jump-index paths are hard to follow, +and (unfortunately) have to be a bit verbose (see the long example of +`absolute_indexer`-positions below). Consider just using |luasnip-key-indexer| +instead. + +(The solution-snippet from |luasnip-key-indexer|, but using `ai` instead.) + +>lua + s("trig", { + i(1), c(2, { + sn(nil, { i(1), + t"can access the argnode :)", + f(function(args) + return args[1] + end, ai(1) ) + }), + t"sample_text" + }) + }) +< + +There are some quirks in addressing nodes: + +>lua + s("trig", { + i(2), -- ai[2]: indices based on jump-index, not position. + sn(1, { -- ai[1] + i(1), -- ai[1][1] + t"lel", -- not addressable. + i(2) -- ai[1][2] + }), + c(3, { -- ai[3] + i(nil), -- ai[3][1] + t"lel", -- ai[3][2]: choices are always addressable. + }), + d(4, function() -- ai[4] + return sn(nil, { -- ai[4][0] + i(1), -- ai[4][0][1] + }) + end, {}), + r(5, "restore_key", -- ai[5] + i(1) -- ai[5][0][1]: restoreNodes always store snippetNodes. + ), + r(6, "restore_key_2", -- ai[6] + sn(nil, { -- ai[6][0] + i(1) -- ai[6][0][1] + }) + ) + }) +< + +Note specifically that the index of a dynamicNode differs from that of the +generated snippetNode, and that restoreNodes (internally) always store a +snippetNode, so even if the restoreNode only contains one node, that node has +to be accessed as `ai[restoreNodeIndx][0][1]`. + +`absolute_indexer`s’ can be constructed in different ways: + +- `ai[1][2][3]` +- `ai(1, 2, 3)` +- `ai{1, 2, 3}` + +are all the same node. + + +============================================================================== +15. MultiSnippet *luasnip-multisnippet* + +There are situations where it might be comfortable to access a snippet in +different ways. For example, one might want to enable auto-triggering in +regions where the snippets usage is common, while leaving it manual-only in +others. This is where `ms` should be used: A single snippet can be associated +with multiple `context`s (the `context`-table determines the conditions under +which a snippet may be triggered). This has the advantage (compared with just +registering copies) that all `context`s are backed by a single snippet, and not +multiple, and it’s (at least should be :D) more comfortable to use. + +`ms(contexts, nodes, opts) -> addable`: + +- `contexts`: table containing list of `contexts`, and some keywords. + `context` are described in |luasnip-snippets|, here they may also be tables + or strings. + So far, there is only one valid keyword: + - `common`: Accepts yet another context. + The options in `common` are applied to (but don’t override) the other + contexts specified in `contexts`. +- `nodes`: List of nodes, exactly like in |luasnip-snippets|. +- `opts`: Table, options for this function: + - `common_opts`: The snippet-options (see also |luasnip-snippets|) applied + to the snippet generated from `nodes`. + +The returned object is an `addable`, something which can be passed to +`add_snippets`, or returned from the lua-loader. + +**Examples**: + +>lua + ls.add_snippets("all", { + ms({"a", "b"}, {t"a or b"}) + }) +< + +>lua + ls.add_snippets("all", { + ms({ + common = {snippetType = "autosnippet"}, + "a", + "b" + }, { + t"a or b (but autotriggered!!)" + }) + }) +< + +>lua + ls.add_snippets("all", { + ms({ + common = {snippetType = "autosnippet"}, + {trig = "a", snippetType = "snippet"}, + "b", + {trig = "c", condition = function(line_to_cursor) + return line_to_cursor == "" + end} + }, { + t"a or b (but autotriggered!!)" + }) + }) +< + + +============================================================================== +16. Extras *luasnip-extras* + + +LAMBDA *luasnip-extras-lambda* + +A shortcut for `functionNode`s that only do very basic string manipulation. + +`l(lambda, argnodes)`: + +- `lambda`: An object created by applying string-operations to `l._n`, objects + representing the `n`th argnode. + For example: + - `l._1:gsub("a", "e")` replaces all occurrences of "a" in the text of the + first argnode with "e", or + - `l._1 .. l._2` concatenates text of the first and second argnode. + If an argnode contains multiple lines of text, they are concatenated with + `"\n"` prior to any operation. +- `argnodes`, a |luasnip-node-reference|, just like in function- and + dynamicNode. + +There are many examples for `lambda` in `Examples/snippets.lua` + + +MATCH *luasnip-extras-match* + +`match` can insert text based on a predicate (again, a shorthand for +`functionNode`). + +`match(argnodes, condition, then, else)`: + +- `argnode`: A single |luasnip-node-reference|. May not be nil, or + a table. +- `condition` may be either of + - `string`: interpreted as a lua pattern. Matched on the `\n`-joined (in case + it’s multiline) text of the first argnode (`args[1]:match(condition)`). + - `function`: `fn(args, snip) -> bool`: takes the same parameters as the + `functionNode`-function, any value other than nil or false is interpreted + as a match. + - `lambda`: `l._n` is the `\n`-joined text of the nth argnode. + Useful if string manipulations have to be performed before the string is matched. + Should end with `match`, but any other truthy result will be interpreted + as matching. +- `then` is inserted if the condition matches, +- `else` if it does not. + +Both `then` and `else` can be either text, lambda or function (with the same +parameters as specified above). `then`’s default-value depends on the +`condition`: + +- `pattern`: Simply the return value from the `match`, e.g. the entire match, + or, if there were capture groups, the first capture group. +- `function`: the return value of the function if it is either a string, or a + table (if there is no `then`, the function cannot return a table containing + something other than strings). +- `lambda`: Simply the first value returned by the lambda. + +Examples: + +- `match(n, "^ABC$", "A")`. +- `match(n, lambda._1:match(lambda._1:reverse()), "PALINDROME")` + >lua + s("trig", { + i(1), t":", + i(2), t"::", + m({1, 2}, l._1:match("^"..l._2.."$"), l._1:gsub("a", "e")) + }) + < +- >lua + s("extras1", { + i(1), t { "", "" }, m(1, "^ABC$", "A") + }) + < + Inserts "A" if the node with jump-index `n` matches "ABC" exactly, nothing + otherwise. +- >lua + s("extras2", { + i(1, "INPUT"), t { "", "" }, m(1, l._1:match(l._1:reverse()), "PALINDROME") + }) + < + Inserts `"PALINDROME"` if i(1) contains a palindrome. +- >lua + s("extras3", { + i(1), t { "", "" }, i(2), t { "", "" }, + m({ 1, 2 }, l._1:match("^" .. l._2 .. "$"), l._1:gsub("a", "e")) + }) + < + This inserts the text of the node with jump-index 1, with all occurrences of + `a` replaced with `e`, if the second insertNode matches the first exactly. + + +REPEAT *luasnip-extras-repeat* + +Inserts the text of the passed node. + +`rep(node_reference)` - `node_reference`, a single |luasnip-node-reference|. + +>lua + s("extras4", { i(1), t { "", "" }, extras.rep(1) }) +< + + +PARTIAL *luasnip-extras-partial* + +Evaluates a function on expand and inserts its value. + +`partial(fn, params...)` - `fn`: any function - `params`: varargs, any, will be +passed to `fn`. + +For example `partial(os.date, "%Y")` inserts the current year on expansion. + +>lua + s("extras5", { extras.partial(os.date, "%Y") }) +< + + +NONEMPTY *luasnip-extras-nonempty* + +Inserts text if the referenced node doesn’t contain any text. + +`nonempty(node_reference, not_empty, empty)`: + +- `node_reference`, a single |luasnip-node-reference|. +- `not_empty`, `string`: inserted if the node is not empty. +- `empty`, `string`: inserted if the node is empty. + +>lua + s("extras6", { i(1, ""), t { "", "" }, extras.nonempty(1, "not empty!", "empty!") }) +< + + +DYNAMIC LAMBDA *luasnip-extras-dynamic-lambda* + +Pretty much the same as lambda, but it inserts the resulting text as an +insertNode, and, as such, it can be quickly overridden. + +`dynamic_lambda(jump_indx, lambda, node_references)` - `jump_indx`, as usual, +the jump-indx. + +The remaining arguments carry over from lambda. + +>lua + s("extras7", { i(1), t { "", "" }, extras.dynamic_lambda(2, l._1 .. l._1, 1) }) +< + + +FMT *luasnip-extras-fmt* + +Authoring snippets can be quite clunky, especially since every second node is +probably a `textNode`, inserting a small number of characters between two more +complicated nodes. + +`fmt` can be used to define snippets in a much more readable way. This is +achieved by borrowing (as the name implies) from `format`-functionality (our +syntax is very similar to python’s +). + +`fmt` accepts a string and a table of nodes. Each occurrence of a delimiter +pair in the string is replaced by one node from the table, while text outside +the delimiters is turned into textNodes. + +Simple example: + +>lua + ls.add_snippets("all", { + -- important! fmt does not return a snippet, it returns a table of nodes. + s("example1", fmt("just an {iNode1}", { + iNode1 = i(1, "example") + })), + s("example2", fmt([[ + if {} then + {} + end + ]], { + -- i(1) is at nodes[1], i(2) at nodes[2]. + i(1, "not now"), i(2, "when") + })), + s("example3", fmt([[ + if <> then + <> + end + ]], { + -- i(1) is at nodes[1], i(2) at nodes[2]. + i(1, "not now"), i(2, "when") + }, { + delimiters = "<>" + })), + s("example4", fmt([[ + repeat {a} with the same key {a} + ]], { + a = i(1, "this will be repeat") + }, { + repeat_duplicates = true + })) + }) +< + +One important detail here is that the position of the delimiters does not, in +any way, correspond to the jump-index of the nodes! + +`fmt(format:string, nodes:table of nodes, opts:table|nil) -> table of nodes` + +- `format`: a string. Occurrences of `{}` ( `{}` are customizable; more + on that later) are replaced with `content[]` (which should be a + node), while surrounding text becomes `textNode`s. + To escape a delimiter, repeat it (`"{{"`). + If no key is given (`{}`) are numbered automatically: + `"{} ? {} : {}"` becomes `"{1} ? {2} : {3}"`, while + `"{} ? {3} : {}"` becomes `"{1} ? {3} : {4}"` (the count restarts at each + numbered placeholder). + If a key appears more than once in `format`, the node in + `content[]` is inserted for the first, and copies of it for + subsequent occurrences. +- `nodes`: just a table of nodes. +- `opts`: optional arguments: + - `delimiters`: string, two characters. Change `{}` to some other pair, e.g. + `"<>"`. + - `strict`: Warn about unused nodes (default true). + - `trim_empty`: remove empty (`"%s*"`) first and last line in `format`. Useful + when passing multiline strings via `[[]]` (default true). + - `dedent`: remove indent common to all lines in `format`. Again, makes + passing multiline-strings a bit nicer (default true). + - `repeat_duplicates`: repeat nodes when a key is reused instead of copying + the node if it has a jump-index, refer to |luasnip-basics-jump-index| to + know which nodes have a jump-index (default false). + +There is also `require("luasnip.extras.fmt").fmta`. This only differs from +`fmt` by using angle brackets (`<>`) as the default delimiter. + + +CONDITIONS *luasnip-extras-conditions* + +This module (`luasnip.extras.condition`) contains functions that can be passed +to a snippet’s `condition` or `show_condition`. These are grouped accordingly +into `luasnip.extras.conditions.expand` and `luasnip.extras.conditions.show`: + +**expand**: + +- `line_begin`: only expand if the cursor is at the beginning of the line. + +**show**: + +- `line_end`: only expand at the end of the line. +- `has_selected_text`: only expand if there’s selected text stored after pressing + `store_selection_keys`. + +Additionally, `expand` contains all conditions provided by `show`. + + +CONDITION OBJECTS ~ + +`luasnip.extras.conditions` also contains condition objects. These can, just +like functions, be passed to `condition` or `show_condition`, but can also be +combined with each other into logical expressions: + +- `-c1 -> not c1` +- `c1 * c2 -> c1 and c2` +- `c1 + c2 -> c1 or c2` +- `c1 - c2 -> c1 and not c2`: This is similar to set differences: + `A \ B = {a in A | a not in B}`. This makes `-(a + b) = -a - b` an identity + representing de Morgan’s law: `not (a or b) = not a and not b`. However, + since boolean algebra lacks an additive inverse, `a + (-b) = a - b` does not + hold. Thus, this is NOT the same as `c1 + (-c2)`. +- `c1 ^ c2 -> c1 xor(!=) c2` +- `c1 % c2 -> c1 xnor(==) c2`: This decision may seem weird, considering how + there is an overload for the `==`-operator. Unfortunately, it’s not possible + to use this for our purposes (some info + here ), + so we decided to make use of a more obscure symbol (which will hopefully avoid + false assumptions about its meaning). + +This makes logical combinations of conditions very readable. Compare + +>lua + condition = conditions.expand.line_end + conditions.expand.line_begin +< + +with the more verbose + +>lua + condition = function(...) return conditions.expand.line_end(...) or conditions.expand.line_begin(...) end +< + +The conditions provided in `show` and `expand` are already condition objects. +To create new ones, use +`require("luasnip.extras.conditions").make_condition(condition_fn)` + + +ON THE FLY-SNIPPETS *luasnip-extras-on-the-fly-snippets* + +Sometimes it’s desirable to create snippets tailored for exactly the current +situation. For example inserting repetitive, but just slightly different +invocations of some function, or supplying data in some schema. + +On-the-fly snippets enable exactly this use case: they can be quickly created +and expanded with as little disruption as possible. + +Since they should mainly fast to write and don’t necessarily need all bells +and whistles, they don’t make use of lsp/textmate-syntax, but a more +simplistic one: + +- `$anytext` denotes a placeholder (`insertNode`) with text "anytext". The text + also serves as a unique key: if there are multiple placeholders with the same + key, only the first will be editable, the others will just mirror it. +- … That’s it. `$` can be escaped by preceding it with a second `$`, all other + symbols will be interpreted literally. + +There is currently only one way to expand on-the-fly snippets: +`require('luasnip.extras.otf').on_the_fly("")` will interpret +whatever text is in the register `` as a snippet, and expand it +immediately. The idea behind this mechanism is that it enables a very immediate +way of supplying and retrieving (expanding) the snippet: write the snippet-body +into the buffer, cut/yank it into some register, and call +`on_the_fly("")` to expand the snippet. + +Here’s one set of example keybindings: + +>vim + " in the first call: passing the register is optional since `on_the_fly` + " defaults to the unnamed register, which will always contain the previously cut + " text. + vnoremap "eclua require('luasnip.extras.otf').on_the_fly("e") + inoremap lua require('luasnip.extras.otf').on_the_fly("e") +< + +Obviously, `` is arbitrary and can be changed to any other key combo. +Another interesting application is allowing multiple on-the-fly snippets at the +same time by retrieving snippets from multiple registers: + +>vim + " For register a + vnoremap a "aclua require('luasnip.extras.otf').on_the_fly() + inoremap a lua require('luasnip.extras.otf').on_the_fly("a") + + + " For register b + vnoremap a "bc:lua require('luasnip.extras.otf').on_the_fly() + inoremap b lua require('luasnip.extras.otf').on_the_fly("b") +< + + +SELECT_CHOICE *luasnip-extras-select_choice* + +It’s possible to leverage `vim.ui.select` for selecting a choice directly, +without cycling through the available choices. All that is needed for this is +calling `require("luasnip.extras.select_choice")`, most likely via some +keybind, e.g. + +>vim + inoremap lua require("luasnip.extras.select_choice")() +< + +while inside a choiceNode. The `opts.kind` hint for `vim.ui.select` will be set +to `luasnip`. + + +FILETYPE-FUNCTIONS *luasnip-extras-filetype-functions* + +Contains some utility functions that can be passed to the `ft_func` or +`load_ft_func`-settings. + +- `from_filetype`: the default for `ft_func`. Simply returns the filetype(s) of + the buffer. +- `from_cursor_pos`: uses treesitter to determine the filetype at the cursor. + With that, it’s possible to expand snippets in injected regions, as long as + the treesitter parser supports them. If this is used in conjunction with + `lazy_load`, extra care must be taken that all the filetypes that can be + expanded in a given buffer are also returned by `load_ft_func` (otherwise their + snippets may not be loaded). This can easily be achieved with `extend_load_ft`. +- `extend_load_ft`: `fn(extend_ft:map) -> fn` A simple solution to the problem + described above is loading more filetypes than just that of the target buffer + when `lazy_load`ing. This can be done ergonomically via `extend_load_ft`: + calling it with a table where the keys are filetypes, and the values are the + filetypes that should be loaded additionally returns a function that can be + passed to `load_ft_func` and takes care of extending the filetypes properly. + >lua + ls.setup({ + load_ft_func = + -- Also load both lua and json when a markdown-file is opened, + -- javascript for html. + -- Other filetypes just load themselves. + require("luasnip.extras.filetype_functions").extend_load_ft({ + markdown = {"lua", "json"}, + html = {"javascript"} + }) + }) + < + + +POSTFIX-SNIPPET *luasnip-extras-postfix-snippet* + +Postfix snippets, famously used in rust analyzer + and various IDEs, are a type of snippet +which alters text before the snippet’s trigger. While these can be +implemented using regTrig snippets, this helper makes the process easier in +most cases. + +The simplest example, which surrounds the text preceding the `.br` with +brackets `[]`, looks like: + +>lua + postfix(".br", { + f(function(_, parent) + return "[" .. parent.snippet.env.POSTFIX_MATCH .. "]" + end, {}), + }) +< + +and is triggered with `xxx.br` and expands to `[xxx]`. + +Note the `parent.snippet.env.POSTFIX_MATCH` in the function node. This is +additional field generated by the postfix snippet. This field is generated by +extracting the text matched (using a configurable matching string, see below) +from before the trigger. In the case above, the field would equal `"xxx"`. This +is also usable within dynamic nodes. + +This field can also be used within lambdas and dynamic nodes. + +>lua + postfix(".br", { + l("[" .. l.POSTFIX_MATCH .. "]"), + }) +< + +>lua + postfix(".brd", { + d(1, function (_, parent) + return sn(nil, {t("[" .. parent.env.POSTFIX_MATCH .. "]")}) + end) + }) +< + +The arguments to `postfix` are identical to the arguments to `s` but with a few +extra options. + +The first argument can be either a string or a table. If it is a string, that +string will act as the trigger, and if it is a table it has the same valid keys +as the table in the same position for `s` except: + +- `wordTrig`: This key will be ignored if passed in, as it must always be + false for postfix snippets. +- `match_pattern`: The pattern that the line before the trigger is matched + against. The default match pattern is `"[%w%.%_%-]+$"`. Note the `$`. This + matches since only the line _up until_ the beginning of the trigger is + matched against the pattern, which makes the character immediately + preceding the trigger match as the end of the string. + +Some other match strings, including the default, are available from the postfix +module. `require("luasnip.extras.postfix).matches`: + +- `default`: `[%w%.%_%-%"%']+$` +- `line`: `^.+$` + +The second argument is identical to the second argument for `s`, that is, a +table of nodes. + +The optional third argument is the same as the third (`opts`) argument to the +`s` function, but with one difference: + +The postfix snippet works using a callback on the pre_expand event of the +snippet. If you pass a callback on the pre_expand event (structure example +below) it will get run after the builtin callback. + +>lua + { + callbacks = { + [-1] = { + [events.pre_expand] = function(snippet, event_args) + -- function body to match before the dot + -- goes here + end + } + } + } +< + + +TREESITTER-POSTFIX-SNIPPET *luasnip-extras-treesitter-postfix-snippet* + +Instead of triggering a postfix-snippet when some pattern matches in front of +the trigger, it might be useful to match if some specific treesitter-nodes +surround/are in front of the trigger. While this functionality can also be +implemented by a custom `resolveExpandParams`, this helper simplifies the +common cases. + +This matching of treesitter-nodes can be done either + +- by providing a query and the name of the capture that should be in front of + the trigger (in most cases, the complete match, but requiring specific nodes + before/after the matched node may be useful as well), or +- by providing a function that manually walks the node-tree, and returns the + node in front of the trigger on success (for increased flexibility). + +A simple example, which surrounds the previous node’s text preceding the +`.mv` with `std::move()` in cpp files, looks like: + +>lua + local treesitter_postfix = require("luasnip.extras.treesitter_postfix").treesitter_postfix + + treesitter_postfix({ + trig = ".mv", + matchTSNode = { + query = [[ + [ + (call_expression) + (identifier) + (template_function) + (subscript_expression) + (field_expression) + (user_defined_literal) + ] @prefix + ]] + query_lang = "cpp" + }, + },{ + f(function(_, parent) + local node_content = table.concat(parent.snippet.env.LS_TSMATCH, '\n') + local replaced_content = ("std::move(%s)"):format(node_content) + return vim.split(ret_str, "\n", { trimempty = false }) + end) + }) +< + +`LS_TSMATCH` is the treesitter-postfix equivalent to `POSTFIX_MATCH`, and is +populated with the match (in this case the text of a treesitter-node) in front +of the trigger. + +The arguments to `treesitter_postfix` are identical to the arguments to `s` but +with a few extra options. + +The first argument has to be a table, which defines at least `trig` and +`matchTSNode`. All keys from the regular `s` may be set here (except for +`wordTrig`, which will be ignored), and additionally the following: + +- `reparseBuffer`, `string?`: Sometimes the trigger may interfere with + treesitter recognizing queries correctly. With this option, the trigger may + either be removed from the live-buffer (`"live"`), from a copy of the buffer + (`"copy"`), or not at all (`nil`). +- `matchTSNode`: How to determine whether there is a matching node in front of + the cursor. There are two options: + - `fun(parser: LuaSnip.extra.TSParser, pos: { [1]: number, [2]: number }): LuaSnip.extra.NamedTSMatch?, TSNode? Manually determine whether there is a matching node that ends just before`pos`(the beginning of the trigger). Return`nil,nil`if there is no match, otherwise first return a table mapping names to nodes (the text, position and type of these will be provided via`snip.env`), and second the node that is the matched node. + - `LuaSnip.extra.MatchTSNodeOpts`, which represents a query and provides all + captures of the matched pattern in `NamedTSMatch`. It contains the following + options: + - `query`, `string`: The query, in textual form. + - `query_name`, `string`: The name of the runtime-query to be used (passed + to `query.get()`), defaults to `"luasnip"` (so one could create a + file which only contains queries used by luasnip, like + `$CONFDIR/queries//luasnip.scm`, which might make sense to define + general concepts independent of a single snippet). + `query` and `query_name` are mutually exclusive, only one of both shall be + defined. + - `query_lang`, `string`: The language of the query. This is the only + required parameter to this function, since there’s no sufficiently + straightforward way to determine the language of the query for us. + Consider using `extend_override` to define a `ts_postfix`-function that + automatically fills in the language for the filetype of the snippet-file. + - `match_captures`, `string|string[]`: The capture(s) to use for determining + the actual prefix (so the node that should be immediately in front of the + trigger). This defaults to just `"prefix"`. + - `select`, `string?|fun(): LuaSnip.extra.MatchSelector`: Since there may be + multiple matching captures in front of the cursor, there has to be some + way to select the node that will actually be used. + If this is a string, it has to be one of "any", "shortest", or "longest", + which mean that any, the shortest, or the longest match is used. + If it is a function, it must return a table with two fields, `record` and + `retrieve`. `record` is called with a TSMatch and a potential node for the + ts-match, and may return `true` to abort the selection-procedure. + `retrieve` must return either a TSMatch-TSNode-tuple (which is used as the + match) or `nil`, to signify that there is no match. + `lua/luasnip/extras/_treesitter.lua` contains the table + `builtin_tsnode_selectors`, which contains the implementations for + any/shortest/longest, which can be used as examples for more complicated + custom-selectors. + +The text of the matched node can be accessed as `snip.env.LS_TSMATCH`. The text +of the nodes returned as `NamedTSMatch` can be accessed as +`snip.env.LS_TSCAPTURE_`, and their range and type as +`snip.env.LS_TSDATA..range/type` (where range is a tuple +of row-col-tuples, both 0-indexed). + +For a query like + +>scm + (function_declaration + name: (identifier) @fname + parameters: (parameters) @params + body: (block) @body + ) @prefix +< + +matched against + +>lua + function add(a, b) + return a + b + end +< + +`snip.env` would contain: + +- `LS_TSMATCH`: `{ "function add(a, b)", "\treturn a + b", "end" }` +- `LS_TSDATA`: + >lua + { + body = { + range = { { 1, 1 }, { 1, 13 } }, + type = "block" + }, + fname = { + range = { { 0, 9 }, { 0, 12 } }, + type = "identifier" + }, + params = { + range = { { 0, 12 }, { 0, 18 } }, + type = "parameters" + }, + prefix = { + range = { { 0, 0 }, { 2, 3 } }, + type = "function_declaration" + } + } + < +- `LS_TSCAPTURE_FNAME`: `{ "add" }` +- `LS_TSCAPTURE_PARAMS`: `{ "(a, b)" }` +- `LS_TSCAPTURE_BODY`: `{ "return a + b" }` +- `LS_TSCAPTURE_PREFIX`: `{ "function add(a, b)", "\treturn a + b", "end" }` + +(note that all variables containing text of nodes are string-arrays, one entry +for each line) + +There is one important caveat when accessing `LS_TSDATA` in +function/dynamicNodes: It won’t contain the values as specified here while +generating docstrings (in fact, it won’t even be a table). Since docstrings +have to be generated without any runtime-information, we just have to provide +dummy-data in `env`, which will be some kind of string related to the name of +the env-variable. Since the structure of `LS_TSDATA` obviously does not fit +that model, we can’t really handle it in a nice way (at least yet). So, for +now, best include a check like `local static_evaluation = type(env.LS_TSDATA) +== "string"`, and behave accordingly if `static_evaluation` is true (for +example, return some value tailored for displaying it in a docstring). + +One more example, which actually uses a few captures: + +>lua + ts_post({ + matchTSNode = { + query = [[ + (function_declaration + name: (identifier) @fname + parameters: (parameters) @params + body: (block) @body + ) @prefix + ]], + query_lang = "lua", + }, + trig = ".var" + }, fmt([[ + local {} = function{} + {} + end + ]], { + l(l.LS_TSCAPTURE_FNAME), + l(l.LS_TSCAPTURE_PARAMS), + l(l.LS_TSCAPTURE_BODY), + })) +< + +The module `luasnip.extras.treesitter_postfix` contains a few functions that +may be useful for creating more efficient ts-postfix-snippets. Nested in +`builtin.tsnode_matcher` are: + +- `fun find_topmost_types(types: string[]): MatchTSNodeFunc`: Generates + a `LuaSnip.extra.MatchTSNodeFunc` which returns the last parent whose type + is in `types`. +- `fun find_first_types(types: string[]): MatchTSNodeFunc`: Similar to + `find_topmost_types`, only this one matches the first parent whose type is in + types. +- `find_nth_parent(n: number): MatchTSNodeFunc`: Simply matches the `n`-th + parent of the innermost node infront of the trigger. + +With `find_topmost_types`, the first example can be implemented more +efficiently (without needing a whole query): + +>lua + local postfix_builtin = require("luasnip.extras.treesitter_postfix").builtin + + ls.add_snippets("all", { + ts_post({ + matchTSNode = postfix_builtin.tsnode_matcher.find_topmost_types({ + "call_expression", + "identifier", + "template_function", + "subscript_expression", + "field_expression", + "user_defined_literal" + }), + trig = ".mv" + }, { + l(l_str.format("std::move(%s)", l.LS_TSMATCH)) + }) + }, {key = "asdf"}) +< + + +SNIPPET LIST *luasnip-extras-snippet-list* + +>lua + local sl = require("luasnip.extras.snippet_list") +< + +Makes an `open` function available to use to open currently available snippets +in a different buffer/window/tab. + +`sl.open(opts:table|nil)` + +- `opts`: optional arguments: + - `snip_info`: `snip_info(snippet) -> table representation of snippet` + - `printer`: `printer(snippets:table) -> any` + - `display`: `display(snippets:any)` + +Benefits include: syntax highlighting, searching, and customizability. + +Simple Example: + +>lua + sl.open() +< + +Customization Examples: + +>lua + -- making our own snip_info + local function snip_info(snippet) + return { name = snippet.name } + end + + -- using it + sl.open({snip_info = snip_info}) +< + +>lua + -- making our own printer + local function printer(snippets) + local res = "" + + for ft, snips in pairs(snippets) do + res = res .. ft .. "\n" + for _, snip in pairs(snips) do + res = res .. " " .. "Name: " .. snip.name .. "\n" + res = res .. " " .. "Desc: " .. snip.description[1] .. "\n" + res = res .. " " .. "Trigger: " .. snip.trigger .. "\n" + res = res .. " ----" .. "\n" + end + end + + return res + end + + + -- using it + sl.open({printer = printer}) +< + +>lua + -- making our own display + local function display(printer_result) + -- right vertical split + vim.cmd("botright vnew") + + -- get buf and win handle + local buf = vim.api.nvim_get_current_buf() + local win = vim.api.nvim_get_current_win() + + -- setting window and buffer options + vim.api.nvim_win_set_option(win, "foldmethod", "manual") + vim.api.nvim_buf_set_option(buf, "filetype", "javascript") + + vim.api.nvim_buf_set_option(buf, "buftype", "nofile") + vim.api.nvim_buf_set_option(buf, "bufhidden", "wipe") + vim.api.nvim_buf_set_option(buf, "buflisted", false) + + vim.api.nvim_buf_set_name(buf, "Custom Display buf " .. buf) + + -- dump snippets + local replacement = vim.split(printer_result) + vim.api.nvim_buf_set_lines(buf, 0, 0, false, replacement) + end + + -- using it + sl.open({display = display}) +< + +There is a **caveat** with implementing your own printer and/or display +function. The **default** behavior for the printer function is to return a +string representation of the snippets. The display function uses the results +from the printer function, therefore by **default** the display function is +expecting that result to be a string. + +However, this doesn’t have to be the case. For example, you can implement +your own printer function that returns a table representation of the snippets +**but** you would have to then implement your own display function or some +other function in order to return the result as a string. + +An `options` table, which has some core functionality that can be used to +customize 'common' settings, is provided. + +- `sl.options`: options table: + - `display`: `display(opts:table|nil) -> function(printer_result:string)` + +You can see from the example above that making a custom display is a fairly +involved process. What if you just wanted to change a buffer option like the +name or just the filetype? This is where `sl.options.display` comes in. It +allows you to customize buffer and window options while keeping the default +behavior. + +`sl.options.display(opts:table|nil) -> function(printer_result:string)` + +- `opts`: optional arguments: + - `win_opts`: `table which has a {window_option = value} form` + - `buf_opts`: `table which has a {buffer_option = value} form` + - `get_name`: `get_name(buf) -> string` + +Let’s recreate the custom display example above: + +>lua + -- keeping the default display behavior but modifying window/buffer + local modified_default_display = sl.options.display({ + buf_opts = {filetype = "javascript"}, + win_opts = {foldmethod = "manual"}, + get_name = function(buf) return "Custom Display buf " .. buf end + }) + + -- using it + sl.open({display = modified_default_display}) +< + + +SNIPPET LOCATION *luasnip-extras-snippet-location* + +This module can consume a snippets |luasnip-source|, more specifically, jump to +the location referred by it. This is primarily implemented for snippet which +got their source from one of the loaders, but might also work for snippets +where the source was set manually. + +`require("luasnip.extras.snip_location")`: + +- `snip_location.jump_to_snippet(snip, opts)` + Jump to the definition of `snip`. + - `snip`: a snippet with attached source-data. + - `opts`: `nil|table`, optional arguments, valid keys are: + - `hl_duration_ms`: `number`, duration for which the definition should be highlighted, + in milliseconds. 0 disables the highlight. + - `edit_fn`: `function(file)`, this function will be called with the file + the snippet is located in, and is responsible for jumping to it. + We assume that after it has returned, the current buffer contains `file`. +- `snip_location.jump_to_active_snippet(opts)` + Jump to definition of active snippet. + - `opts`: `nil|table`, accepts the same keys as the `opts`-parameter of + `jump_to_snippet`. + + +============================================================================== +17. Extend Decorator *luasnip-extend-decorator* + +Most of luasnip’s functions have some arguments to control their behaviour. +Examples include `s`, where `wordTrig`, `regTrig`, … can be set in the first +argument to the function, or `fmt`, where the delimiter can be set in the third +argument. This is all good and well, but if these functions are often used with +non-default settings, it can become cumbersome to always explicitly set them. + +This is where the `extend_decorator` comes in: it can be used to create +decorated functions which always extend the arguments passed directly with +other previously defined ones. + +An example: + +>lua + local fmt = require("luasnip.extras.fmt").fmt + + fmt("{}", {i(1)}) -- -> list of nodes, containing just the i(1). + + -- when authoring snippets for some filetype where `{` and `}` are common, they + -- would always have to be escaped in the format-string. It might be preferable + -- to use other delimiters, like `<` and `>`. + + fmt("<>", {i(1)}, {delimiters = "<>"}) -- -> same as above. + + -- but it's quite annoying to always pass the `{delimiters = "<>"}`. + + -- with extend_decorator: + local fmt_angle = ls.extend_decorator.apply(fmt, {delimiters = "<>"}) + fmt_angle("<>", {i(1)}) -- -> same as above. + + -- the same also works with other functions provided by luasnip, for example all + -- node/snippet-constructors and `parse_snippet`. +< + +`extend_decorator.apply(fn, ...)` requires that `fn` is previously registered +via `extend_decorator.register`. (This is not limited to LuaSnip’s functions; +although, for usage outside of LuaSnip, best copy the source file: +`/lua/luasnip/util/extend_decorator.lua`). + +`register(fn, ...)`: + +- `fn`: the function. +- `...`: any number of tables. Each specifies how to extend an argument of `fn`. + The tables accept: + - arg_indx, `number` (required): the position of the parameter to override. + - extend, `fn(arg, extend_value) -> effective_arg` (optional): this function + is used to extend the args passed to the decorated function. + It defaults to a function which just extends the arg-table with the + extend table (accepts `nil`). + This extend behaviour is adaptable to accommodate `s`, where the first + argument may be string or table. + +`apply(fn, ...) -> decorated_fn`: + +- `fn`: the function to decorate. +- `...`: The values to extend with. These should match the descriptions passed + in `register` (the argument first passed to `register` will be extended with + the first value passed here). + +One more example for registering a new function: + +>lua + local function somefn(arg1, arg2, opts1, opts2) + -- not important + end + + -- note the reversed arg_indx!! + extend_decorator.register(somefn, {arg_indx=4}, {arg_indx=3}) + local extended = extend_decorator.apply(somefn, + {key = "opts2 is extended with this"}, + {key = "and opts1 with this"}) + extended(...) +< + + +============================================================================== +18. LSP-Snippets *luasnip-lsp-snippets* + +LuaSnip is capable of parsing LSP-style snippets using +`ls.parser.parse_snippet(context, snippet_string, opts)`: + +>lua + ls.parser.parse_snippet({trig = "lsp"}, "$1 is ${2|hard,easy,challenging|}") +< + +`context` can be: - `string|table`: treated like the first argument to `ls.s`, +`parse_snippet` returns a snippet. - `number`: `parse_snippet` returns a +snippetNode, with the position `context`. - `nil`: `parse_snippet` returns a +flat table of nodes. This can be used like `fmt`. + +Nested placeholders(`"${1:this is ${2:nested}}"`) will be turned into +choiceNodes with: - the given snippet(`"this is ${1:nested}"`) and - an empty +insertNode + +This behaviour can be modified by changing `parser_nested_assembler` in +`ls.setup()`. + +LuaSnip will also modify some snippets that it is incapable of representing +accurately: + +- if the `$0` is a placeholder with something other than just text inside +- if the `$0` is a choice +- if the `$0` is not an immediate child of the snippet (it could be inside a + placeholder: `"${1: $0 }"`) + +To remedy those incompatibilities, the invalid `$0` will be replaced with a +tabstop/placeholder/choice which will be visited just before the new `$0`. This +new `$0` will be inserted at the (textually) earliest valid position behind the +invalid `$0`. + +`opts` can contain the following keys: - `trim_empty`: boolean, remove empty +lines from the snippet. Default true. - `dedent`: boolean, remove common indent +from the snippet’s lines. Default true. + +Both `trim_empty` and `dedent` will be disabled for snippets parsed via +`ls.lsp_expand`: it might prevent correct expansion of snippets sent by lsp. + + +SNIPMATE PARSER *luasnip-lsp-snippets-snipmate-parser* + +It is furthermore possible to parse SnipMate snippets (this includes support +for vimscript-evaluation!!) + +SnipMate snippets need to be parsed with a different function, +`ls.parser.parse_snipmate`: + +>lua + ls.parser.parse_snipmate("year", "The year is `strftime('%Y')`") +< + +`parse_snipmate` accepts the same arguments as `parse_snippet`, only the +snippet body is parsed differently. + + +TRANSFORMATIONS *luasnip-lsp-snippets-transformations* + +To apply Variable/Placeholder-transformations +, +luasnip needs to apply ECMAScript regexes. This is implemented by relying on +`jsregexp` . + +The easiest (but potentially error-prone) way to install it is by calling `make +install_jsregexp` in the repo root. + +This process can be automated by `packer.nvim`: + +>lua + use { "L3MON4D3/LuaSnip", run = "make install_jsregexp" } +< + +If this fails, first open an issue :P, and then try installing the +`jsregexp`-luarock. This is also possible via `packer.nvim`, although actual +usage may require a small workaround, see here + or here +. + +Alternatively, `jsregexp` can be cloned locally, `make`d, and the resulting +`jsregexp.so` placed in some place where nvim can find it (probably +`~/.config/nvim/lua/`). + +If `jsregexp` is not available, transformations are replaced by a simple copy. + + +============================================================================== +19. Variables *luasnip-variables* + +All `TM_something`-variables are supported with two additions: `LS_SELECT_RAW` +and `LS_SELECT_DEDENT`. These were introduced because `TM_SELECTED_TEXT` is +designed to be compatible with VSCode’s behavior, which can be +counterintuitive when the snippet can be expanded at places other than the +point where selection started (or when doing transformations on selected text). +Besides those we also provide `LS_TRIGGER` which contains the trigger of the +snippet, and `LS_CAPTURE_n` (where n is a positive integer) that contains the +n-th capture when using a regex with capture groups as `trig` in the snippet +definition. + +All variables can be used outside of lsp-parsed snippets as their values are +stored in a snippets’ `snip.env`-table: + +>lua + s("selected_text", f(function(args, snip) + local res, env = {}, snip.env + table.insert(res, "Selected Text (current line is " .. env.TM_LINE_NUMBER .. "):") + for _, ele in ipairs(env.LS_SELECT_RAW) do table.insert(res, ele) end + return res + end, {})) +< + +To use any `*SELECT*` variable, the `store_selection_keys` must be set via +`require("luasnip").config.setup({store_selection_keys=""})`. In this +case, hitting `` while in visual mode will populate the `*SELECT*`-vars +for the next snippet and then clear them. + + +ENVIRONMENT NAMESPACES *luasnip-variables-environment-namespaces* + +You can also add your own variables by using the `ls.env_namespace(name, opts)` +where: + +- `name`: `string` the names the namespace, can’t contain the character “_” +- `opts` is a table containing (in every case `EnvVal` is the same as `string|list[string]`: + - `vars`: `(fn(name:string)->EnvVal) | map[string, EnvVal]` + Is a function that receives a string and returns a value for the var with that name + or a table from var name to a value + (in this case, if the value is a function it will be executed lazily once per snippet expansion). + - `init`: `fn(info: table)->map[string, EnvVal]` Returns + a table of variables that will set to the environment of the snippet on expansion, + use this for vars that have to be calculated in that moment or that depend on each other. + The `info` table argument contains `pos` (0-based position of the cursor on expansion), + the `trigger` of the snippet and the `captures` list. + - `eager`: `list[string]` names of variables that will be taken from `vars` and appended eagerly (like those in init) + - `multiline_vars`: `(fn(name:string)->bool)|map[sting, bool]|bool|string[]` Says if certain vars are a table or just a string, + can be a function that get’s the name of the var and returns true if the var is a key, + a list of vars that are tables or a boolean for the full namespace, it’s false by default. Refer to + issue#510 for more information. + +The four fields of `opts` are optional but you need to provide either `init` or +`vars`, and `eager` can’t be without `vars`. Also, you can’t use namespaces +that override default vars. + +A simple example to make it more clear: + +>lua + local function random_lang() + return ({"LUA", "VIML", "VIML9"})[math.floor(math.random()/2 + 1.5)] + end + + ls.env_namespace("MY", {vars={ NAME="LuaSnip", LANG=random_lang }}) + + -- then you can use $MY_NAME and $MY_LANG in your snippets + + ls.env_namespace("SYS", {vars=os.getenv, eager={"HOME"}}) + + -- then you can use $SYS_HOME which was eagerly initialized but also $SYS_USER (or any other system environment var) in your snippets + + lsp.env_namespace("POS", {init=function(info) return {VAL=vim.inspect(info.pos)} end}) + + -- then you can use $POS_VAL in your snippets + + s("custom_env", d(1, function(args, parent) + local env = parent.snippet.env + return sn(nil, t { + "NAME: " .. env.MY_NAME, + "LANG: " .. env.MY_LANG, + "HOME: " .. env.SYS_HOME, + "USER: " .. env.SYS_USER, + "VAL: " .. env.POS_VAL + }) + end, {})) +< + + +LSP-VARIABLES *luasnip-variables-lsp-variables* + +All variables, even ones added via `env_namespace`, can be accessed in LSP +snippets as `$VAR_NAME`. + +The lsp-spec states: + +------------------------------------------------------------------------------ +With `$name` or `${name:default}` you can insert the value of a variable. When +a variable isn’t set, its default or the empty string is inserted. When a +variable is unknown (that is, its name isn’t defined) the name of the +variable is inserted and it is transformed into a placeholder. + +------------------------------------------------------------------------------ +The above necessitates a differentiation between `unknown` and `unset` +variables: + +For LuaSnip, a variable `VARNAME` is `unknown` when `env.VARNAME` returns `nil` +and `unset` if it returns an empty string. + +Consider this when adding env-variables which might be used in LSP snippets. + + +============================================================================== +20. Loaders *luasnip-loaders* + +Luasnip is capable of loading snippets from different formats, including both +the well-established VSCode and SnipMate format, as well as plain Lua files for +snippets written in Lua. + +All loaders (except the vscode-standalone-loader) share a similar interface: +`require("luasnip.loaders.from_{vscode,snipmate,lua}").{lazy_,}load(opts:table|nil)` + +where `opts` can contain the following keys: + +- `paths`: List of paths to load. Can be a table, or a single + comma-separated string. + The paths may begin with `~/` or `./` to indicate that the path is + relative to your `$HOME` or to the directory where your `$MYVIMRC` resides + (useful to add your snippets). + If not set, `runtimepath` is searched for + directories that contain snippets. This procedure differs slightly for + each loader: + - `lua`: the snippet-library has to be in a directory named + `"luasnippets"`. + - `snipmate`: similar to lua, but the directory has to be `"snippets"`. + - `vscode`: any directory in `runtimepath` that contains a + `package.json` contributing snippets. +- `lazy_paths`: behaves essentially like `paths`, with two exceptions: if it is + `nil`, it does not default to `runtimepath`, and the paths listed here do not + need to exist, and will be loaded on creation. + LuaSnip will do its best to determine the path that this should resolve to, + but since the resolving we do is not very sophisticated it may produce + incorrect paths. Definitely check the log if snippets are not loaded as + expected. +- `exclude`: List of languages to exclude, empty by default. +- `include`: List of languages to include, includes everything by default. +- `{override,default}_priority`: These keys are passed straight to the + `add_snippets`-calls (documented in |luasnip-api|) and can therefore change the + priority of snippets loaded from some collection (or, in combination with + `{in,ex}clude`, only some of its snippets). +- `fs_event_providers`: `table?`, specifies which mechanisms + should be used to watch files for updates/creation. + If `autocmd` is set to `true`, a `BufWritePost`-hook watches files of this + collection, if `libuv` is set, the file-watcher-api exposed by libuv is used + to watch for updates. + Use `libuv` if you want snippets to update from other neovim-instances, and + `autocmd` if the collection resides on a filesystem where the libuv-watchers + may not work correctly. Or, of course, just enable both :D + By default, only `autocmd` is enabled. + +While `load` will immediately load the snippets, `lazy_load` will defer loading +until the snippets are actually needed (whenever a new buffer is created, or +the filetype is changed luasnip actually loads `lazy_load`ed snippets for the +filetypes associated with this buffer. This association can be changed by +customizing `load_ft_func` in `setup`: the option takes a function that, passed +a `bufnr`, returns the filetypes that should be loaded (`fn(bufnr) -> filetypes +(string[])`)). + +All of the loaders support reloading, so simply editing any file contributing +snippets will reload its snippets (according to `fs_event_providers` in the +instance where the file was edited, or in other instances as well). + +As an alternative (or addition) to automatic reloading, luasnip can also +process manual updates to files: Call +`require("luasnip.loaders").reload_file(path)` to reload the file at `path`. +This may be useful when the collection is controlled by some other plugin, or +when enabling the other reload-mechanisms is for some reason undesirable +(performance? minimalism?). + +For easy editing of these files, LuaSnip provides a `vim.ui.select`-based +dialog (|luasnip-loaders-edit_snippets|) where first the filetype, and then the +file can be selected. + + +SNIPPET-SPECIFIC FILETYPES *luasnip-loaders-snippet-specific-filetypes* + +Some loaders (vscode,lua) support giving snippets generated in some file their +own filetype (vscode via `scope`, lua via the underlying `filetype`-option for +snippets). These snippet-specific filetypes are not considered when determining +which files to `lazy_load` for some filetype, this is exclusively determined by +the `language` associated with a file in vscodes’ `package.json`, and the +file/directory-name in lua. + +- This can be resolved relatively easily in vscode, where the `language` + advertised in `package.json` can just be a superset of the `scope`s in the file. +- Another simplistic solution is to set the language to `all` (in lua, it might + make sense to create a directory `luasnippets/all/*.lua` to group these files + together). +- Another approach is to modify `load_ft_func` to load a custom filetype if the + snippets should be activated, and store the snippets in a file for that + filetype. This can be used to group snippets by e.g. framework, and load them + once a file belonging to such a framework is edited. + +**Example**: `react.lua` + +>lua + return { + s({filetype = "css", trig = ...}, ...), + s({filetype = "html", trig = ...}, ...), + s({filetype = "js", trig = ...}, ...), + } +< + +`luasnip_config.lua` + +>lua + load_ft_func = function(bufnr) + if "" then + -- will load `react.lua` for this buffer + return {"react"} + else + return require("luasnip.extras.filetype_functions").from_filetype_load + end + end +< + +See the |luasnip-troubleshooting-adding-snippets-loaders| section if one is +having issues adding snippets via loaders. + + +VS-CODE *luasnip-loaders-vs-code* + +As a reference on the structure of these snippet libraries, see +`friendly-snippets` . + +We support a small extension: snippets can contain LuaSnip-specific options in +the `luasnip`-table: + +>json + "example1": { + "prefix": "options", + "body": [ + "whoa! :O" + ], + "luasnip": { + "priority": 2000, + "autotrigger": true, + "wordTrig": false + } + } +< + +Files with the extension `jsonc` will be parsed as `jsonc`, json with comments +, while +`*.json` are parsed with a regular `json` parser, where comments are +disallowed. (the json-parser is a bit faster, so don’t default to `jsonc` if +it’s not necessary). + +**Example**: + +`~/.config/nvim/my_snippets/package.json`: + +>json + { + "name": "example-snippets", + "contributes": { + "snippets": [ + { + "language": [ + "all" + ], + "path": "./snippets/all.json" + }, + { + "language": [ + "lua" + ], + "path": "./lua.json" + } + ] + } + } +< + +`~/.config/nvim/my_snippets/snippets/all.json`: + +>json + { + "snip1": { + "prefix": "all1", + "body": [ + "expands? jumps? $1 $2 !" + ] + }, + "snip2": { + "prefix": "all2", + "body": [ + "multi $1", + "line $2", + "snippet$0" + ] + } + } +< + +`~/.config/nvim/my_snippets/lua.json`: + +>json + { + "snip1": { + "prefix": "lua", + "body": [ + "lualualua" + ] + } + } +< + +This collection can be loaded with any of + +>lua + -- don't pass any arguments, luasnip will find the collection because it is + -- (probably) in rtp. + require("luasnip.loaders.from_vscode").lazy_load() + -- specify the full path... + require("luasnip.loaders.from_vscode").lazy_load({paths = "~/.config/nvim/my_snippets"}) + -- or relative to the directory of $MYVIMRC + require("luasnip.loaders.from_vscode").load({paths = "./my_snippets"}) +< + + +STANDALONE ~ + +Beside snippet-libraries provided by packages, vscode also supports another +format which can be used for project-local snippets, or user-defined snippets, +`.code-snippets`. + +The layout of these files is almost identical to that of the package-provided +snippets, but there is one additional field supported in the +snippet-definitions, `scope`, with which the filetype of the snippet can be +set. If `scope` is not set, the snippet will be added to the global filetype +(`all`). + +`require("luasnip.loaders.from_vscode").load_standalone(opts)` + +- `opts`: `table`, can contain the following keys: + - `path`: `string`, Path to the `*.code-snippets`-file that should be loaded. + Just like the paths in `load`, this one can begin with a `"~/"` to be + relative to `$HOME`, and a `"./"` to be relative to the + neovim-config-directory. + - `{override,default}_priority`: These keys are passed straight to the + `add_snippets`-calls (documented in |luasnip-api|) and can be used to change + the priority of the loaded snippets. + - `lazy`: `boolean`, if it is set, the file does not have to exist when + `load_standalone` is called, and it will be loaded on creation. + `false` by default. + +**Example**: `a.code-snippets`: + +>jsonc + { + // a comment, since `.code-snippets` may contain jsonc. + "c/cpp-snippet": { + "prefix": [ + "trigger1", + "trigger2" + ], + "body": [ + "this is $1", + "my snippet $2" + ], + "description": "A description of the snippet.", + "scope": "c,cpp" + }, + "python-snippet": { + "prefix": "trig", + "body": [ + "this is $1", + "a different snippet $2" + ], + "description": "Another snippet-description.", + "scope": "python" + }, + "global snippet": { + "prefix": "trigg", + "body": [ + "this is $1", + "the last snippet $2" + ], + "description": "One last snippet-description.", + } + } +< + +This file can be loaded by calling + +>lua + require("luasnip.loaders.from_vscode").load_standalone({path = "a.code-snippets"}) +< + + +SNIPMATE *luasnip-loaders-snipmate* + +Luasnip does not support the full snipmate format: Only `./{ft}.snippets` and +`./{ft}/*.snippets` will be loaded. See honza/vim-snippets + for lots of examples. + +Like VSCode, the SnipMate format is also extended to make use of some of +LuaSnip’s more advanced capabilities: + +>snippets + priority 2000 + autosnippet options + whoa :O +< + +**Example**: + +`~/.config/nvim/snippets/c.snippets`: + +>snippets + # this is a comment + snippet c c-snippet + c! +< + +`~/.config/nvim/snippets/cpp.snippets`: + +>snippets + extends c + + snippet cpp cpp-snippet + cpp! +< + +This can, again, be loaded with any of + +>lua + require("luasnip.loaders.from_snipmate").load() + -- specify the full path... + require("luasnip.loaders.from_snipmate").lazy_load({paths = "~/.config/nvim/snippets"}) + -- or relative to the directory of $MYVIMRC + require("luasnip.loaders.from_snipmate").lazy_load({paths = "./snippets"}) +< + +Stuff to watch out for: + +- Using both `extends ` in `.snippets` and + `ls.filetype_extend("", {""})` leads to duplicate snippets. +- `${VISUAL}` will be replaced by `$TM_SELECTED_TEXT` to make the snippets + compatible with LuaSnip +- We do not implement eval using ` (backtick). This may be implemented in the + future. + + +LUA *luasnip-loaders-lua* + +Instead of adding all snippets via `add_snippets`, it’s possible to store +them in separate files and load all of those. The file-structure here is +exactly the supported snipmate-structure, e.g. `.lua` or `/*.lua` to +add snippets for the filetype ``. + +There are two ways to add snippets: + +- the files may return two lists of snippets, the snippets in the first are all + added as regular snippets, while the snippets in the second will be added as + autosnippets (both are the defaults, if a snippet defines a different + `snippetType`, that will have preference) +- snippets can also be appended to the global (only for these files - they are + not visible anywhere else) tables `ls_file_snippets` and + `ls_file_autosnippets`. This can be combined with a custom `snip_env` to define + and add snippets with one function call: + >lua + ls.setup({ + snip_env = { + s = function(...) + local snip = ls.s(...) + -- we can't just access the global `ls_file_snippets`, since it will be + -- resolved in the environment of the scope in which it was defined. + table.insert(getfenv(2).ls_file_snippets, snip) + end, + parse = function(...) + local snip = ls.parser.parse_snippet(...) + table.insert(getfenv(2).ls_file_snippets, snip) + end, + -- remaining definitions. + ... + }, + ... + }) + < + This is more flexible than the previous approach since the snippets don’t + have to be collected; they just have to be defined using the above `s` and + `parse`. + +As defining all of the snippet constructors (`s`, `c`, `t`, …) in every file +is rather cumbersome, LuaSnip will bring some globals into scope for executing +these files. By default, the names from `luasnip.config.snip_env` + +will be used, but it’s possible to customize them by setting `snip_env` in +`setup`. + +**Example**: + +`~/snippets/all.lua`: + +>lua + return { + s("trig", t("loaded!!")) + } +< + +`~/snippets/c.lua`: + +>lua + return { + s("ctrig", t("also loaded!!")) + }, { + s("autotrig", t("autotriggered, if enabled")) + } +< + +Load via + +>lua + require("luasnip.loaders.from_lua").load({paths = "~/snippets"}) +< + + +RELOADING WHEN EDITING REQUIRE’D FILES ~ + +While the lua-snippet-files will be reloaded on edit, this does not +automatically happen if a file the snippet-file depends on (eg. via `require`) +is changed. Since this still may still be desirable, there are two functions +exposed when a file is loaded by the lua-loader: `ls_tracked_dofile` and +`ls_tracked_dopackage`. They perform like `dofile` and (almost like) `require`, +but both register the loaded file internally as a dependency of the +snippet-file, so it can be reloaded when the loaded file is edited. As stated, +`ls_tracked_dofile` behaves exactly like `dofile`, but does the dependency-work +as well. `ls_tracked_dopackage` mimics `require` in that it does not take a +path, but a module-name like `"luasnip.loaders.from_lua"`, and then searches +the `runtimepath/lua`-directories, and path and cpath for the module. Unlike +`require`, the file will not be cached, since that would complicate the +reload-on-edit-behaviour. + + +EDIT_SNIPPETS *luasnip-loaders-edit_snippets* + +To easily edit snippets for the current session, the files loaded by any loader +can be quickly edited via +`require("luasnip.loaders").edit_snippet_files(opts:table|nil)` + +When called, it will open a `vim.ui.select`-dialog to select first a filetype, +and then (if there are multiple) the associated file to edit. + +`opts` contains four settings: + +- `ft_filter`: `fn(filetype:string) -> bool` Optionally filter initially listed + filetypes. `true` -> filetype will be listed, `false` -> not listed. Accepts + all filetypes by default. +- `format`: `fn(file:string, source_name:string) -> string|nil` `file` is simply + the path to the file, `source_name` is one of `"lua"`, `"snipmate"` or + `"vscode"`. If a string is returned, it is used as the title of the item, `nil` + on the other hand will filter out this item. The default simply replaces some + long strings (packer-path and config-path) in `file` with shorter, symbolic + names (`"$PLUGINS"`, `"$CONFIG"`), but this can be extended to + - filter files from some specific source/path + - more aggressively shorten paths using symbolic names, e.g. + `"$FRIENDLY_SNIPPETS"`. Example: hide the `*.lua` snippet files, and shorten + the path with `$LuaSnip`: + >lua + require "luasnip.loaders" .edit_snippet_files { + format = function(file, source_name) + if source_name == "lua" then return nil + else return file:gsub("/root/.config/nvim/luasnippets", "$LuaSnip") + end + end + } + < +- `edit`: `fn(file:string)` This function is supposed to open the file for + editing. The default is a simple `vim.cmd("edit " .. file)` (replace the + current buffer), but one could open the file in a split, a tab, or a floating + window, for example. +- `extend`: `fn(ft:string, ft_paths:string[]) -> (string,string)[]` This function + can be used to create additional choices for the file-selection. + - `ft`: The filetype snippet-files are queried for. + - `ft_paths`: list of paths to the known snippet files. + The function should return a list of `(string,string)`-tuples. The first of + each pair is the label that will appear in the selection-prompt, and the second + is the path that will be passed to the `edit()` function if that item was + selected. + This can be used to create a new snippet file for the current filetype: + >lua + require("luasnip.loaders").edit_snippet_files { + extend = function(ft, paths) + if #paths == 0 then + return { + { "$CONFIG/" .. ft .. ".snippets", + string.format("%s/%s.snippets", , ft) } + } + end + + return {} + end + } + < + +One comfortable way to call this function is registering it as a command: + +>vim + command! LuaSnipEdit :lua require("luasnip.loaders").edit_snippet_files() +< + + +============================================================================== +21. SnippetProxy *luasnip-snippetproxy* + +`SnippetProxy` is used internally to alleviate the upfront cost of loading +snippets from e.g. a SnipMate library or a VSCode package. This is achieved by +only parsing the snippet on expansion, not immediately after reading it from +some file. `SnippetProxy` may also be used from Lua directly to get the same +benefits: + +This will parse the snippet on startup: + +>lua + ls.parser.parse_snippet("trig", "a snippet $1!") +< + +while this will parse the snippet upon expansion: + +>lua + local sp = require("luasnip.nodes.snippetProxy") + sp("trig", "a snippet $1") +< + +`sp(context, body, opts) -> snippetProxy` + +- `context`: exactly the same as the first argument passed to `ls.s`. +- `body`: the snippet body. +- `opts`: accepts the same `opts` as `ls.s`, with some additions: + - `parse_fn`: the function for parsing the snippet. Defaults to + `ls.parser.parse_snippet` (the parser for LSP snippets), an alternative is + the parser for SnipMate snippets (`ls.parser.parse_snipmate`). + + +============================================================================== +22. ext_opts *luasnip-ext_opts* + +`ext_opts` can be used to set the `opts` (see `nvim_buf_set_extmark`) of the +extmarks used for marking node positions, either globally, per snippet or per +node. This means that they allow highlighting the text inside of nodes, or +adding virtual text to the line the node begins on. + +This is an example for the `node_ext_opts` used to set `ext_opts` of single +nodes: + +>lua + local ext_opts = { + -- these ext_opts are applied when the node is active (e.g. it has been + -- jumped into, and not out yet). + active = + -- this is the table actually passed to `nvim_buf_set_extmark`. + { + -- highlight the text inside the node red. + hl_group = "GruvboxRed" + }, + -- these ext_opts are applied when the node is not active, but + -- the snippet still is. + passive = { + -- add virtual text on the line of the node, behind all text. + virt_text = {{"virtual text!!", "GruvboxBlue"}} + }, + -- visited or unvisited are applied when a node was/was not jumped into. + visited = { + hl_group = "GruvboxBlue" + }, + unvisited = { + hl_group = "GruvboxGreen" + }, + -- and these are applied when both the node and the snippet are inactive. + snippet_passive = {} + } + + s("trig", { + i(1, "text1", { + node_ext_opts = ext_opts + }), + i(2, "text2", { + node_ext_opts = ext_opts + }) + }) +< + +In the above example, the text inside the insertNodes is higlighted in green if +they were not yet visited, in blue once they were, and red while they are. The +virtual text "virtual text!!" is visible as long as the snippet is active. + +To make defining `ext_opts` less verbose, more specific states inherit from +less specific ones: + +- `passive` inherits from `snippet_passive` +- `visited` and `unvisited` from `passive` +- `active` from `visited` + +To disable a key from a less specific state, it has to be explicitly set to its +default, e.g. to disable highlighting inherited from `passive` when the node +is `active`, `hl_group` should be set to `None`. + +------------------------------------------------------------------------------ +As stated earlier, these `ext_opts` can also be applied globally or for an +entire snippet. For this, it’s necessary to specify which kind of node a +given set of `ext_opts` should be applied to: + +>lua + local types = require("luasnip.util.types") + + ls.setup({ + ext_opts = { + [types.insertNode] = { + active = {...}, + visited = {...}, + passive = {...}, + snippet_passive = {...} + }, + [types.choiceNode] = { + active = {...}, + unvisited = {...} + }, + [types.snippet] = { + passive = {...} + } + } + }) +< + +The above applies the given `ext_opts` to all nodes of these types, in all +snippets. + +>lua + local types = require("luasnip.util.types") + + s("trig", { i(1, "text1"), i(2, "text2") }, { + child_ext_opts = { + [types.insertNode] = { + passive = { + hl_group = "GruvboxAqua" + } + } + } + }) +< + +However, the `ext_opts` here are only applied to the `insertNodes` inside this +snippet. + +------------------------------------------------------------------------------ +By default, the `ext_opts` actually used for a node are created by extending +the `node_ext_opts` with the `effective_child_ext_opts[node.type]` of the +parent, which are in turn the parent’s `child_ext_opts` extended with the +global `ext_opts` (those set `ls.setup`). + +It’s possible to prevent both of these merges by passing +`merge_node/child_ext_opts=false` to the snippet/node-opts: + +>lua + ls.setup({ + ext_opts = { + [types.insertNode] = { + active = {...} + } + } + }) + + s("trig", { + i(1, "text1", { + node_ext_opts = { + active = {...} + }, + merge_node_ext_opts = false + }), + i(2, "text2") + }, { + child_ext_opts = { + [types.insertNode] = { + passive = {...} + } + }, + merge_child_ext_opts = false + }) +< + +------------------------------------------------------------------------------ +The `hl_group` of the global `ext_opts` can also be set via standard highlight +groups: + +>lua + vim.cmd("hi link LuasnipInsertNodePassive GruvboxRed") + vim.cmd("hi link LuasnipSnippetPassive GruvboxBlue") + + -- needs to be called for resolving the effective ext_opts. + ls.setup({}) +< + +The names for the used highlight groups are +`"Luasnip{Passive,Active,SnippetPassive}"`, where `` can be any +kind of node in PascalCase (or "Snippet"). + +------------------------------------------------------------------------------ +One problem that might arise when nested nodes are highlighted is that the +highlight of inner nodes should be visible, e.g. above that of nodes they are +nested inside. + +This can be controlled using the `priority`-key in `ext_opts`. In +`nvim_buf_set_extmark`, that value is an absolute value, but here it is +relative to some base-priority, which is increased for each nesting level of +snippet(Nodes)s. + +Both the initial base-priority and its’ increase and can be controlled using +`ext_base_prio` and `ext_prio_increase`: + +>lua + ls.setup({ + ext_opts = { + [types.insertNode] = { + active = { + hl_group = "GruvboxBlue", + -- the priorities should be \in [0, ext_prio_increase). + priority = 1 + } + }, + [types.choiceNode] = { + active = { + hl_group = "GruvboxRed" + -- priority defaults to 0 + } + } + } + ext_base_prio = 200, + ext_prio_increase = 2 + }) +< + +Here the highlight of an insertNode nested directly inside a choiceNode is +always visible on top of it. + + +============================================================================== +23. Docstrings *luasnip-docstrings* + +Snippet docstrings can be queried using `snippet:get_docstring()`. The function +evaluates the snippet as if it was expanded regularly, which can be problematic +if e.g. a dynamicNode in the snippet relies on inputs other than the argument +nodes. `snip.env` and `snip.captures` are populated with the names of the +queried variable and the index of the capture respectively +(`snip.env.TM_SELECTED_TEXT` -> `'$TM_SELECTED_TEXT'`, `snip.captures[1]` -> +`'$CAPTURES1'`). Although this leads to more expressive docstrings, it can +cause errors in functions that e.g. rely on a capture being a number: + +>lua + s({trig = "(%d)", regTrig = true}, { + f(function(args, snip) + return string.rep("repeatme ", tonumber(snip.captures[1])) + end, {}) + }) +< + +This snippet works fine because `snippet.captures[1]` is always a number. +During docstring generation, however, `snippet.captures[1]` is `'$CAPTURES1'`, +which will cause an error in the functionNode. Issues with `snippet.captures` +can be prevented by specifying `docTrig` during snippet-definition: + +>lua + s({trig = "(%d)", regTrig = true, docTrig = "3"}, { + f(function(args, snip) + return string.rep("repeatme ", tonumber(snip.captures[1])) + end, {}) + }) +< + +`snippet.captures` and `snippet.trigger` will be populated as if actually +triggered with `3`. + +Other issues will have to be handled manually by checking the contents of e.g. +`snip.env` or predefining the docstring for the snippet: + +>lua + s({trig = "(%d)", regTrig = true, docstring = "repeatmerepeatmerepeatme"}, { + f(function(args, snip) + return string.rep("repeatme ", tonumber(snip.captures[1])) + end, {}) + }) +< + +Refer to #515 for a better +example to understand `docTrig` and `docstring`. + + +============================================================================== +24. Docstring-Cache *luasnip-docstring-cache* + +Although generation of docstrings is pretty fast, it’s preferable to not redo +it as long as the snippets haven’t changed. Using +`ls.store_snippet_docstrings(snippets)` and its counterpart +`ls.load_snippet_docstrings(snippets)`, they may be serialized from or +deserialized into the snippets. Both functions accept a table structsured like +this: `{ft1={snippets}, ft2={snippets}}`. Such a table containing all snippets +can be obtained via `ls.get_snippets()`. `load` should be called before any of +the `loader`-functions as snippets loaded from VSCode style packages already +have their `docstring` set (`docstrings` wouldn’t be overwritten, but +there’d be unnecessary calls). + +The cache is located at `stdpath("cache")/luasnip/docstrings.json` (probably +`~/.cache/nvim/luasnip/docstrings.json`). + + +============================================================================== +25. Events *luasnip-events* + +Events can be used to react to some action inside snippets. These callbacks can +be defined per snippet (`callbacks`-key in snippet constructor), per-node by +passing them as `node_callbacks` in `node_opts`, or globally (autocommand). + +`callbacks`: `fn(node[, event_args]) -> event_res` All callbacks receive the +`node` associated with the event and event-specific optional arguments, +`event_args`. `event_res` is only used in one event, `pre_expand`, where some +properties of the snippet can be changed. If multiple callbacks return +`event_res`, we only guarantee that one of them will be effective, not all of +them. + +`autocommand`: Luasnip uses `User`-events. Autocommands for these can be +registered using + +>vim + au User SomeUserEvent echom "SomeUserEvent was triggered" +< + +or + +>lua + vim.api.nvim_create_autocommand("User", { + pattern = "SomeUserEvent", + command = "echom SomeUserEvent was triggered" + }) +< + +The node and `event_args` can be accessed through `require("luasnip").session`: + +- `node`: `session.event_node` +- `event_args`: `session.event_args` + +**Events**: + +- `enter/leave`: Called when a node is entered/left (for example when jumping + around in a snippet). + `User-event`: `"Luasnip{Enter,Leave}"`, with `` in + PascalCase, e.g. `InsertNode` or `DynamicNode`. + `event_args`: none +- `change_choice`: When the active choice in a choiceNode is changed. + `User-event`: `"LuasnipChangeChoice"` + `event_args`: none +- `pre_expand`: Called before a snippet is expanded. Modifying text is allowed, + the expand-position will be adjusted so the snippet expands at the same + position relative to existing text. + `User-event`: `"LuasnipPreExpand"` + `event_args`: + - `expand_pos`: `{, }`, position at which the snippet will be + expanded. `` and `` are both 0-indexed. + `event_res`: + - `env_override`: `map string->(string[]|string)`, override or extend the + snippet’s environment (`snip.env`). + +A pretty useless, beyond serving as an example here, application of these would +be printing e.g. the node’s text after entering: + +>lua + vim.api.nvim_create_autocmd("User", { + pattern = "LuasnipInsertNodeEnter", + callback = function() + local node = require("luasnip").session.event_node + print(table.concat(node:get_text(), "\n")) + end + }) +< + +or some information about expansions: + +>lua + vim.api.nvim_create_autocmd("User", { + pattern = "LuasnipPreExpand", + callback = function() + -- get event-parameters from `session`. + local snippet = require("luasnip").session.event_node + local expand_position = + require("luasnip").session.event_args.expand_pos + + print(string.format("expanding snippet %s at %s:%s", + table.concat(snippet:get_docstring(), "\n"), + expand_position[1], + expand_position[2] + )) + end + }) +< + + +============================================================================== +26. Cleanup *luasnip-cleanup* + +The function ls.cleanup() triggers the `LuasnipCleanup` user event, that you +can listen to do some kind of cleaning in your own snippets; by default it will +empty the snippets table and the caches of the lazy_load. + + +============================================================================== +27. Logging *luasnip-logging* + +Luasnip uses logging to report unexpected program states, and information on +what’s going on in general. If something does not work as expected, taking a +look at the log (and potentially increasing the loglevel) might give some good +hints towards what is going wrong. + +The log is stored in `/luasnip.log` +(`/luasnip.log` for Neovim versions where +`stdpath("log")` does not exist), and can be opened by calling `ls.log.open()`. +The loglevel (granularity of reported events) can be adjusted by calling +`ls.log.set_loglevel("error"|"warn"|"info"|"debug")`. `"debug"` has the highest +granularity, `"error"` the lowest, the default is `"warn"`. + +Once this log grows too large (10MiB, currently not adjustable), it will be +renamed to `luasnip.log.old`, and a new, empty log created in its place. If +there already exists a `luasnip.log.old`, it will be deleted. + +`ls.log.ping()` can be used to verify the log is working correctly: it will +print a short message to the log. + + +============================================================================== +28. Source *luasnip-source* + +It is possible to attach, to a snippet, information about its source. This can +be done either by the various loaders (if it is enabled in `ls.setup` +(|luasnip-config-options|, `loaders_store_source`)), or manually. The attached +data can be used by |luasnip-extras-snippet-location| to jump to the definition +of a snippet. + +It is also possible to get/set the source of a snippet via API: + +`ls.snippet_source`: + +- `get(snippet) -> source_data`: + Retrieve the source-data of `snippet`. `source_data` always contains the key + `file`, the file in which the snippet was defined, and may additionally + contain `line` or `line_end`, the first and last line of the definition. +- `set(snippet, source)`: + Set the source of a snippet. + - `snippet`: a snippet which was added via `ls.add_snippets`. + - `source`: a `source`-object, obtained from either `from_debuginfo` or + `from_location`. +- `from_location(file, opts) -> source`: + - `file`: `string`, The path to the file in which the snippet is defined. + - `opts`: `table|nil`, optional parameters for the source. + - `line`: `number`, the first line of the definition. 1-indexed. + - `line_end`: `number`, the final line of the definition. 1-indexed. +- `from_debuginfo(debuginfo) -> source`: + Generates source from the table returned by `debug.getinfo` (from now on + referred to as `debuginfo`). `debuginfo` has to be of a frame of a function + which is backed by a file, and has to contain this information, ie. has to be + generated by `debug.get_info(*, "Sl")` (at least `"Sl"`, it may also contain + more info). + + +============================================================================== +29. Config-Options *luasnip-config-options* + +These are the settings you can provide to `luasnip.setup()`: + +- `keep_roots`: Whether snippet-roots should be linked. See + |luasnip-basics-snippet-insertion| for more context. +- `link_roots`: Whether snippet-roots should be linked. See + |luasnip-basics-snippet-insertion| for more context. +- `exit_roots`: Whether snippet-roots should exit at reaching at their last node, + `$0`. This setting is only valid for root snippets, not child snippets. This + setting may avoid unexpected behavior by disallowing to jump earlier (finished) + snippets. Check |luasnip-basics-snippet-insertion| for more information on + snippet-roots. +- `link_children`: Whether children should be linked. See + |luasnip-basics-snippet-insertion| for more context. +- `history` (deprecated): if not nil, `keep_roots`, `link_roots`, and + `link_children` will be set to the value of `history`, and `exit_roots` will + set to inverse value of `history`. This is just to ensure + backwards-compatibility. +- `update_events`: Choose which events trigger an update of the active nodes’ + dependents. Default is just `'InsertLeave'`, `'TextChanged,TextChangedI'` would + update on every change. These, like all other `*_events` are passed to + `nvim_create_autocmd` as `events`, so they can be wrapped in a table, like + >lua + ls.setup({ + update_events = {"TextChanged", "TextChangedI"} + }) + < +- `region_check_events`: Events on which to leave the current snippet-root if the + cursor is outside its’ 'region'. Disabled by default, `'CursorMoved'`, + `'CursorHold'` or `'InsertEnter'` seem reasonable. +- `delete_check_events`: When to check if the current snippet was deleted, and if + so, remove it from the history. Off by default, `'TextChanged'` (perhaps + `'InsertLeave'`, to react to changes done in Insert mode) should work just fine + (alternatively, this can also be mapped using `luasnip-delete-check`). +- `store_selection_keys`: Mapping for populating `TM_SELECTED_TEXT` and related + variables (not set by default). If you want to set this mapping yourself, map + `ls.select_keys` (not a function, actually a string/key-combination) as a rhs. +- `enable_autosnippets`: Autosnippets are disabled by default to minimize + performance penalty if unused. Set to `true` to enable. +- `ext_opts`: Additional options passed to extmarks. Can be used to add + passive/active highlight on a per-node-basis (more info in DOC.md) +- `parser_nested_assembler`: Override the default behaviour of inserting a + `choiceNode` containing the nested snippet and an empty `insertNode` for nested + placeholders (`"${1: ${2: this is nested}}"`). For an example (behaviour more + similar to vscode), check here + +- `ft_func`: Source of possible filetypes for snippets. Defaults to a function, + which returns `vim.split(vim.bo.filetype, ".", true)`, but check + filetype_functions or the + |luasnip-extras-filetype-functions|-section for more options. +- `load_ft_func`: Function to determine which filetypes belong to a given buffer + (used for `lazy_loading`). `fn(bufnr) -> filetypes (string[])`. Again, there + are some examples in filetype_functions + . +- `snip_env`: The best way to author snippets in lua involves the lua-loader (see + |luasnip-loaders-lua|). Unfortunately, this requires that snippets are defined + in separate files, which means that common definitions like `s`, `i`, `sn`, + `t`, `fmt`, … have to be repeated in each of them, and that adding more + customized functions to ease writing snippets also requires some setup. + `snip_env` can be used to insert variables into exactly the places where + lua-snippets are defined (for now only the file loaded by the lua-loader). + Setting `snip_env` to `{ some_global = "a value" }` will add (amongst the + defaults stated at the beginning of this documentation) the global variable + `some_global` while evaluating these files. There are special keys which, when + set in `snip_env` change the behaviour of this option, and are not passed + through to the lua-files: + - `__snip_env_behaviour`, string: either `"set"` or `"extend"` (default + `"extend"`) + If this is `"extend"`, the variables defined in `snip_env` will complement (and + override) the defaults. If this is not desired, `"set"` will not include the + defaults, but only the variables set here. + One side-effect of this is that analysis-tools (most likely + `lua-language-server`) for lua will generate diagnostics for the usage of + undefined symbols. If you mind the (probably) large number of generated + warnings, consider adding the undefined globals to the globals recognized by + `lua-language-server` or add `---@diagnostic disable: undefined-global` + somewhere in the affected files. +- `loaders_store_source`, boolean, whether loaders should store the source of the + loaded snippets. Enabling this means that the definition of any snippet can be + jumped to via |luasnip-extras-snippet-location|, but also entails slightly + increased memory consumption (and load-time, but it’s not really noticeable). + + +============================================================================== +30. Troubleshooting *luasnip-troubleshooting* + + +ADDING SNIPPETS *luasnip-troubleshooting-adding-snippets* + +### Loaders + +- **Filetypes**. LuaSnip uses `all` as the global filetype. As most snippet + collections don’t explicitly target LuaSnip, they may not provide global + snippets for this filetype, but another, like `_` (`honza/vim-snippets`). In + these cases, it’s necessary to extend LuaSnip’s global filetype with the + collection’s global filetype: + >lua + ls.filetype_extend("all", { "_" }) + < + In general, if some snippets don’t show up when loading a collection, a good + first step is checking the filetype LuaSnip is actually looking into (print + them for the current buffer via `:lua + print(vim.inspect(require("luasnip").get_snippet_filetypes()))`), against the + one the missing snippet is provided for (in the collection). If there is indeed + a mismatch, `filetype_extend` can be used to also search the collection’s + filetype: + >lua + ls.filetype_extend("", { "" }) + < +- **Non-default ft_func loading**. As we only load `lazy_load`ed snippets on some + events, `lazy_load` will probably not play nice when a non-default `ft_func` is + used: if it depends on e.g. the cursor position, only the filetypes for the + cursor position when the `lazy_load` events are triggered will be loaded. Check + |luasnip-extras-filetype-function|’s `extend_load_ft` for a solution. + + +GENERAL ~ + +- **Snippets sharing triggers**. If multiple snippets could be triggered at the + current buffer-position, the snippet that was defined first in one’s + configuration will be expanded first. As a small, real-world LaTeX math + example, given the following two snippets with triggers `.ov` and `ov`: + >lua + postfix( -- Insert over-line command to text via post-fix + { trig = ".ov", snippetType = "autosnippet" }, + { + f(function(_, parent) + return "\\overline{" .. parent.snippet.env.POSTFIX_MATCH .. "}" + end, {}), + } + ), + s( -- Insert over-line command + { trig = "ov", snippetType="autosnippet" }, + fmt( + [[\overline{<>}]], + { i(1) }, + { delimiters = "<>" } + ) + ), + < + If one types `x` followed by `.ov`, the postfix snippet expands producing + `\overline{x}`. However, if the `postfix` snippet above is defined _after_ the + normal snippet `s`, then the same key press sequence produces `x.\overline{}`. + This behaviour can be overridden by explicitly providing a priority to such + snippets. For example, in the above code, if the `postfix` snippet was defined + after the normal snippet `s`, then adding `priority=1001` to the `postfix` + snippet will cause it to expand as if it were defined before the normal snippet + `s`. Snippet `priority` is discussed in the Snippets section + of the + documentation. + + +============================================================================== +31. API *luasnip-api* + +`require("luasnip")`: + +- `add_snippets(ft:string or nil, snippets:list or table, opts:table or nil)`: + Makes `snippets` (list of snippets) available in `ft`. If `ft` is `nil`, + `snippets` should be a table containing lists of snippets, the keys are + corresponding filetypes. `opts` may contain the following keys: + - `type`: type of `snippets`, `"snippets"` or `"autosnippets"` (ATTENTION: + plural form used here). This serves as default value for the `snippetType` + key of each snippet added by this call see |luasnip-snippets|. + - `key`: Key that identifies snippets added via this call. + If `add_snippets` is called with a key that was already used, the snippets + from that previous call will be removed. + This can be used to reload snippets: pass an unique key to each + `add_snippets` and just redo the `add_snippets`-call when the snippets have + changed. + - `override_priority`: set priority for all snippets. + - `default_priority`: set priority only for snippets without snippet priority. +- `clean_invalidated(opts: table or nil) -> bool`: clean invalidated snippets + from internal snippet storage. Invalidated snippets are still stored; it might + be useful to actually remove them as they still have to be iterated during + expansion. + `opts` may contain: + - `inv_limit`: how many invalidated snippets are allowed. If the number of + invalid snippets doesn’t exceed this threshold, they are not yet cleaned up. + A small number of invalidated snippets (<100) probably doesn’t affect runtime + at all, whereas recreating the internal snippet storage might. +- `get_id_snippet(id)`: returns snippet corresponding to id. +- `in_snippet()`: returns true if the cursor is inside the current snippet. +- `jumpable(direction)`: returns true if the current node has a next(`direction` + = 1) or previous(`direction` = -1), e.g. whether it’s possible to jump + forward or backward to another node. +- `jump(direction)`: returns true if the jump was successful. +- `expandable()`: true if a snippet can be expanded at the current cursor + position. +- `expand(opts)`: expands the snippet at(before) the cursor. `opts` may contain: + - `jump_into_func` passed through to `ls.snip_expand`, check its’ doc for a + description. +- `expand_or_jumpable()`: returns `expandable() or jumpable(1)` (exists only + because commonly, one key is used to both jump forward and expand). +- `expand_or_locally_jumpable()`: same as `expand_or_jumpable()` except jumpable + is ignored if the cursor is not inside the current snippet. +- `locally_jumpable(direction)`: same as `jumpable()` except it is ignored if the + cursor is not inside the current snippet. +- `expand_or_jump()`: returns true if jump/expand was succesful. +- `expand_auto()`: expands the autosnippets before the cursor (not necessary to + call manually, will be called via autocmd if `enable_autosnippets` is set in + the config). +- `snip_expand(snip, opts)`: expand `snip` at the current cursor position. `opts` + may contain the following keys: + - `clear_region`: A region of text to clear after expanding (but before jumping + into) snip. It has to be at this point (and therefore passed to this function) + as clearing before expansion will populate `TM_CURRENT_LINE` and + `TM_CURRENT_WORD` with wrong values (they would miss the snippet trigger) and + clearing after expansion may move the text currently under the cursor and have + it end up not at the `i(1)`, but a `#trigger` chars to its right. The actual + values used for clearing are `from` and `to`, both (0,0)-indexed + byte-positions. If the variables don’t have to be populated with the correct + values, it’s safe to remove the text manually. + - `expand_params`: table, override `trigger`, `captures` or environment of the + snippet. This is useful for manually expanding snippets where the trigger + passed via `trig` is not the text triggering the snippet, or those which expect + `captures` (basically, snippets with a non-plaintext `trigEngine`). + One example: ```lua snip_expand(snip, { trigger = "override_trigger", captures + = {"first capture", "second capture"}, env_override = { this_key = "some + value", other_key = {"multiple", "lines"}, TM_FILENAME = + "some_other_filename.lua" } }) + - `pos`: position (`{line, col}`), (0,0)-indexed (in bytes, as returned by + `nvim_win_get_cursor()`), where the snippet should be expanded. The snippet + will be put between `(line,col-1)` and `(line,col)`. The snippet will be + expanded at the current cursor if pos is nil. + - `jump_into_func`: fn(snippet) -> node: Callback responsible for jumping into + the snippet. The returned node is set as the new active node, ie. it is the + origin of the next jump. The default is basically this: `lua function(snip) -- + jump_into set the placeholder of the snippet, 1 -- to jump forwards. return + snip:jump_into(1)` while this can be used to only insert the snippet: `lua + function(snip) return snip.insert_nodes[0] end` + - `indent`: bool?, defaults to `true`. Whether LuaSnip will try to add additional + indents to fit current indent level in snippet expanding. This option is useful + when some LSP server already take indents into consideration. In such cases, + LuaSnip should not try to add additional indents. If you are using `nvim-cmp`, + sample config: + >lua + require("cmp").setup { + snippet = { + expand = function(args) + local indent_nodes = true + if vim.api.nvim_get_option_value("filetype", { buf = 0 }) == "dart" then + indent_nodes = false + end + require("luasnip").lsp_expand(args.body, { + indent = indent_nodes, + }) + end, + }, + } + < + `opts` and any of its parameters may be nil. +- `get_active_snip()`: returns the currently active snippet (not node!). +- `choice_active()`: true if inside a choiceNode. +- `change_choice(direction)`: changes the choice in the innermost currently + active choiceNode forward (`direction` = 1) or backward (`direction` = -1). +- `unlink_current()`: removes the current snippet from the jumplist (useful if + luasnip fails to automatically detect e.g. deletion of a snippet) and sets the + current node behind the snippet, or, if not possible, before it. +- `lsp_expand(snip_string, opts)`: expands the LSP snippet defined via + `snip_string` at the cursor. `opts` can have the same options as `opts` in + `snip_expand`. +- `active_update_dependents()`: update all function/dynamicNodes that have the + current node as an argnode (will actually only update them if the text in any + of the argnodes changed). +- `available(snip_info)`: returns a table of all snippets defined for the current + filetypes(s) (`{ft1={snip1, snip2}, ft2={snip3, snip4}}`). The structure of the + snippet is defined by `snip_info` which is a function (`snip_info(snip)`) that + takes in a snippet (`snip`), finds the desired information on it, and returns + it. `snip_info` is an optional argument as a default has already been defined. + You can use it for more granular control over the table of snippets that is + returned. +- `exit_out_of_region(node)`: checks whether the cursor is still within the range + of the root-snippet `node` belongs to. If yes, no change occurs; if no, the + root-snippet is exited and its `$0` will be the new active node. If a jump + causes an error (happens mostly because the text of a snippet was deleted), the + snippet is removed from the jumplist and the current node set to the + end/beginning of the next/previous snippet. +- `store_snippet_docstrings(snippet_table)`: Stores the docstrings of all + snippets in `snippet_table` to a file + (`stdpath("cache")/luasnip/docstrings.json`). Calling + `store_snippet_docstrings(snippet_table)` after adding/modifying snippets and + `load_snippet_docstrings(snippet_table)` on startup after all snippets have + been added to `snippet_table` is a way to avoide regenerating the (unchanged) + docstrings on each startup. (Depending on when the docstrings are required and + how luasnip is loaded, it may be more sensible to let them load lazily, + e.g. just before they are required). `snippet_table` should be laid out just + like `luasnip.snippets` (it will most likely always _be_ `luasnip.snippets`). +- `load_snippet_docstrings(snippet_table)`: Load docstrings for all snippets in + `snippet_table` from `stdpath("cache")/luasnip/docstrings.json`. The docstrings + are stored and restored via trigger, meaning if two snippets for one filetype + have the same (very unlikely to happen in actual usage), bugs could occur. + `snippet_table` should be laid out as described in `store_snippet_docstrings`. +- `unlink_current_if_deleted()`: Checks if the current snippet was deleted; if + so, it is removed from the jumplist. This is not 100% reliable as LuaSnip only + sees the extmarks and their beginning/end may not be on the same position, even + if all the text between them was deleted. +- `filetype_extend(filetype:string, extend_filetypes:table of string)`: Tells + luasnip that for a buffer with `ft=filetype`, snippets from `extend_filetypes` + should be searched as well. `extend_filetypes` is a lua-array (`{ft1, ft2, + ft3}`). `luasnip.filetype_extend("lua", {"c", "cpp"})` would search and expand + c and cpp snippets for lua files. +- `filetype_set(filetype:string, replace_filetypes:table of string)`: Similar to + `filetype_extend`, but where _append_ appended filetypes, _set_ sets them: + `filetype_set("lua", {"c"})` causes only c snippets to be expanded in lua + files; lua snippets aren’t even searched. +- `cleanup()`: clears all snippets. Not useful for regular usage, only when + authoring and testing snippets. +- `refresh_notify(ft:string)`: Triggers an autocmd that other plugins can hook + into to perform various cleanup for the refreshed filetype. Useful for + signaling that new snippets were added for the filetype `ft`. +- `set_choice(indx:number)`: Changes to the `indx`th choice. If no `choiceNode` + is active, an error is thrown. If the active `choiceNode` doesn’t have an + `indx`th choice, an error is thrown. +- `get_current_choices() -> string[]`: Returns a list of multiline-strings + (themselves lists, even if they have only one line), the `i`th string + corresponding to the `i`th choice of the currently active `choiceNode`. If no + `choiceNode` is active, an error is thrown. +- `setup_snip_env()`: Adds the variables defined (during `setup`) in `snip_env` + to the callers environment. +- `get_snip_env()`: Returns `snip_env`. +- `jump_destination(direction)`: Returns the node the next jump in `direction` + (either -1 or 1, for backwards, forwards respectively) leads to, or `nil` if + the destination could not be determined (most likely because there is no node + that can be jumped to in the given direction, or there is no active node). +- `activate_node(opts)`: Activate a node in any snippet. `opts` contains the + following options: + - `pos`, `{[1]: row, [2]: byte-column}?`: The position at which a node should + be activated. Defaults to the position of the cursor. + - `strict`, `bool?`: If set, throw an error if the node under the cursor can’t + be jumped into. If not set, fall back to any node of the snippet and enter + that instead. + - `select`, `bool?`: Whether the text inside the node should be selected. + Defaults to true. + +Not covered in this section are the various node-constructors exposed by the +module, their usage is shown either previously in this file or in +`Examples/snippets.lua` (in the repo). + +Generated by panvimdoc + +vim:tw=78:ts=8:noet:ft=help:norl: diff --git a/config/neovim/store/lazy-plugins/luasnip/luasnip-2.3.0-1-unstable-2024-08-01-rocks/luasnip/2.3.0-1/ftplugin/snippets.vim b/config/neovim/store/lazy-plugins/luasnip/luasnip-2.3.0-1-unstable-2024-08-01-rocks/luasnip/2.3.0-1/ftplugin/snippets.vim new file mode 100644 index 00000000..c6560f9c --- /dev/null +++ b/config/neovim/store/lazy-plugins/luasnip/luasnip-2.3.0-1-unstable-2024-08-01-rocks/luasnip/2.3.0-1/ftplugin/snippets.vim @@ -0,0 +1,13 @@ +" Vim filetype plugin for SnipMate snippets (.snippets files) + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let b:undo_ftplugin = "setl cms< fdm< fde<" + +setlocal foldmethod=expr foldexpr=getline(v:lnum)=~'^#\\\|^e\\\|^p'?0:getline(v:lnum)!~'^\\t\\\|^\ \\\|^$'?'>1':1 + +setlocal commentstring=#\ %s +setlocal nospell diff --git a/config/neovim/store/lazy-plugins/luasnip/luasnip-2.3.0-1-unstable-2024-08-01-rocks/luasnip/2.3.0-1/luasnip-2.3.0-1.rockspec b/config/neovim/store/lazy-plugins/luasnip/luasnip-2.3.0-1-unstable-2024-08-01-rocks/luasnip/2.3.0-1/luasnip-2.3.0-1.rockspec new file mode 100644 index 00000000..a392685b --- /dev/null +++ b/config/neovim/store/lazy-plugins/luasnip/luasnip-2.3.0-1-unstable-2024-08-01-rocks/luasnip/2.3.0-1/luasnip-2.3.0-1.rockspec @@ -0,0 +1,37 @@ +local git_ref = 'v2.3.0' +local modrev = '2.3.0' +local specrev = '1' + +local repo_url = 'https://github.com/L3MON4D3/LuaSnip' + +rockspec_format = '3.0' +package = 'luasnip' +version = modrev ..'-'.. specrev + +description = { + summary = 'Snippet Engine for Neovim written in Lua.', + detailed = '', + labels = { 'lua', 'neovim', 'snippet-engine', 'snippets' } , + homepage = 'https://github.com/L3MON4D3/LuaSnip', + license = 'Apache-2.0' +} + +dependencies = { 'lua >= 5.1', 'jsregexp >= 0.0.5, <= 0.0.7' } + +test_dependencies = { } + +source = { + url = repo_url .. '/archive/' .. git_ref .. '.zip', + dir = 'LuaSnip-' .. '2.3.0', +} + +if modrev == 'scm' or modrev == 'dev' then + source = { + url = repo_url:gsub('https', 'git') + } +end + +build = { + type = 'builtin', + copy_directories = { 'doc', 'ftplugin', 'plugin', 'syntax' } , +} diff --git a/config/neovim/store/lazy-plugins/luasnip/luasnip-2.3.0-1-unstable-2024-08-01-rocks/luasnip/2.3.0-1/plugin/luasnip.lua b/config/neovim/store/lazy-plugins/luasnip/luasnip-2.3.0-1-unstable-2024-08-01-rocks/luasnip/2.3.0-1/plugin/luasnip.lua new file mode 100644 index 00000000..420e4c0a --- /dev/null +++ b/config/neovim/store/lazy-plugins/luasnip/luasnip-2.3.0-1-unstable-2024-08-01-rocks/luasnip/2.3.0-1/plugin/luasnip.lua @@ -0,0 +1,90 @@ +vim.filetype.add({ + extension = { snippets = "snippets" }, +}) + +local function silent_map(mode, lhs, rhs, desc) + vim.keymap.set(mode, lhs, rhs, { silent = true, desc = desc or "" }) +end + +silent_map("i", "luasnip-expand-or-jump", function() + require("luasnip").expand_or_jump() +end, "LuaSnip: Expand or jump in the current snippet") +silent_map("i", "luasnip-expand-snippet", function() + require("luasnip").expand() +end, "LuaSnip: Expand the current snippet") +silent_map("i", "luasnip-next-choice", function() + require("luasnip").change_choice(1) +end, "LuaSnip: Change to the next choice from the choiceNode") +silent_map("i", "luasnip-prev-choice", function() + require("luasnip").change_choice(-1) +end, "LuaSnip: Change to the previous choice from the choiceNode") +silent_map("i", "luasnip-jump-next", function() + require("luasnip").jump(1) +end, "LuaSnip: Jump to the next node") +silent_map("i", "luasnip-jump-prev", function() + require("luasnip").jump(-1) +end, "LuaSnip: Jump to the previous node") + +silent_map("n", "luasnip-delete-check", function() + require("luasnip").unlink_current_if_deleted() +end, "LuaSnip: Removes current snippet from jumplist") +silent_map("!", "luasnip-delete-check", function() + require("luasnip").unlink_current_if_deleted() +end, "LuaSnip: Removes current snippet from jumplist") + +silent_map("", "luasnip-expand-repeat", function() + require("luasnip").expand_repeat() +end, "LuaSnip: Repeat last node expansion") +silent_map("!", "luasnip-expand-repeat", function() + require("luasnip").expand_repeat() +end, "LuaSnip: Repeat last node expansion") + +silent_map("s", "luasnip-expand-or-jump", function() + require("luasnip").expand_or_jump() +end, "LuaSnip: Expand or jump in the current snippet") +silent_map("s", "luasnip-expand-snippet", function() + require("luasnip").expand() +end, "LuaSnip: Expand the current snippet") +silent_map("s", "luasnip-next-choice", function() + require("luasnip").change_choice(1) +end, "LuaSnip: Change to the next choice from the choiceNode") +silent_map("s", "luasnip-prev-choice", function() + require("luasnip").change_choice(-1) +end, "LuaSnip: Change to the previous choice from the choiceNode") +silent_map("s", "luasnip-jump-next", function() + require("luasnip").jump(1) +end, "LuaSnip: Jump to the next node") +silent_map("s", "luasnip-jump-prev", function() + require("luasnip").jump(-1) +end, "LuaSnip: Jump to the previous node") + +vim.api.nvim_create_user_command("LuaSnipUnlinkCurrent", function() + require("luasnip").unlink_current() +end, { force = true }) + +--stylua: ignore +vim.api.nvim_create_user_command("LuaSnipListAvailable", function() + ( + ( + vim.version + and type(vim.version) == "table" + and ( + ((vim.version().major == 0) and (vim.version().minor >= 9)) + or (vim.version().major > 0) ) + ) and vim.print + or vim.pretty_print + )(require("luasnip").available()) +end, { force = true }) + +require("luasnip.config")._setup() + +-- register these during startup so lazy_load will also load filetypes whose +-- events fired only before lazy_load is actually called. +-- (BufWinEnter -> lazy_load() wouldn't load any files without these). +vim.api.nvim_create_augroup("_luasnip_lazy_load", {}) +vim.api.nvim_create_autocmd({ "BufWinEnter", "FileType" }, { + callback = function(event) + require("luasnip.loaders").load_lazy_loaded(tonumber(event.buf)) + end, + group = "_luasnip_lazy_load", +}) diff --git a/config/neovim/store/lazy-plugins/luasnip/luasnip-2.3.0-1-unstable-2024-08-01-rocks/luasnip/2.3.0-1/plugin/luasnip.vim b/config/neovim/store/lazy-plugins/luasnip/luasnip-2.3.0-1-unstable-2024-08-01-rocks/luasnip/2.3.0-1/plugin/luasnip.vim new file mode 100644 index 00000000..d8628ea7 --- /dev/null +++ b/config/neovim/store/lazy-plugins/luasnip/luasnip-2.3.0-1-unstable-2024-08-01-rocks/luasnip/2.3.0-1/plugin/luasnip.vim @@ -0,0 +1,23 @@ +function! luasnip#expandable() + return luaeval('require("luasnip").expandable()') +endfunction + +function! luasnip#expand_or_jumpable() + return luaeval('require("luasnip").expand_or_jumpable()') +endfunction + +function! luasnip#expand_or_locally_jumpable() + return luaeval('require("luasnip").expand_or_locally_jumpable()') +endfunction + +function! luasnip#locally_jumpable(direction) + return luaeval('require("luasnip").locally_jumpable(_A)', a:direction) +endfunction + +function! luasnip#jumpable(direction) + return luaeval('require("luasnip").jumpable(_A)', a:direction) +endfunction + +function! luasnip#choice_active() + return luaeval('require("luasnip").choice_active()') +endfunction diff --git a/config/neovim/store/lazy-plugins/luasnip/luasnip-2.3.0-1-unstable-2024-08-01-rocks/luasnip/2.3.0-1/rock_manifest b/config/neovim/store/lazy-plugins/luasnip/luasnip-2.3.0-1-unstable-2024-08-01-rocks/luasnip/2.3.0-1/rock_manifest new file mode 100644 index 00000000..45747bdd --- /dev/null +++ b/config/neovim/store/lazy-plugins/luasnip/luasnip-2.3.0-1-unstable-2024-08-01-rocks/luasnip/2.3.0-1/rock_manifest @@ -0,0 +1,116 @@ +rock_manifest = { + doc = { + ["luasnip.txt"] = "ab6768dea4b13a6eec600fa0b60b72c9" + }, + ftplugin = { + ["snippets.vim"] = "f8c461751ad539fc449c15a85bf70be4" + }, + lua = { + luasnip = { + ["_types.lua"] = "a1b1fc45d496f8ece3e17dc3541e5f93", + ["config.lua"] = "1bb0edf593b14b243b116d70cbb605c9", + ["default_config.lua"] = "51eea9c217eed18af81d580129c70461", + extras = { + ["_extra_types.lua"] = "b8f4a120d5abe22f0112efdcae358817", + ["_lambda.lua"] = "e94a2ad0606ed3c4276a573d4e7ab205", + ["_parser_combinator.lua"] = "bacc166557d1b5f9f03aff25a56bc801", + ["_treesitter.lua"] = "d9fb19599b9d95edab033fdda0684c32", + conditions = { + ["expand.lua"] = "35c3ab55ec8e9916ed7cde31cc807b08", + ["init.lua"] = "12f7e4b6fd6b5796c36ce61db5844efd", + ["show.lua"] = "0cd4059f6ba5582f409ced580e9fef13" + }, + ["expand_conditions.lua"] = "6ea7479cea2e5fac95a2045a6a283d4b", + ["filetype_functions.lua"] = "bdab365ff7bd2d7d148fdc6b3b78d9b4", + ["fmt.lua"] = "014768af82d3e7e58437e41335553eb6", + ["init.lua"] = "560335e3043e97a826fc8aee4b250fbc", + ["otf.lua"] = "8a95cdb7b582497542069bdd0886776b", + ["postfix.lua"] = "5e94359e6642b52d8ef6c9df3a90e167", + ["select_choice.lua"] = "8c924f05ee0d55ab9b0d9e5c603e1a52", + ["snip_location.lua"] = "bd0f8a7f1c61f6a001fa5781c15839d5", + ["snippet_list.lua"] = "fe61183934e0bb966b83461febdd1dcb", + ["treesitter_postfix.lua"] = "42a5143ad3c647d292b2183566fd6776" + }, + ["health.lua"] = "b6bd288f728f6897674347ad46917a5b", + ["init.lua"] = "96451aae98dbaf3ece53873298479172", + loaders = { + ["data.lua"] = "498490d7dfcf2f0374b0d20f429ba6fb", + ["from_lua.lua"] = "78d20ec3694e16581e21ed4948c26385", + ["from_snipmate.lua"] = "93e1cdc6e024549d9aa6bc917325de24", + ["from_vscode.lua"] = "8425d97d59a85f5681207dac0461618d", + ["fs_watchers.lua"] = "b36b9f60988b568602350c41b032f9e6", + ["init.lua"] = "d470bc3c7bd4690199cf1c0d214782cf", + ["snippet_cache.lua"] = "e2b5cf9a46713fb3f108067100e77e0c", + ["types.lua"] = "89e18f0f21c1e77be74c1cbe85757d11", + ["util.lua"] = "904465f8563d532168be374ca9203c6f" + }, + nodes = { + ["absolute_indexer.lua"] = "efa73978bd91f2d90f2fc9ef53a9c38c", + ["choiceNode.lua"] = "c63618056997ec5aec6524fffff7f2fb", + ["duplicate.lua"] = "454e20ad45dbf371aa7d09aa21861f1c", + ["dynamicNode.lua"] = "28f4e7a46281dc3a2af0875ffc5ff58c", + ["functionNode.lua"] = "cf7cb4efb677a139618fd9255734873e", + ["insertNode.lua"] = "a25a723746e7ab5973901855de1d1f11", + ["key_indexer.lua"] = "d1c4887dfc10501f09b7851aea25f842", + ["multiSnippet.lua"] = "2eab1e75c5ee87096f03db006da31844", + ["node.lua"] = "c1d2f45dd25dcf5c1574ff63e0f9e88c", + ["restoreNode.lua"] = "9613ce23458968aa12737365dd302be7", + ["snippet.lua"] = "d6a31a62f45a460bc642822b6d0244f7", + ["snippetProxy.lua"] = "68262858f0f9a20a41640d5a11c43481", + ["textNode.lua"] = "c22395ab8305a581f021982cd88e2931", + util = { + ["trig_engines.lua"] = "a023c5ca92103478cbf40b7ffe2de903" + }, + ["util.lua"] = "a6be1172f1b37f2018460900b0ab987d" + }, + session = { + ["enqueueable_operations.lua"] = "2e4f57314f0573601e35943f56e8d4d8", + ["init.lua"] = "213d2ea8110e267278d62f5853151ceb", + snippet_collection = { + ["init.lua"] = "2d5015eb7cb5717f5aa44fdeebffbe59", + ["source.lua"] = "17f2f0c590d4deb57ae0e7af20c153ec" + } + }, + ["snippets.lua"] = "d41d8cd98f00b204e9800998ecf8427e", + util = { + ["_builtin_vars.lua"] = "cb7e73099c5711556f8df8821ca4a182", + ["auto_table.lua"] = "f9c5f84a99e71df229c4b6506a447727", + ["dict.lua"] = "83d98b784cfe6ab28c1d3727e7220110", + ["directed_graph.lua"] = "7eb06677cf726e6be7d64d470660677c", + ["environ.lua"] = "61b0b01947a335f749e854f039ec77ac", + ["events.lua"] = "cdac0c08202f1295a0bd9f5ee5909b3b", + ["ext_opts.lua"] = "55f3ee33870b070d50c3eae516b4724a", + ["extend_decorator.lua"] = "07576b8535b2729c9d70f5ba5b036a92", + ["functions.lua"] = "86ccff508ce6b6eeefc455308e7d4994", + ["jsonc.lua"] = "94fbde2a919a24f3957d004aaf7d136d", + ["jsregexp.lua"] = "59eb40a43fa328e82b086863dcbfa626", + ["lazy_table.lua"] = "7b0f31805982e74c3e693fd60ad42ec2", + ["log.lua"] = "ffe073da229ae489cc72e576c0ab6bee", + ["mark.lua"] = "135f7a32a6f1031ea0eb80688997f3d3", + parser = { + ["ast_parser.lua"] = "230087c74af6009d8a858259808f3e51", + ["ast_utils.lua"] = "7013bc099f5ed408c4cd49b29e4ce63c", + ["init.lua"] = "5ae80471a9893a45b12b77a35ecc8d81", + ["neovim_ast.lua"] = "08e136ffd26023ef3172ec2aed4ad2e9", + ["neovim_parser.lua"] = "c25f144947bceed6036e3d40b70bdef0" + }, + ["path.lua"] = "3767ba134238fa42469cfcbcfdf16147", + ["pattern_tokenizer.lua"] = "f4f99d27e6a6fb5385f583abc70beaab", + ["select.lua"] = "b0a8180922f7995a86ea9df7eabb162e", + ["str.lua"] = "06645f5bc876c73af9c4fd3296d620e0", + ["table.lua"] = "f4a54a5775133c776d65643be728cfdb", + ["time.lua"] = "54483e160266c85209e4399fbfc43e1b", + ["types.lua"] = "6605cc2d2293f7080d104c63663c0dac", + ["util.lua"] = "ac9ec42f0d014d908ff24c5af8172335" + } + } + }, + ["luasnip-2.3.0-1.rockspec"] = "51f9eecc66d3003eb668326f1e4a0e68", + plugin = { + ["luasnip.lua"] = "189a598faa80a372be83a52dc57fb491", + ["luasnip.vim"] = "e3d30107f8659679f6766d579ce5bf56" + }, + syntax = { + ["snippets.vim"] = "daeb3f35704d8dca029cfffc5fd5f1c4" + } +} diff --git a/config/neovim/store/lazy-plugins/luasnip/luasnip-2.3.0-1-unstable-2024-08-01-rocks/luasnip/2.3.0-1/syntax/snippets.vim b/config/neovim/store/lazy-plugins/luasnip/luasnip-2.3.0-1-unstable-2024-08-01-rocks/luasnip/2.3.0-1/syntax/snippets.vim new file mode 100644 index 00000000..b25372ca --- /dev/null +++ b/config/neovim/store/lazy-plugins/luasnip/luasnip-2.3.0-1-unstable-2024-08-01-rocks/luasnip/2.3.0-1/syntax/snippets.vim @@ -0,0 +1,28 @@ +" Syntax highlighting for .snippets files +" Hopefully this should make snippets a bit nicer to write! +syn match snipComment '^#.*' +syn match placeHolder '\${\d\+\(:.\{-}\)\=}' contains=snipCommand +syn match tabStop '\$\d\+' +syn match snipEscape '\\\\\|\\`' +syn match snipCommand '\%(\\\@ cover common +" cases with \t and " ". +syn match snipError '^[^#saep\t ].*$' + +hi link snippet Identifier +hi link snipComment Comment +hi link multiSnipText String +hi link snipKeyword Keyword +hi link snipEscape SpecialChar +hi link placeHolder Special +hi link tabStop Special +hi link snipCommand String +hi link snipError Error +hi link priority Number diff --git a/config/neovim/store/lazy-plugins/luasnip/luasnip-2.3.0-1-unstable-2024-08-01-rocks/manifest b/config/neovim/store/lazy-plugins/luasnip/luasnip-2.3.0-1-unstable-2024-08-01-rocks/manifest new file mode 100644 index 00000000..b57e717f --- /dev/null +++ b/config/neovim/store/lazy-plugins/luasnip/luasnip-2.3.0-1-unstable-2024-08-01-rocks/manifest @@ -0,0 +1,363 @@ +commands = {} +dependencies = { + jsregexp = {}, + luasnip = { + ["2.3.0-1"] = { + { + constraints = { + { + op = ">=", + version = { + 5, 1, string = "5.1" + } + } + }, + name = "lua" + }, + { + constraints = { + { + op = ">=", + version = { + 0, 0, 5, string = "0.0.5" + } + }, + { + op = "<=", + version = { + 0, 0, 7, string = "0.0.7" + } + } + }, + name = "jsregexp" + } + } + } +} +modules = { + ["luasnip._types"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.config"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.default_config"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.extras._extra_types"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.extras._lambda"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.extras._parser_combinator"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.extras._treesitter"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.extras.conditions.expand"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.extras.conditions.init"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.extras.conditions.show"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.extras.expand_conditions"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.extras.filetype_functions"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.extras.fmt"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.extras.init"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.extras.otf"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.extras.postfix"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.extras.select_choice"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.extras.snip_location"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.extras.snippet_list"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.extras.treesitter_postfix"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.health"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.init"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.loaders.data"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.loaders.from_lua"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.loaders.from_snipmate"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.loaders.from_vscode"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.loaders.fs_watchers"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.loaders.init"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.loaders.snippet_cache"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.loaders.types"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.loaders.util"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.nodes.absolute_indexer"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.nodes.choiceNode"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.nodes.duplicate"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.nodes.dynamicNode"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.nodes.functionNode"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.nodes.insertNode"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.nodes.key_indexer"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.nodes.multiSnippet"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.nodes.node"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.nodes.restoreNode"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.nodes.snippet"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.nodes.snippetProxy"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.nodes.textNode"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.nodes.util"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.nodes.util.trig_engines"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.session.enqueueable_operations"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.session.init"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.session.snippet_collection.init"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.session.snippet_collection.source"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.snippets"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.util._builtin_vars"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.util.auto_table"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.util.dict"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.util.directed_graph"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.util.environ"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.util.events"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.util.ext_opts"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.util.extend_decorator"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.util.functions"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.util.jsonc"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.util.jsregexp"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.util.lazy_table"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.util.log"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.util.mark"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.util.parser.ast_parser"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.util.parser.ast_utils"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.util.parser.init"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.util.parser.neovim_ast"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.util.parser.neovim_parser"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.util.path"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.util.pattern_tokenizer"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.util.select"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.util.str"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.util.table"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.util.time"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.util.types"] = { + "luasnip/2.3.0-1" + }, + ["luasnip.util.util"] = { + "luasnip/2.3.0-1" + } +} +repository = { + luasnip = { + ["2.3.0-1"] = { + { + arch = "installed", + commands = {}, + dependencies = {}, + modules = { + ["luasnip._types"] = "luasnip/_types.lua", + ["luasnip.config"] = "luasnip/config.lua", + ["luasnip.default_config"] = "luasnip/default_config.lua", + ["luasnip.extras._extra_types"] = "luasnip/extras/_extra_types.lua", + ["luasnip.extras._lambda"] = "luasnip/extras/_lambda.lua", + ["luasnip.extras._parser_combinator"] = "luasnip/extras/_parser_combinator.lua", + ["luasnip.extras._treesitter"] = "luasnip/extras/_treesitter.lua", + ["luasnip.extras.conditions.expand"] = "luasnip/extras/conditions/expand.lua", + ["luasnip.extras.conditions.init"] = "luasnip/extras/conditions/init.lua", + ["luasnip.extras.conditions.show"] = "luasnip/extras/conditions/show.lua", + ["luasnip.extras.expand_conditions"] = "luasnip/extras/expand_conditions.lua", + ["luasnip.extras.filetype_functions"] = "luasnip/extras/filetype_functions.lua", + ["luasnip.extras.fmt"] = "luasnip/extras/fmt.lua", + ["luasnip.extras.init"] = "luasnip/extras/init.lua", + ["luasnip.extras.otf"] = "luasnip/extras/otf.lua", + ["luasnip.extras.postfix"] = "luasnip/extras/postfix.lua", + ["luasnip.extras.select_choice"] = "luasnip/extras/select_choice.lua", + ["luasnip.extras.snip_location"] = "luasnip/extras/snip_location.lua", + ["luasnip.extras.snippet_list"] = "luasnip/extras/snippet_list.lua", + ["luasnip.extras.treesitter_postfix"] = "luasnip/extras/treesitter_postfix.lua", + ["luasnip.health"] = "luasnip/health.lua", + ["luasnip.init"] = "luasnip/init.lua", + ["luasnip.loaders.data"] = "luasnip/loaders/data.lua", + ["luasnip.loaders.from_lua"] = "luasnip/loaders/from_lua.lua", + ["luasnip.loaders.from_snipmate"] = "luasnip/loaders/from_snipmate.lua", + ["luasnip.loaders.from_vscode"] = "luasnip/loaders/from_vscode.lua", + ["luasnip.loaders.fs_watchers"] = "luasnip/loaders/fs_watchers.lua", + ["luasnip.loaders.init"] = "luasnip/loaders/init.lua", + ["luasnip.loaders.snippet_cache"] = "luasnip/loaders/snippet_cache.lua", + ["luasnip.loaders.types"] = "luasnip/loaders/types.lua", + ["luasnip.loaders.util"] = "luasnip/loaders/util.lua", + ["luasnip.nodes.absolute_indexer"] = "luasnip/nodes/absolute_indexer.lua", + ["luasnip.nodes.choiceNode"] = "luasnip/nodes/choiceNode.lua", + ["luasnip.nodes.duplicate"] = "luasnip/nodes/duplicate.lua", + ["luasnip.nodes.dynamicNode"] = "luasnip/nodes/dynamicNode.lua", + ["luasnip.nodes.functionNode"] = "luasnip/nodes/functionNode.lua", + ["luasnip.nodes.insertNode"] = "luasnip/nodes/insertNode.lua", + ["luasnip.nodes.key_indexer"] = "luasnip/nodes/key_indexer.lua", + ["luasnip.nodes.multiSnippet"] = "luasnip/nodes/multiSnippet.lua", + ["luasnip.nodes.node"] = "luasnip/nodes/node.lua", + ["luasnip.nodes.restoreNode"] = "luasnip/nodes/restoreNode.lua", + ["luasnip.nodes.snippet"] = "luasnip/nodes/snippet.lua", + ["luasnip.nodes.snippetProxy"] = "luasnip/nodes/snippetProxy.lua", + ["luasnip.nodes.textNode"] = "luasnip/nodes/textNode.lua", + ["luasnip.nodes.util"] = "luasnip/nodes/util.lua", + ["luasnip.nodes.util.trig_engines"] = "luasnip/nodes/util/trig_engines.lua", + ["luasnip.session.enqueueable_operations"] = "luasnip/session/enqueueable_operations.lua", + ["luasnip.session.init"] = "luasnip/session/init.lua", + ["luasnip.session.snippet_collection.init"] = "luasnip/session/snippet_collection/init.lua", + ["luasnip.session.snippet_collection.source"] = "luasnip/session/snippet_collection/source.lua", + ["luasnip.snippets"] = "luasnip/snippets.lua", + ["luasnip.util._builtin_vars"] = "luasnip/util/_builtin_vars.lua", + ["luasnip.util.auto_table"] = "luasnip/util/auto_table.lua", + ["luasnip.util.dict"] = "luasnip/util/dict.lua", + ["luasnip.util.directed_graph"] = "luasnip/util/directed_graph.lua", + ["luasnip.util.environ"] = "luasnip/util/environ.lua", + ["luasnip.util.events"] = "luasnip/util/events.lua", + ["luasnip.util.ext_opts"] = "luasnip/util/ext_opts.lua", + ["luasnip.util.extend_decorator"] = "luasnip/util/extend_decorator.lua", + ["luasnip.util.functions"] = "luasnip/util/functions.lua", + ["luasnip.util.jsonc"] = "luasnip/util/jsonc.lua", + ["luasnip.util.jsregexp"] = "luasnip/util/jsregexp.lua", + ["luasnip.util.lazy_table"] = "luasnip/util/lazy_table.lua", + ["luasnip.util.log"] = "luasnip/util/log.lua", + ["luasnip.util.mark"] = "luasnip/util/mark.lua", + ["luasnip.util.parser.ast_parser"] = "luasnip/util/parser/ast_parser.lua", + ["luasnip.util.parser.ast_utils"] = "luasnip/util/parser/ast_utils.lua", + ["luasnip.util.parser.init"] = "luasnip/util/parser/init.lua", + ["luasnip.util.parser.neovim_ast"] = "luasnip/util/parser/neovim_ast.lua", + ["luasnip.util.parser.neovim_parser"] = "luasnip/util/parser/neovim_parser.lua", + ["luasnip.util.path"] = "luasnip/util/path.lua", + ["luasnip.util.pattern_tokenizer"] = "luasnip/util/pattern_tokenizer.lua", + ["luasnip.util.select"] = "luasnip/util/select.lua", + ["luasnip.util.str"] = "luasnip/util/str.lua", + ["luasnip.util.table"] = "luasnip/util/table.lua", + ["luasnip.util.time"] = "luasnip/util/time.lua", + ["luasnip.util.types"] = "luasnip/util/types.lua", + ["luasnip.util.util"] = "luasnip/util/util.lua" + } + } + } + } +} diff --git a/config/neovim/store/lazy-plugins/mini.nvim/.github/ISSUE_TEMPLATE/bug-report.yml b/config/neovim/store/lazy-plugins/mini.nvim/.github/ISSUE_TEMPLATE/bug-report.yml new file mode 100644 index 00000000..671754d0 --- /dev/null +++ b/config/neovim/store/lazy-plugins/mini.nvim/.github/ISSUE_TEMPLATE/bug-report.yml @@ -0,0 +1,51 @@ +name: Bug report +description: Report a problem +labels: [bug] +body: + - type: checkboxes + attributes: + label: Contributing guidelines + options: + - label: I have read [CONTRIBUTING.md](https://github.com/echasnovski/mini.nvim/blob/main/CONTRIBUTING.md) + required: true + - label: I have read [CODE_OF_CONDUCT.md](https://github.com/echasnovski/mini.nvim/blob/main/CODE_OF_CONDUCT.md) + required: true + - label: I have updated 'mini.nvim' to latest version + required: true + - type: input + attributes: + label: "Module(s)" + description: "List one or several modules this bug is coming from" + validations: + required: true + - type: textarea + attributes: + label: "Description" + description: "A short description of a problem" + validations: + required: true + - type: input + attributes: + label: "Neovim version" + description: "Something like `0.5`, `0.5.1`, Neovim nightly (please, include latest commit)" + validations: + required: true + - type: textarea + attributes: + label: "Steps to reproduce" + description: "Steps to reproduce using as minimal config as possible" + value: | + 1. `nvim -nu minimal.lua` + 2. ... + validations: + required: true + - type: textarea + attributes: + label: "Expected behavior" + description: "A description of behavior you expected" + - type: textarea + attributes: + label: "Actual behavior" + description: "A description of behavior you observed (feel free to include images, gifs, etc.)" + validations: + required: true diff --git a/config/neovim/store/lazy-plugins/mini.nvim/.github/ISSUE_TEMPLATE/config.yml b/config/neovim/store/lazy-plugins/mini.nvim/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 00000000..0086358d --- /dev/null +++ b/config/neovim/store/lazy-plugins/mini.nvim/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1 @@ +blank_issues_enabled: true diff --git a/config/neovim/store/lazy-plugins/mini.nvim/.github/ISSUE_TEMPLATE/feature-request.yml b/config/neovim/store/lazy-plugins/mini.nvim/.github/ISSUE_TEMPLATE/feature-request.yml new file mode 100644 index 00000000..4bbada49 --- /dev/null +++ b/config/neovim/store/lazy-plugins/mini.nvim/.github/ISSUE_TEMPLATE/feature-request.yml @@ -0,0 +1,24 @@ +name: Feature request +description: Describe a feature you want to see +labels: [feature-request] +body: + - type: checkboxes + attributes: + label: Contributing guidelines + options: + - label: I have read [CONTRIBUTING.md](https://github.com/echasnovski/mini.nvim/blob/main/CONTRIBUTING.md) + required: true + - label: I have read [CODE_OF_CONDUCT.md](https://github.com/echasnovski/mini.nvim/blob/main/CODE_OF_CONDUCT.md) + required: true + - type: input + attributes: + label: "Module(s)" + description: "List one or several modules this feature is related to" + validations: + required: true + - type: textarea + attributes: + label: "Description" + description: "A concise and justified description of a feature" + validations: + required: true diff --git a/config/neovim/store/lazy-plugins/mini.nvim/.github/PULL_REQUEST_TEMPLATE.md b/config/neovim/store/lazy-plugins/mini.nvim/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 00000000..60311579 --- /dev/null +++ b/config/neovim/store/lazy-plugins/mini.nvim/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,2 @@ +- [ ] I have read [CONTRIBUTING.md](https://github.com/echasnovski/mini.nvim/blob/main/CONTRIBUTING.md) +- [ ] I have read [CODE_OF_CONDUCT.md](https://github.com/echasnovski/mini.nvim/blob/main/CODE_OF_CONDUCT.md) diff --git a/config/neovim/store/lazy-plugins/mini.nvim/.github/workflows/lint.yml b/config/neovim/store/lazy-plugins/mini.nvim/.github/workflows/lint.yml new file mode 100644 index 00000000..0c547231 --- /dev/null +++ b/config/neovim/store/lazy-plugins/mini.nvim/.github/workflows/lint.yml @@ -0,0 +1,85 @@ +name: Linting and style checking + +on: + push: + branches-ignore: [ sync, stable ] + pull_request: + branches-ignore: [ sync, stable ] + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }}-${{ github.actor }} + cancel-in-progress: true + +jobs: + stylua: + name: Formatting + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: JohnnyMorganz/stylua-action@v4 + with: + token: ${{ secrets.GITHUB_TOKEN }} + version: v0.19.0 + # CLI arguments + args: --color always --check . + + gendoc: + name: Document generation + runs-on: ubuntu-latest + steps: + - name: Install Neovim + uses: rhysd/action-setup-vim@v1 + with: + neovim: true + - uses: actions/checkout@v4 + - name: Generate documentation + run: make --silent documentation + - name: Check for changes + run: if [[ -n $(git status -s) ]]; then exit 1; fi + + lintcommit: + name: Lint commits + runs-on: ubuntu-latest + env: + LINTCOMMIT_STRICT: true + steps: + - name: Install Neovim + uses: rhysd/action-setup-vim@v1 + with: + neovim: true + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + ref: ${{ github.event.pull_request.head.sha || github.ref }} + - name: Lint new commits + run: make --silent lintcommit-ci + + case-sensitivity: + name: File case sensitivity + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Check Case Sensitivity + uses: credfeto/action-case-checker@v1.2.1 + + checkout: + # Test possibility of checking out and setting up 'mini.nvim' on non-Linux + # This can guard from possible problems: + # - Long file names (particularly from reference screenshots). + name: Test checkout + strategy: + fail-fast: false + matrix: + os: [windows-latest, macos-latest] + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v4 + - name: Setup neovim + uses: rhysd/action-setup-vim@v1 + with: + # Uses latest stable by default + neovim: true + - name: Test setup + run: make basic_setup diff --git a/config/neovim/store/lazy-plugins/mini.nvim/.github/workflows/tests.yml b/config/neovim/store/lazy-plugins/mini.nvim/.github/workflows/tests.yml new file mode 100644 index 00000000..e0ac7192 --- /dev/null +++ b/config/neovim/store/lazy-plugins/mini.nvim/.github/workflows/tests.yml @@ -0,0 +1,39 @@ +name: Run tests + +on: + push: + branches-ignore: [ sync, stable ] + paths: [ 'colors/**', 'lua/**', 'tests/**' ] + pull_request: + branches-ignore: [ sync, stable ] + paths: [ 'colors/**', 'lua/**', 'tests/**' ] + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }}-${{ github.actor }} + cancel-in-progress: true + +jobs: + build: + name: Run tests + timeout-minutes: 10 + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest] + neovim_version: ['v0.8.3', 'v0.9.5', 'v0.10.0', 'nightly'] + # include: + # - os: macos-latest + # neovim_version: v0.10.0 + # - os: windows-latest + # neovim_version: v0.10.0 + runs-on: ${{ matrix.os }} + + steps: + - uses: actions/checkout@v4 + - name: Setup neovim + uses: rhysd/action-setup-vim@v1 + with: + neovim: true + version: ${{ matrix.neovim_version }} + - name: Run tests + run: make test diff --git a/config/neovim/store/lazy-plugins/mini.nvim/.gitignore b/config/neovim/store/lazy-plugins/mini.nvim/.gitignore new file mode 100644 index 00000000..1b963a49 --- /dev/null +++ b/config/neovim/store/lazy-plugins/mini.nvim/.gitignore @@ -0,0 +1,2 @@ +doc/tags +dual diff --git a/config/neovim/store/lazy-plugins/mini.nvim/.pre-commit-config.yaml b/config/neovim/store/lazy-plugins/mini.nvim/.pre-commit-config.yaml new file mode 100644 index 00000000..b87c073a --- /dev/null +++ b/config/neovim/store/lazy-plugins/mini.nvim/.pre-commit-config.yaml @@ -0,0 +1,19 @@ +repos: + - repo: local + hooks: + - id: stylua + name: StyLua + language: system + entry: stylua + types: [lua] + - id: gendocs + name: Gendocs + language: system + entry: make --silent documentation + types: [lua] + - id: lintcommit + name: LintCommit + language: system + entry: nvim + args: ['--headless', '--noplugin', '-u', 'scripts/lintcommit.lua', '--'] + stages: ['commit-msg'] diff --git a/config/neovim/store/lazy-plugins/mini.nvim/.stylua.toml b/config/neovim/store/lazy-plugins/mini.nvim/.stylua.toml new file mode 100644 index 00000000..6d75cf6b --- /dev/null +++ b/config/neovim/store/lazy-plugins/mini.nvim/.stylua.toml @@ -0,0 +1,7 @@ +column_width = 120 +line_endings = "Unix" +indent_type = "Spaces" +indent_width = 2 +quote_style = "AutoPreferSingle" +call_parentheses = "Always" +collapse_simple_statement = "Always" diff --git a/config/neovim/store/lazy-plugins/mini.nvim/.styluaignore b/config/neovim/store/lazy-plugins/mini.nvim/.styluaignore new file mode 100644 index 00000000..d4efe9c5 --- /dev/null +++ b/config/neovim/store/lazy-plugins/mini.nvim/.styluaignore @@ -0,0 +1 @@ +dual diff --git a/config/neovim/store/lazy-plugins/mini.nvim/CHANGELOG.md b/config/neovim/store/lazy-plugins/mini.nvim/CHANGELOG.md new file mode 100644 index 00000000..1b2c56af --- /dev/null +++ b/config/neovim/store/lazy-plugins/mini.nvim/CHANGELOG.md @@ -0,0 +1,682 @@ +# Version 0.13.0.9000 + +- Stop official support of Neovim 0.7. +- Update help files to use code blocks with language annotation, as it results in a better code highlighting. Implies enabled tree-sitter highlighting in 'help' filetype: + - It is default in Neovim>=0.10. + - Tree-sitter parser is built-in in Neovim 0.9.x, needs manual enabling via `vim.treesitter.start()`. + - Has visual regressions on Neovim 0.8.0 and 0.8.1 without enabled tree-sitter (code blocks are highlighted as normal text). Use 0.8.2 or newer. +- Universally prefer 'mini.icons' module over 'nvim-tree/nvim-web-devicons'. + +## mini.doc + +- BREAKING FEATURE: update `afterlines_to_code()` to result into Lua code block in help file by using `>lua` at the start instead of `>`. NOTE: users need enabled `help` tree-sitter parser (which is default on Neovim>=0.9) for code blocks to have proper highlighting. + +## mini.extra + +- FEATURE: update `pickers.oldfiles()` to have `current_dir` option which if `true` shows files only from picker's working directory. By @abeldekat, PR #997. +- FEATURE: make `git_hunks`, `list`, and `lsp` pickers show icons. Scopes `document_symbol` and `workspace_symbol` in `lsp` picker show icon based on LSP kind (requires set up 'mini.icons'), others - based on path data. +- BREAKING FEATURE: use "│" as line/position separator instead of ":". This aligns with changes in 'mini.pick' and makes line/position more easily visible. + +## mini.hipatterns + +- BREAKING FEATURE: update `compute_hex_color_group()` to compute based on combination of `hex_color` and `style`, opposed to just `hex_color`. This allows simultaneous usage of several styles in user's custom highlighters. + +## mini.hues + +- FEATURE: implement `apply_palette()` (to compliment `make_palette()`) providing a way to tweak applied palette before applying it. + +## mini.files + +- FEATURE: prefer using 'mini.icons' as icon provider. + +## mini.icons + +- Introduction of a new module. + +## mini.misc + +- FEATURE: implement `setup_termbg_sync()` to set up terminal background synchronization (removes possible "frame" around current Neovim instance). + +## mini.pick + +- FEATURE: prefer using 'mini.icons' as icon provider. +- BREAKING: encoding line or position in string items has changed: + - Use "\0" (null character; use "\000" form if it is in a string before digit) instead of ":" as delimiter. This makes it work with files similar to ":" position encoding (like "time_12:34:56"). This only matters for custom sources which provide line or position in string items. + - Update `default_show()` to display "│" character instead of "\0" in item's string representation (previously was ":"). In particular, this changes how line/position is displayed in `grep` and `grep_live` built-in pickers. This change was done because "│" is more visible as separator. + +## mini.starter + +- BREAKING: change filetype of Starter buffer from 'starter' to 'ministarter'. This is a more robust value and more aligned with other modules. + +## mini.statusline + +- BREAKING FEATURE: update `section_fileinfo()` to show non-empty filetype even in not normal buffers (like plugin's scratch buffers, help, quickfix, etc.). Previously it showed nothing, which was a mistake as filetype can be a valuable information. +- FEATURE: prefer using 'mini.icons' as icon provider for `section_fileinfo()`. + +## mini.surround + +- BREAKING FEATURE: adding surrounding in linewise mode now also ignores trailing whitespace on the last line (same as it ignores indent on the first line). + +## mini.tabline + +- FEATURE: prefer using 'mini.icons' as icon provider. + + +# Version 0.13.0 + +## mini.comment + +- BREAKING FEATURE: blank lines are now completely ignored when deciding the toggling action. In practice this means that if target block consists only from commented and/or blank lines, it will be uncommented rather than commented. + +- BREAKING: Whitespace in comment parts is now treated more explicitly. In particular: + - Default `options.pad_comment_parts = true` now more explicitly means that any value of 'commentstring' is transformed so that comment parts have exactly single space inner padding. + + Example: any `/*%s*/`, ` /* %s */ `, or `/* %s */` is equivalent to having `/* %s */`. + + - Detection of whether consecutive lines are commented or not does not depend on whitespace in comment parts. Uncommenting is first attempted with exact comment parts and falls back on trying its trimmed parts. + + Example of toggling comment on single line with `/* %s */` 'commentstring' value: + - `/* this is commented */` -> `this is commented`. + - `/*this is also commented */` -> `this is also commented ` (notice trailing space). + + - Commenting blank lines is done with trimmed comments parts, while uncommenting explicitly results into empty lines. + +- FEATURE: Support dot-repeat after initial commenting is done for visual selection; repeating is done for same relative range. + +## mini.deps + +- FEATURE: add `MiniDepsMsgBreaking` highlight group for messages indicating a breaking change in a conventional commit style. + +## mini.diff + +- Introduction of a new module. + +## mini.files + +- FEATURE: add new `MiniFilesExplorerOpen` and `MiniFilesExplorerClose` events. + +## mini.git + +- Introduction of a new module. + +## mini.hues + +- BREAKING FEATURE: update some highlight groups for better usability: + - `DiffChange` and `DiffText` - make changed diff lines have colored background. + - `Folded` - make folds differ from `CursorLine`. + - `QuickFixLine` - make current quickfix item differ from `CursorLine`. + +## mini.map + +- FEATURE: add `gen_integration.diff()` which highlights general diff hunks from 'mini.diff'. + +## mini.pick + +- BREAKING: stop trying to parse path for special format ("path:row" and "path:row:col") if supplied inside a table item. This made impossible working with paths containing ":". +- FEATURE: respect general URI format for paths inside table items. +- Update `builtin.files()` to use table items when string item might be ambiguous. + +## mini.starter + +- Explicitly block all events in `open()` during startup for a better performance. + +## mini.statusline + +- BREAKING: `section_diagnostics()` now depends only on defined diagnostic. This means: + - Something is shown **only** if there is any diagnostic actually present in the buffer. No diagnostic entries - nothing is shown. + Previously it did not show if there was no LSP servers attached (as initially diagnostics came only from LSP) or buffer was not normal. + - Fallback icon is "Diag" instead of "LSP". +- FEATURE: `section_diagnostics()` now supports `signs` table option to customize signs for severity levels. +- BREAKING FEATURE: `section_git()` now prefers using data from 'mini.git' with fallback on pure HEAD data from 'lewis6991/gistigns.nvim'. +- FEATURE: add `section_diff()` to show data from 'mini.diff' with fallback on diff data from 'lewis6991/gistigns.nvim'. +- FEATURE: add `section_lsp()` to show indicator of LSP servers attached to the buffer. +- BREAKING FEATURE: update default active content: + - Add `section_diff()` (shows diff data near  icon) following refactor of `section_git()`. + - Add `section_lsp()` (shows number of attached LSP servers near 󰰎 icon) following refactor of `section_diagnostics()`. + +## mini.tabline + +- FEATURE: Implement `config.format` for custom label formatting. + +## mini.test + +- BREAKING FEATURE: child process is now created with extra `--headless --cmd "set lines=24 columns=80"` arguments making it headless but still reasonably similar to fully functioning Neovim during interactive usage. This change should generally not break a lot of things, while enabling a faster and more robust test execution. + + +# Version 0.12.0 + +## mini.basics + +- BREAKING: Remove `` mapping, as it is more useful in most terminal emulators for suspending Neovim process (to later resume with `fg` command). To correct latest misspelled word, use mappings like this: + +```lua +vim.keymap.set('n', '', '[s1z=', { desc = 'Correct latest misspelled word' }) +vim.keymap.set('i', '', 'u[s1z=`]au', { desc = 'Correct latest misspelled word' }) +``` + +- FEATURE: Add `tab:> ` to 'listchars' option when `options.extra_ui` is set. This prevents showing `^I` instead of a tab and actual value comes from Neovim's default. +- FEATURE: Set `termguicolors` only on Neovim<0.10, as later versions should have it on by default (if terminal emulator supports it). + +## mini.comment + +- FEATURE: Hooks are now called with data about commenting action. + +## mini.deps + +Introduction of a new module. + +## mini.doc + +- BREAKING: Stop using `:echo` to display messages and warnings in favor of `vim.notify()`. +- BREAKING: Update default `write_post` hook to not display current time in success message. +- Update to include space before `~` in generated section headings. + +## mini.files + +- FEATURE: Update `go_in()` to have `close_on_file` option. +- Show warning if action is set to override existing path. + +## mini.hues + +- BREAKING FEATURE: Update verbatim text (`@text.literal` and `@markup.raw`) color to be distinctive instead of dimmed. +- FEATURE: Add support for new standard tree-sitter captures on Neovim>=0.10 (see https://github.com/neovim/neovim/pull/27067). + +## mini.misc + +- Update `bench_time()` to use `vim.loop.hrtime()` (as better designed for benchmarking) instead of `vim.loop.gettimeofday()`. + +## mini.notify + +Introduction of a new module. + +## mini.pick + +- FEATURE: Implement `window.prompt_cursor` and `window.prompt_prefix` config options. +- FEATURE: Update `builtin.help()` to use tree-sitter highlighting (if there is any). + +## mini.sessions + +- FEATURE: Update `read()` to first `write()` current session (if there is any). + +## mini.starter + +- FEATURE: Add `sections.pick()` with 'mini.pick' pickers. + +## mini.statusline + +- BREAKING FEATURE: Add `search_count` section to default active content. + +## mini.visits + +Introduction of a new module. + + +# Version 0.11.0 + +## mini.base16 + +- BREAKING: Stop supporting deprecated 'HiPhish/nvim-ts-rainbow2'. + +## mini.bufremove + +- BREAKING FEATURE: Applying `delete()` and `wipeout()` without `force` in a modified buffer now asks for confirmation instead of declining and showing message. + +## mini.clue + +- FEATURE: `config.window.config` now can be callable returning window config. + +## mini.comment + +- FEATURE: Implement `config.mappings.comment_visual` to configure mapped keys in Visual mode. + +## mini.completion + +- FEATURE: Start adding `C` flag to `shortmess` option on Neovim>=0.9. By @yamin-shihab, PR #554. + +## mini.extra + +Introduction of a new module. + +## mini.files + +- BREAKING: Opening file which is present in unlisted buffer now makes the buffer listed. +- BREAKING: Highlight in preview now is not enabled if file is sufficiently large. +- FEATURE: Explorer now tracks if focus is lost and properly closes on detection. +- FEATURE: Implement `MiniFilesCursorLine` highlight group. + +## mini.hipatterns + +- FEATURE: Allow `pattern` in highlighter definitions to be an array to highlight several patterns under the same highlighter name. +- FEATURE: Implement `extmark_opts` in highlighter definitions for a more control over extmarks placed at matches. +- BREAKING: Field `priority` in highlighter definitions is soft deprecated in favor of `extmark_opts = { priority = }`. +- FEATURE: Update `compute_hex_color_group()` to allow `style = 'fg'`. +- FEATURE: Update `gen_highlighter.hex_color()` to allow `style = 'inline'` (requires Neovim>=0.10 with support of inline extmarks). +- FEATURE: Implement `get_matches()` to get buffer matches. + +## mini.hues + +- BREAKING: Stop supporting deprecated 'HiPhish/nvim-ts-rainbow2'. + +## mini.map + +- FEATURE: Implement `config.window.zindex` to configure z-index of map window. + +## mini.misc + +- FEATURE: `setup_auto_root()` and `find_root()` now have `fallback` argument to be applied when no root is found with `vim.fn.find()`. + +## mini.pick + +Introduction of a new module. + +## mini.starter + +- FEATURE: `show_path` in `sections.recent_files()` can now be callable for more control on how full path is displayed. + +## mini.test + +- BREAKING: Error in any "pre" hook now leads to test case not being executed (with note). +- BREAKING FEATURE: `child.get_screenshot()` now by default calls `:redraw` prior to computing screenshot. Can be disabled by new `opts.redraw` argument. +- FEATURE: New method `child.lua_func()` can execute simple functions inside child process and return the result (stasjok, #437). +- FEATURE: `expect.reference_screenshot()` now has `ignore_lines` option allowing to ignore specified lines during screenshot compare. + + +# Version 0.10.0 + +## mini.ai + +- FEATURE: Allow `vis_mode` field in custom texobject region to force Visual mode with which textobject is selected. + +## mini.animate + +- FEATURE: Add `MiniAnimateNormalFloat` highlight group to tweak highlighting of `open` and `close` animations. + +## mini.base16 + +- FEATURE: Add 'HiPhish/rainbow-delimiters.nvim' integration. + +## mini.basics + +- BREAKING: Remove `` mapping in Terminal mode, as it is more useful inside terminal emulator itself. + +## mini.bracketed + +- FEATURE: Add `add_to_jumplist` option to relevant targets (which move cursor and don't already add to jumplist). + +## mini.bufremove + +- BREAKING: Create normal buffer instead of scratch when there is no reasonable target to focus (#394). + +## mini.clue + +Introduction of a new module. + +## mini.files + +Introduction of a new module. + +## mini.hues + +- FEATURE: Add 'HiPhish/rainbow-delimiters.nvim' integration. + +## mini.jump2d + +- FEATURE: Add `gen_union_spotter()` to allow combining separate spotters into one. + +## mini.operators + +Introduction of a new module. + +## mini.pairs + +- FEATURE: Allow `false` in `config.mappings` to not map the key. + +## mini.surround + +- FEATURE: Update `add` (`sa`) with ability to replicate left and right parts by respecting `[count]`. In Normal mode two kinds of `[count]` is respected: one for operator (replicates left and right parts) and one for textobject/motion. In Visual mode `[count]` replicates parts. + + +# Version 0.9.0 + +- Stop official support of Neovim 0.6. +- Use Lua API to create autocommands. Stop exporting functions only related to autocommands. +- Use Lua API to create default highlight groups. +- Use `vim.keymap` to deal with mappings. Stop exporting functions only related to mappings. +- Add 'randomhue' color scheme. + +## mini.base16 + +- FEATURE: Add new integrations: + - Lsp semantic tokens. + - 'folke/lazy.nvim'. + - 'folke/noice.nvim'. + - 'kevinhwang91/nvim-ufo'. +- BREAKING FEATURE: Stop supporting archived 'p00f/nvim-ts-rainbow' in favor of 'HiPhish/nvim-ts-rainbow2'. + +## mini.basics + +- Add dot-repeat support for adding empty lines (`go` and `gO` mappings). + +## mini.colors + +Introduction of a new module. + +## mini.comment + +- FEATURE: Use tree-sitter information about locally active language to infer 'commentstring' option value. +- FEATURE: Add `options.custom_commentstring` option for a more granular customization of comment structure. +- FEATURE: Add `get_commentstring()` function representing built-in logic of computing relevant 'commentstring'. + +## mini.hipatterns + +Introduction of a new module. + +## mini.hues + +Introduction of a new module. + + +# Version 0.8.0 + +- Add and implement design principle for silencing module by setting `config.silent = true`. It is now present in modules capable of showing non-error feedback: + - mini.ai + - mini.align + - mini.basics + - mini.bufremove + - mini.doc + - mini.jump + - mini.jump2d + - mini.starter + - mini.surround + - mini.test + +## mini.bracketed + +Introduction of a new module. + +## mini.comment + +- FEATURE: Add `options.start_of_line` option which controls whether to recognize as comment only lines without indent. +- FEATURE: Add `options.ignore_blank_line` option which controls whether to ignore blank lines. +- FEATURE: Add `options.pad_comment_parts` option which controls whether to ensure single space pad for comment leaders. + +## mini.doc + +- FEATURE: Add `config.hooks.write_pre` hook to be executed before writing to a file. + +## mini.indentscope + +- FEATURE: Add `MiniIndentscopeSymbolOff` highlight group to be used if scope's indent is not multiple of 'shiftwidth'. +- FEATURE: Add `draw.priority` option to control priority of scope line draw. + +## mini.jump2d + +- FEATURE: Add `view.n_steps_ahead` option which controls how many steps ahead to show. Appearance is controlled by new `MiniJump2dSpotAhead` highlight group. +- FEATURE: Add `view.dim` option which controls whether to dim lines with at least one jump spot. Appearance is controlled by new `MiniJump2dDim` highlight group. +- FEATURE: Add `MiniJump2dSpotUnique` highlight group to be used for spots with unique label for next step. + +## mini.pairs + +- FEATURE: Both `MiniPairs.br()` and `MiniPairs.cr()` can now take a key which will be used instead of default `` and ``. + +## mini.sessions + +- FEATURE: `setup()` now creates global directory at path `config.directory` if it doesn't exist. +- All actions now keep list of detected sessions up to date. + +## mini.splitjoin + +Introduction of a new module. + +## mini.surround + +- FEATURE: Add `respect_selection_type` option which, when enabled, makes adding and deleting surrounding respect selection type: + - Linewise adding places surrounding parts on separate lines while indenting surrounded lines once. + - Deleting surrounding which looks like a result of linewise adding will act to revert it: delete lines with surrounding parts and dedent surrounded lines once. + - Blockwise adding places surrounding parts on whole edges, not only start and end of selection. + + +# Version 0.7.0 + +- Start dual distribution. Every module is now distributed both as part of 'mini.nvim' library and as standalone plugin (in separate git repository). + +## mini.ai + +- BREAKING FEATURE: In `MiniAi.gen_spec.argument()` option `separators` (plural; array of characters) is soft deprecated in favor of `separator` (singular; Lua pattern) option. + +## mini.animate + +Introduction of new module. + +## mini.basics + +Introduction of a new module. + +## mini.completion + +- BREAKING: `MiniCompletion.config.window_dimensions` is renamed to `MiniCompletion.config.window` to be able to handle more general configuration. +- FEATURE: Add `MiniCompletion.config.window.info.border` and `MiniCompletion.config.window.signature.border` which can be used to define border of info and signature floating windows respectively. + +## mini.indentscope + +- BREAKING: `MiniIndentscopePrefix` is now not used (deprecated). It was initially introduced as a way to properly show scope indicator on empty lines. It had a drawback of overshadowing 'listchars' symbols (see #125) and vertical guides from 'lukas-reineke/indent-blankline.nvim'. As the other implementation approach was found by @mivort (see #161), `MiniIndentscopePrefix` is no longer needed and no overshadowing is done. +- BREAKING: `MiniIndentscope.gen_animation` is now a table (for consistency with other `gen_*` functions in 'mini.nvim'). See "Migrate from function type" section of `:h MiniIndentscope.gen_animation`. Calling it as function will be available until next release. + +## mini.misc + +- FEATURE: Add `MiniMisc.setup_auto_root()` and `MiniMisc.find_root()` for root finding functionality. NOTE: requires Neovim>=0.8. +- FEATURE: Add `MiniMisc.setup_restore_cursor()` for automatically restoring latest cursor position on file reopen. By @cryptomilk, PR #198. + +## mini.move + +Introduction of new module. + + +# Version 0.6.0 + +- Stop official support of Neovim 0.5. +- Make all messages use colors and not cause hit-enter-prompt. + +## mini.align + +Introduction of new module. + +## mini.base16 + +- FEATURE: Add support for many plugin integrations. +- FEATURE: Implement `MiniBase16.config.plugins` for configuring plugin integrations. +- BREAKING: Change some 'mini.nvim' highlights: + - `MiniCompletionActiveParameter` now highlights with background instead of underline. + - `MiniJump2dSpot` now explicitly defined to use plugin's palette. + - `MiniStarterItemPrefix` and `MiniStarterQuery` are now bold for better visibility. +- BREAKING: Update highlight for changed git diff to be more visible and to comply more with general guidelines. + +## mini.jump + +- BREAKING: Allow cursor to be positioned past the end of previous/current line (#113). + +## mini.map + +Introduction of new module. + +## mini.starter + +- Item evaluation is now prepended with query reset, as it is rarely needed any more (#105). +- All hooks are now called with `(content, buf_id)` signature allowing them properly use current window layout. + +## mini.surround + +- BREAKING FEATURE: update 'mini.surround' to share as much with 'mini.ai' as possible. This provides more integrated experience while enabling more useful features. Details: + - Custom surrounding specification for input action has changed. Instead of `{ find = , extract = }` it is now `{ }`. Previous format will work until the next release. See more in help file. + - Algorithm for finding surrounding is now more powerful. It allows searching for more complex surroundings (via composed patterns or array of region pairs) and respects `v:count`. + - Multiline input and output surroundings are now supported. + - Opening brackets (`(`, `[`, `{`, `<`) now include whitespace in surrounding: input surrounding selects all inner edge whitespace, output surrounding is padded with single space. + - Surrounding identifier `i` ("interactive") is soft deprecated in favor of `?` ("user prompt"). + - New surrounding aliases: + - `b` for "brackets". Input - any of balanced `()`, `[]` `{}`. Output - `()`. + - `q` for "quotes". Input - any of `"`, `'`, `` ` ``. Output - `""`. + - Three new search methods `'prev'`, `'next'`, and `'nearest'` for finding non-covering previous and next surrounding. +- BREAKING FEATURE: Implement "last"/"next" extended mappings which force `'prev'` or `'next'` search method. Controlled with `config.mappings.suffix_last` and `config.mappings.suffix_next`respectively. This also means that custom surroundings with identifier equal to "last"/"next" mappings suffixes (defaults to 'l' and 'n') will work only with long enough delay after typing action mapping. +- FEATURE: Implement `MiniSurround.gen_spec` with generators of common surrounding specifications (like `MiniSurround.gen_spec.input.treesitter` for tree-sitter based input surrounding). + + +# Version 0.5.0 + +- Update all tests to use new 'mini.test' module. +- FEATURE: Implement buffer local configuration. This is done with `vim.b.mini*_config` buffer variables. +- Add new `minicyan` color scheme. + +## mini.ai + +Introduction of new module. + +## mini.comment + +- FEATURE: Now hooks can be used to terminate further actions by returning `false` (#108). + +## mini.indentscope + +- BREAKING: Soft deprecate `vim.b.miniindentscope_options` in favor of using `options` field of `miniindentscope_config`. + +## mini.sessions + +- FEATURE: Hooks are now called with active session data as argument. + +## mini.starter + +- FEATURE: Now it is possible to open multiple Starter buffers at the same time (#82). This comes with several changes which won't affect most users: + - BREAKING: `MiniStarter.content` is deprecated. Use `MiniStarter.get_content()`. + - All functions dealing with Starter buffer now have `buf_id` as argument (no breaking behavior). + +## mini.statusline + +- FEATURE: Implement `config.use_icons` which controls whether to use icons by default. + +## mini.test + +Introduction of new module. + +## mini.trailspace + +- FEATURE: Implement `MiniTrailspace.trim_last_lines()`. + + +# Version 0.4.0 + +- Update all modules to supply mapping description for Neovim>=0.7. +- Add new module 'mini.jump2d'. +- Cover all modules with extensive tests. + +## mini.comment + +- FEATURE: Implement `config.hooks` with `pre` and `post` hooks (executed before and after successful commenting). Fixes #50, #59. + +## mini.completion + +- Implement support for `additionalTextEdits` (issue #61). + +## mini.jump + +- FEATURE: Implement idle timeout to stop jumping automatically (@annenpolka, #56). +- FEATURE: Implement `MiniJump.state`: table with useful model-related information. +- BREAKING: Soft deprecate `config.highlight_delay` in favor of `config.delay.highlight`. +- Update process of querying target symbol: show help message after delay, allow `` to stop selecting target. + +## mini.jump2d + +Introduction of new module. + +## mini.pairs + +- Create mappings for `` and `` in certain mode only after some pair is registered in that mode. + +## mini.sessions + +- FEATURE: Implement `MiniSessions.select()` to select session interactively and perform action on it. +- FEATURE: Implement `config.hooks` to execute hook functions before and after successful action. +- BREAKING: All feedback about incorrect behavior is now an error instead of message notifications. + +## mini.starter + +- Allow `config.header` and `config.footer` be any value, which will be converted to string via `tostring()`. +- Update query logic to not allow queries which result into no items. +- Add `` and `` to default mappings. + +## mini.statusline + +- BREAKING: change default icon for `MiniStatusline.section_diagnostics()` from ﯭ to  due to former having issues in some terminal emulators. + +## mini.surround + +- FEATURE: Implement `config.search_method`. +- FEATURE: Implement custom surroundings via `config.custom_surroundings`. +- FEATURE: Implement `MiniSurround.user_input()`. +- BREAKING: Deprecate `config.funname_pattern` option in favor of manually modifying `f` surrounding. +- BREAKING: Always move cursor to the right of left surrounding in `add()`, `delete()`, and `replace()` (instead of moving only if it was on the same line as left surrounding). +- Update process of getting user input: allow `` to cancel and make empty string a valid input. + +## mini.tabline + +- FEATURE: Implement `config.tabpage_section`. +- BREAKING: Show listed buffers also in case of multiple tabpages (instead of using builtin behavior). +- Show quickfix/loclist buffers with special `*quickfix*` label. + + +# Version 0.3.0 + +- Update all modules to have annotations formatted for 'mini.doc'. + +## mini.cursorword + +- Current word under cursor now can be highlighted differently. + +## mini.doc + +Introduction of new module. + +## mini.indentscope + +Introduction of new module. + +## mini.starter + +- Implement `MiniStarter.set_query()` and make `` mapping for resetting query. + + +# Version 0.2.0 + +## mini.base16 + +- Use new `Diagnostic*` highlight groups in Neovim 0.6.0. + +## mini.comment + +- Respect tab indentation (#20). + +## mini.jump + +Introduction of new module. + +## mini.pairs + +- Implement pair registration with custom mapping functions. More detailed: + - Implement `MiniPairs.map()`, `MiniPairs.map_buf()`, `MiniPairs.unmap()`, `MiniPairs.unmap_buf()` to (un)make mappings for pairs which automatically register them for `` and ``. Note, that this has a minor break of previous behavior: now `MiniPairs.bs()` and `MiniPairs.cr()` don't have any input argument. But default behavior didn't change. + - Allow setting global pair mappings inside `config` of `MiniPairs.setup()`. + +## mini.sessions + +Introduction of new module. + +## mini.starter + +Introduction of new module. + +## mini.statusline + +- Implement new section `MiniStatusline.section_searchcount()`. +- Update `section_diagnostics` to use `vim.diagnostic` in Neovim 0.6.0. + + +# Version 0.1.0 + +- Initial stable version. diff --git a/config/neovim/store/lazy-plugins/mini.nvim/CODE_OF_CONDUCT.md b/config/neovim/store/lazy-plugins/mini.nvim/CODE_OF_CONDUCT.md new file mode 100644 index 00000000..6c0a89d3 --- /dev/null +++ b/config/neovim/store/lazy-plugins/mini.nvim/CODE_OF_CONDUCT.md @@ -0,0 +1,132 @@ +# Contributor Code of Conduct + +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, caste, color, religion, or sexual +identity and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment for our +community include: + +* Demonstrating empathy and kindness toward other people +* Being respectful of differing opinions, viewpoints, and experiences +* Giving and gracefully accepting constructive feedback +* Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +* Focusing on what is best not just for us as individuals, but for the overall + community + +Examples of unacceptable behavior include: + +* The use of sexualized language or imagery, and sexual attention or advances of + any kind +* Trolling, insulting or derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or email address, + without their explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of +acceptable behavior and will take appropriate and fair corrective action in +response to any behavior that they deem inappropriate, threatening, offensive, +or harmful. + +Community leaders have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, and will communicate reasons for moderation +decisions when appropriate. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. +Examples of representing our community include using an official e-mail address, +posting via an official social media account, or acting as an appointed +representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the community leaders responsible for enforcement at +`evgeni chasnovski |at| gmail >dot< com` . +All complaints will be reviewed and investigated promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the +reporter of any incident. + +## Enforcement Guidelines + +Community leaders will follow these Community Impact Guidelines in determining +the consequences for any action they deem in violation of this Code of Conduct: + +### 1. Correction + +**Community Impact**: Use of inappropriate language or other behavior deemed +unprofessional or unwelcome in the community. + +**Consequence**: A private, written warning from community leaders, providing +clarity around the nature of the violation and an explanation of why the +behavior was inappropriate. A public apology may be requested. + +### 2. Warning + +**Community Impact**: A violation through a single incident or series of +actions. + +**Consequence**: A warning with consequences for continued behavior. No +interaction with the people involved, including unsolicited interaction with +those enforcing the Code of Conduct, for a specified period of time. This +includes avoiding interactions in community spaces as well as external channels +like social media. Violating these terms may lead to a temporary or permanent +ban. + +### 3. Temporary Ban + +**Community Impact**: A serious violation of community standards, including +sustained inappropriate behavior. + +**Consequence**: A temporary ban from any sort of interaction or public +communication with the community for specified period of time. No public or +private interaction with the people involved, including unsolicited interaction +with those enforcing the Code of Conduct, is allowed during this period. +Violating these terms may lead to a permanent ban. + +### 4. Permanent Ban + +**Community Impact**: Demonstrating a pattern of violation of community +standards, including sustained inappropriate behavior, harassment of an +individual, or aggression toward or disparagement of classes of individuals. + +**Consequence**: A permanent ban from any sort of public interaction within the +community. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 2.1, available at +[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. + +Community Impact Guidelines were inspired by +[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. + +For answers to common questions about this code of conduct, see the FAQ at +[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at +[https://www.contributor-covenant.org/translations][translations]. + +[homepage]: https://www.contributor-covenant.org +[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html +[Mozilla CoC]: https://github.com/mozilla/diversity +[FAQ]: https://www.contributor-covenant.org/faq +[translations]: https://www.contributor-covenant.org/translations diff --git a/config/neovim/store/lazy-plugins/mini.nvim/CONTRIBUTING.md b/config/neovim/store/lazy-plugins/mini.nvim/CONTRIBUTING.md new file mode 100644 index 00000000..16d4c45e --- /dev/null +++ b/config/neovim/store/lazy-plugins/mini.nvim/CONTRIBUTING.md @@ -0,0 +1,282 @@ +# Contributing + +Thank you for your willingness to contribute to 'mini.nvim'. It means a lot! + +You can make contributions in the following ways: + +- **Mention it** somehow to help reach broader audience. This helps a lot. +- **Create a GitHub issue**. It can be one of the following types: + - **Bug report**. Describe your actions in a reproducible way along with their effect and what you expected should happen. Before making one, please make your best efforts to make sure that it is not an intended behavior (not described in documentation as such). + - **Feature request**. A concise and justified description of what one or several modules should be able to do. Before making one, please make your best efforts to make sure that it is not a feature that won't get implemented (these should be described in documentation; for example: block comments in 'mini.comment'). +- **Create a pull request (PR)**. It can be one of the following types: + - **Code related**. For example, fix a bug or implement a feature. **Before even starting one, please make sure that it is aligned with project vision and goals**. The best way to do so is to receive positive feedback from maintainer on your initiative in one of the GitHub issues (existing or created by you). Please, make sure to regenerate latest help file and that all tests pass (see later sections). + - **Documentation related**. For example, fix typo/wording in 'README.md', code comments or annotations (which are used to generate Neovim documentation; see later section). Feel free to make these without creating a GitHub issue. + - **Add plugin integration to 'mini.base16' and 'mini.hues' modules**. +- **Add explicit support to other colorschemes**. Every 'mini.nvim' module supports any colorscheme right out of the box. This is done by making most highlight groups be linked to a semantically similar builtin highlight group. Other groups are hard-coded based on personal preference. However, these choices might be out of tune with a particular colorscheme. Updating as many colorschemes as possible to have explicit 'mini.nvim' support is highly appreciated. For your convenience, there is a list of all highlight groups in later section of this file. +- **Participate in [discussions](https://github.com/echasnovski/mini.nvim/discussions)**. + +All well-intentioned, polite, and respectful contributions are always welcome! Thanks for reading this! + +## Commit messages + +- Try to make commit message as concise as possible while giving enough information about nature of a change. Think about whether it will be easy to understand in one year time when browsing through commit history. + +- Single commit should change either zero or one module, or affect all modules (i.e. enforcing some universal rule but not necessarily change files). Changes for two or more modules should be split in several module-specific commits. + +- Use [Conventional commits](https://www.conventionalcommits.org/en/v1.0.0/) style: + - Messages should have the following structure: + + ``` + [optional scope][!]: + + [optional body] + + [optional footer(s)] + ``` + + - `` is **mandatory** and can be one of: + - `ci` - change in how automation (GitHub actions, dual distribution scripts, etc.) is done. + - `docs` - change in user facing documentation (help, README, CONTRIBUTING, etc.). + - `feat` - adding new user facing feature. + - `fix` - resolving user facing issue. + - `refactor` - change in code or documentation that should not affect users. + - `style` - change in convention of how something should be done (formatting, wording, etc.) and its effects. + - `test` - change in tests. + For temporary commits which later should be squashed (when working on PR, for example), use `fixup` type. + - `[optional scope]`, if present, should be done in parenthesis `()`. If commit changes single module (as it usually should), using scope with module name is **mandatory**. If commit enforces something for all modules, use `ALL` scope. + - Breaking change, if present, should be expressed with `!` before `:`. + - `` is a change overview in imperative, present tense ("change" not "changed" nor "changes"). Should result into first line under 72 characters. Should start with not capitalized word and NOT end with sentence ending punctuation (i.e. one of `.,?!;`). + - `[optional body]`, if present, should contain details and motivation about the change in plain language. Should be formatted to have maximum 80 characters in line. + - `[optional footer(s)]`, if present, should be instruction(s) to Git or Github. Use "Resolve #xxx" on separate line if this commit resolves issue or PR. + +- Use module's function and field names without module's name. Like `add()` and not `MiniSurround.add()`. + +Examples: + +``` +feat(deps): add folds in update confirmation buffer +``` + +``` +fix(jump): make operator not delete one character if target is not found + +One main goal is to do that in a dot-repeatable way, because this is very +likely to be repeated after an unfortunate first try. + +Resolve #688 +``` + +``` +refactor(bracketed): do not source 'vim.treesitter' on `require()` + +Although less explicit, this considerably reduces startup footprint of +'mini.bracketed' in isolation. +``` + +``` +feat(hues)!: update verbatim text to be distinctive +``` + +``` +test(ALL): update screenshots to work on Nightly +``` + +### Automated commit linting + +- To lint messages of already done commits, execute `scripts/lintcommit-ci.sh `. For example, to lint currently latest commit use `scripts/lintcommit-ci.sh HEAD~..HEAD`. +- To lint commit message before doing commit, install [`pre-commit`](https://pre-commit.com/#install) and enable it with `pre-commit install --hook-type commit-msg` (from the root directory). NOTE: requires `nvim` executable. If it throws (usually descriptive) error - recommit with proper message. + +## Generating help file + +If your contribution updates annotations used to generate help file, please regenerate it. You can make this with one of the following (assuming current directory being project root): + +- From command line execute `make documentation`. +- Inside Neovim instance run `:luafile scripts/minidoc.lua` or `:lua require('mini.doc').generate()`. + +## Testing + +If your contribution updates code and you use Linux (not Windows or MacOS), please make sure that it doesn't break existing tests. If it adds new functionality or fixes a recognized bug, add new test case(s). There are two ways of running tests: + +- From command line: + - Execute `make test` to run all tests (with `nvim` as executable). + - Execute `FILE=tests/test_xxx.lua make test_file` to run tests only from file `tests/test_xxx.lua` (with `nvim` as executable). + - If you have multiple Neovim executables (say, `nvim_07`, `nvim_08`, `nvim_09`, `nvim_010`), you can use `NVIM_EXEC` variable to tests against multiple versions like this: + `NVIM_EXEC="nvim_07 nvim_08 nvim_09 nvim_010" make test` or `NVIM_EXEC="nvim_07 nvim_08 nvim_09 nvim_010" FILE=tests/test_xxx.lua make test_file`. +- Inside Neovim instance execute `:lua require('mini.test').setup(); MiniTest.run()` to run all tests or `:lua require('mini.test').setup(); MiniTest.run_file()` to run tests only from current buffer. + +This plugin uses 'mini.test' to manage its tests. For a more hands-on introduction, see [TESTING.md](TESTING.md). + +**Notes**: +- If you have Windows or MacOS and want to contribute code related change, make your best effort to not break existing behavior. It will later be tested automatically after making Pull Request. The reason for this distinction is that tests are not well designed to be run on those operating systems. +- If new functionality relies on an external dependency (`git` CLI tool, LSP server, etc.), use mocking (writing Lua code which emulates dependency usage as close as reasonably possible). For examples, take a look at tests for 'mini.pick', 'mini.completion', and 'mini.statusline'. +- There is a certain number of tests that are flaky (i.e. will sometimes report an error due to other reasons than actual functionality being broke). It is usually the ones which test time related functionality (i.e. that certain action was done after specific amount of delay). + A commonly used way to know if the test is flaky is that it fails on non-nightly Neovim version yet there were no changes to its tested module after it had passed in the past. For example, some 'mini.animate' test is shown to break but there were no changes to it since test passed in CI couple of days before. + In case there is some test breaking which reasonably should not, rerun that test (or the whole file) at least several times. + +## Formatting + +This project uses [StyLua](https://github.com/JohnnyMorganz/StyLua) version 0.19.0 for formatting Lua code. Before making changes to code, please: + +- [Install StyLua](https://github.com/JohnnyMorganz/StyLua#installation). NOTE: use `v0.19.0`. +- Format with it. Currently there are two ways to do this: + - Manually run `stylua .` from the root directory of this project. + - Install [`pre-commit`](https://pre-commit.com/#install) and enable it with `pre-commit install` (from the root directory). This will auto-format relevant code before making commits. + +## List of highlight groups + +Here is a list of all highlight groups defined inside 'mini.nvim' modules. See documentation in 'doc' directory to find out what they are used for. + +- 'mini.animate': + - `MiniAnimateCursor` + - `MiniAnimateNormalFloat` + +- 'mini.clue': + - `MiniClueBorder` + - `MiniClueDescGroup` + - `MiniClueDescSingle` + - `MiniClueNextKey` + - `MiniClueNextKeyWithPostkeys` + - `MiniClueSeparator` + - `MiniClueTitle` + +- 'mini.completion': + - `MiniCompletionActiveParameter` + +- 'mini.cursorword': + - `MiniCursorword` + - `MiniCursorwordCurrent` + +- 'mini.deps': + - `MiniDepsChangeAdded` + - `MiniDepsChangeRemoved` + - `MiniDepsHint` + - `MiniDepsInfo` + - `MiniDepsMsgBreaking` + - `MiniDepsPlaceholder` + - `MiniDepsTitle` + - `MiniDepsTitleError` + - `MiniDepsTitleSame` + - `MiniDepsTitleUpdate` + +- 'mini.diff': + - `MiniDiffSignAdd` + - `MiniDiffSignChange` + - `MiniDiffSignDelete` + - `MiniDiffOverAdd` + - `MiniDiffOverChange` + - `MiniDiffOverContext` + - `MiniDiffOverDelete` + +- 'mini.files': + - `MiniFilesBorder` + - `MiniFilesBorderModified` + - `MiniFilesCursorLine` + - `MiniFilesDirectory` + - `MiniFilesFile` + - `MiniFilesNormal` + - `MiniFilesTitle` + - `MiniFilesTitleFocused` + +- 'mini.hipatterns': + - `MiniHipatternsFixme` + - `MiniHipatternsHack` + - `MiniHipatternsNote` + - `MiniHipatternsTodo` + +- 'mini.icons': + - `MiniIconsAzure` + - `MiniIconsBlue` + - `MiniIconsCyan` + - `MiniIconsGreen` + - `MiniIconsGrey` + - `MiniIconsOrange` + - `MiniIconsPurple` + - `MiniIconsRed` + - `MiniIconsYellow` + +- 'mini.indentscope': + - `MiniIndentscopeSymbol` + - `MiniIndentscopeSymbolOff` + +- 'mini.jump': + - `MiniJump` + +- 'mini.jump2d': + - `MiniJump2dDim` + - `MiniJump2dSpot` + - `MiniJump2dSpotAhead` + - `MiniJump2dSpotUnique` + +- 'mini.map': + - `MiniMapNormal` + - `MiniMapSymbolCount` + - `MiniMapSymbolLine` + - `MiniMapSymbolView` + +- 'mini.notify': + - `MiniNotifyBorder` + - `MiniNotifyNormal` + - `MiniNotifyTitle` + +- 'mini.operators': + - `MiniOperatorsExchangeFrom` + +- 'mini.pick': + + - `MiniPickBorder` + - `MiniPickBorderBusy` + - `MiniPickBorderText` + - `MiniPickIconDirectory` + - `MiniPickIconFile` + - `MiniPickHeader` + - `MiniPickMatchCurrent` + - `MiniPickMatchMarked` + - `MiniPickMatchRanges` + - `MiniPickNormal` + - `MiniPickPreviewLine` + - `MiniPickPreviewRegion` + - `MiniPickPrompt` + +- 'mini.starter': + - `MiniStarterCurrent` + - `MiniStarterFooter` + - `MiniStarterHeader` + - `MiniStarterInactive` + - `MiniStarterItem` + - `MiniStarterItemBullet` + - `MiniStarterItemPrefix` + - `MiniStarterSection` + - `MiniStarterQuery` + +- 'mini.statusline': + - `MiniStatuslineDevinfo` + - `MiniStatuslineFileinfo` + - `MiniStatuslineFilename` + - `MiniStatuslineInactive` + - `MiniStatuslineModeCommand` + - `MiniStatuslineModeInsert` + - `MiniStatuslineModeNormal` + - `MiniStatuslineModeOther` + - `MiniStatuslineModeReplace` + - `MiniStatuslineModeVisual` + +- 'mini.surround': + - `MiniSurround` + +- 'mini.tabline': + - `MiniTablineCurrent` + - `MiniTablineFill` + - `MiniTablineHidden` + - `MiniTablineModifiedCurrent` + - `MiniTablineModifiedHidden` + - `MiniTablineModifiedVisible` + - `MiniTablineTabpagesection` + - `MiniTablineVisible` + +- 'mini.test': + - `MiniTestEmphasis` + - `MiniTestFail` + - `MiniTestPass` + +- 'mini.trailspace': + - `MiniTrailspace` diff --git a/config/neovim/store/lazy-plugins/mini.nvim/LICENSE b/config/neovim/store/lazy-plugins/mini.nvim/LICENSE new file mode 100644 index 00000000..782731fb --- /dev/null +++ b/config/neovim/store/lazy-plugins/mini.nvim/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2021 Evgeni Chasnovski + +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. diff --git a/config/neovim/store/lazy-plugins/mini.nvim/MAINTAINING.md b/config/neovim/store/lazy-plugins/mini.nvim/MAINTAINING.md new file mode 100644 index 00000000..12e98c96 --- /dev/null +++ b/config/neovim/store/lazy-plugins/mini.nvim/MAINTAINING.md @@ -0,0 +1,188 @@ +# Maintaining + +This document contains knowledge about specifically maintaining 'mini.nvim'. It assumes general knowledge about how Open Source and GitHub issues/PRs work. + +See [CONTRIBUTING.md](CONTRIBUTING.md) for how to generate help files, run tests, and format. + +## General advice + +- Follow common boilerplate code as much as possible when creating new module, as it makes easier to use "search and replace" in the long term. This includes: + - Documentation at the beginning: describing module, its setup, highlight groups, similar plugins, disabling, `setup()`, and `config`. + - Create and use `H` helper table at the beginning to allow having exported code written before helpers (severely improves readability). + - Structure of `setup()` function with its helper functions: `H.setup_config()`, `H.apply_config()`, `H.create_autocommands()`, `H.create_default_hl()`, `H.create_user_commands()`. +- Use module's `H.get_config()` and `H.is_disabled()` helpers. They both should respect buffer local configuration. +- From time to time some test cases will break on Neovim Nightly. This is usually due to the following reasons: + - There was an intended change in Neovim Nightly to which affected module(s) should adapt. Update module and/or tests. + - There was a change in Neovim Nightly disrupting only tests (usually screenshots due to changed way of how highlight attributes are computed). Update test: ideally so that it passes on all versions, but testing some parts only on Nightly is allowed if needed (usually by regenerating screenshot on Nightly and verifying it only on versions starting from it). + - There was an unintended change in Neovim Nightly which breaks functionality it should not break. Create an issue in ['neovim/neovim' repo](https://github.com/neovim/neovim). If the issue is not resolved for a long-ish time (i.e. more than a week) try to make tests pass and/or adapt the code to new behavior. + +## Maintainer setup + +Mandatory: +- Have `nvim` executable for latest stable release. +- Install [`git`](https://www.git-scm.com). +- Install [`StyLua`](https://github.com/JohnnyMorganz/StyLua) with version described in [CONTRIBUTING.md](CONTRIBUTING.md). +- Install [`make`](https://www.gnu.org/software/make/). + +Recommended: +- Have executables for all supported Neovim versions. For example, `nvim_07`, `nvim_08`, `nvim_09`, `nvim_010`. This is useful for running tests on multiple versions. +- Install [`lua-language-server`](https://github.com/LuaLS/lua-language-server). +- Install [`pre-commit`](https://pre-commit.com/#install) and enable it with `pre-commit install` and `pre-commit install --hook-type commit-msg` (run from repository's root). +- Set up 'mini.doc' and 'mini.test' and make mappings for the following frequently used commands: + - `'lua MiniDoc.generate()'` - to generate documentation. + - `'lua MiniTest.run_at_location()'` - to run test under cursor. + - `'lua MiniTest.run_file()'` - to run current test file. + +## Supported Neovim versions + +Aim for supporting 4 latest minor Neovim releases: current stable, current Nightly, and two latest stable releases. + +For example, if 0.9.x is current stable, then all latest patch versions of 0.7, 0.8, 0.9 should be supported plus Nightly (0.10.0). + +NOTE: some modules can have less supported versions during their release **only** if it is absolutely necessary for the core functionality. + +## Dual distribution + +Modules of 'mini.nvim' are distributed both as part of 'mini.nvim' repository and each one in its standalone repository. All development takes place in 'mini.nvim' while being synced to standalone ones. This is done by having special `sync` branch which points to the latest commit which was synced to standalone repositories. + +Usual workflow involves performing these steps after every commit in 'mini.nvim': + +- Check out to `main` branch. +- Ensure there are no immediate defects. Usually it means to wait until all CI checks passed. +- Run `make dual_sync`. This should: + - Create 'dual' directory if doesn't exist yet. + - Pull standalone repositories in 'dual/repos'. + - Create patches in 'dual/patches' and apply them for standalone repositories. + + See 'scripts/dual_sync.sh' for more details. +- Run `make dual_log` to make sure that all and correct patches were applied. If some commit touches files from several modules, it results into commits for every affected standalone repository. +- Run `make dual_push`. This should: + - Push updates for affected standalone repositories. + - Clean up 'dual/patches'. + - Update `sync` branch to point to latest commit and push it to `origin`. + +## Typical workflow for adding change + +- Solve the problem. +- If change is in code, write test which breaks before problem is solved and passes after. +- If change introduces new config setting, consult with [dedicated checklist](#adding-new-config-settings). +- If change is worth to be seen by users (notable/breaking feature/fix), update 'CHANGELOG.md' following formatting from previous versions. +- Make sure that all tests in affected module(s) pass in all supported versions. See [Maintainer setup](#maintainer-setup) and ['Testing' section in CONTRIBUTING.md](CONTRIBUTING.md#testing). +- Stage and commit changes into a separate Git branch. Push the branch. +- Make sure that all CI pass. +- Merge branch into `main` branch. Push `main`. +- Make sure that all CI pass (again). +- Synchronize dual distribution: + - `make dual_sync` to sync. + - `make dual_log` and look at changes which are about to be applied to standalone repositories. Make sure that they are what you'd expect. + - `make dual_push` to push changes to standalone repositories. + +## Typical workflow for processing a GitHub issue + +- Add label with module name issue is about (if any). If issue is worded politely and/or with much details, thank user for opening an issue. +- Make sure the underlying problem is valid, i.e. it can be reproduced and the root cause is in this project. If it can not be reproduced, politely explain that and ask for more reproduction details. If the cause is not related to the project, politely explain that, close an issue, and direct towards the real root cause. +- Check already existing issues for possible duplicates. If there is at least one, review its reasoning before making decision about the current issue. +- Decide whether and how an issue should be resolved. Use ["General principles"](README.md#general-principles), module's help and code documentation while making the decision. + - If decision is to not resolve, politely explain that and close an issue (possibly mentioning similar reasoning in the past). + - If decision is to resolve, resolve the issue while putting `Resolve #xxx` at the bottom of commit message. + +## Typical workflow for processing GitHub pull request + +- Add label with module name pull request (PR) is about (if any). If PR is worded politely, thank user for doing that. +- Make sure the PR is valid, i.e. resolves an issue or adds a feature any of which aligns with the project. Ideally, it should have been agreed in the prior created issue (as per [CONTRIBUTING.md](CONTRIBUTING.md)). +- Review PR code and iterate towards making it have enough code quality. Use first steps of ["Typical workflow for adding change"](#typical-workflow-for-adding-change) as reference. **Note**: if what is left to do requires some overly specific project knowledge (i.e. can be done _much_ quicker if you know how, but requires non-trivial amount of reading/discovering first time), consider merging PR in a new separate branch and finish it manually (usually with preserving original commit authorship). +- When change is of enough quality, merge it and proceed treating it as regular change. + +## Stopping support for old Neovim version + +Begin the process of stopping official support for outdated Neovim version shortly after (week or two) the release of the new stable one. Usually it is stopping support for Neovim 0.x (say, 0.8) shortly after the release of 0.(x+3).0 (say, 0.11.0). The deprecation should be done in two stages: + +- Stage 1, soft deprecation (to notify old version users about upcoming support drop): + - Add version of the following code snippet at the beginning of `setup()` function body in **every** module: + + ```lua + -- TODO: Remove after Neovim=0.8 support is dropped + if vim.fn.has('nvim-0.8') == 0 then + vim.notify( + '(mini.ai) Neovim<0.9 is soft deprecated (module works but not supported).' + .. ' It will be deprecated after next "mini.nvim" release (module might not work).' + .. ' Please update your Neovim version.' + ) + end + ``` + + - Modify CI to not test on Neovim 0.x. + - Update README and repo description to indicate new oldest supported Neovim version. + - Wait for a considerable amount of time (at least about a month) *and* a new 'mini.nvim' stable release (so that there is no actual deprecation in the stable release). + +- Stage 2, deprecation: + - Remove all notification snippets added in Stage 1. + - Adjust code that is conditioned on `vim.fn.has('nvim-0.x')`. + - Adjust code/comments/documentation that contains any combination of `Neovim{<,<=,=,>=,>}{0.x,0.(x+1)}` (like `Neovim<0.x`, `Neovim>=0.(x+1)`, etc.). + - Add entry "Stop official support of Neovim 0.x." in 'CHANGELOG.md' at the start of current development version block. + +## Adding new config settings + +- Add code which uses new setting. +- Add default value to `Mini*.config` definition. +- Update module's `H.setup_config()` with type check of new setting. +- Update tests to test default config value and its type check. +- Regenerate help file. +- Update module's README in 'readmes' directory. +- Possibly update demo for it to be aligned with current config values. +- Update 'CHANGELOG.md'. In module's section of current version add line starting with `- FEATURE: Implement ...`. + +## Adding new color scheme plugin integration + +- Update color scheme module file in a way similar to other already added plugins: + - Add definitions for highlight groups. + - Add plugin entry in a list of supported plugins in help annotations. + - Add plugin entry in a module's README. +- Regenerate documentation (see [corresponding section in CONTRIBUTING.md](CONTRIBUTING.md#generating-help-file)). + +## Adding new module + +- Add Lua source code in 'lua' directory. +- Add tests in 'tests' directory. Use 'tests/dir-xxx' name for module-specific non-test helpers. +- Update 'lua/init.lua' to mention new module: both in initial table of contents and list of modules. +- Update 'scripts/basic-setup_init.lua' to include new module. +- Update 'scripts/dual_sync.sh' to include new module. +- Update 'scripts/minidoc.lua' to generate separate help file. +- Generate help files. +- Add README to 'readmes' directory. NOTE: comment out mentions of `stable` branch, as it won't work during beta-testing. +- Update main README to mention new module in table of contents. +- Update 'CHANGELOG.md' to mention introduction of new module. +- Update 'CONTRIBUTING.md' to mention new highlight groups (if there are any). +- Commit changes with message 'feat(xxx): add NEW MODULE'. NOTE: it is cleaner to synchronize standalone repositories prior to this commit. +- If there are new highlight groups, follow up with adding explicit support in color scheme modules. +- Make standalone plugin: + - Create new empty GitHub repository. Disable Issues and limit PRs. + - Synchronize standalone repositories. It should have created new git repository with single initial commit. + - Make sure that all tracked files are synchronized. For list of tracked files see 'scripts/dual_sync.sh'. Initially they are 'doc/mini-xxx.txt', 'lua/mini/xxx.lua', 'LICENSE', and 'readmes/mini-xxx.md' (copied to be 'README.md' in standalone repository). + - Make sure that 'README.md' in standalone repository has appropriate relative links (see patch script). + - **Amend** initial commit and push. +- Push `main` and sync dual distribution. + +## Making stable release + +There is no clear guidelines for when a stable (minor) release should be made. Mostly "when if feels right" but "not too often". If it has to be put in words, it is something like "After 3 new modules have finished beta-testing or 4 months, whichever is sooner". No patch releases have been made yet. + +Checklist: + +- Check for `TODO`s about actions to be done *before* release. +- Update READMEs of new modules to mention `stable` branch. +- Bump version in 'CHANGELOG.md'. Commit. +- Checkout to `new_release` branch and push to check in CI. **Proceed only if it is successful**. +- Merge `new_release` to `main` and push it. +- Synchronize standalone repositories. +- Make annotated tag: `git tag -a v0.xx.0 -m 'Version 0.xx.0'`. Push it. +- Check that all CI has passed. +- Make GitHub release. Get description from copying entries of version's 'CHANGELOG.md' section. +- Move `stable` branch to point at new tag (`git branch --force stable` when on latest tag's commit). Push it. +- Release standalone repositories. It should be enough to use 'scripts/dual_release.sh' like so: + ``` + # REPLACE `xx` with your version number + TAG_NAME="v0.xx.0" TAG_MESSAGE="Version 0.xx.0" make dual_release + ``` +- Use development version in 'CHANGELOG.md' ('0.xx.0.9000'). Commit. +- Check for `TODO`s about actions to be done *after* release. diff --git a/config/neovim/store/lazy-plugins/mini.nvim/Makefile b/config/neovim/store/lazy-plugins/mini.nvim/Makefile new file mode 100644 index 00000000..6e460468 --- /dev/null +++ b/config/neovim/store/lazy-plugins/mini.nvim/Makefile @@ -0,0 +1,46 @@ +GROUP_DEPTH ?= 1 +NVIM_EXEC ?= nvim + +all: test documentation + +test: + for nvim_exec in $(NVIM_EXEC); do \ + printf "\n======\n\n" ; \ + $$nvim_exec --version | head -n 1 && echo '' ; \ + $$nvim_exec --headless --noplugin -u ./scripts/minimal_init.lua \ + -c "lua require('mini.test').setup()" \ + -c "lua MiniTest.run({ execute = { reporter = MiniTest.gen_reporter.stdout({ group_depth = $(GROUP_DEPTH) }) } })" ; \ + done + +test_file: + for nvim_exec in $(NVIM_EXEC); do \ + printf "\n======\n\n" ; \ + $$nvim_exec --version | head -n 1 && echo '' ; \ + $$nvim_exec --headless --noplugin -u ./scripts/minimal_init.lua \ + -c "lua require('mini.test').setup()" \ + -c "lua MiniTest.run_file('$(FILE)', { execute = { reporter = MiniTest.gen_reporter.stdout({ group_depth = $(GROUP_DEPTH) }) } })" ; \ + done + +documentation: + $(NVIM_EXEC) --headless --noplugin -u ./scripts/minimal_init.lua -c "lua require('mini.doc').generate()" -c "qa!" + +lintcommit-ci: + export LINTCOMMIT_STRICT=true && chmod u+x scripts/lintcommit-ci.sh && scripts/lintcommit-ci.sh + +basic_setup: + $(NVIM_EXEC) --headless --noplugin -u ./scripts/basic-setup_init.lua + +dual_sync: + chmod u+x scripts/dual_sync.sh && scripts/dual_sync.sh + +dual_log: + chmod u+x scripts/dual_log.sh && scripts/dual_log.sh + +dual_push: + chmod u+x scripts/dual_push.sh && scripts/dual_push.sh + git branch --force sync + git push origin sync + rm -r dual/patches + +dual_release: + chmod u+x scripts/dual_release.sh && scripts/dual_release.sh "$(TAG_NAME)" "$(TAG_MESSAGE)" diff --git a/config/neovim/store/lazy-plugins/mini.nvim/README.md b/config/neovim/store/lazy-plugins/mini.nvim/README.md new file mode 100644 index 00000000..56bfa796 --- /dev/null +++ b/config/neovim/store/lazy-plugins/mini.nvim/README.md @@ -0,0 +1,173 @@ +
+ + +[![GitHub license](https://badgen.net/github/license/echasnovski/mini.nvim)](https://github.com/echasnovski/mini.nvim/blob/main/LICENSE) +[![GitHub tag](https://badgen.net/github/tag/echasnovski/mini.nvim)](https://github.com/echasnovski/mini.nvim/tags/) +[![Current version](https://badgen.net/badge/Current%20version/development/cyan)](https://github.com/echasnovski/mini.nvim/blob/main/CHANGELOG.md) + + +Library of 40+ independent Lua modules improving overall [Neovim](https://github.com/neovim/neovim) (version 0.8 and higher) experience with minimal effort. They all share same configuration approaches and general design principles. + +Think about this project as "Swiss Army knife" among Neovim plugins: it has many different independent tools (modules) suitable for most common tasks. Each module can be used separately without any startup and usage overhead. + +If you want to help this project grow but don't know where to start, check out [contributing guides](CONTRIBUTING.md) or leave a Github star for 'mini.nvim' project and/or any its standalone Git repositories. + +## Table of contents + +- [Installation](#installation) +- [Modules](#modules) +- [General principles](#general-principles) +- [Plugin colorschemes](#plugin-colorschemes) +- [Planned modules](#planned-modules) + +## Installation + +There are two branches to install from: + +- `main` (default, **recommended**) will have latest development version of plugin. All changes since last stable release should be perceived as being in beta testing phase (meaning they already passed alpha-testing and are moderately settled). +- `stable` will be updated only upon releases with code tested during public beta-testing phase in `main` branch. + +Here are code snippets for some common installation methods: + +- Manually with `git clone` (compatible with [mini.deps](https://github.com/echasnovski/mini.nvim/blob/main/readmes/mini-deps.md)): + +```lua +-- Put this at the top of 'init.lua' +local path_package = vim.fn.stdpath('data') .. '/site' +local mini_path = path_package .. '/pack/deps/start/mini.nvim' +if not vim.loop.fs_stat(mini_path) then + vim.cmd('echo "Installing `mini.nvim`" | redraw') + local clone_cmd = { + 'git', 'clone', '--filter=blob:none', + -- Uncomment next line to use 'stable' branch + -- '--branch', 'stable', + 'https://github.com/echasnovski/mini.nvim', mini_path + } + vim.fn.system(clone_cmd) + vim.cmd('packadd mini.nvim | helptags ALL') +end +``` + +- With [folke/lazy.nvim](https://github.com/folke/lazy.nvim): + +| Branch | Code snippet | +|--------|------------------------------------------------------| +| Main | `{ 'echasnovski/mini.nvim', version = false },` | +| Stable | `{ 'echasnovski/mini.nvim', version = '*' },` | + +- With [junegunn/vim-plug](https://github.com/junegunn/vim-plug): + +| Branch | Code snippet | +|--------|--------------------------------------------------------| +| Main | `Plug 'echasnovski/mini.nvim'` | +| Stable | `Plug 'echasnovski/mini.nvim', { 'branch': 'stable' }` | + +- Every module is also distributed as a standalone Git repository. Check out module's information for more details. + +**Important**: don't forget to call module's `setup()` (if required) to enable its functionality. + +**Note**: if you are on Windows, there might be problems with too long file paths (like `error: unable to create file : Filename too long`). Try doing one of the following: +- Enable corresponding git global config value: `git config --system core.longpaths true`. Then try to reinstall. +- Install plugin in other place with shorter path. + +## Modules + +If you are browsing without particular objective and don't know which module to look at: + +- To improve your editing experience, start with 'mini.ai', 'mini.operators', 'mini.pairs', 'mini.surround'. +- To improve your general workflow, start with 'mini.bracketed', 'mini.files', 'mini.jump2d', 'mini.pick'. +- To make your Neovim more beautiful, start with 'mini.animate', 'mini.hues', 'mini.icons', 'mini.notify'. + +| Module | Description | Overview | Details | +|------------------|------------------------------------------|---------------------------------------|---------------------------------------| +| mini.ai | Extend and create `a`/`i` textobjects | [README](readmes/mini-ai.md) | [Help file](doc/mini-ai.txt) | +| mini.align | Align text interactively | [README](readmes/mini-align.md) | [Help file](doc/mini-align.txt) | +| mini.animate | Animate common Neovim actions | [README](readmes/mini-animate.md) | [Help file](doc/mini-animate.txt) | +| mini.base16 | Base16 colorscheme creation | [README](readmes/mini-base16.md) | [Help file](doc/mini-base16.txt) | +| mini.basics | Common configuration presets | [README](readmes/mini-basics.md) | [Help file](doc/mini-basics.txt) | +| mini.bracketed | Go forward/backward with square brackets | [README](readmes/mini-bracketed.md) | [Help file](doc/mini-bracketed.txt) | +| mini.bufremove | Remove buffers | [README](readmes/mini-bufremove.md) | [Help file](doc/mini-bufremove.txt) | +| mini.clue | Show next key clues | [README](readmes/mini-clue.md) | [Help file](doc/mini-clue.txt) | +| mini.colors | Tweak and save any color scheme | [README](readmes/mini-colors.md) | [Help file](doc/mini-colors.txt) | +| mini.comment | Comment lines | [README](readmes/mini-comment.md) | [Help file](doc/mini-comment.txt) | +| mini.completion | Completion and signature help | [README](readmes/mini-completion.md) | [Help file](doc/mini-completion.txt) | +| mini.cursorword | Autohighlight word under cursor | [README](readmes/mini-cursorword.md) | [Help file](doc/mini-cursorword.txt) | +| mini.deps | Plugin manager | [README](readmes/mini-deps.md) | [Help file](doc/mini-deps.txt) | +| mini.diff | Work with diff hunks | [README](readmes/mini-diff.md) | [Help file](doc/mini-diff.txt) | +| mini.doc | Generate Neovim help files | [README](readmes/mini-doc.md) | [Help file](doc/mini-doc.txt) | +| mini.extra | Extra 'mini.nvim' functionality | [README](readmes/mini-extra.md) | [Help file](doc/mini-extra.txt) | +| mini.files | Navigate and manipulate file system | [README](readmes/mini-files.md) | [Help file](doc/mini-files.txt) | +| mini.fuzzy | Fuzzy matching | [README](readmes/mini-fuzzy.md) | [Help file](doc/mini-fuzzy.txt) | +| mini.git | Git integration | [README](readmes/mini-git.md) | [Help file](doc/mini-git.txt) | +| mini.hipatterns | Highlight patterns in text | [README](readmes/mini-hipatterns.md) | [Help file](doc/mini-hipatterns.txt) | +| mini.hues | Generate configurable color scheme | [README](readmes/mini-hues.md) | [Help file](doc/mini-hues.txt) | +| mini.icons | Icon provider | [README](readmes/mini-icons.md) | [Help file](doc/mini-icons.txt) | +| mini.indentscope | Visualize and work with indent scope | [README](readmes/mini-indentscope.md) | [Help file](doc/mini-indentscope.txt) | +| mini.jump | Jump to next/previous single character | [README](readmes/mini-jump.md) | [Help file](doc/mini-jump.txt) | +| mini.jump2d | Jump within visible lines | [README](readmes/mini-jump2d.md) | [Help file](doc/mini-jump2d.txt) | +| mini.map | Window with buffer text overview | [README](readmes/mini-map.md) | [Help file](doc/mini-map.txt) | +| mini.misc | Miscellaneous functions | [README](readmes/mini-misc.md) | [Help file](doc/mini-misc.txt) | +| mini.move | Move any selection in any direction | [README](readmes/mini-move.md) | [Help file](doc/mini-move.txt) | +| mini.notify | Show notifications | [README](readmes/mini-notify.md) | [Help file](doc/mini-notify.txt) | +| mini.operators | Text edit operators | [README](readmes/mini-operators.md) | [Help file](doc/mini-operators.txt) | +| mini.pairs | Autopairs | [README](readmes/mini-pairs.md) | [Help file](doc/mini-pairs.txt) | +| mini.pick | Pick anything | [README](readmes/mini-pick.md) | [Help file](doc/mini-pick.txt) | +| mini.sessions | Session management | [README](readmes/mini-sessions.md) | [Help file](doc/mini-sessions.txt) | +| mini.splitjoin | Split and join arguments | [README](readmes/mini-splitjoin.md) | [Help file](doc/mini-splitjoin.txt) | +| mini.starter | Start screen | [README](readmes/mini-starter.md) | [Help file](doc/mini-starter.txt) | +| mini.statusline | Statusline | [README](readmes/mini-statusline.md) | [Help file](doc/mini-statusline.txt) | +| mini.surround | Surround actions | [README](readmes/mini-surround.md) | [Help file](doc/mini-surround.txt) | +| mini.tabline | Tabline | [README](readmes/mini-tabline.md) | [Help file](doc/mini-tabline.txt) | +| mini.test | Test Neovim plugins | [README](readmes/mini-test.md) | [Help file](doc/mini-test.txt) | +| mini.trailspace | Trailspace (highlight and remove) | [README](readmes/mini-trailspace.md) | [Help file](doc/mini-trailspace.txt) | +| mini.visits | Track and reuse file system visits | [README](readmes/mini-visits.md) | [Help file](doc/mini-visits.txt) | + +## General principles + +- **Design**. Each module is designed to solve a particular problem targeting balance between feature-richness (handling as many edge-cases as possible) and simplicity of implementation/support. Granted, not all of them ended up with the same balance, but it is the goal nevertheless. + +- **Independence**. Modules are independent of each other and can be run without external dependencies. Although some of them may need dependencies for full experience. + +- **Structure**. Each module is a submodule for a placeholder "mini" module. So, for example, "surround" module should be referred to as "mini.surround". As later will be explained, this plugin can also be referred to as "MiniSurround". + +- **Setup**: + - Each module you want to use should be enabled separately with `require().setup({})`. Possibly replace `{}` with your config table or omit altogether to use defaults. You can supply only parts of config, the rest will be inferred from defaults. + + - Call to module's `setup()` always creates a global Lua object with coherent camel-case name: `require('mini.surround').setup()` creates `_G.MiniSurround`. This allows for a simpler usage of plugin functionality: instead of `require('mini.surround')` use `MiniSurround` (or manually `:lua MiniSurround.*` in command line); available from `v:lua` like `v:lua.MiniSurround`. Considering this, "module" and "Lua object" names can be used interchangeably: 'mini.surround' and 'MiniSurround' will mean the same thing. + + - Each supplied `config` table is stored in `config` field of global object. Like `MiniSurround.config`. + + - Values of `config` which affect runtime activity can be changed on the fly to have effect. For example, `MiniSurround.config.n_lines` can be changed during runtime; but changing `MiniSurround.config.mappings` won't have any effect (as mappings are created once during `setup()`). + +- **Buffer local configuration**. Each module can be additionally configured to use certain runtime config settings locally to buffer. See `mini.nvim-buffer-local-config` section in help file for more information. + +- **Disabling**. Each module's core functionality can be disabled globally or locally to buffer. See "Disabling" section in module's help page for more details. See `mini.nvim-disabling-recipes` section in main help file for common recipes. + +- **Silencing**. Each module providing non-error feedback can be configured to not do that by setting `config.silent = true` (either inside `setup()` call or on the fly). + +- **Highlighting**. Appearance of module's output is controlled by certain set of highlight groups (see `:h highlight-groups`). By default they usually link to some semantically close built-in highlight group. Use `:highlight` command or `vim.api.nvim_set_hl()` Lua function to customize highlighting. To see a more calibrated look, use 'mini.hues', 'mini.base16', or plugin's colorscheme. + +- **Stability**. Each module upon release is considered to be relatively stable: both in terms of setup and functionality. Any non-bugfix backward-incompatible change will be released gradually as much as possible. + +- **Not filetype/language specific**. Including functionality which needs several filetype/language specific implementations is an explicit no-goal of this project. This is mostly due to the potential increase in maintenance to keep implementation up to date. However, any part which might need filetype/language specific tuning should be designed to allow it by letting user set proper buffer options and/or local configuration. + +## Plugin colorschemes + +This plugin comes with several color schemes (all have both dark and light variants): + +- `randomhue` - random background and foreground of the same hue with medium saturation. +- `minicyan` - cyan and grey main colors with medium contrast and saturation palette. +- `minischeme` - blue and yellow main colors with high contrast and saturation palette. + +Activate them as regular `colorscheme` (for example, `:colorscheme randomhue` or `:colorscheme minicyan`). You can see how they look in [demo of 'mini.hues'](readmes/mini-hues.md#demo) or [demo of 'mini.base16'](readmes/mini-base16.md#demo). + +## Planned modules + +This is the list of modules I currently intend to implement eventually (as my free time and dedication will allow), in alphabetical order: + +- 'mini.cycle' - cycle through alternatives with pre-defined rules. Something like [monaqa/dial.nvim](https://github.com/monaqa/dial.nvim) and [AndrewRadev/switch.vim](https://github.com/AndrewRadev/switch.vim) +- 'mini.keymap' - utilities to make non-trivial mappings (like [max397574/better-escape.nvim](https://github.com/max397574/better-escape.nvim) and dot-repeatable mappings). +- 'mini.snippets' - work with snippets. Something like [L3MON4D3/LuaSnip](https://github.com/L3MON4D3/LuaSnip) but only with more straightforward functionality. +- 'mini.statuscolumn' - customizable 'statuscolumn'. +- 'mini.terminals' - coherently manage terminal windows and send text from buffers to terminal windows. Something like [kassio/neoterm](https://github.com/kassio/neoterm). +- 'mini.quickfix' - fuzzy search and preview of quickfix entries. Possibly with some presets for populating quickfix list (like files, help tags, etc.). Similar to [kevinhwang91/nvim-bqf](https://github.com/kevinhwang91/nvim-bqf). diff --git a/config/neovim/store/lazy-plugins/mini.nvim/TESTING.md b/config/neovim/store/lazy-plugins/mini.nvim/TESTING.md new file mode 100644 index 00000000..f69a1947 --- /dev/null +++ b/config/neovim/store/lazy-plugins/mini.nvim/TESTING.md @@ -0,0 +1,963 @@ +# How to test with 'mini.test' + +Writing tests for Neovim Lua plugin is hard. Writing good tests for Neovim Lua plugin is even harder. The 'mini.test' module is designed to make it reasonably easier while still allowing lots of flexibility. It deliberately favors a more verbose and program-like style of writing tests, opposite to "human readable, DSL like" approach of [nvim-lua/plenary.nvim](https://github.com/nvim-lua/plenary.nvim) ("busted-style testing" from [Olivine-Labs/busted](https://github.com/Olivine-Labs/busted)). Although the latter is also possible. + +This file is intended as a hands-on introduction to 'mini.test' with examples. For more details, see 'mini.test' section of [help file](doc/mini.txt) and tests of this plugin's modules. + +General approach of writing test files: + +- Organize tests in separate Lua files. +- Each file should be associated with a test set table (output of `MiniTest.new_set()`). Recommended approach is to create it manually in each test file and then return it. +- Each test action should be defined in separate function assign to an entry of test set. +- It is strongly encouraged to use custom Neovim processes to do actual testing inside test action. See [Using child process](#using-child-process). + +**NOTES**: + +- All commands are assumed to be executed with current working directory being a root of your Neovim plugin project. That is both for shell and Neovim commands. +- All paths are assumed to be relative to current working directory. + +## Example plugin + +In this file we will be testing 'hello_lines' plugin (once some basic concepts are introduced). It will have functionality to add prefix 'Hello ' to lines implemented in a single file 'lua/hello_lines/init.lua': + +
'lua/hello_lines/init.lua' + +```lua +local M = {} + +--- Prepend 'Hello ' to every element +---@param lines table Array. Default: { 'world' }. +---@return table Array of strings. +M.compute = function(lines) + lines = lines or { 'world' } + return vim.tbl_map(function(x) return 'Hello ' .. tostring(x) end, lines) +end + +local ns_id = vim.api.nvim_create_namespace('hello_lines') + +--- Set lines with highlighted 'Hello ' prefix +---@param buf_id number Buffer handle where lines should be set. Default: 0. +---@param lines table Array. Default: { 'world' }. +M.set_lines = function(buf_id, lines) + buf_id = buf_id or 0 + lines = lines or { 'world' } + vim.api.nvim_buf_set_lines(buf_id or 0, 0, -1, true, M.compute(lines)) + for i = 1, #lines do + vim.highlight.range(buf_id, ns_id, 'Special', { i - 1, 0 }, { i - 1, 5 }, {}) + end +end + +return M +``` + +
+ +## Quick demo + +Here is a quick demo of how tests with 'mini.test' look like: + +
'tests/test_hello_lines.lua' + +```lua +-- Define helper aliases +local new_set = MiniTest.new_set +local expect, eq = MiniTest.expect, MiniTest.expect.equality + +-- Create (but not start) child Neovim object +local child = MiniTest.new_child_neovim() + +-- Define main test set of this file +local T = new_set({ + -- Register hooks + hooks = { + -- This will be executed before every (even nested) case + pre_case = function() + -- Restart child process with custom 'init.lua' script + child.restart({ '-u', 'scripts/minimal_init.lua' }) + -- Load tested plugin + child.lua([[M = require('hello_lines')]]) + end, + -- This will be executed one after all tests from this set are finished + post_once = child.stop, + }, +}) + +-- Test set fields define nested structure +T['compute()'] = new_set() + +-- Define test action as callable field of test set. +-- If it produces error - test fails. +T['compute()']['works'] = function() + -- Execute Lua code inside child process, get its result and compare with + -- expected result + eq(child.lua_get([[M.compute({'a', 'b'})]]), { 'Hello a', 'Hello b' }) +end + +T['compute()']['uses correct defaults'] = function() + eq(child.lua_get([[M.compute()]]), { 'Hello world' }) +end + +-- Make parametrized tests. This will create three copies of each case +T['set_lines()'] = new_set({ parametrize = { {}, { 0, { 'a' } }, { 0, { 1, 2, 3 } } } }) + +-- Use arguments from test parametrization +T['set_lines()']['works'] = function(buf_id, lines) + -- Directly modify some options to make better test + child.o.lines, child.o.columns = 10, 20 + child.bo.readonly = false + + -- Execute Lua code without returning value + child.lua('M.set_lines(...)', { buf_id, lines }) + + -- Test screen state. On first run it will automatically create reference + -- screenshots with text and look information in predefined location. On + -- later runs it will compare current screenshot with reference. Will throw + -- informative error with helpful information if they don't match exactly. + expect.reference_screenshot(child.get_screenshot()) +end + +-- Return test set which will be collected and execute inside `MiniTest.run()` +return T +``` + +
+ +## File organization + +It might be a bit overwhelming. It actually is for most of the people. However, it should be done once and then you rarely need to touch it. + +Overview of full file structure used in for testing 'hello_lines' plugin: + +``` +. +├── deps +│ └── mini.nvim # Mandatory +├── lua +│ └── hello_lines +│ └── init.lua # Mandatory +├── Makefile # Recommended +├── scripts +│ ├── minimal_init.lua # Mandatory +│ └── minitest.lua # Recommended +└── tests + └── test_hello_lines.lua # Mandatory +``` + +To write tests, you'll need these files: + +Mandatory: + +- **Your Lua plugin in 'lua' directory**. Here we will be testing 'hello_lines' plugin. +- **Test files**. By default they should be Lua files located in 'tests/' directory and named with 'test_' prefix. For example, we will write everything in 'test_hello_lines.lua'. It is usually a good idea to follow this template (will be assumed for the rest of this file): + +
Template for test files + + ```lua + local new_set = MiniTest.new_set + local expect, eq = MiniTest.expect, MiniTest.expect.equality + + local T = new_set() + + -- Actual tests definitions will go here + + return T + ``` + +

+ +- **'mini.nvim' dependency**. It is needed to use its 'mini.test' module. Proposed way to store it is in 'deps/mini.nvim' directory. Create it with `git`: + + ```bash + mkdir -p deps + git clone --filter=blob:none https://github.com/echasnovski/mini.nvim deps/mini.nvim + ``` + +- **Manual Neovim startup file** (a.k.a 'init.lua') with proposed path 'scripts/minimal_init.lua'. It will be used to ensure that Neovim processes can recognize your tested plugin and 'mini.nvim' dependency. Proposed minimal content: + +
'scripts/minimal_init.lua' + + ```lua + -- Add current directory to 'runtimepath' to be able to use 'lua' files + vim.cmd([[let &rtp.=','.getcwd()]]) + + -- Set up 'mini.test' only when calling headless Neovim (like with `make test`) + if #vim.api.nvim_list_uis() == 0 then + -- Add 'mini.nvim' to 'runtimepath' to be able to use 'mini.test' + -- Assumed that 'mini.nvim' is stored in 'deps/mini.nvim' + vim.cmd('set rtp+=deps/mini.nvim') + + -- Set up 'mini.test' + require('mini.test').setup() + end + ``` + +

+ +Recommended: + +- **Makefile**. In order to simplify running tests from shell and inside Continuous Integration services (like Github Actions), it is recommended to define Makefile. It will define steps for running tests. Proposed template: + +
Template for Makefile + + ``` + # Run all test files + test: deps/mini.nvim + nvim --headless --noplugin -u ./scripts/minimal_init.lua -c "lua MiniTest.run()" + + # Run test from file at `$FILE` environment variable + test_file: deps/mini.nvim + nvim --headless --noplugin -u ./scripts/minimal_init.lua -c "lua MiniTest.run_file('$(FILE)')" + + # Download 'mini.nvim' to use its 'mini.test' testing module + deps/mini.nvim: + @mkdir -p deps + git clone --filter=blob:none https://github.com/echasnovski/mini.nvim $@ + ``` + +

+ +- **'mini.test' script** at 'scripts/minitest.lua'. Use it to customize what is tested (which files, etc.) and how. Usually not needed, but otherwise should have some variant of a call to `MiniTest.run()`. + +## Running tests + +The 'mini.test' module out of the box supports two major ways of running tests: + +- **Interactive**. All test files will be run directly inside current Neovim session. This proved to be very useful for debugging while writing tests. To run tests, simply execute `:lua MiniTest.run()` / `:lua MiniTest.run_file()` / `:lua MiniTest.run_at_location()` (assuming, you already have 'mini.test' set up with `require('mini.test').setup()`). With default configuration this will result into floating window with information about results of test execution. Press `q` to close it. **Note**: Be careful though, as it might affect your current setup. To avoid this, [use child processes](#using-child-process) inside tests. +- **Headless** (from shell). Start headless Neovim process with proper startup file and execute `lua MiniTest.run()`. Assuming full file organization from previous section, this can be achieved with `make test`. This will show information about results of test execution directly in shell. + + +## Basics + +These sections will show some basic capabilities of 'mini.test' and how to use them. In all examples code blocks represent some whole test file (like 'tests/test_basics.lua'). + +### First test + +A test is defined as function assigned to a field of test set. If it throws error, test has failed. Test file should return single test set. Here is an example: + +```lua +local T = MiniTest.new_set() + +T['works'] = function() + local x = 1 + 1 + if x ~= 2 then + error('`x` is not equal to 2') + end +end + +return T +``` + +Writing `if .. error() .. end` is too tiresome. That is why 'mini.test' comes with very minimal but usually quite enough set of *expectations*: `MiniTest.expect`. They display the intended expectation between objects and will throw error with informative message if it doesn't hold. Here is a rewritten previous example: + +```lua +local T = MiniTest.new_set() + +T['works'] = function() + local x = 1 + 1 + MiniTest.expect.equality(x, 2) +end + +return T +``` + +Test sets can be nested. This will be useful in combination with [hooks](#hooks) and [parametrization](#test-parametrization): + +```lua +local T = MiniTest.new_set() + +T['big scope'] = new_set() + +T['big scope']['works'] = function() + local x = 1 + 1 + MiniTest.expect.equality(x, 2) +end + +T['big scope']['also works'] = function() + local x = 2 + 2 + MiniTest.expect.equality(x, 4) +end + +T['out of scope'] = function() + local x = 3 + 3 + MiniTest.expect.equality(x, 6) +end + +return T +``` + +**NOTE**: 'mini.test' supports emulation of busted-style testing by default. So previous example can be written like this: + +```lua +describe('big scope', function() + it('works', function() + local x = 1 + 1 + MiniTest.expect.equality(x, 2) + end) + + it('also works', function() + local x = 2 + 2 + MiniTest.expect.equality(x, 4) + end) +end) + +it('out of scope', function() + local x = 3 + 3 + MiniTest.expect.equality(x, 6) +end) + +-- NOTE: when using this style, no test set should be returned +``` + +Although this is possible, the rest of this file will use a recommended test set approach. + +### Builtin expectations + +These four builtin expectations are the ones used most commonly: + +```lua +local T = MiniTest.new_set() +local expect, eq = MiniTest.expect, MiniTest.expect.equality + +local x = 1 + 1 + +-- This is so frequently used that having short alias proved useful +T['expect.equality'] = function() + eq(x, 2) +end + +T['expect.no_equality'] = function() + expect.no_equality(x, 1) +end + +T['expect.error'] = function() + -- This expectation will pass because function will throw an error + expect.error(function() + if x == 2 then error('Deliberate error') end + end) +end + +T['expect.no_error'] = function() + -- This expectation will pass because function will *not* throw an error + expect.no_error(function() + if x ~= 2 then error('This should not be thrown') end + end) +end + +return T +``` + +### Writing custom expectation + +Although you can use `if ... error() ... end` approach, there is `MiniTest.new_expectation()` to simplify this process for some repetitive expectation. Here is an example used in this plugin: + +```lua +local T = MiniTest.new_set() + +local expect_match = MiniTest.new_expectation( + -- Expectation subject + 'string matching', + -- Predicate + function(str, pattern) return str:find(pattern) ~= nil end, + -- Fail context + function(str, pattern) + return string.format('Pattern: %s\nObserved string: %s', vim.inspect(pattern), str) + end +) + +T['string matching'] = function() + local x = 'abcd' + -- This will pass + expect_match(x, '^a') + + -- This will fail + expect_match(x, 'x') +end + +return T +``` + +Executing this content from file 'tests/test_basics.lua' will fail with the following message: + +``` +FAIL in "tests/test_basics.lua | string matching": + Failed expectation for string matching. + Pattern: "x" + Observed string: abcd + Traceback: + tests/test_basics.lua:20 +``` + +### Hooks + +Hooks are functions that will be called without arguments at predefined stages of test execution. They are defined for a test set. There are four types of hooks: + +- **pre_once** - executed before first (filtered) node. +- **pre_case** - executed before each case (even nested). +- **post_case** - executed after each case (even nested). +- **post_once** - executed after last (filtered) node. + +Example: + +```lua +local new_set = MiniTest.new_set +local expect, eq = MiniTest.expect, MiniTest.expect.equality + +local T = new_set() + +local n = 0 +local increase_n = function() n = n + 1 end + +T['hooks'] = new_set({ + hooks = { pre_once = increase_n, pre_case = increase_n, post_case = increase_n, post_once = increase_n }, +}) + +T['hooks']['work'] = function() + -- `n` will be increased twice: in `pre_once` and `pre_case` + eq(n, 2) +end + +T['hooks']['work again'] = function() + -- `n` will be increased twice: in `post_case` from previous case and + -- `pre_case` before this one + eq(n, 4) +end + +T['after hooks set'] = function() + -- `n` will be again increased twice: in `post_case` from previous case and + -- `post_once` after last case in T['hooks'] test set + eq(n, 6) +end + +return T +``` + +### Test parametrization + +One of the distinctive features of 'mini.test' is ability to leverage test parametrization. As hooks, it is a feature of test set. + +Example of simple parametrization: + +```lua +local new_set = MiniTest.new_set +local eq = MiniTest.expect.equality + +local T = new_set() + +-- Each parameter should be an array to allow parametrizing multiple arguments +T['parametrize'] = new_set({ parametrize = { { 1 }, { 2 } } }) + +-- This will result into two cases. First will fail. +T['parametrize']['works'] = function(x) + eq(x, 2) +end + +-- Parametrization can be nested. Cases are "multiplied" with every combination +-- of parameters. +T['parametrize']['nested'] = new_set({ parametrize = { { '1' }, { '2' } } }) + +-- This will result into four cases. Two of them will fail. +T['parametrize']['nested']['works'] = function(x, y) + eq(tostring(x), y) +end + +-- Parametrizing multiple arguments +T['parametrize multiple arguments'] = new_set({ parametrize = { { 1, 1 }, { 2, 2 } } }) + +-- This will result into two cases. Both will pass. +T['parametrize multiple arguments']['works'] = function(x, y) + eq(x, y) +end + +return T +``` + +### Runtime access to current cases + +There is `MiniTest.current` table containing information about "current" test cases. It has `all_cases` and `case` fields with all currently executed tests and *the* current case. + +Test case is a single unit of sequential test execution. It contains all information needed to execute test case along with data about its execution. Example: + +```lua +local new_set = MiniTest.new_set +local eq = MiniTest.expect.equality + +local T = new_set() + +T['MiniTest.current.all_cases'] = function() + -- A useful hack: show runtime data with expecting it to be something else + eq(MiniTest.current.all_cases, 0) +end + +T['MiniTest.current.case'] = function() + eq(MiniTest.current.case, 0) +end + +return T +``` + +This will result into following lengthy fails: + +
Fail information + +``` +FAIL in "tests/test_basics.lua | MiniTest.current.all_cases": + Failed expectation for equality. + Left: { { + args = {}, + data = {}, + desc = { "tests/test_basics.lua", "MiniTest.current.all_cases" }, + exec = { + fails = {}, + notes = {}, + state = "Executing test" + }, + hooks = { + post = {}, + pre = {} + }, + test = + }, { + args = {}, + data = {}, + desc = { "tests/test_basics.lua", "MiniTest.current.case" }, + hooks = { + post = {}, + pre = {} + }, + test = + } } + Right: 0 + Traceback: + tests/test_basics.lua:8 + +FAIL in "tests/test_basics.lua | MiniTest.current.case": + Failed expectation for equality. + Left: { + args = {}, + data = {}, + desc = { "tests/test_basics.lua", "MiniTest.current.case" }, + exec = { + fails = {}, + notes = {}, + state = "Executing test" + }, + hooks = { + post = {}, + pre = {} + }, + test = + } + Right: 0 + Traceback: + tests/test_basics.lua:12 +``` + +
+ +### Case helpers + +There are some functions intended to help writing more robust cases: `skip()`, `finally()`, and `add_note()`. The `MiniTest.current` table contains useful information about the current state of tests execution. + +Example: + +```lua +local T = MiniTest.new_set() + +-- `MiniTest.skip()` allows skipping rest of test execution while giving an +-- informative note. This test will pass with notes. +T['skip()'] = function() + if 1 + 1 == 2 then + MiniTest.skip('Apparently, 1 + 1 is 2') + end + error('1 + 1 is not 2') +end + +-- `MiniTest.add_note()` allows adding notes. Final state will have +-- "with notes" suffix. +T['add_note()'] = function() + MiniTest.add_note('This test is not important.') + error('Custom error.') +end + +-- `MiniTest.finally()` allows registering some function to be executed after +-- this case is finished executing (with or without an error). +T['finally()'] = function() + -- Add note only if test fails + MiniTest.finally(function() + if #MiniTest.current.case.exec.fails > 0 then + MiniTest.add_note('This test is flaky.') + end + end) + error('Expected error from time to time') +end + +return T +``` + +This will result into following messages: + +``` +NOTE in "tests/test_basics.lua | skip()": Apparently, 1 + 1 is 2 + +FAIL in "tests/test_basics.lua | add_note()": tests/test_basics.lua:16: Custom error. +NOTE in "tests/test_basics.lua | add_note()": This test is not important. + +FAIL in "tests/test_basics.lua | finally()": tests/test_basics.lua:28: Expected error from time to time +NOTE in "tests/test_basics.lua | finally()": This test is flaky. +``` + +## Customizing test run + +Test run consists from two stages: + +- **Collection**. It will source each appropriate file (customizable), combine all test sets into single test set, convert it from hierarchical to sequential form (array of test cases), and filter cases based on customizable predicate. +- **Execution**. It will safely execute array of test cases (with each pre-hooks, test action, post-hooks) one after another in scheduled asynchronous fashion while collecting information about how it went and calling customizable reporter methods. + +All configuration goes into `opts` argument of `MiniTest.run()`. + +### Collection: custom files and filter + +You can customize which files will be sourced and which cases will be later executed. Example: + +```lua +local new_set = MiniTest.new_set + +local T = new_set() + +-- Use `data` field to pass custom information for easier test management +T['fast'] = new_set({ data = { type = 'fast' } }) +T['fast']['first test'] = function() end +T['fast']['second test'] = function() end + +T['slow'] = new_set({ data = { type = 'slow' } }) +T['slow']['first test'] = function() vim.loop.sleep(1000) end +T['slow']['second test'] = function() vim.loop.sleep(1000) end + +return T +``` + +You can run only this file ('tests/test_basics.lua') and only "fast" cases with this call: + +```lua +MiniTest.run({ + collect = { + find_files = function() return { 'tests/test_basics.lua' } end, + filter_cases = function(case) return case.data.type == 'fast' end, + } +}) +``` + +### Execution: custom reporter and stop on first error + +You can customize execution of test cases with custom reporter (how test results are displayed in real time) and whether to stop execution after the first test case fail/error. Execution doesn't result into any output, instead it updates `MiniTest.current.all_cases` in place: each case gets an `exec` field with information about how its execution went. + +Example of showing status summary table in the command line after everything is finished: + +```lua +local reporter = { + -- Other used methods are `start(cases)` and `update(case_num)` + finish = function() + local summary = {} + for _, c in ipairs(MiniTest.current.all_cases) do + local state = c.exec.state + summary[state] = (summary[state] or 0) + 1 + end + + print(vim.inspect(summary, { newline = ' ', indent = '' })) + end, +} + +MiniTest.run({ execute = { reporter = reporter } }) +``` + +## Using child process + +Main feature of 'mini.test' which makes it different from other Lua testing frameworks is its design towards **custom usage of child Neovim process inside tests**. Ultimately, each test should be done with fresh Neovim process initialized with bare minimum setup (like allowing to load your plugin). To make this easier, there is a dedicated function `MiniTest.new_child_neovim()`. It returns an object with many useful helper methods, like for start/stop/restart, redirected execution (write code in current process, it gets executed in child one), emulating typing keys, **testing screen state**, etc. + +### Start/stop/restart + +You can start/stop/restart child process associated with this child Neovim object. Current (from which testing is initiated) and child Neovim processes can "talk" to each through RPC messages (see `:h RPC`). It means you can programmatically execute code inside child process, get its output inside current process, and test if it meets your expectation. Child process is headless but fully functioning process which allows you to test things such as extmarks, floating windows, etc. + +Although this approach proved to be useful and efficient, it is not ideal. Here are some limitations: + - Due to current RPC protocol implementation functions and userdata can't be used in both input and output with child process. Indicator of this issue is a `Cannot convert given lua type` error. Usual solution is to move some logic on the side of child process, like create and use global functions (note that they will be "forgotten" after next restart). + - Sometimes hanging process will occur: it stops executing without any output. Most of the time it is because Neovim process is "blocked", i.e. it waits for user input and won't return from other call. Common causes are active hit-enter-prompt (solution: increase prompt height to a bigger value) or Operator-pending mode (solution: exit it). To mitigate this experience, most helper methods will throw an error if they can deduce that immediate execution will lead to hanging state. + +Here is recommended setup for managing child processes. It will make fresh Neovim process before every test case: + +```lua +local child = MiniTest.new_child_neovim() + +local T = MiniTest.new_set({ + hooks = { + pre_case = function() + -- Restart child process with custom 'init.lua' script + child.restart({ '-u', 'scripts/minimal_init.lua' }) + -- Load tested plugin + child.lua([[M = require('hello_lines')]]) + end, + -- Stop once all test cases are finished + post_once = child.stop, + }, +}) + +-- Define some tests here + +return T +``` + +### Executing Lua code + +Previous section already demonstrated that there is a `child.lua()` method. It will execute arbitrary Lua code in the form of a single string. This is basically a wrapper for `vim.api.nvim_exec_lua()`. There is also a convenience wrapper `child.lua_get()` which is essentially a `child.lua('return ' .. s, ...)`. Examples: + +```lua +local eq = MiniTest.expect.equality + +local child = MiniTest.new_child_neovim() + +local T = MiniTest.new_set({ + hooks = { + pre_case = function() + child.restart({ '-u', 'scripts/minimal_init.lua' }) + child.lua([[M = require('hello_lines')]]) + end, + post_once = child.stop, + }, +}) + +T['lua()'] = MiniTest.new_set() + +T['lua()']['works'] = function() + child.lua('_G.n = 0; _G.n = _G.n + 1') + eq(child.lua('return _G.n'), 1) +end + +T['lua()']['can use tested plugin'] = function() + eq(child.lua('return M.compute()'), { 'Hello world' }) + eq(child.lua([[return M.compute({'a', 'b'})]]), { 'Hello a', 'Hello b' }) +end + +T['lua_get()'] = function() + child.lua('_G.n = 0') + eq(child.lua_get('_G.n'), child.lua('return _G.n')) +end + +return T +``` + +### Managing Neovim options and state + +Although ability to execute arbitrary Lua code is technically enough to write any tests, it gets cumbersome very quickly due it using only string input. That is why there are many convenience helpers with the same idea: write code inside current Neovim process that will be automatically executed same way in child process. Here is the showcase: + +```lua +local new_set = MiniTest.new_set +local eq = MiniTest.expect.equality + +local child = MiniTest.new_child_neovim() + +local T = MiniTest.new_set({ + hooks = { + pre_case = function() + child.restart({ '-u', 'scripts/minimal_init.lua' }) + child.lua([[M = require('hello_lines')]]) + end, + post_once = child.stop, + }, +}) + +-- These methods will "redirect" execution to child through `vim.rpcrequest()` +-- and `vim.rpcnotify()` respectively. Any call `child.api.xxx(...)` returns +-- the output of `vim.api.xxx(...)` executed inside child process. +T['api()/api_notify()'] = function() + -- Set option. For some reason, first buffer is 'readonly' which leads to + -- high delay in test execution + child.api.nvim_set_option_value('readonly', false, { buf = 0 }) + + -- Set all lines + child.api.nvim_buf_set_lines(0, 0, -1, true, { 'aaa' }) + + -- Get all lines and test with expected ones + eq(child.api.nvim_buf_get_lines(0, 0, -1, true), { 'aaa' }) +end + +-- Execute Vimscript with or without capturing its output +T['cmd()/cmd()'] = function() + child.cmd('hi Comment guifg=#aaaaaa') + eq(child.cmd_capture('hi Comment'), 'Comment xxx guifg=#aaaaaa') +end + +-- There are redirection tables for most of the main Neovim functionality +T['various redirection tables with methods'] = function() + eq(child.fn.fnamemodify('hello_lines.lua', ':t:r'), 'hello_lines') + eq(child.loop.hrtime() > 0, true) + eq(child.lsp.get_clients(), {}) + + -- And more +end + +-- There are redirection tables for scoped (buffer, window, etc.) variables +-- You can use them to both set and get values +T['redirection tables for variables'] = function() + child.b.aaa = true + eq(child.b.aaa, true) + eq(child.b.aaa, child.lua_get('vim.b.aaa')) +end + +-- There are redirection tables for scoped (buffer, window, etc.) options +-- You can use them to both set and get values +T['redirection tables for options'] = function() + child.o.lines, child.o.columns = 5, 12 + eq(child.o.lines, 5) + eq({ child.o.lines, child.o.columns }, child.lua_get('{ vim.o.lines, vim.o.columns }')) +end + +return T +``` + +### Emulate typing keys + +Very important part of testing is emulating user typing keys. There is a special `child.type_keys()` helper method for that. Examples: + +```lua +local eq = MiniTest.expect.equality + +local child = MiniTest.new_child_neovim() + +local T = MiniTest.new_set({ + hooks = { + pre_case = function() + child.restart({ '-u', 'scripts/minimal_init.lua' }) + child.bo.readonly = false + child.lua([[M = require('hello_lines')]]) + end, + post_once = child.stop, + }, +}) + +local get_lines = function() return child.api.nvim_buf_get_lines(0, 0, -1, true) end + +T['type_keys()'] = MiniTest.new_set() + +T['type_keys()']['works'] = function() + -- It can take one string + child.type_keys('iabcde') + eq(get_lines(), { 'abcde' }) + eq(child.fn.mode(), 'n') + + -- Or several strings which improves readability + child.type_keys('cc', 'fghij', '') + eq(get_lines(), { 'fghij' }) + + -- Or tables of strings (possibly nested) + child.type_keys({ 'cc', { 'j', 'k', 'l', 'm', 'n' } }) + eq(get_lines(), { 'jklmn' }) +end + +T['type_keys()']['allows custom delay'] = function() + -- This adds delay of 500 ms after each supplied string (three times here) + child.type_keys(500, 'i', 'abcde', '') + eq(get_lines(), { 'abcde' }) +end + +return T +``` + +### Test screen state with screenshots + +One of the main difficulties in testing Neovim plugins is verifying that something is actually displayed in the way you intend. Like general highlighting, statusline, tabline, sign column, extmarks, etc. Testing screen state with screenshots makes this a lot easier. There is a `child.get_screenshot()` method which basically calls `screenstring()` (`:h screenstring()`) and `screenattr()` (`:h screenattr()`) for every visible cell (row from 1 to 'lines' option, column from 1 to 'columns' option). It then returns screenshot with two layers: + +- - "2d array" (row-column) of single characters displayed at particular cells. +- - "2d array" (row-column) of symbols representing how text is displayed (basically, "coded" appearance/highlighting). They should be used only in relation to each other: same/different symbols for two cells mean same/different visual appearance. Note: there will be false positives if there are more than 94 different attribute values. To make output more portable and visually useful, outputs of `screenattr()` are coded with single character symbols. + +Couple of caveats: + +- As is apparent from use of `screenattr()`, these screenshots **can't tell how exactly cell is highlighted**, only **if two cells are highlighted the same**. This is due to the currently lacking functionality in Neovim itself. This might change in the future. + +To help manage testing screen state, there is a special `MiniTest.expect.reference_screenshot(screenshot, path, opts)` method. It takes screenshot table along with optional path of where to save this screenshot (if not supplied, inferred from test case description and put in 'tests/screenshots' directory). On first run it will automatically create reference screenshot at `path`. On later runs it will compare current screenshot with reference. Will throw informative error with helpful information if they don't match exactly. + +Example: + +```lua +local expect = MiniTest.expect + +local child = MiniTest.new_child_neovim() + +local T = MiniTest.new_set({ + hooks = { + pre_case = function() + child.restart({ '-u', 'scripts/minimal_init.lua' }) + child.bo.readonly = false + child.lua([[M = require('hello_lines')]]) + end, + post_once = child.stop, + }, +}) + +T['set_lines()'] = MiniTest.new_set({ parametrize = { {}, { 0, { 'a' } }, { 0, { 1, 2, 3 } } } }) + +T['set_lines()']['works'] = function(buf_id, lines) + child.o.lines, child.o.columns = 10, 15 + child.lua('M.set_lines(...)', { buf_id, lines }) + expect.reference_screenshot(child.get_screenshot()) +end + +return T +``` + +This will result into three files in 'tests/screenshots' with names containing test case description along with supplied arguments. Here is example reference screenshot for `{ 0, { 1, 2, 3 } }` arguments (line numbers and ruler for columns is added as file specification to make it easier to find differences between two screenshots): + +``` +--|---------|----- +01|Hello 1 +02|Hello 2 +03|Hello 3 +04|~ +05|~ +06|~ +07|~ +08|~ +09|`) corresponding to benchmarked setup. Configuration files are created in three different groups: + +- 'init_starter-default.lua' and 'init_empty.lua' represent default 'mini.starter' setup and corresponding 'init.lua' without 'mini.starter'. +- 'init_startify-starter', 'init_startify-original', and 'init_startify-alpha' have comparable output imitating default 'vim-startify' with empty header. +- 'init_dashboard-starter', 'init_dashboard-original', and 'init_dashboard-alpha' have comparable output imitating default 'dashboard-nvim' enabled keybindings. + +Summary of startup-times for various 'init' files from 'init-files/' directory can be seen in 'startup-summary.md'. Current benchmark was done with Neovim 0.5.1 on Ubuntu 18.04 (i3-6100). Exact states of plugins used: + +- [echasnovski/mini.nvim](https://github.com/echasnovski/mini.nvim/tree/cfa108eeaead1abd8854a1f1cfb02e72482641ce) +- [mhinz/vim-startify](https://github.com/mhinz/vim-startify/tree/81e36c352a8deea54df5ec1e2f4348685569bed2) +- [glepnir/dashboard-nvim](https://github.com/glepnir/dashboard-nvim/tree/ba98ab86487b8eda3b0934b5423759944b5f7ebd) +- [goolord/alpha-nvim](https://github.com/goolord/alpha-nvim/tree/7a49086bf9197f573b396d4ac46262c02dfb9aec) + +To rerun locally execute these commands (preferably without anything else running in the background and monitor always on): + +```bash +chmod +x install.sh +./install.sh + +# This will create file 'startup-times.csv' and update 'startup-summary.md' +# WARNING: this will lead to screen flicker +chmod +x benchmark.sh +./benchmark.sh +``` + +Structure: + +- 'init-files/' - directory with all configuration files being benchmarked. NOTE: all of them contain auto-closing command at the end (`defer_fn(...)`) to most accurately measure startup time. To view its output, remove this command. +- 'benchmark.sh' - script for performing benchmark which is as close to real-world usage as reasonably possible and computing its summary. Its outputs are 'startup-times.csv' and 'startup-summary.md'. All configuration files are benchmarked in alternate fashion: first 'init' file, second, ..., last, first, etc. WARNING: EXECUTION OF THIS SCRIPT LEADS TO MONITOR FLICKERING WHICH MAY CAUSE HARM TO YOUR HEALTH. This is needed to ensure that Neovim was actually opened and something was drawn. +- 'install.sh' - script for installing all required plugins. NOTE: run `chmod +x install.sh` to make it executable. +- 'make_summary.py' - Python script to compute summary statistics of csv-file. +- 'startup-times.csv' (ignored by Git, latest one can be seen in [this gist](https://gist.github.com/echasnovski/85c334396df6fd0cea7bb42246efb97b)) - csv-file with measured startup times. Each row represent single startup round: when all 'init' files are run alternately. Each column represents startup times of single 'init' file. +- 'startup-summary.md' - markdown file as output of 'make_summary.py'. Contains summaries of 'startup-times.csv'. diff --git a/config/neovim/store/lazy-plugins/mini.nvim/benchmarks/starter/benchmark.sh b/config/neovim/store/lazy-plugins/mini.nvim/benchmarks/starter/benchmark.sh new file mode 100755 index 00000000..54b38623 --- /dev/null +++ b/config/neovim/store/lazy-plugins/mini.nvim/benchmarks/starter/benchmark.sh @@ -0,0 +1,56 @@ +#!/nix/store/4bj2kxdm1462fzcc2i2s4dn33g2angcc-bash-5.2p32/bin/bash + +# Perform benchmarking of startup times with different Neovim 'init' files. +# Execute `nvim -u <*> --startuptime <*>` several times (as closely to actual +# usage as possible) in rounds alternating between input 'init' files (to "mix" +# possible random noise). Store output in .csv file with rows containing +# startup times for a single round, columns - for a single 'init' file. + +# WARNING: EXECUTION OF THIS SCRIPT LEADS TO FLICKERING OF SCREEN WHICH WHICH +# MAY CAUSE HARM TO YOUR HEALTH. This is because every 'init' file leads to an +# actual opening of Neovim with later automatic closing. + +# Number of rounds to perform benchmark +n_rounds=1000 + +# Path to output .csv file with startup times per round +csv_file=startup-times.csv + +# Path to output .md file with summary table +summary_file=startup-summary.md + +# 'Init' files ids with actual paths computed as 'init-files/init_*.lua' +init_files=(starter-default empty startify-starter startify-original startify-alpha dashboard-starter dashboard-original dashboard-alpha) + +function comma_join { local IFS=","; shift; echo "$*"; } + +function benchmark { + rm -f "$csv_file" + touch "$csv_file" + + local tmp_bench_file="tmp-bench.txt" + touch "$tmp_bench_file" + + comma_join -- "$@" >> startup-times.csv + + for i in $(seq 1 $n_rounds); do + echo "Round $i" + + local bench_times=() + + for init_file in "$@"; do + nvim -u "init-files/init_$init_file.lua" --startuptime "$tmp_bench_file" + local b_time=$(tail -n 1 "$tmp_bench_file" | cut -d " " -f1) + bench_times=("${bench_times[@]}" "$b_time") + done + + comma_join -- "${bench_times[@]}" >> "$csv_file" + + rm "$tmp_bench_file" + done +} + +benchmark "${init_files[@]}" + +# Produce output summary +./make_summary.py "${csv_file}" "${summary_file}" diff --git a/config/neovim/store/lazy-plugins/mini.nvim/benchmarks/starter/init-files/init_dashboard-alpha.lua b/config/neovim/store/lazy-plugins/mini.nvim/benchmarks/starter/init-files/init_dashboard-alpha.lua new file mode 100644 index 00000000..fa9497f3 --- /dev/null +++ b/config/neovim/store/lazy-plugins/mini.nvim/benchmarks/starter/init-files/init_dashboard-alpha.lua @@ -0,0 +1,21 @@ +vim.cmd([[set packpath=/tmp/nvim/site]]) +vim.cmd([[packadd alpha-nvim]]) + +local alpha = require('alpha') +local dashboard = require('alpha.themes.dashboard') +alpha.setup(dashboard.opts) + +vim.g.mapleader = ' ' + +-- Some of these keybindings doesn't exactly match with what is shown in +-- buffer, but this doesn't really matter. Main point is that some keybindings +-- should be pre-made. +vim.api.nvim_set_keymap('n', 'ff', ':Telescope find_files', { noremap = true, silent = true }) +vim.api.nvim_set_keymap('n', 'fh', ':Telescope oldfiles', { noremap = true, silent = true }) +vim.api.nvim_set_keymap('n', 'fr', ':Telescope jumplist', { noremap = true, silent = true }) +vim.api.nvim_set_keymap('n', 'fg', ':Telescope live_grep', { noremap = true, silent = true }) +vim.api.nvim_set_keymap('n', 'fm', ':Telescope marks', { noremap = true, silent = true }) +vim.api.nvim_set_keymap('n', 'sl', ':Telescope command_history', { noremap = true, silent = true }) + +-- Close Neovim just after fully opening it. Randomize to make "more real". +vim.defer_fn(function() vim.cmd([[quit]]) end, 100 + 200 * math.random()) diff --git a/config/neovim/store/lazy-plugins/mini.nvim/benchmarks/starter/init-files/init_dashboard-original.lua b/config/neovim/store/lazy-plugins/mini.nvim/benchmarks/starter/init-files/init_dashboard-original.lua new file mode 100644 index 00000000..afaf2665 --- /dev/null +++ b/config/neovim/store/lazy-plugins/mini.nvim/benchmarks/starter/init-files/init_dashboard-original.lua @@ -0,0 +1,17 @@ +vim.cmd([[set packpath=/tmp/nvim/site]]) +vim.cmd([[packadd dashboard-nvim]]) + +vim.g.mapleader = ' ' +vim.g.dashboard_default_executive = 'telescope' +vim.api.nvim_set_keymap('n', 'ss', ':SessionSave', {}) +vim.api.nvim_set_keymap('n', 'sl', ':SessionLoad', {}) + +vim.api.nvim_set_keymap('n', 'fh', ':DashboardFindHistory', { noremap = true, silent = true }) +vim.api.nvim_set_keymap('n', 'ff', ':DashboardFindFile', { noremap = true, silent = true }) +vim.api.nvim_set_keymap('n', 'tc', ':DashboardChangeColorscheme', { noremap = true, silent = true }) +vim.api.nvim_set_keymap('n', 'fa', ':DashboardFindWord', { noremap = true, silent = true }) +vim.api.nvim_set_keymap('n', 'fb', ':DashboardJumpMark', { noremap = true, silent = true }) +vim.api.nvim_set_keymap('n', 'cn', ':DashboardNewFile', { noremap = true, silent = true }) + +-- Close Neovim just after fully opening it. Randomize to make "more real". +vim.defer_fn(function() vim.cmd([[quit]]) end, 100 + 200 * math.random()) diff --git a/config/neovim/store/lazy-plugins/mini.nvim/benchmarks/starter/init-files/init_dashboard-starter.lua b/config/neovim/store/lazy-plugins/mini.nvim/benchmarks/starter/init-files/init_dashboard-starter.lua new file mode 100644 index 00000000..f9593e21 --- /dev/null +++ b/config/neovim/store/lazy-plugins/mini.nvim/benchmarks/starter/init-files/init_dashboard-starter.lua @@ -0,0 +1,18 @@ +vim.cmd([[set packpath=/tmp/nvim/site]]) +vim.cmd([[packadd mini.nvim]]) + +local starter = require('mini.starter') +starter.setup({ + items = { + { name = 'Edit file', action = [[enew]], section = 'Actions' }, + { name = 'Quit', action = [[quit]], section = 'Actions' }, + starter.sections.telescope(), + }, + content_hooks = { + starter.gen_hook.adding_bullet(), + starter.gen_hook.aligning('center', 'center'), + }, +}) + +-- Close Neovim just after fully opening it. Randomize to make "more real". +vim.defer_fn(function() vim.cmd([[quit]]) end, 100 + 200 * math.random()) diff --git a/config/neovim/store/lazy-plugins/mini.nvim/benchmarks/starter/init-files/init_empty.lua b/config/neovim/store/lazy-plugins/mini.nvim/benchmarks/starter/init-files/init_empty.lua new file mode 100644 index 00000000..f7f2c153 --- /dev/null +++ b/config/neovim/store/lazy-plugins/mini.nvim/benchmarks/starter/init-files/init_empty.lua @@ -0,0 +1,4 @@ +vim.cmd([[set packpath=/tmp/nvim/site]]) + +-- Close Neovim just after fully opening it. Randomize to make "more real". +vim.defer_fn(function() vim.cmd([[quit]]) end, 100 + 200 * math.random()) diff --git a/config/neovim/store/lazy-plugins/mini.nvim/benchmarks/starter/init-files/init_starter-default.lua b/config/neovim/store/lazy-plugins/mini.nvim/benchmarks/starter/init-files/init_starter-default.lua new file mode 100644 index 00000000..515afb36 --- /dev/null +++ b/config/neovim/store/lazy-plugins/mini.nvim/benchmarks/starter/init-files/init_starter-default.lua @@ -0,0 +1,7 @@ +vim.cmd([[set packpath=/tmp/nvim/site]]) +vim.cmd([[packadd mini.nvim]]) + +require('mini.starter').setup() + +-- Close Neovim just after fully opening it. Randomize to make "more real". +vim.defer_fn(function() vim.cmd([[quit]]) end, 100 + 200 * math.random()) diff --git a/config/neovim/store/lazy-plugins/mini.nvim/benchmarks/starter/init-files/init_startify-alpha.lua b/config/neovim/store/lazy-plugins/mini.nvim/benchmarks/starter/init-files/init_startify-alpha.lua new file mode 100644 index 00000000..ec7b4772 --- /dev/null +++ b/config/neovim/store/lazy-plugins/mini.nvim/benchmarks/starter/init-files/init_startify-alpha.lua @@ -0,0 +1,10 @@ +vim.cmd([[set packpath=/tmp/nvim/site]]) +vim.cmd([[packadd alpha-nvim]]) + +local alpha = require('alpha') +local startify = require('alpha.themes.startify') +startify.nvim_web_devicons.enabled = false +alpha.setup(startify.opts) + +-- Close Neovim just after fully opening it. Randomize to make "more real". +vim.defer_fn(function() vim.cmd([[quit]]) end, 100 + 200 * math.random()) diff --git a/config/neovim/store/lazy-plugins/mini.nvim/benchmarks/starter/init-files/init_startify-original.lua b/config/neovim/store/lazy-plugins/mini.nvim/benchmarks/starter/init-files/init_startify-original.lua new file mode 100644 index 00000000..fe2640f3 --- /dev/null +++ b/config/neovim/store/lazy-plugins/mini.nvim/benchmarks/starter/init-files/init_startify-original.lua @@ -0,0 +1,7 @@ +vim.cmd([[set packpath=/tmp/nvim/site]]) +vim.cmd([[packadd vim-startify]]) + +vim.g.startify_custom_header = '' + +-- Close Neovim just after fully opening it. Randomize to make "more real". +vim.defer_fn(function() vim.cmd([[quit]]) end, 100 + 200 * math.random()) diff --git a/config/neovim/store/lazy-plugins/mini.nvim/benchmarks/starter/init-files/init_startify-starter.lua b/config/neovim/store/lazy-plugins/mini.nvim/benchmarks/starter/init-files/init_startify-starter.lua new file mode 100644 index 00000000..743daf87 --- /dev/null +++ b/config/neovim/store/lazy-plugins/mini.nvim/benchmarks/starter/init-files/init_startify-starter.lua @@ -0,0 +1,20 @@ +vim.cmd([[set packpath=/tmp/nvim/site]]) +vim.cmd([[packadd mini.nvim]]) + +local starter = require('mini.starter') +starter.setup({ + evaluate_single = true, + items = { + starter.sections.builtin_actions(), + starter.sections.recent_files(10, false), + starter.sections.recent_files(10, true), + }, + content_hooks = { + starter.gen_hook.adding_bullet(), + starter.gen_hook.indexing('all', { 'Builtin actions' }), + starter.gen_hook.padding(3, 2), + }, +}) + +-- Close Neovim just after fully opening it. Randomize to make "more real". +vim.defer_fn(function() vim.cmd([[quit]]) end, 100 + 200 * math.random()) diff --git a/config/neovim/store/lazy-plugins/mini.nvim/benchmarks/starter/install.sh b/config/neovim/store/lazy-plugins/mini.nvim/benchmarks/starter/install.sh new file mode 100755 index 00000000..168ee7f0 --- /dev/null +++ b/config/neovim/store/lazy-plugins/mini.nvim/benchmarks/starter/install.sh @@ -0,0 +1,10 @@ +#!/nix/store/4bj2kxdm1462fzcc2i2s4dn33g2angcc-bash-5.2p32/bin/bash +PLUGINPATH=/tmp/nvim/site/pack/bench/opt +rm -rf $PLUGINPATH +mkdir -p $PLUGINPATH +cd $PLUGINPATH + +git clone --depth 1 https://github.com/echasnovski/mini.nvim +git clone --depth 1 https://github.com/goolord/alpha-nvim +git clone --depth 1 https://github.com/glepnir/dashboard-nvim +git clone --depth 1 https://github.com/mhinz/vim-startify diff --git a/config/neovim/store/lazy-plugins/mini.nvim/benchmarks/starter/make_summary.py b/config/neovim/store/lazy-plugins/mini.nvim/benchmarks/starter/make_summary.py new file mode 100755 index 00000000..a3a2e677 --- /dev/null +++ b/config/neovim/store/lazy-plugins/mini.nvim/benchmarks/starter/make_summary.py @@ -0,0 +1,68 @@ +#!/usr/bin/env python +import argparse +import csv +import statistics + + +def read_csv_columns(csv_path): + with open(csv_path, "r") as csvfile: + reader = csv.DictReader(csvfile) + res = {h: [] for h in reader.fieldnames} + for line_dict in reader: + for h, val in line_dict.items(): + res[h].append(float(val)) + + return res + + +def summarise_array(x): + return { + "median": statistics.median(x), + "mean": statistics.mean(x), + "stdev": statistics.stdev(x), + "minimum": min(x), + "maximum": max(x), + } + + +def save_md_summary(summary, output_path): + lines = [] + + row_names = list(summary.keys()) + col_names = ["init file"] + list(summary[row_names[0]].keys()) + lines.append(" | ".join(col_names)) + lines.append(" | ".join("---" for _ in col_names)) + + for row_n in row_names: + l = [row_n] + [str(round(x, 1)) + 'ms' for x in summary[row_n].values()] + lines.append(" | ".join(l)) + + lines = ["| " + l + " |\n" for l in lines] + + with open(output_path, "w") as output: + for l in lines: + output.write(l) + + +def compute_summary(csv_path): + columns = read_csv_columns(csv_path) + return {h: summarise_array(x) for h, x in columns.items()} + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument( + "input_csv", help="path to file with startup times in csv format", type=str + ) + parser.add_argument( + "output_md", + help="output path where markdown summary table will be written", + type=str, + ) + args = parser.parse_args() + + save_md_summary(compute_summary(args.input_csv), args.output_md) + + +if __name__ == "__main__": + main() diff --git a/config/neovim/store/lazy-plugins/mini.nvim/benchmarks/starter/startup-summary.md b/config/neovim/store/lazy-plugins/mini.nvim/benchmarks/starter/startup-summary.md new file mode 100644 index 00000000..3495085d --- /dev/null +++ b/config/neovim/store/lazy-plugins/mini.nvim/benchmarks/starter/startup-summary.md @@ -0,0 +1,10 @@ +| init file | median | mean | stdev | minimum | maximum | +| --- | --- | --- | --- | --- | --- | +| starter-default | 69.0ms | 70.8ms | 4.3ms | 63.6ms | 82.7ms | +| empty | 64.1ms | 65.8ms | 4.3ms | 60.0ms | 79.4ms | +| startify-starter | 70.2ms | 71.9ms | 4.5ms | 64.3ms | 85.7ms | +| startify-original | 80.3ms | 82.2ms | 4.5ms | 76.4ms | 107.2ms | +| startify-alpha | 72.1ms | 73.8ms | 4.3ms | 66.5ms | 86.9ms | +| dashboard-starter | 68.4ms | 70.3ms | 4.5ms | 63.3ms | 102.9ms | +| dashboard-original | 70.6ms | 72.3ms | 4.4ms | 65.5ms | 99.6ms | +| dashboard-alpha | 69.8ms | 71.5ms | 4.4ms | 64.7ms | 97.2ms | diff --git a/config/neovim/store/lazy-plugins/mini.nvim/colors/minicyan.lua b/config/neovim/store/lazy-plugins/mini.nvim/colors/minicyan.lua new file mode 100644 index 00000000..ce7db7a0 --- /dev/null +++ b/config/neovim/store/lazy-plugins/mini.nvim/colors/minicyan.lua @@ -0,0 +1,95 @@ +-- 'Minicyan' color scheme +-- Derived from base16 (https://github.com/chriskempson/base16) and +-- mini_palette palette generator +local use_cterm, palette + +-- Dark palette is an output of 'MiniBase16.mini_palette': +-- - Background '#0A2A2A' (LCh(uv) = 15-10-192) +-- - Foreground '#D0D0D0' (Lch(uv) = 83-0-0) +-- - Accent chroma 50 +if vim.o.background == 'dark' then + palette = { + base00 = '#0a2a2a', + base01 = '#324747', + base02 = '#556868', + base03 = '#788a8a', + base04 = '#bbbbbb', + base05 = '#d0d0d0', + base06 = '#e6e6e6', + base07 = '#fcfcfc', + base08 = '#ebcd91', + base09 = '#9f8340', + base0A = '#209870', + base0B = '#82e3ba', + base0C = '#bb6d9b', + base0D = '#a9d4ff', + base0E = '#ffb9e5', + base0F = '#598ab9', + } + use_cterm = { + base00 = 235, + base01 = 238, + base02 = 241, + base03 = 102, + base04 = 250, + base05 = 252, + base06 = 254, + base07 = 231, + base08 = 186, + base09 = 136, + base0A = 29, + base0B = 115, + base0C = 132, + base0D = 153, + base0E = 218, + base0F = 67, + } +end + +-- Light palette is an 'inverted dark', output of 'MiniBase16.mini_palette': +-- - Background '#C0D2D2' (LCh(uv) = 83-10-192) +-- - Foreground '#262626' (Lch(uv) = 15-0-0) +-- - Accent chroma 80 +if vim.o.background == 'light' then + palette = { + base00 = '#c0d2d2', + base01 = '#9badad', + base02 = '#778989', + base03 = '#546767', + base04 = '#353535', + base05 = '#262626', + base06 = '#181818', + base07 = '#040404', + base08 = '#402100', + base09 = '#855f00', + base0A = '#007d3c', + base0B = '#003d00', + base0C = '#b12985', + base0D = '#003fb6', + base0E = '#7e0052', + base0F = '#006cb4', + } + use_cterm = { + base00 = 252, + base01 = 248, + base02 = 102, + base03 = 241, + base04 = 237, + base05 = 235, + base06 = 234, + base07 = 232, + base08 = 235, + base09 = 94, + base0A = 29, + base0B = 22, + base0C = 126, + base0D = 25, + base0E = 89, + base0F = 25, + } +end + +if palette then + require('mini.base16').setup({ palette = palette, use_cterm = use_cterm }) + vim.g.colors_name = 'minicyan' +end diff --git a/config/neovim/store/lazy-plugins/mini.nvim/colors/minischeme.lua b/config/neovim/store/lazy-plugins/mini.nvim/colors/minischeme.lua new file mode 100644 index 00000000..04a2bed4 --- /dev/null +++ b/config/neovim/store/lazy-plugins/mini.nvim/colors/minischeme.lua @@ -0,0 +1,95 @@ +-- 'Minischeme' color scheme +-- Derived from base16 (https://github.com/chriskempson/base16) and +-- mini_palette palette generator +local use_cterm, palette + +-- Dark palette is an output of 'MiniBase16.mini_palette': +-- - Background '#112641' (LCh(uv) = 15-20-250) +-- - Foreground '#e2e98f' (Lch(uv) = 90-60-90) +-- - Accent chroma 75 +if vim.o.background == 'dark' then + palette = { + base00 = '#112641', + base01 = '#3a475e', + base02 = '#606b81', + base03 = '#8691a7', + base04 = '#d5dc81', + base05 = '#e2e98f', + base06 = '#eff69c', + base07 = '#fcffaa', + base08 = '#ffcfa0', + base09 = '#cc7e46', + base0A = '#46a436', + base0B = '#9ff895', + base0C = '#ca6ecf', + base0D = '#42f7ff', + base0E = '#ffc4ff', + base0F = '#00a5c5', + } + use_cterm = { + base00 = 235, + base01 = 238, + base02 = 242, + base03 = 246, + base04 = 186, + base05 = 186, + base06 = 229, + base07 = 229, + base08 = 223, + base09 = 173, + base0A = 71, + base0B = 156, + base0C = 170, + base0D = 51, + base0E = 189, + base0F = 38, + } +end + +-- Light palette is an 'inverted dark', output of 'MiniBase16.mini_palette': +-- - Background '#e2e5ca' (LCh(uv) = 90-20-90) +-- - Foreground '#002a83' (Lch(uv) = 15-60-250) +-- - Accent chroma 75 +if vim.o.background == 'light' then + palette = { + base00 = '#e2e5ca', + base01 = '#bcbfa4', + base02 = '#979a7e', + base03 = '#73765a', + base04 = '#324490', + base05 = '#002a83', + base06 = '#0000e4', + base07 = '#080500', + base08 = '#5e2200', + base09 = '#a86400', + base0A = '#008818', + base0B = '#004500', + base0C = '#b34aad', + base0D = '#004b76', + base0E = '#7d0077', + base0F = '#0086ae', + } + use_cterm = { + base00 = 254, + base01 = 250, + base02 = 246, + base03 = 243, + base04 = 239, + base05 = 18, + base06 = 20, + base07 = 232, + base08 = 52, + base09 = 130, + base0A = 28, + base0B = 22, + base0C = 133, + base0D = 24, + base0E = 90, + base0F = 31, + } +end + +if palette then + require('mini.base16').setup({ palette = palette, use_cterm = use_cterm }) + vim.g.colors_name = 'minischeme' +end diff --git a/config/neovim/store/lazy-plugins/mini.nvim/colors/randomhue.lua b/config/neovim/store/lazy-plugins/mini.nvim/colors/randomhue.lua new file mode 100644 index 00000000..d8d85720 --- /dev/null +++ b/config/neovim/store/lazy-plugins/mini.nvim/colors/randomhue.lua @@ -0,0 +1,16 @@ +local hues = require('mini.hues') + +-- Generate random config with initialized random seed (otherwise it won't be +-- random during startup) +math.randomseed(vim.loop.hrtime()) +local base_colors = hues.gen_random_base_colors() + +hues.setup({ + background = base_colors.background, + foreground = base_colors.foreground, + n_hues = 8, + saturation = vim.o.background == 'dark' and 'medium' or 'high', + accent = 'bg', +}) + +vim.g.colors_name = 'randomhue' diff --git a/config/neovim/store/lazy-plugins/mini.nvim/doc/mini-ai.txt b/config/neovim/store/lazy-plugins/mini.nvim/doc/mini-ai.txt new file mode 100644 index 00000000..b84f04d0 --- /dev/null +++ b/config/neovim/store/lazy-plugins/mini.nvim/doc/mini-ai.txt @@ -0,0 +1,796 @@ +*mini.ai* Extend and create a/i textobjects +*MiniAi* + +MIT License Copyright (c) 2022 Evgeni Chasnovski + +============================================================================== + +Enhance some builtin |text-objects| (like |a(|, |a)|, |a'|, and more), +create new ones (like `a*`, `a`, `af`, `a?`, and more), and allow +user to create their own. + +Features: +- Customizable creation of `a`/`i` textobjects using Lua patterns and functions. + Supports: + - Dot-repeat. + - |v:count|. + - Different search methods (see |MiniAi.config|). + - Consecutive application (update selection without leaving Visual mode). + - Aliases for multiple textobjects. + +- Comprehensive builtin textobjects (see more in |MiniAi-textobject-builtin|): + - Balanced brackets (with and without whitespace) plus alias. + - Balanced quotes plus alias. + - Function call. + - Argument. + - Tag. + - Derived from user prompt. + - Default for punctuation, digit, space, or tab. + + For more textobjects see |MiniExtra.gen_ai_spec|. + +- Motions for jumping to left/right edge of textobject. + +- Set of specification generators to tweak some builtin textobjects (see + |MiniAi.gen_spec|). + +- Treesitter textobjects (through |MiniAi.gen_spec.treesitter()| helper). + +This module works by defining mappings for both `a` and `i` in Visual and +Operator-pending mode. After typing, they wait for single character user input +treated as textobject identifier and apply resolved textobject specification +(fall back to other mappings if can't find proper textobject id). For more +information see |MiniAi-textobject-specification| and |MiniAi-algorithm|. + +Known issues which won't be resolved: +- Search for builtin textobjects is done mostly using Lua patterns + (regex-like approach). Certain amount of false positives is to be expected. + +- During search for builtin textobjects there is no distinction if it is + inside string or comment. For example, in the following case there will + be wrong match for a function call: `f(a = ")", b = 1)`. + +General rule of thumb: any instrument using available parser for document +structure (like treesitter) will usually provide more precise results. This +module has builtins mostly for plain text textobjects which are useful +most of the times (like "inside brackets", "around quotes/underscore", etc.). +For advanced use cases define function specification for custom textobjects. + +What it doesn't (and probably won't) do: +- Have special operators to specially handle whitespace (like `I` and `A` + in 'targets.vim'). Whitespace handling is assumed to be done inside + textobject specification (like `i(` and `i)` handle whitespace differently). + +# Setup ~ + +This module needs a setup with `require('mini.ai').setup({})` (replace +`{}` with your `config` table). It will create global Lua table `MiniAi` +which you can use for scripting or manually (with `:lua MiniAi.*`). + +See |MiniAi.config| for available config settings. + +You can override runtime config settings (like `config.custom_textobjects`) +locally to buffer inside `vim.b.miniai_config` which should have same structure +as `MiniAi.config`. See |mini.nvim-buffer-local-config| for more details. + +To stop module from showing non-error feedback, set `config.silent = true`. + +# Comparisons ~ + +- 'wellle/targets.vim': + - Has limited support for creating own textobjects: it is constrained + to pre-defined detection rules. 'mini.ai' allows creating own rules + via Lua patterns and functions (see |MiniAi-textobject-specification|). + - Doesn't provide any programmatical API for getting information about + textobjects. 'mini.ai' does it via |MiniAi.find_textobject()|. + - Has no implementation of "moving to edge of textobject". 'mini.ai' + does it via |MiniAi.move_cursor()| and `g[` and `g]` default mappings. + - Has elaborate ways to control searching of the next textobject. + 'mini.ai' relies on handful of 'config.search_method'. + - Implements `A`, `I` operators. 'mini.ai' does not by design: it is + assumed to be a property of textobject, not operator. + - Doesn't implement "function call" and "user prompt" textobjects. + 'mini.ai' does (with `f` and `?` identifiers). + - Has limited support for "argument" textobject. Although it works in + most situations, it often misdetects commas as argument separator + (like if it is inside quotes or `{}`). 'mini.ai' deals with these cases. +- 'nvim-treesitter/nvim-treesitter-textobjects': + - Along with textobject functionality provides a curated and maintained + set of popular textobject queries for many languages (which can power + |MiniAi.gen_spec.treesitter()| functionality). + - Operates with custom treesitter directives (see + |lua-treesitter-directives|) allowing more fine-tuned textobjects. + - Implements only textobjects based on treesitter. + - Doesn't support |v:count|. + - Doesn't support multiple search method (basically, only 'cover'). + - Doesn't support consecutive application of target textobject. + +# Disabling ~ + +To disable, set `vim.g.miniai_disable` (globally) or `vim.b.miniai_disable` +(for a buffer) to `true`. Considering high number of different scenarios +and customization intentions, writing exact rules for disabling module's +functionality is left to user. See |mini.nvim-disabling-recipes| for common +recipes. + +------------------------------------------------------------------------------ + *MiniAi-textobject-builtin* +Builtin textobjects ~ + +This table describes all builtin textobjects along with what they +represent. Explanation: +- `Key` represents the textobject identifier: single alphanumeric, + punctuation, space, or tab character which should be typed after `a`/`i`. +- `Name` is a description of textobject. +- `Example line` contains a string for which examples are constructed. The + `*` denotes the cursor position. +- `a`/`i` describe inclusive region representing `a` and `i` textobjects. + Use numbers in separators for easier navigation. +- `2a`/`2i` describe either `2a`/`2i` (support for |v:count|) textobjects + or `a`/`i` textobject followed by another `a`/`i` textobject (consecutive + application leads to incremental selection). + +Example: typing `va)` with cursor on `*` leads to selection from column 2 +to column 12. Another typing `a)` changes selection to [1; 13]. Also, besides +visual selection, any |operator| can be used or `g[`/`g]` motions to move +to left/right edge of `a` textobject. +> + |Key| Name | Example line | a | i | 2a | 2i | + |---|---------------|-1234567890123456-|--------|--------|--------|--------| + | ( | Balanced () | (( *a (bb) )) | | | | | + | [ | Balanced [] | [[ *a [bb] ]] | [2;12] | [4;10] | [1;13] | [2;12] | + | { | Balanced {} | {{ *a {bb} }} | | | | | + | < | Balanced <> | << *a >> | | | | | + |---|---------------|-1234567890123456-|--------|--------|--------|--------| + | ) | Balanced () | (( *a (bb) )) | | | | | + | ] | Balanced [] | [[ *a [bb] ]] | | | | | + | } | Balanced {} | {{ *a {bb} }} | [2;12] | [3;11] | [1;13] | [2;12] | + | > | Balanced <> | << *a >> | | | | | + | b | Alias for | [( *a {bb} )] | | | | | + | | ), ], or } | | | | | | + |---|---------------|-1234567890123456-|--------|--------|--------|--------| + | " | Balanced " | "*a" " bb " | | | | | + | ' | Balanced ' | '*a' ' bb ' | | | | | + | ` | Balanced ` | `*a` ` bb ` | [1;4] | [2;3] | [6;11] | [7;10] | + | q | Alias for | '*a' " bb " | | | | | + | | ", ', or ` | | | | | | + |---|---------------|-1234567890123456-|--------|--------|--------|--------| + | ? | User prompt | e*e o e o o | [3;5] | [4;4] | [7;9] | [8;8] | + | |(typed e and o)| | | | | | + |---|---------------|-1234567890123456-|--------|--------|--------|--------| + | t | Tag | *a | [4;12] | [7;8] | [1;16] | [4;12] | + |---|---------------|-1234567890123456-|--------|--------|--------|--------| + | f | Function call | f(a, g(*b, c) ) | [6;13] | [8;12] | [1;15] | [3;14] | + |---|---------------|-1234567890123456-|--------|--------|--------|--------| + | a | Argument | f(*a, g(b, c) ) | [3;5] | [3;4] | [5;14] | [7;13] | + |---|---------------|-1234567890123456-|--------|--------|--------|--------| + | | Default | | | | | | + | | (digits, | aa_*b__cc___ | [4;7] | [4;5] | [8;12] | [8;9] | + | | punctuation, | (example for _) | | | | | + | | or whitespace)| | | | | | + |---|---------------|-1234567890123456-|--------|--------|--------|--------| +< +Notes: +- All examples assume default `config.search_method`. +- Open brackets differ from close brackets by how they treat inner edge + whitespace for `i` textobject: open ignores it, close - includes. +- Default textobject is activated for identifiers from digits (0, ..., 9), + punctuation (like `_`, `*`, `,`, etc.), whitespace (space, tab, etc.). + They are designed to be treated as separators, so include only right edge + in `a` textobject. To include both edges, use custom textobjects + (see |MiniAi-textobject-specification| and |MiniAi.config|). Note: + - When cursor is exactly on the identifier character while there are + two matching candidates on both left and right, the resulting region + with smaller width is preferred. + +------------------------------------------------------------------------------ + *MiniAi-glossary* +- REGION - table representing region in a buffer. Fields: + - and for inclusive start and end positions ( might be + `nil` to describe empty region). Each position is also a table with + line and column (both start at 1). + - for which Visual mode will be used to select textobject. + See `opts` argument of |MiniAi.select_textobject()|. + One of `'v'`, `'V'`, `'\22'` (escaped `''`). + Examples: >lua + + { from = { line = 1, col = 1 }, to = { line = 2, col = 1 } } + + -- Forced linewise mode + { + from = { line = 1, col = 1 }, to = { line = 2, col = 1 }, + vis_mode = 'V', + } + + -- Empty region + { from = { line = 10, col = 10 } } +< +- PATTERN - string describing Lua pattern. +- SPAN - interval inside a string (end-exclusive). Like [1, 5). Equal + `from` and `to` edges describe empty span at that point. +- SPAN `A = [a1, a2)` COVERS `B = [b1, b2)` if every element of + `B` is within `A` (`a1 <= b < a2`). + It also is described as B IS NESTED INSIDE A. +- NESTED PATTERN - array of patterns aimed to describe nested spans. +- SPAN MATCHES NESTED PATTERN if there is a sequence of consecutively + nested spans each matching corresponding pattern within substring of + previous span (or input string for first span). Example: >lua + + -- Nested patterns for balanced `()` with inner space + { '%b()', '^. .* .$' } + + -- Example input string (with columns underneath for easier reading): + "( ( () ( ) ) )" + -- 12345678901234 +< + Here are all matching spans [1, 15) and [3, 13). Both [5, 7) and [8, 10) + match first pattern but not second. All other combinations of `(` and `)` + don't match first pattern (not balanced). +- COMPOSED PATTERN: array with each element describing possible pattern + (or array of them) at that place. Composed pattern basically defines all + possible combinations of nested pattern (their cartesian product). + Examples: + 1. Either balanced `()` or balanced `[]` but both with inner edge space: >lua + + -- Composed pattern + { { '%b()', '%b[]' }, '^. .* .$' } + + -- Composed pattern expanded into equivalent array of nested patterns + { '%b()', '^. .* .$' } -- and + { '%b[]', '^. .* .$' } +< + 2. Either "balanced `()` with inner edge space" or "balanced `[]` with + no inner edge space", both with 5 or more characters: >lua + + -- Composed pattern + { { { '%b()', '^. .* .$' }, { '%b[]', '^.[^ ].*[^ ].$' } }, '.....' } + + -- Composed pattern expanded into equivalent array of nested patterns + { '%b()', '^. .* .$', '.....' } -- and + { '%b[]', '^.[^ ].*[^ ].$', '.....' } +< +- SPAN MATCHES COMPOSED PATTERN if it matches at least one nested pattern + from expanded composed pattern. + +------------------------------------------------------------------------------ + *MiniAi-textobject-specification* +Textobject specification has a structure of composed pattern (see +|MiniAi-glossary|) with two differences: +- Last pattern(s) should have even number of empty capture groups denoting + how the last string should be processed to extract `a` or `i` textobject: + - Zero captures mean that whole string represents both `a` and `i`. + Example: `xxx` will define textobject matching string `xxx` literally. + - Two captures represent `i` textobject inside of them. `a` - whole string. + Example: `x()x()x` defines `a` textobject to be `xxx`, `i` - middle `x`. + - Four captures define `a` textobject inside captures 1 and 4, `i` - + inside captures 2 and 3. Example: `x()()x()x()` defines `a` + textobject to be last `xx`, `i` - middle `x`. +- Allows callable objects (see |vim.is_callable()|) in certain places + (enables more complex textobjects in exchange of increase in configuration + complexity and computations): + - If specification itself is a callable, it will be called with the same + arguments as |MiniAi.find_textobject()| and should return one of: + - Composed pattern. Useful for implementing user input. Example of + simplified variant of textobject for function call with name taken + from user prompt: >lua + + function() + local left_edge = vim.pesc(vim.fn.input('Function name: ')) + return { left_edge .. '%b()', '^.-%(().*()%)$' } + end +< + - Single output region. Useful to allow full control over + textobject. Will be taken as is. Example of returning whole buffer: >lua + + function() + local from = { line = 1, col = 1 } + local to = { + line = vim.fn.line('$'), + col = math.max(vim.fn.getline('$'):len(), 1) + } + return { from = from, to = to, vis_mode = 'V' } + end +< + - Array of output region(s). Useful for incorporating other + instruments, like treesitter (see |MiniAi.gen_spec.treesitter()|). + The best region will be picked in the same manner as with composed + pattern (respecting options `n_lines`, `search_method`, etc.). + Example of selecting "best" line with display width more than 80: >lua + + function(_, _, _) + local res = {} + for i = 1, vim.api.nvim_buf_line_count(0) do + local cur_line = vim.fn.getline(i) + if vim.fn.strdisplaywidth(cur_line) > 80 then + local region = { + from = { line = i, col = 1 }, + to = { line = i, col = cur_line:len() }, + } + table.insert(res, region) + end + end + return res + end +< + - If there is a callable instead of assumed string pattern, it is expected + to have signature `(line, init)` and behave like `pattern:find()`. + It should return two numbers representing span in `line` next after + or at `init` (`nil` if there is no such span). + !IMPORTANT NOTE!: it means that output's `from` shouldn't be strictly + to the left of `init` (it will lead to infinite loop). Not allowed as + last item (as it should be pattern with captures). + Example of matching only balanced parenthesis with big enough width: >lua + + { + '%b()', + function(s, init) + if init > 1 or s:len() < 5 then return end + return 1, s:len() + end, + '^.().*().$' + } +< +More examples: >lua + + -- Pair of balanced brackets from set (used for builtin `b` identifier): + { { '%b()', '%b[]', '%b{}' }, '^.().*().$' } + + -- Imitate word ignoring digits and punctuation (only for Latin alphabet): + { '()()%f[%w]%w+()[ \t]*()' } + + -- Word with camel case support (also supports only Latin alphabet): + { + { + '%u[%l%d]+%f[^%l%d]', + '%f[%S][%l%d]+%f[^%l%d]', + '%f[%P][%l%d]+%f[^%l%d]', + '^[%l%d]+%f[^%l%d]', + }, + '^().*()$' + } + + -- Number: + { '%f[%d]%d+' } + + -- Date in 'YYYY-MM-DD' format: + { '()%d%d%d%d%-%d%d%-%d%d()' } + + -- Lua block string: + { '%[%[().-()%]%]' } +< +See |MiniAi.gen_spec| for function wrappers to create commonly used +textobject specifications. + +------------------------------------------------------------------------------ + *MiniAi-algorithm* +Algorithm design + +Search for the textobjects relies on these principles: +- It uses same input data as described in |MiniAi.find_textobject()|, + i.e. whether it is `a` or `i` textobject, its identifier, reference region, etc. +- Textobject specification is constructed based on textobject identifier + (see |MiniAi-textobject-specification|). +- General search is done by converting some 2d buffer region (neighborhood + of reference region) into 1d string (each line is appended with `\n`). + Then search for a best span matching textobject specification is done + inside string (see |MiniAi-glossary|). After that, span is converted back + into 2d region. Note: first search is done inside reference region lines, + and only after that - inside its neighborhood within `config.n_lines` + (see |MiniAi.config|). +- The best matching span is chosen by iterating over all spans matching + textobject specification and comparing them with "current best". + Comparison also depends on reference region (tighter covering is better, + otherwise closer is better) and search method (if span is even considered). +- Extract span based on extraction pattern (last item in nested pattern). +- If task is to perform a consecutive search (`opts.n_times` is greater than 1), + steps are repeated with current best match becoming reference region. + One such additional step is also done if final region is equal to + reference region (this enables consecutive application). + +Notes: +- Iteration over all matched spans is done in depth-first fashion with + respect to nested pattern. +- It is guaranteed that span is compared only once. +- For the sake of increasing functionality, during iteration over all + matching spans, some Lua patterns in composed pattern are handled + specially. + - `%bxx` (`xx` is two identical characters). It denotes balanced pair + of identical characters and results into "paired" matches. For + example, `%b""` for `"aa" "bb"` would match `"aa"` and `"bb"`, but + not middle `" "`. + - `x.-y` (`x` and `y` are different strings). It results only in matches with + smallest width. For example, `e.-o` for `e e o o` will result only in + middle `e o`. Note: it has some implications for when parts have + quantifiers (like `+`, etc.), which usually can be resolved with + frontier pattern `%f[]` (see examples in |MiniAi-textobject-specification|). + +------------------------------------------------------------------------------ + *MiniAi.setup()* + `MiniAi.setup`({config}) +Module setup + +Parameters ~ +{config} `(table|nil)` Module config table. See |MiniAi.config|. + +Usage ~ +>lua + require('mini.ai').setup() -- use default config + -- OR + require('mini.ai').setup({}) -- replace {} with your config table +< +------------------------------------------------------------------------------ + *MiniAi.config* + `MiniAi.config` +Module config + +Default values: +>lua + MiniAi.config = { + -- Table with textobject id as fields, textobject specification as values. + -- Also use this to disable builtin textobjects. See |MiniAi.config|. + custom_textobjects = nil, + + -- Module mappings. Use `''` (empty string) to disable one. + mappings = { + -- Main textobject prefixes + around = 'a', + inside = 'i', + + -- Next/last textobjects + around_next = 'an', + inside_next = 'in', + around_last = 'al', + inside_last = 'il', + + -- Move cursor to corresponding edge of `a` textobject + goto_left = 'g[', + goto_right = 'g]', + }, + + -- Number of lines within which textobject is searched + n_lines = 50, + + -- How to search for object (first inside current line, then inside + -- neighborhood). One of 'cover', 'cover_or_next', 'cover_or_prev', + -- 'cover_or_nearest', 'next', 'prev', 'nearest'. + search_method = 'cover_or_next', + + -- Whether to disable showing non-error feedback + silent = false, + } +< +# Options ~ + +## Custom textobjects ~ + +Each named entry of `config.custom_textobjects` is a textobject with +that identifier and specification (see |MiniAi-textobject-specification|). +They are also used to override builtin ones (|MiniAi-textobject-builtin|). +Supply non-valid input (not in specification format) to disable module's +builtin textobject in favor of external or Neovim's builtin mapping. + +Examples: +>lua + require('mini.ai').setup({ + custom_textobjects = { + -- Tweak argument textobject + a = require('mini.ai').gen_spec.argument({ brackets = { '%b()' } }), + + -- Disable brackets alias in favor of builtin block textobject + b = false, + + -- Now `vax` should select `xxx` and `vix` - middle `x` + x = { 'x()x()x' }, + + -- Whole buffer + g = function() + local from = { line = 1, col = 1 } + local to = { + line = vim.fn.line('$'), + col = math.max(vim.fn.getline('$'):len(), 1) + } + return { from = from, to = to } + end + } + }) + + -- Use `vim.b.miniai_config` to customize per buffer + -- Example of specification useful for Markdown files: + local spec_pair = require('mini.ai').gen_spec.pair + vim.b.miniai_config = { + custom_textobjects = { + ['*'] = spec_pair('*', '*', { type = 'greedy' }), + ['_'] = spec_pair('_', '_', { type = 'greedy' }), + }, + } +< +There are more example specifications in |MiniAi-textobject-specification|. + +## Search method ~ + +Value of `config.search_method` defines how best match search is done. +Based on its value, one of the following matches will be selected: +- Covering match. Left/right edge is before/after left/right edge of + reference region. +- Previous match. Left/right edge is before left/right edge of reference + region. +- Next match. Left/right edge is after left/right edge of reference region. +- Nearest match. Whichever is closest among previous and next matches. + +Possible values are: +- `'cover'` - use only covering match. Don't use either previous or + next; report that there is no textobject found. +- `'cover_or_next'` (default) - use covering match. If not found, use next. +- `'cover_or_prev'` - use covering match. If not found, use previous. +- `'cover_or_nearest'` - use covering match. If not found, use nearest. +- `'next'` - use next match. +- `'prev'` - use previous match. +- `'nearest'` - use nearest match. + +Note: search is first performed on the reference region lines and only +after failure - on the whole neighborhood defined by `config.n_lines`. This +means that with `config.search_method` not equal to `'cover'`, "prev" or +"next" textobject will end up as search result if they are found on first +stage although covering match might be found in bigger, whole neighborhood. +This design is based on observation that most of the time operation is done +within reference region lines (usually cursor line). + +Here is an example of what `a)` textobject is based on a value of +`'config.search_method'` when cursor is inside `bbb` word: +- `'cover'`: `(a) bbb (c)` -> none +- `'cover_or_next'`: `(a) bbb (c)` -> `(c)` +- `'cover_or_prev'`: `(a) bbb (c)` -> `(a)` +- `'cover_or_nearest'`: depends on cursor position. + For first and second `b` - as in `cover_or_prev` (as previous match is + nearer), for third - as in `cover_or_next` (as next match is nearer). +- `'next'`: `(a) bbb (c)` -> `(c)`. Same outcome for `(bbb)`. +- `'prev'`: `(a) bbb (c)` -> `(a)`. Same outcome for `(bbb)`. +- `'nearest'`: depends on cursor position (same as in `'cover_or_nearest'`). + +## Mappings ~ + +Mappings `around_next`/`inside_next` and `around_last`/`inside_last` are +essentially `around`/`inside` but using search method `'next'` and `'prev'`. + +------------------------------------------------------------------------------ + *MiniAi.find_textobject()* + `MiniAi.find_textobject`({ai_type}, {id}, {opts}) +Find textobject region + +Parameters ~ +{ai_type} `(string)` One of `'a'` or `'i'`. +{id} `(string)` Single character string representing textobject id. It is + used to get specification which is later used to compute textobject region. + Note: if specification is a function, it is called with all present + arguments (`opts` is populated with default arguments). +{opts} `(table|nil)` Options. Possible fields: + - - Number of lines within which textobject is searched. + Default: `config.n_lines` (see |MiniAi.config|). + - - Number of times to perform a consecutive search. Each one + is done with reference region being previous found textobject region. + Default: 1. + - - region to try to cover (see |MiniAi-glossary|). It + is guaranteed that output region will not be inside or equal to this one. + Default: empty region at cursor position. + - - Search method. Default: `config.search_method`. + +Return ~ +`(table|nil)` Region of textobject or `nil` if no textobject different + from `opts.reference_region` was consecutively found `opts.n_times` times. + +------------------------------------------------------------------------------ + *MiniAi.move_cursor()* + `MiniAi.move_cursor`({side}, {ai_type}, {id}, {opts}) +Move cursor to edge of textobject + +Parameters ~ +{side} `(string)` One of `'left'` or `'right'`. +{ai_type} `(string)` One of `'a'` or `'i'`. +{id} `(string)` Single character string representing textobject id. +{opts} `(table|nil)` Same as in |MiniAi.find_textobject()|. + `opts.n_times` means number of actual jumps (important when cursor + already on the potential jump spot). + +------------------------------------------------------------------------------ + *MiniAi.gen_spec* + `MiniAi.gen_spec` +Generate common textobject specifications + +This is a table with function elements. Call to actually get specification. + +Example: >lua + + local gen_spec = require('mini.ai').gen_spec + require('mini.ai').setup({ + custom_textobjects = { + -- Tweak argument to be recognized only inside `()` between `;` + a = gen_spec.argument({ brackets = { '%b()' }, separator = ';' }), + + -- Tweak function call to not detect dot in function name + f = gen_spec.function_call({ name_pattern = '[%w_]' }), + + -- Function definition (needs treesitter queries with these captures) + F = gen_spec.treesitter({ a = '@function.outer', i = '@function.inner' }), + + -- Make `|` select both edges in non-balanced way + ['|'] = gen_spec.pair('|', '|', { type = 'non-balanced' }), + } + }) + +------------------------------------------------------------------------------ + *MiniAi.gen_spec.argument()* + `MiniAi.gen_spec.argument`({opts}) +Argument specification + +Argument textobject (has default `a` identifier) is a region inside +balanced bracket between allowed not excluded separators. Use this function +to tweak how it works. + +Examples: +- `argument({ brackets = { '%b()' } })` will search for an argument only + inside balanced `()`. +- `argument({ separator = '[,;]' })` will treat both `,` and `;` as separators. +- `argument({ exclude_regions = { '%b()' } })` will exclude separators + which are inside balanced `()` (inside outer brackets). + +Parameters ~ +{opts} `(table|nil)` Options. Allowed fields: + - - array of patterns for outer balanced brackets. + Default: `{ '%b()', '%b[]', '%b{}' }` (any `()`, `[]`, or `{}` can + enclose arguments). + - - separator pattern. Default: `','`. + One of the practical usages of this option is to include whitespace + around character to be a part of separator. For example, `'%s*,%s*'` + will treat as separator not only ',', but its possible surrounding + whitespace. This has both positive and negative effects. On one hand, + `daa` executed over the first argument will delete whitespace after + first comma, leading to a more expected outcome. On the other hand it + is ambiguous which argument is picked when cursor is over whitespace + near the character separator. + - - array with patterns for regions inside which + separators will be ignored. + Default: `{ '%b""', "%b''", '%b()', '%b[]', '%b{}' }` (separators + inside balanced quotes or brackets are ignored). + +------------------------------------------------------------------------------ + *MiniAi.gen_spec.function_call()* + `MiniAi.gen_spec.function_call`({opts}) +Function call specification + +Function call textobject (has default `f` identifier) is a region with some +characters followed by balanced `()`. Use this function to tweak how it works. + +Example: +- `function_call({ name_pattern = '[%w_]' })` will recognize function name with + only alphanumeric or underscore (not dot). + +Parameters ~ +{opts} `(table|nil)` Optsion. Allowed fields: + - - string pattern of character set allowed in function name. + Default: `'[%w_%.]'` (alphanumeric, underscore, or dot). + Note: should be enclosed in `[]`. + +------------------------------------------------------------------------------ + *MiniAi.gen_spec.pair()* + `MiniAi.gen_spec.pair`({left}, {right}, {opts}) +Pair specification + +Use it to define textobject for region surrounded with `left` from left and +`right` from right. The `a` textobject includes both edges, `i` - excludes them. + +Region can be one of several types (controlled with `opts.type`). All +examples are for default search method, `a` textobject, and use `'_'` as +both `left` and `right`: +- Non-balanced (`{ type = 'non-balanced' }`), default. Equivalent to using + `x.-y` as first pattern. Example: on line '_a_b_c_' it consecutively + matches '_a_', '_b_', '_c_'. +- Balanced (`{ type = 'balanced' }`). Equivalent to using `%bxy` as first + pattern. Example: on line '_a_b_c_' it consecutively matches '_a_', '_c_'. + Note: both `left` and `right` should be single character. +- Greedy (`{ type = 'greedy' }`). Like non-balanced but will select maximum + consecutive `left` and `right` edges. Example: on line '__a__b_' it + consecutively selects '__a__' and '__b_'. Note: both `left` and `right` + should be single character. + +Parameters ~ +{left} `(string)` Left edge. +{right} `(string)` Right edge. +{opts} `(table|nil)` Options. Possible fields: + - - Type of a pair. One of `'non-balanced'` (default), `'balanced'`, + `'greedy'`. + +------------------------------------------------------------------------------ + *MiniAi.gen_spec.treesitter()* + `MiniAi.gen_spec.treesitter`({ai_captures}, {opts}) +Treesitter specification + +This is a specification in function form. When called with a pair of +treesitter captures, it returns a specification function outputting an +array of regions that match corresponding (`a` or `i`) capture. + +In order for this to work, apart from working treesitter parser for desired +language, user should have a reachable language-specific 'textobjects' +query (see |vim.treesitter.query.get()| or |get_query()|, depending on your +Neovim version). +The most straightforward way for this is to have 'textobjects.scm' query +file with treesitter captures stored in some recognized path. This is +primarily designed to be compatible with plugin +'nvim-treesitter/nvim-treesitter-textobjects', but can be used without it. + +Two most common approaches for having a query file: +- Install 'nvim-treesitter/nvim-treesitter-textobjects'. It has curated and + well maintained builtin query files for many languages with a standardized + capture names, like `function.outer`, `function.inner`, etc. +- Manually create file 'after/queries//textobjects.scm' in + your |$XDG_CONFIG_HOME| directory. It should contain queries with + captures (later used to define textobjects). See |lua-treesitter-query|. +To verify that query file is reachable, run (example for "lua" language, +output should have at least an intended file): >vim + + :lua print(vim.inspect(vim.treesitter.query.get_files('lua','textobjects'))) +< +Example configuration for function definition textobject with +'nvim-treesitter/nvim-treesitter-textobjects' captures: +>lua + local spec_treesitter = require('mini.ai').gen_spec.treesitter + require('mini.ai').setup({ + custom_textobjects = { + F = spec_treesitter({ a = '@function.outer', i = '@function.inner' }), + o = spec_treesitter({ + a = { '@conditional.outer', '@loop.outer' }, + i = { '@conditional.inner', '@loop.inner' }, + }) + } + }) +< +Notes: +- By default query is done using 'nvim-treesitter' plugin if it is present + (falls back to builtin methods otherwise). This allows for a more + advanced features (like multiple buffer languages, custom directives, etc.). + See `opts.use_nvim_treesitter` for how to disable this. +- It uses buffer's |filetype| to determine query language. +- On large files it is slower than pattern-based textobjects. Still very + fast though (one search should be magnitude of milliseconds or tens of + milliseconds on really large file). + +Parameters ~ +{ai_captures} `(table)` Captures for `a` and `i` textobjects: table with + and fields with captures for `a` and `i` textobjects respectively. + Each value can be either a string capture (should start with `'@'`) or an + array of such captures (best among all matches will be chosen). +{opts} `(table|nil)` Options. Possible values: + - - whether to try to use 'nvim-treesitter' plugin + (if present) to do the query. It implements more advanced behavior at + cost of increased execution time. Provides more coherent experience if + 'nvim-treesitter-textobjects' queries are used. Default: `true`. + +Return ~ +`(function)` Function with |MiniAi.find_textobject()| signature which + returns array of current buffer regions representing matches for + corresponding (`a` or `i`) treesitter capture. + +See also ~ +|MiniAi-textobject-specification| for how this type of textobject + specification is processed. +|get_query()| for how query is fetched in case of no 'nvim-treesitter'. +|Query:iter_captures()| for how all query captures are iterated in case of + no 'nvim-treesitter'. + +------------------------------------------------------------------------------ + *MiniAi.select_textobject()* + `MiniAi.select_textobject`({ai_type}, {id}, {opts}) +Visually select textobject region + +Does nothing if no region is found. + +Parameters ~ +{ai_type} `(string)` One of `'a'` or `'i'`. +{id} `(string)` Single character string representing textobject id. +{opts} `(table|nil)` Same as in |MiniAi.find_textobject()|. Extra fields: + - - One of `'v'`, `'V'`, or `'\22'` (escaped version of `''`). + Default: Latest visual mode. + - - Whether selection is for Operator-pending mode. + Used in that mode's mappings, shouldn't be used directly. Default: `false`. + + + vim:tw=78:ts=8:noet:ft=help:norl: \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/mini.nvim/doc/mini-align.txt b/config/neovim/store/lazy-plugins/mini.nvim/doc/mini-align.txt new file mode 100644 index 00000000..bf51cb77 --- /dev/null +++ b/config/neovim/store/lazy-plugins/mini.nvim/doc/mini-align.txt @@ -0,0 +1,907 @@ +*mini.align* Align text interactively +*MiniAlign* + +MIT License Copyright (c) 2022 Evgeni Chasnovski + +============================================================================== + +Rich and flexible customization of both alignment rules and user interaction. +Works with charwise, linewise, and blockwise selections in both Normal mode +(on textobject/motion; with dot-repeat) and Visual mode. + +Features: +- Alignment is done in three main steps: + - lines into parts based on Lua pattern(s) or user-supplied rule. + - parts for certain side(s) to be same width inside columns. + - parts to be lines, with customizable delimiter(s). + Each main step can be preceded by other steps (pre-steps) to achieve + highly customizable outcome. See `steps` value in |MiniAlign.config|. For + more details, see |MiniAlign-glossary| and |MiniAlign-algorithm|. + +- User can control alignment interactively by pressing customizable modifiers + (single keys representing how alignment steps and/or options should change). + Some of default modifiers: + - Press `s` to enter split Lua pattern. + - Press `j` to choose justification side from available ones ("left", + "center", "right", "none"). + - Press `m` to enter merge delimiter. + - Press `f` to enter filter Lua expression to configure which parts + will be affected (like "align only first column"). + - Press `i` to ignore some commonly unwanted split matches. + - Press `p` to pair neighboring parts so they be aligned together. + - Press `t` to trim whitespace from parts. + - Press `` (backspace) to delete some last pre-step. + For more details, see |MiniAlign-modifiers-builtin| and |MiniAlign-examples|. + +- Alignment can be done with instant preview (result is updated after each + modifier) or without it (result is shown and accepted after non-default + split pattern is set). + +- Every user interaction is accompanied with helper status message showing + relevant information about current alignment process. + +# Setup ~ + +This module needs a setup with `require('mini.align').setup({})` (replace +`{}` with your `config` table). It will create global Lua table `MiniAlign` +which you can use for scripting or manually (with `:lua MiniAlign.*`). + +See |MiniAlign.config| for available config settings. + +You can override runtime config settings (like `config.modifiers`) locally +to buffer inside `vim.b.minialign_config` which should have same structure +as `MiniAlign.config`. See |mini.nvim-buffer-local-config| for more details. + +To stop module from showing non-error feedback, set `config.silent = true`. + +# Comparisons ~ + +- 'junegunn/vim-easy-align': + - 'mini.align' is mostly designed after 'junegunn/vim-easy-align', so + there are a lot of similarities. + - Both plugins allow users to change alignment options interactively by + pressing modifier keys (albeit completely different default ones). + 'junegunn/vim-easy-align' has those modifiers fixed, while 'mini.align' + allows their full customization. See |MiniAlign.config| for examples. + - 'junegunn/vim-easy-align' is designed to treat delimiters differently + than other parts of strings. 'mini.align' doesn't distinguish split + parts from one another by design: splitting is allowed to be done + based on some other logic than by splitting on delimiters. + - 'junegunn/vim-easy-align' initially aligns by only first delimiter. + 'mini.align' initially aligns by all delimiter. + - 'junegunn/vim-easy-align' implements special filtering by delimiter + row number. 'mini.align' has builtin filtering based on Lua code + supplied by user in modifier phase. See |MiniAlign.gen_step.filter| + and 'f' builtin modifier. + - 'mini.align' treats any non-registered modifier as a plain delimiter + pattern, while 'junegunn/vim-easy-align' does not. + - 'mini.align' exports core Lua function used for aligning strings + (|MiniAlign.align_strings()|). +- 'godlygeek/tabular': + - 'godlygeek/tabular' is mostly designed around single command which is + customized by printing its parameters. 'mini.align' implements + different concept of interactive alignment through pressing + customizable single character modifiers. + - 'godlygeek/tabular' can detect region upon which alignment can be + desirable. 'mini.align' does not by design: use Visual selection or + textobject/motion to explicitly define region to align. + +# Disabling ~ + +To disable, set `vim.g.minialign_disable` (globally) or `vim.b.minialign_disable` +(for a buffer) to `true`. Considering high number of different scenarios +and customization intentions, writing exact rules for disabling module's +functionality is left to user. See |mini.nvim-disabling-recipes| for common +recipes. + +------------------------------------------------------------------------------ + *MiniAlign-glossary* +Glossary + +PARTS 2d array of strings (array of arrays of strings). + See more in |MiniAlign.as_parts()|. + +ROW First-level array of parts (like `parts[1]`). + +COLUMN Array of strings, constructed from parts elements with the same + second-level index (like `{ parts[1][1],` `parts[2][1], ... }`). + +STEP A named callable. See |MiniAlign.new_step()|. When used in terms of + alignment steps, callable takes two arguments: some object (parts + or string array) and option table. + +SPLIT Process of taking array of strings and converting it into parts. + +JUSTIFY Process of taking parts and converting them to aligned parts (all + elements have same widths inside columns). + +MERGE Process of taking parts and converting it back to array of strings. + Usually by concatenating rows into strings. + +REGION Table representing region in a buffer. Fields: and for + inclusive start and end positions ( might be `nil` to describe + empty region). Each position is also a table with line and + column (both start at 1). + +MODE Either charwise ("char", `v`, |charwise|), linewise ("line", `V`, + |linewise|) or blockwise ("block", ``, |blockwise-visual|) + +------------------------------------------------------------------------------ + *MiniAlign-algorithm* +Algorithm design + +There are two main processes implemented in 'mini.align': strings alignment +and interactive region alignment. See |MiniAlign-glossary| for more information +about used terms. + +Strings alignment ~ + +Main implementation is in |MiniAlign.align_strings()|. Its input is array of +strings and output - array of aligned strings. The process consists from three +main steps (split, justify, merge) which can be preceded by any number of +preliminary steps (pre-split, pre-justify, pre-merge). + +Algorithm: +- . Take input array of strings and consecutively apply all + pre-split steps (`steps.pre_split`). Each one has `(strings, opts)` signature + and should modify array in place. +- . Take array of strings and convert it to parts with `steps.split()`. + It has `(strings, opts)` signature and should return parts. +- . Take parts and consecutively apply all pre-justify + steps (`steps.pre_justify`). Each one has `(parts, opts)` signature and + should modify parts in place. +- . Take parts and apply `steps.justify()`. It has `(parts, opts)` + signature and should modify parts in place. +- . Take parts and consecutively apply all pre-merge + steps (`steps.pre_merge`). Each one has `(parts, opts)` signature and + should modify parts in place. +- . Take parts and convert it to array of strings with `steps.merge()`. + It has `(parts, opts)` signature and should return array of strings. + +Notes: +- All table objects are initially copied so that modification in place doesn't + affect workflow. +- Default main steps are designed to be controlled via options. See + |MiniAlign.align_strings()| and default step entries in |MiniAlign.gen_step|. +- All steps are guaranteed to take same option table as second argument. + This allows steps to "talk" to each other, i.e. earlier steps can pass data + to later ones. + +Interactive region alignment ~ + +Interactive alignment is a main entry point for most users. It can be done +in two flavors: +- . Initiated via mapping defined in `start` of + `MiniAlign.config.mappings`. Alignment is accepted once split pattern becomes + non-default. +- . Initiated via mapping defined in `start_with_preview` of + `MiniAlign.config.mappings`. Alignment result is shown after every modifier + and is accepted after `` (`Enter`) is hit. Note: each preview is done by + applying current alignment steps and options to the initial region lines, + not the ones currently displaying in preview. + +Lifecycle (assuming default mappings): +- : + - In Normal mode type `ga` (or `gA` to show preview) followed by textobject + or motion defining region to be aligned. + - In Visual mode select region and type `ga` (or `gA` to show preview). + Strings contained in selected region will be used as input to + |MiniAlign.align_strings()|. + Beware of mode when selecting region: charwise (`v`), linewise (`V`), or + blockwise (``). They all behave differently. +- . Press single keys one at a time: + - If pressed key is among table keys of `modifiers` table of + |MiniAlign.config|, its function value is executed. It usually modifies + some options(s) and/or affects some pre-step(s). + - If pressed key is not among defined modifiers, it is treated as plain + split pattern. + This process can either end by itself (usually in case of no preview and + non-default split pattern being set) or you can choose to end it manually. +- . In case of active preview, accept current result by + pressing ``. Discard any result and return to initial regions with + either `` or ``. + +See more in |MiniAlign-modifiers-builtin| and |MiniAlign-examples|. + +Notes: +- Visual blockwise selection works best with 'virtualedit' equal to "block" + or "all". + +------------------------------------------------------------------------------ + *MiniAlign-modifiers-builtin* +Overview of builtin modifiers + +All examples assume interactive alignment with preview in linewise mode. With +default mappings, use `V` to select lines and `gA` to initiate alignment. It +might be helpful to copy lines into modifiable buffer and experiment yourself. + +Notes: +- Any pressed key which doesn't have defined modifier will be treated as + plain split pattern. +- All modifiers can be customized inside |MiniAlign.setup|. See "Modifiers" + section of |MiniAlign.config|. + +Main option modifiers ~ + + Enter split pattern (confirm prompt by pressing ``). Input is treated + as plain delimiter. + + Before: > + a-b-c + aa-bb-cc +< + After typing `s-`: > + a -b -c + aa-bb-cc +< + Choose justify side. Prompts user (with helper message) to type single + character identifier of side: `l`eft, `c`enter, `r`ight, `n`one. + + Before: > + a_b_c + aa_bb_cc +< + After typing `_jr` (first make split by `_`): > + a_ b_ c + aa_bb_cc +< + Enter merge delimiter (confirm prompt by pressing ``). + + Before: > + a_b_c + aa_bb_cc +< + After typing `_m--` (first make split by `_`): > + a --_--b --_--c + aa--_--bb--_--cc +< +Modifiers adding pre-steps ~ + + Enter filter expression. See more details in |MiniAlign.gen_step.filter()|. + + Before: > + a_b_c + aa_bb_cc +< + After typing `_fn==1` (first make split by `_`): > + a _b_c + aa_bb_cc +< + Ignore some split matches. It modifies `split_exclude_patterns` option by + adding commonly wanted patterns. See more details in + |MiniAlign.gen_step.ignore_split()|. + + Before: > + /* This_is_assumed_to_be_comment */ + a"_"_b + aa_bb +< + After typing `_i` (first make split by `_`): > + /* This_is_assumed_to_be_comment */ + a"_"_b + aa _bb +< +

Pair neighboring parts. + + Before: > + a_b_c + aaa_bbb_ccc +< + After typing `_p` (first make split by `_`): > + a_ b_ c + aaa_bbb_ccc +< + Trim parts from whitespace on both sides (keeping indentation). + + Before: > + a _ b _ c + aa _bb _cc +< + After typing `_t` (first make split by `_`): > + a _b _c + aa_bb_cc +< +Delete some last pre-step ~ + + Delete one of the pre-steps. If there is only one kind of pre-steps, + remove its latest added one. If not, prompt user to choose pre-step kind + by entering single character: `s`plit, `j`ustify, `m`erge. + + Examples: + - `tp` results in only "trim" step to be left. + - `it` prompts to choose which step to delete (pre-split or + pre-justify in this case). + +Special configurations for common splits ~ + +<=> Use special pattern to align by a group of consecutive "=". It can be + preceded by any number of punctuation marks and followed by some sommon + punctuation characters. Trim whitespace and merge with single space. + + Before: > + a=b + aa<=bb + aaa===bbb + aaaa = cccc +< + After typing `=`: > + a = b + aa <= bb + aaa === bbb + aaaa = cccc +< +<,> Besides splitting by "," character, trim whitespace, pair neighboring + parts and merge with single space. + + Before: > + a,b + aa,bb + aaa , bbb +< + After typing `,`: > + a, b + aa, bb + aaa, bbb +< +< > (Space bar) Squash consecutive whitespace into single single space (accept + possible indentation) and split by `%s+` pattern (keeps indentation). + + Before: > + a b c + aa bb cc +< + After typing ``: > + a b c + aa bb cc + +------------------------------------------------------------------------------ + *MiniAlign-examples* +More complex examples to explore functionality + +Copy lines in modifiable buffer, initiate alignment with preview (`gAip`) +and try typing suggested key sequences. +These are modified examples taken from 'junegunn/vim-easy-align'. + +Equal sign ~ + +Lines: > + + # This=is=assumed=to be a comment + "a =" + a = + a = 1 + bbbb = 2 + ccccccc = 3 + ccccccccccccccc + ddd = 4 + eeee === eee = eee = eee=f + fff = ggg += gg &&= gg + g != hhhhhhhh == 888 + i := 5 + i %= 5 + i *= 5 + j =~ 5 + j >= 5 + aa => 123 + aa <<= 123 + aa >>= 123 + bbb => 123 + c => 1233123 + d => 123 + dddddd &&= 123 + dddddd ||= 123 + dddddd /= 123 + gg <=> ee +< +Key sequences: +- `=` +- `=jc` +- `=jr` +- `=m!` +- `=p` +- `=i` (execute `:lua vim.o.commentstring = '# %s'` for full experience) +- `=` +- `=p` +- `=fn==1` +- `=fn==1t` +- `=frow>7` + +------------------------------------------------------------------------------ + *MiniAlign.setup()* + `MiniAlign.setup`({config}) +Module setup + +Parameters ~ +{config} `(table|nil)` Module config table. See |MiniAlign.config|. + +Usage ~ +>lua + require('mini.align').setup() -- use default config + -- OR + require('mini.align').setup({}) -- replace {} with your config table +< +------------------------------------------------------------------------------ + *MiniAlign.config* + `MiniAlign.config` +Module config + +Default values: +>lua + MiniAlign.config = { + -- Module mappings. Use `''` (empty string) to disable one. + mappings = { + start = 'ga', + start_with_preview = 'gA', + }, + + -- Modifiers changing alignment steps and/or options + modifiers = { + -- Main option modifiers + ['s'] = --, + ['j'] = --, + ['m'] = --, + + -- Modifiers adding pre-steps + ['f'] = --, + ['i'] = --, + ['p'] = --, + ['t'] = --, + + -- Delete some last pre-step + [''] = --, + + -- Special configurations for common splits + ['='] = --, + [' '] = --, + }, + + -- Default options controlling alignment process + options = { + split_pattern = '', + justify_side = 'left', + merge_delimiter = '', + }, + + -- Default steps performing alignment (if `nil`, default is used) + steps = { + pre_split = {}, + split = nil, + pre_justify = {}, + justify = nil, + pre_merge = {}, + merge = nil, + }, + + -- Whether to disable showing non-error feedback + silent = false, + } +< +# Options ~ + +## Modifiers ~ + +`MiniAlign.config.modifiers` is used to define interactive user experience +of managing alignment process. It is a table with single character keys and +modifier function values. + +Each modifier function: +- Is called when corresponding modifier key is pressed. +- Has signature `(steps, opts)` and should modify any of its input in place. + +Examples: +- Modifier function used for default 'i' modifier: >lua + + function(steps, _) + table.insert(steps.pre_split, MiniAlign.gen_step.ignore_split()) + end +< +- Tweak 't' modifier to use highest indentation instead of keeping it: >lua + + require('mini.align').setup({ + modifiers = { + t = function(steps, _) + local trim_high = MiniAlign.gen_step.trim('both', 'high') + table.insert(steps.pre_justify, trim_high) + end + } + }) +< +- Tweak `j` modifier to cycle through available "justify_side" option + values (like in 'junegunn/vim-easy-align'): >lua + + require('mini.align').setup({ + modifiers = { + j = function(_, opts) + local next_option = ({ + left = 'center', center = 'right', right = 'none', none = 'left', + })[opts.justify_side] + opts.justify_side = next_option or 'left' + end, + }, + }) +< +## Options ~ + +`MiniAlign.config.options` defines default values of options used to control +behavior of steps. + +Examples: +- Set `justify_side = 'center'` to center align at initialization. + +For more details about options see |MiniAlign.align_strings()| and entries of +|MiniAlign.gen_step| for default main steps. + +## Steps ~ + +`MiniAlign.config.steps` defines default steps to be applied during +alignment process. + +Examples: +- Align by default only first pair of columns: >lua + + local align = require('mini.align') + align.setup({ + steps = { + pre_justify = { align.gen_step.filter('n == 1') } + }, + }) +< +------------------------------------------------------------------------------ + *MiniAlign.align_strings()* + `MiniAlign.align_strings`({strings}, {opts}, {steps}) +Align strings + +For details about alignment process see |MiniAlign-algorithm|. + +Parameters ~ +{strings} `(table)` Array of strings. +{opts} `(table|nil)` Options. Its copy will be passed to steps as second + argument. Extended with `MiniAlign.config.options`. + This is a place to control default main steps: + - `opts.split_pattern` - Lua pattern(s) used to make split parts. + - `opts.split_exclude_patterns` - which split matches should be ignored. + - `opts.justify_side` - which direction(s) alignment should be done. + - `opts.justify_offsets` - offsets tweaking width of first column + - `opts.merge_delimiter` - which delimiter(s) to use when merging. + For more information see |MiniAlign.gen_step| entry for corresponding + default step. +{steps} `(table|nil)` Steps. Extended with `MiniAlign.config.steps`. + Possible `nil` values are replaced with corresponding default steps: + - `split` - |MiniAlign.gen_step.default_split()|. + - `justify` - |MiniAlign.gen_step.default_justify()|. + - `merge` - |MiniAlign.gen_step.default_merge()|. + +------------------------------------------------------------------------------ + *MiniAlign.align_user()* + `MiniAlign.align_user`({mode}) +Align current region with user-supplied steps + +Mostly designed to be used inside mappings. + +Will use |MiniAlign.align_strings()| and set the following options in `opts`: +- `justify_offsets` - array of offsets used to achieve actual alignment of + a region. It is non-trivial (not array of zeros) only for charwise + selection: offset of first string is computed as width of prefix to the + left of region start. +- `region` - current affected region (see |MiniAlign-glossary|). Can be + used to create more advanced steps. +- `mode` - mode of selection (see |MiniAlign-glossary|). + +Parameters ~ +{mode} `(string)` Selection mode. One of "char", "line", "block". + +------------------------------------------------------------------------------ + *MiniAlign.as_parts()* + `MiniAlign.as_parts`({arr2d}) +Convert 2d array of strings to parts + +This function verifies if input is a proper 2d array of strings and adds +methods to its copy. + +Class ~ +{parts} + +Fields ~ +{apply} `(function)` Takes callable `f` and applies it to every part. + Callable should have signature `(s, data)`: `s` is a string part, + `data` - table with its data ( has row number, has column number). + Returns new 2d array. + +{apply_inplace} `(function)` Takes callable `f` and applies it to every part. + Should have same signature as in `apply` method. Outputs (should all be + strings) are assigned in place to a corresponding parts element. Returns + parts itself to enable method chaining. + +{get_dims} `(function)` Return dimensions of parts array: a table with + and keys having number of rows and number of columns (maximum + number of elements across all rows). + +{group} `(function)` Concatenate neighboring strings based on supplied + boolean mask and direction (one of "left", default, or "right"). Has + signature `(mask, direction)` and modifies parts in place. Returns parts + itself to enable method chaining. + Example: + - Parts: { { "a", "b", "c" }, { "d", "e" }, { "f" } } + - Mask: { { false, false, true }, { true, false }, { false } } + - Result for direction "left": { { "abc" }, { "d", "e" }, { "f" } } + - Result for direction "right": { { "ab","c" }, { "de" }, { "f" } } + +{pair} `(function)` Concatenate neighboring element pairs. Takes + `direction` as input (one of "left", default, or "right") and applies + `group()` for an alternating mask. + Example: + - Parts: { { "a", "b", "c" }, { "d", "e" }, { "f" } } + - Result for direction "left": { { "ab", "c" }, { "de" }, { "f" } } + - Result for direction "right": { { "a", "bc" }, { "de" }, { "f" } } + +{slice_col} `(function)` Return column with input index `j`. Note: it might + not be an array if rows have unequal number of columns. + +{slice_row} `(function)` Return row with input index `i`. + +{trim} `(function)` Trim elements whitespace. Has signature `(direction, indent)` + and modifies parts in place. Returns parts itself to enable method chaining. + - Possible values of `direction`: "both" (default), "left", "right", + "none". Defines from which side whitespaces should be removed. + - Possible values of `indent`: "keep" (default), "low", "high", "remove". + Defines what to do with possible indent (left whitespace of first string + in a row). Value "keep" keeps it; "low" makes all indent equal to the + lowest across rows; "high" - highest across rows; "remove" - removes indent. + +Usage ~ +>lua + parts = MiniAlign.as_parts({ { 'a', 'b' }, { 'c' } }) + print(vim.inspect(parts.get_dims())) -- Should be { row = 2, col = 2 } + + parts.apply_inplace(function(s, data) + return ' ' .. data.row .. s .. data.col .. ' ' + end) + print(vim.inspect(parts)) -- Should be { { ' 1a1 ', ' 1b2 ' }, { ' 2c1 ' } } + + parts.trim('both', 'remove').pair() + print(vim.inspect(parts)) -- Should be { { '1a11b2' }, { '2c1' } } +< +------------------------------------------------------------------------------ + *MiniAlign.new_step()* + `MiniAlign.new_step`({name}, {action}) +Create step + +A step is basically a named callable object. Having a name bundled with +some action powers helper status message during interactive alignment process. + +Parameters ~ +{name} `(string)` Step name. +{action} `(function|table)` Step action. Should be a callable object + (see |vim.is_callable()|). + +Return ~ +`(table)` A table with keys: with `name` argument, with `action`. + +------------------------------------------------------------------------------ + *MiniAlign.gen_step* + `MiniAlign.gen_step` +Generate common action steps + +This is a table with function elements. Call to actually get step. + +Each step action is a function that has signature `(object, opts)`, where +`object` is either parts or array of strings (depends on which stage of +alignment process it is assumed to be applied) and `opts` is table of options. + +Outputs of elements named `default_*` are used as default corresponding main +step (split, justify, merge). Behavior of all of them depend on values from +supplied options (second argument). + +Outputs of other elements depend on both step generator input values and +options supplied at execution. This design is mostly because their output +can be used several times in pre-steps. + +Usage ~ +>lua + local align = require('mini.align') + align.setup({ + modifiers = { + -- Use 'T' modifier to remove both whitespace and indent + T = function(steps, _) + table.insert(steps.pre_justify, align.gen_step.trim('both', 'remove')) + end, + }, + options = { + -- By default align "right", "left", "right", "left", ... + justify_side = { 'right', 'left' }, + }, + steps = { + -- Align by default only first pair of columns + pre_justify = { align.gen_step.filter('n == 1') }, + }, + }) +< +------------------------------------------------------------------------------ + *MiniAlign.gen_step.default_split()* + `MiniAlign.gen_step.default_split`() +Generate default split step + +Output splits strings using matches of Lua pattern(s) from `split_pattern` +option which are not dismissed by `split_exclude_patterns` option. + +Outline of how single string is split: +- Convert `split_pattern` option to array of strings (string is converted + as one-element array). This array will be recycled in case there are more + split matches than in converted `split_pattern` array (which almost always). +- Find all forbidden spans (intervals inside string) - all matches of all + patterns in `split_exclude_patterns`. +- Find match for the next pattern. If it is not inside any forbidden span, + add preceding unmatched substring and matched split as two parts. Repeat + with the next pattern. +- If no pattern match is found, add the rest of string as final part. + +Output uses following options (as part second argument, `opts` table): +- - string or array of strings used to detect split matches + and create parts. Default: `''` meaning no matches (whole string is used + as part). Examples: `'%s+'`, `{ '<', '>' }`. +- - array of strings defining which regions to + exclude from being matched. Default: `{}`. Examples: `{ '".-"', '^%s*#.*' }`. + +Return ~ +`(table)` A step named "split" and with appropriate callable action. + +See also ~ +|MiniAlign.gen_step.ignore_split()| heavily uses `split_exclude_patterns`. + +------------------------------------------------------------------------------ + *MiniAlign.gen_step.default_justify()* + `MiniAlign.gen_step.default_justify`() +Generate default justify step + +Output makes column elements of string parts have equal width by adding +left and/or right whitespace padding. Which side(s) to pad is defined by +`justify_side` option. Width of first column can be tweaked with `justify_offsets` +option. + +Outline of how parts are justified: +- Convert `justify_side` option to array of strings (single string is + converted as one-element array). Recycle this array to have length equal + to number of columns in parts. +- For all columns compute maximum width of strings from it (add offsets from + `justify_offsets` to first column widths). Note: for left alignment, width + of last row element does not affect column width. This is mainly because + it won't be padded and helps dealing with "no single match" lines. +- Make all elements have same width inside column by adding appropriate + amount of whitespace. Which side(s) to add is controlled by the corresponding + `justify_side` array element. Note: padding is done with spaces which + might conflict with tab indentation. + +Output uses following options (as part second argument, `opts` table): +- - string or array of strings. Each element can be one of + "left" (pad right side), "center" (pad both sides equally), "right" (pad + left side), "none" (no padding). Default: "left". +- - array of numeric left offsets of rows. Used to adjust + for possible not equal indents, like in case of charwise selection when + left edge is not on the first column. Default: array of zeros. Set + automatically during interactive alignment in charwise mode. + +Return ~ +`(table)` A step named "justify" and with appropriate callable action. + +------------------------------------------------------------------------------ + *MiniAlign.gen_step.default_merge()* + `MiniAlign.gen_step.default_merge`() +Generate default merge step + +Output merges rows of parts into strings by placing merge delimiter(s) +between them. + +Outline of how parts are converted to array of strings: +- Convert `merge_delimiter` option to array of strings (single string is + converted as one-element array). Recycle this array to have length equal + to number of columns in parts minus 1. +- Exclude empty strings from parts. They add nothing to output except extra + usage of merge delimiter. +- Concatenate each row interleaving with array of merge delimiters. + +Output uses following options (as part second argument, `opts` table): +- - string or array of strings. Default: `''`. + Examples: `' '`, `{ '', ' ' }`. + +Return ~ +`(table)` A step named "merge" and with appropriate callable action. + +------------------------------------------------------------------------------ + *MiniAlign.gen_step.filter()* + `MiniAlign.gen_step.filter`({expr}) +Generate filter step + +Construct function predicate from supplied Lua string expression and make +step evaluating it on every part element. + +Outline of how filtering is done: +- Convert Lua filtering expression into function predicate which can be + evaluated in manually created context (some specific variables being set). +- Compute boolean mask for parts by applying predicate to each element of + 2d array with special variables set to specific values (see next section). +- Group parts with compted mask. See `group()` method of parts in + |MiniAlign.as_parts()|. + +Special variables which can be used in expression: +- - row number of current element. +- - total number of rows in parts. +- - column number of current element. +- - total number of columns in current row. +- - string value of current element. +- - column pair number of current element. Useful when filtering by + result of pattern splitting. +- - total number of column pairs in current row. +- All variables from global table `_G`. + +Tips: +- This general filtering approach can be used to both include and exclude + certain parts from alignment. Examples: + - Use `row ~= 2` to align all parts except from second row. + - Use `n == 1` to align only by first pair of columns. +- Filtering by last equal sign usually can be done with `n >= (N - 1)` + (because there is usually something to the right of it). + +Parameters ~ +{expr} `(string)` Lua expression as a string which will be used as predicate. + +Return ~ +`(table|nil)` A step named "filter" and with appropriate callable action. + +------------------------------------------------------------------------------ + *MiniAlign.gen_step.ignore_split()* + `MiniAlign.gen_step.ignore_split`({patterns}, {exclude_comment}) +Generate ignore step + +Output adds certain values to `split_exclude_patterns` option. Should be +used as pre-split step. + +Parameters ~ +{patterns} `(table)` Array of patterns to be added to + `split_exclude_patterns` as is. Default: `{ [[".-"]] }` (excludes strings + for most cases). +{exclude_comment} `(boolean|nil)` Whether to add comment pattern to + `split_exclude_patterns`. Comment pattern is derived from 'commentstring' + option. Default: `true`. + +Return ~ +`(table)` A step named "ignore" and with appropriate callable action. + +See also ~ +|MiniAlign.gen_step.default_split()| for details about + `split_exclude_patterns` option. + +------------------------------------------------------------------------------ + *MiniAlign.gen_step.pair()* + `MiniAlign.gen_step.pair`({direction}) +Generate pair step + +Output calls `pair()` method of parts (see |MiniAlign.as_parts()|) with +supplied `direction` argument. + +Parameters ~ +{direction} `(string)` Which direction to pair. One of "left" (default) or + + +Return ~ +`(table)` A step named "pair" and with appropriate callable action. + +------------------------------------------------------------------------------ + *MiniAlign.gen_step.trim()* + `MiniAlign.gen_step.trim`({direction}, {indent}) +Generate trim step + +Output calls `trim()` method of parts (see |MiniAlign.as_parts()|) with +supplied `direction` and `indent` arguments. + +Parameters ~ +{direction} `(string|nil)` Which sides to trim whitespace. One of "both" + (default), "left", "right", "none". +{indent} `(string|nil)` What to do with possible indent (left whitespace + of first string in a row). One of "keep" (default), "low", "high", "remove". + +Return ~ +`(table)` A step named "trim" and with appropriate callable action. + + + vim:tw=78:ts=8:noet:ft=help:norl: \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/mini.nvim/doc/mini-animate.txt b/config/neovim/store/lazy-plugins/mini.nvim/doc/mini-animate.txt new file mode 100644 index 00000000..82e85414 --- /dev/null +++ b/config/neovim/store/lazy-plugins/mini.nvim/doc/mini-animate.txt @@ -0,0 +1,938 @@ +*mini.animate* Animate common Neovim actions +*MiniAnimate* + +MIT License Copyright (c) 2022 Evgeni Chasnovski + +============================================================================== + +Features: +- Works out of the box with a single `require('mini.animate').setup()`. + No extra mappings or commands needed. + +- Animate cursor movement inside same buffer by showing customizable path. + See |MiniAnimate.config.cursor| for more details. + +- Animate scrolling with a series of subscrolls ("smooth scrolling"). + See |MiniAnimate.config.scroll| for more details. + +- Animate window resize by gradually changing sizes of all windows. + See |MiniAnimate.config.resize| for more details. + +- Animate window open/close with visually updating floating window. + See |MiniAnimate.config.open| and |MiniAnimate.config.close| for more details. + +- Timings for all actions can be customized independently. + See |MiniAnimate-timing| for more details. + +- Action animations can be enabled/disabled independently. + +- All animations are asynchronous/non-blocking and trigger a targeted event + which can be used to perform actions after animation is done. + +- |MiniAnimate.animate()| function which can be used to perform own animations. + +Notes: +- Cursor movement is animated inside same window and buffer, not as cursor + moves across the screen. + +- Scroll and resize animations are done with "side effects": they actually + change the state of what is animated (window view and sizes + respectively). This has a downside of possibly needing extra work to + account for asynchronous nature of animation (like adjusting certain + mappings, etc.). See |MiniAnimate.config.scroll| and + |MiniAnimate.config.resize| for more details. + +- Although all animations work in all supported versions of Neovim, scroll + and resize animations have best experience with Neovim>=0.9. This is due + to updated implementation of |WinScrolled| event. + +# Setup ~ + +This module needs a setup with `require('mini.animate').setup({})` (replace +`{}` with your `config` table). It will create global Lua table `MiniAnimate` +which you can use for scripting or manually (with `:lua MiniAnimate.*`). + +See |MiniAnimate.config| for available config settings. + +You can override runtime config settings (like `config.modifiers`) locally +to buffer inside `vim.b.minianimate_config` which should have same structure +as `MiniAnimate.config`. See |mini.nvim-buffer-local-config| for more details. + +# Comparisons ~ + +- Neovide: + - Neovide is a standalone GUI which has more control over its animations. + While 'mini.animate' works inside terminal emulator (with all its + limitations, like lack of pixel-size control over animations). + - Neovide animates cursor movement across screen, while 'mini.animate' - + as it moves across same buffer. + - Neovide has fixed number of animation effects per action, while + 'mini.animate' is fully customizable. + - 'mini.animate' implements animations for window open/close, while + Neovide does not. +- 'edluffy/specs.nvim': + - 'mini.animate' approaches cursor movement visualization via + customizable path function (uses extmarks), while 'specs.nvim' can + customize within its own visual effects (shading and floating + window resizing). +- 'karb94/neoscroll.nvim': + - Scroll animation is triggered only inside dedicated mappings. + 'mini.animate' animates scroll resulting from any window view change. +- 'anuvyklack/windows.nvim': + - Resize animation is done only within custom commands and mappings, + while 'mini.animate' animates any resize out of the box (works + similarly to 'windows.nvim' in Neovim>=0.9 with appropriate + 'winheight' / 'winwidth' and 'winminheight' / 'winminwidth'). + +# Highlight groups ~ + +* `MiniAnimateCursor` - highlight of cursor during its animated movement. +* `MiniAnimateNormalFloat` - highlight of floating window for `open` and + `close` animations. + +To change any highlight group, modify it directly with |:highlight|. + +# Disabling ~ + +To disable, set `vim.g.minianimate_disable` (globally) or +`vim.b.minianimate_disable` (for a buffer) to `true`. Considering high +number of different scenarios and customization intentions, writing exact +rules for disabling module's functionality is left to user. See +|mini.nvim-disabling-recipes| for common recipes. + +------------------------------------------------------------------------------ + *MiniAnimate.setup()* + `MiniAnimate.setup`({config}) +Module setup + +Parameters ~ +{config} `(table|nil)` Module config table. See |MiniAnimate.config|. + +Usage ~ +>lua + require('mini.animate').setup() -- use default config + -- OR + require('mini.animate').setup({}) -- replace {} with your config table +< +------------------------------------------------------------------------------ + *MiniAnimate.config* + `MiniAnimate.config` +Module config + +Default values: +>lua + MiniAnimate.config = { + -- Cursor path + cursor = { + -- Whether to enable this animation + enable = true, + + -- Timing of animation (how steps will progress in time) + timing = --, + + -- Path generator for visualized cursor movement + path = --, + }, + + -- Vertical scroll + scroll = { + -- Whether to enable this animation + enable = true, + + -- Timing of animation (how steps will progress in time) + timing = --, + + -- Subscroll generator based on total scroll + subscroll = --, + }, + + -- Window resize + resize = { + -- Whether to enable this animation + enable = true, + + -- Timing of animation (how steps will progress in time) + timing = --, + + -- Subresize generator for all steps of resize animations + subresize = --, + }, + + -- Window open + open = { + -- Whether to enable this animation + enable = true, + + -- Timing of animation (how steps will progress in time) + timing = --, + + -- Floating window config generator visualizing specific window + winconfig = --, + + -- 'winblend' (window transparency) generator for floating window + winblend = --, + }, + + -- Window close + close = { + -- Whether to enable this animation + enable = true, + + -- Timing of animation (how steps will progress in time) + timing = --, + + -- Floating window config generator visualizing specific window + winconfig = --, + + -- 'winblend' (window transparency) generator for floating window + winblend = --, + }, + } +< +# General ~ + *MiniAnimate-timing* +- Every animation is a non-blockingly scheduled series of specific actions. + They are executed in a sequence of timed steps controlled by `timing` option. + It is a callable which, given next and total step numbers, returns wait time + (in ms). See |MiniAnimate.gen_timing| for builtin timing functions. + See |MiniAnimate.animate()| for more details about animation process. + +- Every animation can be enabled/disabled independently by setting `enable` + option to `true`/`false`. + + *MiniAnimate-done-event* +- Every animation triggers custom |User| event when it is finished. It is + named `MiniAnimateDoneXxx` with `Xxx` replaced by capitalized supported + animation action name (like `MiniAnimateDoneCursor`). Use it to schedule + some action after certain animation is completed. Alternatively, you can + use |MiniAnimate.execute_after()| (usually preferred in mappings). + +- Each animation has its main step generator which defines how particular + animation is done. They all are callables which take some input data and + return an array of step data. Length of that array determines number of + animation steps. Outputs `nil` and empty table result in no animation. + + *MiniAnimate.config.cursor* +# Cursor ~ + +This animation is triggered for each movement of cursor inside same window +and buffer. Its visualization step consists from placing single extmark (see +|extmarks|) at certain position. This extmark contains single space and is +highlighted with `MiniAnimateCursor` highlight group. + +Exact places of extmark and their number is controlled by `path` option. It +is a callable which takes `destination` argument (2d integer point in +`(line, col)` coordinates) and returns array of relative to `(0, 0)` places +for extmark to be placed. Example: +- Input `(2, -3)` means cursor jumped 2 lines forward and 3 columns backward. +- Output `{ {0, 0 }, { 0, -1 }, { 0, -2 }, { 0, -3 }, { 1, -3 } }` means + that path is first visualized along the initial line and then along final + column. + +See |MiniAnimate.gen_path| for builtin path generators. + +Notes: +- Input `destination` value is computed ignoring folds. This is by design + as it helps better visualize distance between two cursor positions. +- Outputs of path generator resulting in a place where extmark can't be + placed are silently omitted during animation: this step won't show any + visualization. + +Configuration example: >lua + + local animate = require('mini.animate') + animate.setup({ + cursor = { + -- Animate for 200 milliseconds with linear easing + timing = animate.gen_timing.linear({ duration = 200, unit = 'total' }), + + -- Animate with shortest line for any cursor move + path = animate.gen_path.line({ + predicate = function() return true end, + }), + } + }) +< +After animation is done, `MiniAnimateDoneCursor` event is triggered. + + *MiniAnimate.config.scroll* +# Scroll ~ + +This animation is triggered for each vertical scroll of current window. +Its visualization step consists from performing a small subscroll which all +in total will result into needed total scroll. + +Exact subscroll values and their number is controlled by `subscroll` option. +It is a callable which takes `total_scroll` argument (single non-negative +integer) and returns array of non-negative integers each representing the +amount of lines needed to be scrolled inside corresponding step. All +subscroll values should sum to input `total_scroll`. +Example: +- Input `5` means that total scroll consists from 5 lines (either up or down, + which doesn't matter). +- Output of `{ 1, 1, 1, 1, 1 }` means that there are 5 equal subscrolls. + +See |MiniAnimate.gen_subscroll| for builtin subscroll generators. + +Notes: +- Input value of `total_scroll` is computed taking folds into account. +- As scroll animation is essentially a precisely scheduled non-blocking + subscrolls, this has two important interconnected consequences: + - If another scroll is attempted during the animation, it is done based + on the **currently visible** window view. Example: if user presses + |CTRL-D| and then |CTRL-U| when animation is half done, window will not + display the previous view half of 'scroll' above it. This especially + affects mouse wheel scrolling, as each its turn results in a new scroll + for number of lines defined by 'mousescroll'. Tweak it to your liking. + - It breaks the use of several relative scrolling commands in the same + command. Use |MiniAnimate.execute_after()| to schedule action after + reaching target window view. + Example: a useful `nnoremap n nzvzz` mapping (consecutive application + of |n|, |zv|, and |zz|) should be expressed in the following way: >lua + + 'lua vim.cmd("normal! n"); ' .. + 'MiniAnimate.execute_after("scroll", "normal! zvzz")' +< +- This animation works best with Neovim>=0.9 (after certain updates to + |WinScrolled| event). + +Configuration example: >lua + + local animate = require('mini.animate') + animate.setup({ + scroll = { + -- Animate for 200 milliseconds with linear easing + timing = animate.gen_timing.linear({ duration = 200, unit = 'total' }), + + -- Animate equally but with at most 120 steps instead of default 60 + subscroll = animate.gen_subscroll.equal({ max_output_steps = 120 }), + } + }) +< +After animation is done, `MiniAnimateDoneScroll` event is triggered. + + *MiniAnimate.config.resize* +# Resize ~ + +This animation is triggered for window resize while having same layout of +same windows. For example, it won't trigger when window is opened/closed or +after something like |CTRL-W_K|. Its visualization step consists from setting +certain sizes to all visible windows (last step being for "true" final sizes). + +Exact window step sizes and their number is controlled by `subresize` option. +It is a callable which takes `sizes_from` and `sizes_to` arguments (both +tables with window id as keys and dimension table as values) and returns +array of same shaped data. +Example: +- Input: >lua + + -- First + { [1000] = {width = 7, height = 5}, [1001] = {width = 7, height = 10} } + -- Second + { [1000] = {width = 9, height = 5}, [1001] = {width = 5, height = 10} } + -- Means window 1000 increased its width by 2 in expense of window 1001 +< +- The following output demonstrates equal resizing: >lua + + { + { [1000] = {width = 8, height = 5}, [1001] = {width = 6, height = 10} }, + { [1000] = {width = 9, height = 5}, [1001] = {width = 5, height = 10} }, + } +< +See |MiniAnimate.gen_subresize| for builtin subresize generators. + +Notes: + +- As resize animation is essentially a precisely scheduled non-blocking + subresizes, this has two important interconnected consequences: + - If another resize is attempted during the animation, it is done based + on the **currently visible** window sizes. This might affect relative + resizing. + - It breaks the use of several relative resizing commands in the same + command. Use |MiniAnimate.execute_after()| to schedule action after + reaching target window sizes. +- This animation works best with Neovim>=0.9 (after certain updates to + |WinScrolled| event). For example, resize resulting from effect of + 'winheight' / 'winwidth' will work properly. + +Configuration example: >lua + + local is_many_wins = function(sizes_from, sizes_to) + return vim.tbl_count(sizes_from) >= 3 + end + local animate = require('mini.animate') + animate.setup({ + resize = { + -- Animate for 200 milliseconds with linear easing + timing = animate.gen_timing.linear({ duration = 200, unit = 'total' }), + + -- Animate only if there are at least 3 windows + subresize = animate.gen_subscroll.equal({ predicate = is_many_wins }), + } + }) +< +After animation is done, `MiniAnimateDoneResize` event is triggered. + + *MiniAnimate.config.open* *MiniAnimate.config.close* +# Window open/close ~ + +These animations are similarly triggered for regular (non-floating) window +open/close. Their visualization step consists from drawing empty floating +window with customizable config and transparency. + +Exact window visualization characteristics are controlled by `winconfig` +and `winblend` options. + +The `winconfig` option is a callable which takes window id (|window-ID|) as +input and returns an array of floating window configs (as in `config` +argument of |nvim_open_win()|). Its length determines number of animation steps. +Example: +- The following output results into two animation steps with second being + upper left quarter of a first: >lua + + { + { + row = 0, col = 0, + width = 10, height = 10, + relative = 'editor', anchor = 'NW', focusable = false, + zindex = 1, style = 'minimal', + }, + { + row = 0, col = 0, + width = 5, height = 5, + relative = 'editor', anchor = 'NW', focusable = false, + zindex = 1, style = 'minimal', + }, + } +< +The `winblend` option is similar to `timing` option: it is a callable +which, given current and total step numbers, returns value of floating +window's 'winblend' option. Note, that it is called for current step (so +starts from 0), as opposed to `timing` which is called before step. +Example: +- Function `function(s, n) return 80 + 20 * s / n end` results in linear + transition from `winblend` value of 80 to 100. + +See |MiniAnimate.gen_winconfig| for builtin window config generators. +See |MiniAnimate.gen_winblend| for builtin window transparency generators. + +Configuration example: >lua + + local animate = require('mini.animate') + animate.setup({ + open = { + -- Animate for 400 milliseconds with linear easing + timing = animate.gen_timing.linear({ duration = 400, unit = 'total' }), + + -- Animate with wiping from nearest edge instead of default static one + winconfig = animate.gen_winconfig.wipe({ direction = 'from_edge' }), + + -- Make bigger windows more transparent + winblend = animate.gen_winblend.linear({ from = 80, to = 100 }), + }, + + close = { + -- Animate for 400 milliseconds with linear easing + timing = animate.gen_timing.linear({ duration = 400, unit = 'total' }), + + -- Animate with wiping to nearest edge instead of default static one + winconfig = animate.gen_winconfig.wipe({ direction = 'to_edge' }), + + -- Make bigger windows more transparent + winblend = animate.gen_winblend.linear({ from = 100, to = 80 }), + }, + }) +< +After animation is done, `MiniAnimateDoneOpen` or `MiniAnimateDoneClose` +event is triggered for `open` and `close` animation respectively. + +------------------------------------------------------------------------------ + *MiniAnimate.is_active()* + `MiniAnimate.is_active`({animation_type}) +Check animation activity + +Parameters ~ +{animation_type} `(string)` One of supported animation types + (entries of |MiniAnimate.config|, like `'cursor'`, etc.). + +Return ~ +`(boolean)` Whether the animation is currently active. + +------------------------------------------------------------------------------ + *MiniAnimate.execute_after()* + `MiniAnimate.execute_after`({animation_type}, {action}) +Execute action after some animation is done + +Execute action immediately if animation is not active (checked with +|MiniAnimate.is_active()|). Else, schedule its execution until after +animation is done (on corresponding "done event", see +|MiniAnimate-done-event|). + +Mostly meant to be used inside mappings. + +Example ~ + +A useful `nnoremap n nzvzz` mapping (consecutive application of |n|, |zv|, and |zz|) +should be expressed in the following way: >lua + + 'lua vim.cmd("normal! n"); ' .. + 'MiniAnimate.execute_after("scroll", "normal! zvzz")' +< +Parameters ~ +{animation_type} `(string)` One of supported animation types + (as in |MiniAnimate.is_active()|). +{action} `(string|function)` Action to be executed. If string, executed as + command (via |vim.cmd()|). + +------------------------------------------------------------------------------ + *MiniAnimate.animate()* + `MiniAnimate.animate`({step_action}, {step_timing}, {opts}) +Animate action + +This is equivalent to asynchronous execution of the following algorithm: +- Call `step_action(0)` immediately after calling this function. Stop if + action returned `false` or `nil`. +- Wait `step_timing(1)` milliseconds. +- Call `step_action(1)`. Stop if it returned `false` or `nil`. +- Wait `step_timing(2)` milliseconds. +- Call `step_action(2)`. Stop if it returned `false` or `nil`. +- ... + +Notes: +- Animation is also stopped on action error or if maximum number of steps + is reached. +- Asynchronous execution is done with |uv.new_timer()|. It only allows + integer parts as repeat value. This has several implications: + - Outputs of `step_timing()` are accumulated in order to preserve total + execution time. + - Any wait time less than 1 ms means that action will be executed + immediately. + +Parameters ~ +{step_action} `(function|table)` Callable which takes `step` (integer 0, 1, 2, + etc. indicating current step) and executes some action. Its return value + defines when animation should stop: values `false` and `nil` (equivalent + to no explicit return) stop animation timer; any other continues it. +{step_timing} `(function|table)` Callable which takes `step` (integer 1, 2, etc. + indicating next step) and returns how many milliseconds to wait before + executing this step action. +{opts} `(table|nil)` Options. Possible fields: + - - Maximum value of allowed step to execute. Default: 10000000. + +------------------------------------------------------------------------------ + *MiniAnimate.gen_timing* + `MiniAnimate.gen_timing` +Generate animation timing + +Each field corresponds to one family of progression which can be customized +further by supplying appropriate arguments. + +This is a table with function elements. Call to actually get timing function. + +Example: >lua + + local animate = require('mini.animate') + animate.setup({ + cursor = { + timing = animate.gen_timing.linear({ duration = 100, unit = 'total' }) + }, + }) +< +See also ~ +|MiniIndentscope.gen_animation| for similar concept in 'mini.indentscope'. + +------------------------------------------------------------------------------ + *MiniAnimate.gen_timing.none()* + `MiniAnimate.gen_timing.none`() +Generate timing with no animation + +Show final result immediately. Usually better to use `enable` field in `config` +if you want to disable animation. + +------------------------------------------------------------------------------ + *MiniAnimate.gen_timing.linear()* + `MiniAnimate.gen_timing.linear`({opts}) +Generate timing with linear progression + +Parameters ~ +{opts} `(table|nil)` Options that control progression. Possible keys: + - `(string)` - a subtype of progression. One of "in" + (accelerating from zero speed), "out" (decelerating to zero speed), + "in-out" (default; accelerating halfway, decelerating after). + - `(number)` - duration (in ms) of a unit. Default: 20. + - `(string)` - which unit's duration `opts.duration` controls. One + of "step" (default; ensures average duration of step to be `opts.duration`) + or "total" (ensures fixed total duration regardless of scope's range). + +Return ~ +`(function)` Timing function (see |MiniAnimate-timing|). + +------------------------------------------------------------------------------ + *MiniAnimate.gen_timing.quadratic()* + `MiniAnimate.gen_timing.quadratic`({opts}) +Generate timing with quadratic progression + +Parameters ~ +{opts} `(table|nil)` Options that control progression. Possible keys: + - `(string)` - a subtype of progression. One of "in" + (accelerating from zero speed), "out" (decelerating to zero speed), + "in-out" (default; accelerating halfway, decelerating after). + - `(number)` - duration (in ms) of a unit. Default: 20. + - `(string)` - which unit's duration `opts.duration` controls. One + of "step" (default; ensures average duration of step to be `opts.duration`) + or "total" (ensures fixed total duration regardless of scope's range). + +Return ~ +`(function)` Timing function (see |MiniAnimate-timing|). + +------------------------------------------------------------------------------ + *MiniAnimate.gen_timing.cubic()* + `MiniAnimate.gen_timing.cubic`({opts}) +Generate timing with cubic progression + +Parameters ~ +{opts} `(table|nil)` Options that control progression. Possible keys: + - `(string)` - a subtype of progression. One of "in" + (accelerating from zero speed), "out" (decelerating to zero speed), + "in-out" (default; accelerating halfway, decelerating after). + - `(number)` - duration (in ms) of a unit. Default: 20. + - `(string)` - which unit's duration `opts.duration` controls. One + of "step" (default; ensures average duration of step to be `opts.duration`) + or "total" (ensures fixed total duration regardless of scope's range). + +Return ~ +`(function)` Timing function (see |MiniAnimate-timing|). + +------------------------------------------------------------------------------ + *MiniAnimate.gen_timing.quartic()* + `MiniAnimate.gen_timing.quartic`({opts}) +Generate timing with quartic progression + +Parameters ~ +{opts} `(table|nil)` Options that control progression. Possible keys: + - `(string)` - a subtype of progression. One of "in" + (accelerating from zero speed), "out" (decelerating to zero speed), + "in-out" (default; accelerating halfway, decelerating after). + - `(number)` - duration (in ms) of a unit. Default: 20. + - `(string)` - which unit's duration `opts.duration` controls. One + of "step" (default; ensures average duration of step to be `opts.duration`) + or "total" (ensures fixed total duration regardless of scope's range). + +Return ~ +`(function)` Timing function (see |MiniAnimate-timing|). + +------------------------------------------------------------------------------ + *MiniAnimate.gen_timing.exponential()* + `MiniAnimate.gen_timing.exponential`({opts}) +Generate timing with exponential progression + +Parameters ~ +{opts} `(table|nil)` Options that control progression. Possible keys: + - `(string)` - a subtype of progression. One of "in" + (accelerating from zero speed), "out" (decelerating to zero speed), + "in-out" (default; accelerating halfway, decelerating after). + - `(number)` - duration (in ms) of a unit. Default: 20. + - `(string)` - which unit's duration `opts.duration` controls. One + of "step" (default; ensures average duration of step to be `opts.duration`) + or "total" (ensures fixed total duration regardless of scope's range). + +Return ~ +`(function)` Timing function (see |MiniAnimate-timing|). + +------------------------------------------------------------------------------ + *MiniAnimate.gen_path* + `MiniAnimate.gen_path` +Generate cursor animation path + +For more information see |MiniAnimate.config.cursor|. + +This is a table with function elements. Call to actually get generator. + +Example: >lua + + local animate = require('mini.animate') + animate.setup({ + cursor = { + -- Animate with line-column angle instead of shortest line + path = animate.gen_path.angle(), + } + }) +< +------------------------------------------------------------------------------ + *MiniAnimate.gen_path.line()* + `MiniAnimate.gen_path.line`({opts}) +Generate path as shortest line + +Parameters ~ +{opts} `(table|nil)` Options that control generator. Possible keys: + - `(function)` - a callable which takes `destination` as input and + returns boolean value indicating whether animation should be done. + Default: `false` if `destination` is within one line of origin (reduces + flickering), `true` otherwise. + +Return ~ +`(function)` Path function (see |MiniAnimate.config.cursor|). + +------------------------------------------------------------------------------ + *MiniAnimate.gen_path.angle()* + `MiniAnimate.gen_path.angle`({opts}) +Generate path as line/column angle + +Parameters ~ +{opts} `(table|nil)` Options that control generator. Possible keys: + - `(function)` - a callable which takes `destination` as input and + returns boolean value indicating whether animation should be done. + Default: `false` if `destination` is within one line of origin (reduces + flickering), `true` otherwise. + - `(string)` - one of `"horizontal"` (default; animates + across initial line first) or `"vertical"` (animates across initial + column first). + +Return ~ +`(function)` Path function (see |MiniAnimate.config.cursor|). + +------------------------------------------------------------------------------ + *MiniAnimate.gen_path.walls()* + `MiniAnimate.gen_path.walls`({opts}) +Generate path as closing walls at final position + +Parameters ~ +{opts} `(table|nil)` Options that control generator. Possible keys: + - `(function)` - a callable which takes `destination` as input and + returns boolean value indicating whether animation should be done. + Default: `false` if `destination` is within one line of origin (reduces + flickering), `true` otherwise. + - `(number)` - initial width of left and right walls. Default: 10. + +Return ~ +`(function)` Path function (see |MiniAnimate.config.cursor|). + +------------------------------------------------------------------------------ + *MiniAnimate.gen_path.spiral()* + `MiniAnimate.gen_path.spiral`({opts}) +Generate path as diminishing spiral at final position + +Parameters ~ +{opts} `(table|nil)` Options that control generator. Possible keys: + - `(function)` - a callable which takes `destination` as input and + returns boolean value indicating whether animation should be done. + Default: `false` if `destination` is within one line of origin (reduces + flickering), `true` otherwise. + - `(number)` - initial width of spiral. Default: 2. + +Return ~ +`(function)` Path function (see |MiniAnimate.config.cursor|). + +------------------------------------------------------------------------------ + *MiniAnimate.gen_subscroll* + `MiniAnimate.gen_subscroll` +Generate scroll animation subscroll + +For more information see |MiniAnimate.config.scroll|. + +This is a table with function elements. Call to actually get generator. + +Example: >lua + + local animate = require('mini.animate') + animate.setup({ + scroll = { + -- Animate equally but with 120 maximum steps instead of default 60 + subscroll = animate.gen_subscroll.equal({ max_output_steps = 120 }), + } + }) +< +------------------------------------------------------------------------------ + *MiniAnimate.gen_subscroll.equal()* + `MiniAnimate.gen_subscroll.equal`({opts}) +Generate subscroll with equal steps + +Parameters ~ +{opts} `(table|nil)` Options that control generator. Possible keys: + - `(function)` - a callable which takes `total_scroll` as + input and returns boolean value indicating whether animation should be + done. Default: `false` if `total_scroll` is 1 or less (reduces + unnecessary waiting), `true` otherwise. + - `(number)` - maximum number of subscroll steps in output. + Adjust this to reduce computations in expense of reduced smoothness. + Default: 60. + +Return ~ +`(function)` Subscroll function (see |MiniAnimate.config.scroll|). + +------------------------------------------------------------------------------ + *MiniAnimate.gen_subresize* + `MiniAnimate.gen_subresize` +Generate resize animation subresize + +For more information see |MiniAnimate.config.resize|. + +This is a table with function elements. Call to actually get generator. + +Example: >lua + + local is_many_wins = function(sizes_from, sizes_to) + return vim.tbl_count(sizes_from) >= 3 + end + local animate = require('mini.animate') + animate.setup({ + resize = { + -- Animate only if there are at least 3 windows + subresize = animate.gen_subresize.equal({ predicate = is_many_wins }), + } + }) +< +------------------------------------------------------------------------------ + *MiniAnimate.gen_subresize.equal()* + `MiniAnimate.gen_subresize.equal`({opts}) +Generate subresize with equal steps + +Parameters ~ +{opts} `(table|nil)` Options that control generator. Possible keys: + - `(function)` - a callable which takes `sizes_from` and + `sizes_to` as input and returns boolean value indicating whether + animation should be done. Default: always `true`. + +Return ~ +`(function)` Subresize function (see |MiniAnimate.config.resize|). + +------------------------------------------------------------------------------ + *MiniAnimate.gen_winconfig* + `MiniAnimate.gen_winconfig` +Generate open/close animation winconfig + +For more information see |MiniAnimate.config.open| or |MiniAnimate.config.close|. + +This is a table with function elements. Call to actually get generator. + +Example: >lua + + local is_not_single_window = function(win_id) + local tabpage_id = vim.api.nvim_win_get_tabpage(win_id) + return #vim.api.nvim_tabpage_list_wins(tabpage_id) > 1 + end + local animate = require('mini.animate') + animate.setup({ + open = { + -- Animate with wiping from nearest edge instead of default static one + -- and only if it is not a single window in tabpage + winconfig = animate.gen_winconfig.wipe({ + predicate = is_not_single_window, + direction = 'from_edge', + }), + }, + close = { + -- Animate with wiping to nearest edge instead of default static one + -- and only if it is not a single window in tabpage + winconfig = animate.gen_winconfig.wipe({ + predicate = is_not_single_window, + direction = 'to_edge', + }), + }, + }) +< +------------------------------------------------------------------------------ + *MiniAnimate.gen_winconfig.static()* + `MiniAnimate.gen_winconfig.static`({opts}) +Generate winconfig for static floating window + +This will result into floating window statically covering whole target +window. + +Parameters ~ +{opts} `(table|nil)` Options that control generator. Possible keys: + - `(function)` - a callable which takes `win_id` as input and + returns boolean value indicating whether animation should be done. + Default: always `true`. + - `(number)` - number of output steps, all with same config. + Useful to tweak smoothness of transparency animation (done inside + `winblend` config option). Default: 25. + +Return ~ +`(function)` Winconfig function (see |MiniAnimate.config.open| + or |MiniAnimate.config.close|). + +------------------------------------------------------------------------------ + *MiniAnimate.gen_winconfig.center()* + `MiniAnimate.gen_winconfig.center`({opts}) +Generate winconfig for center-focused animated floating window + +This will result into floating window growing from or shrinking to the +target window center. + +Parameters ~ +{opts} `(table|nil)` Options that control generator. Possible keys: + - `(function)` - a callable which takes `win_id` as input and + returns boolean value indicating whether animation should be done. + Default: always `true`. + - `(string)` - one of `"to_center"` (default; window will + shrink from full coverage to center) or `"from_center"` (window will + grow from center to full coverage). + +Return ~ +`(function)` Winconfig function (see |MiniAnimate.config.open| + or |MiniAnimate.config.close|). + +------------------------------------------------------------------------------ + *MiniAnimate.gen_winconfig.wipe()* + `MiniAnimate.gen_winconfig.wipe`({opts}) +Generate winconfig for wiping animated floating window + +This will result into floating window growing from or shrinking to the +nearest edge. This also takes into account the split type of target window: +vertically split window will progress towards vertical edge; horizontally - +towards horizontal. + +Parameters ~ +{opts} `(table|nil)` Options that control generator. Possible keys: + - `(function)` - a callable which takes `win_id` as input and + returns boolean value indicating whether animation should be done. + Default: always `true`. + - `(string)` - one of `"to_edge"` (default; window will + shrink from full coverage to nearest edge) or `"from_edge"` (window + will grow from edge to full coverage). + +Return ~ +`(function)` Winconfig function (see |MiniAnimate.config.open| + or |MiniAnimate.config.close|). + +------------------------------------------------------------------------------ + *MiniAnimate.gen_winblend* + `MiniAnimate.gen_winblend` +Generate open/close animation `winblend` progression + +For more information see |MiniAnimate.config.open| or |MiniAnimate.config.close|. + +This is a table with function elements. Call to actually get transparency +function. + +Example: >lua + + local animate = require('mini.animate') + animate.setup({ + open = { + -- Change transparency from 60 to 80 instead of default 80 to 100 + winblend = animate.gen_winblend.linear({ from = 60, to = 80 }), + }, + close = { + -- Change transparency from 60 to 80 instead of default 80 to 100 + winblend = animate.gen_winblend.linear({ from = 60, to = 80 }), + }, + }) +< +------------------------------------------------------------------------------ + *MiniAnimate.gen_winblend.linear()* + `MiniAnimate.gen_winblend.linear`({opts}) +Generate linear `winblend` progression + +Parameters ~ +{opts} `(table|nil)` Options that control generator. Possible keys: + - `(number)` - initial value of 'winblend'. + - `(number)` - final value of 'winblend'. + +Return ~ +`(function)` Winblend function (see |MiniAnimate.config.open| + or |MiniAnimate.config.close|). + + + vim:tw=78:ts=8:noet:ft=help:norl: \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/mini.nvim/doc/mini-base16.txt b/config/neovim/store/lazy-plugins/mini.nvim/doc/mini-base16.txt new file mode 100644 index 00000000..f6f935bc --- /dev/null +++ b/config/neovim/store/lazy-plugins/mini.nvim/doc/mini-base16.txt @@ -0,0 +1,282 @@ +*mini.base16* Base16 colorscheme creation +*MiniBase16* + +MIT License Copyright (c) 2021 Evgeni Chasnovski + +============================================================================== + +Fast implementation of 'chriskempson/base16' color scheme (with Copyright +(C) 2012 Chris Kempson) adapted for modern Neovim Lua plugins. +Extra features: +- Configurable automatic support of cterm colors (see |highlight-cterm|). +- Opinionated palette generator based only on background and foreground + colors. + +Supported highlight groups: +- Built-in Neovim LSP and diagnostic. + +- Plugins (either with explicit definition or by verification that default + highlighting works appropriately): + - 'echasnovski/mini.nvim' + - 'akinsho/bufferline.nvim' + - 'anuvyklack/hydra.nvim' + - 'DanilaMihailov/beacon.nvim' + - 'folke/lazy.nvim' + - 'folke/noice.nvim' + - 'folke/todo-comments.nvim' + - 'folke/trouble.nvim' + - 'folke/which-key.nvim' + - 'ggandor/leap.nvim' + - 'ggandor/lightspeed.nvim' + - 'glepnir/dashboard-nvim' + - 'glepnir/lspsaga.nvim' + - 'HiPhish/rainbow-delimiters.nvim' + - 'hrsh7th/nvim-cmp' + - 'justinmk/vim-sneak' + - 'kevinhwang91/nvim-ufo' + - 'lewis6991/gitsigns.nvim' + - 'lukas-reineke/indent-blankline.nvim' + - 'neoclide/coc.nvim' + - 'NeogitOrg/neogit' + - 'nvim-lualine/lualine.nvim' + - 'nvim-neo-tree/neo-tree.nvim' + - 'nvim-telescope/telescope.nvim' + - 'nvim-tree/nvim-tree.lua' + - 'phaazon/hop.nvim' + - 'rcarriga/nvim-dap-ui' + - 'rcarriga/nvim-notify' + - 'rlane/pounce.nvim' + - 'romgrk/barbar.nvim' + - 'stevearc/aerial.nvim' + - 'williamboman/mason.nvim' + +# Setup ~ + +This module needs a setup with `require('mini.base16').setup({})` (replace +`{}` with your `config` table). It will create global Lua table +`MiniBase16` which you can use for scripting or manually (with +`:lua MiniBase16.*`). + +See |MiniBase16.config| for `config` structure and default values. + +This module doesn't have runtime options, so using `vim.b.minibase16_config` +will have no effect here. + +Example: >lua + + require('mini.base16').setup({ + palette = { + base00 = '#112641', + base01 = '#3a475e', + base02 = '#606b81', + base03 = '#8691a7', + base04 = '#d5dc81', + base05 = '#e2e98f', + base06 = '#eff69c', + base07 = '#fcffaa', + base08 = '#ffcfa0', + base09 = '#cc7e46', + base0A = '#46a436', + base0B = '#9ff895', + base0C = '#ca6ecf', + base0D = '#42f7ff', + base0E = '#ffc4ff', + base0F = '#00a5c5', + }, + use_cterm = true, + plugins = { + default = false, + ['echasnovski/mini.nvim'] = true, + }, + }) +< +# Notes ~ + +1. This is used to create plugin's colorschemes (see |mini.nvim-color-schemes|). +2. Using `setup()` doesn't actually create a |colorscheme|. It basically + creates a coordinated set of |highlight|s. To create your own theme: + - Put "myscheme.lua" file (name after your chosen theme name) inside + any "colors" directory reachable from 'runtimepath' ("colors" inside + your Neovim config directory is usually enough). + - Inside "myscheme.lua" call `require('mini.base16').setup()` with your + palette and only after that set |g:colors_name| to "myscheme". + +------------------------------------------------------------------------------ + *mini-base16-color-schemes* + *minischeme* + *minicyan* +Base16 colorschemes ~ + +This module comes with several pre-built color schemes. All of them are a +|MiniBase16| theme created with faster version of the following Lua code: >lua + + require('mini.base16').setup({ palette = palette, use_cterm = true }) +< +Activate them as regular |colorscheme| (for example, `:colorscheme minischeme`). + +## minischeme ~ + +Blue and yellow main colors with high contrast and saturation palette. +Palettes are: >lua + + -- For dark 'background': + MiniBase16.mini_palette('#112641', '#e2e98f', 75) + + -- For light 'background': + MiniBase16.mini_palette('#e2e5ca', '#002a83', 75) +< +## minicyan ~ + +Cyan and grey main colors with moderate contrast and saturation palette. +Palettes are: >lua + + -- For dark 'background': + MiniBase16.mini_palette('#0A2A2A', '#D0D0D0', 50) + + -- For light 'background': + MiniBase16.mini_palette('#C0D2D2', '#262626', 80) +< +------------------------------------------------------------------------------ + *MiniBase16.setup()* + `MiniBase16.setup`({config}) +Module setup + +Setup is done by applying base16 palette to enable colorscheme. Highlight +groups make an extended set from original +[base16-vim](https://github.com/chriskempson/base16-vim/) plugin. It is a +good idea to have `config.palette` respect the original [styling +principles](https://github.com/chriskempson/base16/blob/master/styling.md). + +By default only 'gui highlighting' (see |highlight-gui| and +|termguicolors|) is supported. To support 'cterm highlighting' (see +|highlight-cterm|) supply `config.use_cterm` argument in one of the formats: +- `true` to auto-generate from `palette` (as closest colors). +- Table with similar structure to `palette` but having terminal colors + (integers from 0 to 255) instead of hex strings. + +Parameters ~ +{config} `(table)` Module config table. See |MiniBase16.config|. + +Usage ~ +>lua + require('mini.base16').setup({}) -- replace {} with your config table + -- needs `palette` field present +< +------------------------------------------------------------------------------ + *MiniBase16.config* + `MiniBase16.config` +Module config + +Default values: +>lua + MiniBase16.config = { + -- Table with names from `base00` to `base0F` and values being strings of + -- HEX colors with format "#RRGGBB". NOTE: this should be explicitly + -- supplied in `setup()`. + palette = nil, + + -- Whether to support cterm colors. Can be boolean, `nil` (same as + -- `false`), or table with cterm colors. See `setup()` documentation for + -- more information. + use_cterm = nil, + + -- Plugin integrations. Use `default = false` to disable all integrations. + -- Also can be set per plugin (see |MiniBase16.config|). + plugins = { default = true }, + } +< +# Options ~ + +## Plugin integrations ~ + +`config.plugins` defines for which supported plugins highlight groups will +be created. Limiting number of integrations slightly decreases startup time. +It is a table with boolean (`true`/`false`) values which are applied as follows: +- If plugin name (as listed in |mini.base16|) has entry, it is used. +- Otherwise `config.plugins.default` is used. + +Example which will load only "mini.nvim" integration: >lua + + require('mini.base16').setup({ + palette = require('mini.base16').mini_palette('#112641', '#e2e98f', 75), + plugins = { + default = false, + ['echasnovski/mini.nvim'] = true, + } + }) +< +------------------------------------------------------------------------------ + *MiniBase16.mini_palette()* + `MiniBase16.mini_palette`({background}, {foreground}, {accent_chroma}) +Create 'mini' palette + +Create base16 palette based on the HEX (string '#RRGGBB') colors of main +background and foreground with optional setting of accent chroma (see +details). + +# Algorithm design ~ + +- Main operating color space is + [CIELCh(uv)](https://en.wikipedia.org/wiki/CIELUV#Cylindrical_representation_(CIELCh)) + which is a cylindrical representation of a perceptually uniform CIELUV + color space. It defines color by three values: lightness L (values from 0 + to 100), chroma (positive values), and hue (circular values from 0 to 360 + degrees). Useful converting tool: https://www.easyrgb.com/en/convert.php +- There are four important lightness values: background, foreground, focus + (around the middle of background and foreground, leaning towards + foreground), and edge (extreme lightness closest to foreground). +- First four colors have the same chroma and hue as `background` but + lightness progresses from background towards focus. +- Second four colors have the same chroma and hue as `foreground` but + lightness progresses from foreground towards edge in such a way that + 'base05' color is main foreground color. +- The rest eight colors are accent colors which are created in pairs + - Each pair has same hue from set of hues 'most different' to + background and foreground hues (if respective chorma is positive). + - All colors have the same chroma equal to `accent_chroma` (if not + provided, chroma of foreground is used, as they will appear next + to each other). Note: this means that in case of low foreground + chroma, it is a good idea to set `accent_chroma` manually. + Values from 30 (low chorma) to 80 (high chroma) are common. + - Within pair there is base lightness (equal to foreground + lightness) and alternative (equal to focus lightness). Base + lightness goes to colors which will be used more frequently in + code: base08 (variables), base0B (strings), base0D (functions), + base0E (keywords). + How exactly accent colors are mapped to base16 palette is a result of + trial and error. One rule of thumb was: colors within one hue pair should + be more often seen next to each other. This is because it is easier to + distinguish them and seems to be more visually appealing. That is why + `base0D` and `base0F` have same hues because they usually represent + functions and delimiter (brackets included). + +Parameters ~ +{background} `(string)` Background HEX color (formatted as `#RRGGBB`). +{foreground} `(string)` Foreground HEX color (formatted as `#RRGGBB`). +{accent_chroma} `(number)` Optional positive number (usually between 0 + and 100). Default: chroma of foreground color. + +Return ~ +`(table)` Table with base16 palette. + +Usage ~ +>lua + local p = require('mini.base16').mini_palette('#112641', '#e2e98f', 75) + require('mini.base16').setup({ palette = p }) +< +------------------------------------------------------------------------------ + *MiniBase16.rgb_palette_to_cterm_palette()* + `MiniBase16.rgb_palette_to_cterm_palette`({palette}) +Converts palette with RGB colors to terminal colors + +Useful for caching `use_cterm` variable to increase speed. + +Parameters ~ +{palette} `(table)` Table with base16 palette (same as in + `MiniBase16.config.palette`). + +Return ~ +`(table)` Table with base16 palette using |highlight-cterm|. + + + vim:tw=78:ts=8:noet:ft=help:norl: \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/mini.nvim/doc/mini-basics.txt b/config/neovim/store/lazy-plugins/mini.nvim/doc/mini-basics.txt new file mode 100644 index 00000000..cd251f66 --- /dev/null +++ b/config/neovim/store/lazy-plugins/mini.nvim/doc/mini-basics.txt @@ -0,0 +1,356 @@ +*mini.basics* Common configuration presets +*MiniBasics* + +MIT License Copyright (c) 2023 Evgeni Chasnovski + +============================================================================== + +Install, create 'init.lua', add `require('mini.basics').setup()` and you +are good to go. + +Features: +- Presets for common options. It will only change option if it wasn't + manually set before. See more in |MiniBasics.config.options|. + +- Presets for common mappings. It will only add a mapping if it wasn't + manually created before. See more in |MiniBasics.config.mappings|. + +- Presets for common autocommands. See more in |MiniBasics.config.autocommands|. + +- Reverse compatibility is a high priority. Any decision to change already + present behavior will be made with great care. + +Notes: +- Main goal of this module is to provide a relatively easier way for + new-ish Neovim users to have better "works out of the box" experience + while having documented relevant options/mappings/autocommands to study. + It is based partially on survey among Neovim users and partially is + coming from personal preferences. + + However, more seasoned users almost surely will find something useful. + + Still, it is recommended to read about used options/mappings/autocommands + and decide if they are needed. The main way to do that is by reading + Neovim's help pages (linked in help file) and this module's source code + (thoroughly documented for easier comprehension). + +# Setup ~ + +This module needs a setup with `require('mini.basics').setup({})` (replace +`{}` with your `config` table). It will create global Lua table `MiniBasics` +which you can use for scripting or manually (with `:lua MiniBasics.*`). + +See |MiniBasics.config| for available config settings. + +To stop module from showing non-error feedback, set `config.silent = true`. + +# Comparisons ~ + +- 'tpope/vim-sensible': + - Most of 'tpope/vim-sensible' is already incorporated as default + options in Neovim (see |nvim-default|). This module has a much + broader effect. +- 'tpope/vim-unimpaired': + - The 'tpope/vim-unimpaired' has mapping for toggling options with `yo` + prefix. This module implements similar functionality with `\` prefix + (see |MiniBasics.config.mappings|). + +------------------------------------------------------------------------------ + *MiniBasics.setup()* + `MiniBasics.setup`({config}) +Module setup + +Parameters ~ +{config} `(table|nil)` Module config table. See |MiniBasics.config|. + +Usage ~ +>lua + require('mini.basics').setup() -- use default config + -- OR + require('mini.basics').setup({}) -- replace {} with your config table +< +------------------------------------------------------------------------------ + *MiniBasics.config* + `MiniBasics.config` +Module config + +Default values: +>lua + MiniBasics.config = { + -- Options. Set to `false` to disable. + options = { + -- Basic options ('number', 'ignorecase', and many more) + basic = true, + + -- Extra UI features ('winblend', 'cmdheight=0', ...) + extra_ui = false, + + -- Presets for window borders ('single', 'double', ...) + win_borders = 'default', + }, + + -- Mappings. Set to `false` to disable. + mappings = { + -- Basic mappings (better 'jk', save with Ctrl+S, ...) + basic = true, + + -- Prefix for mappings that toggle common options ('wrap', 'spell', ...). + -- Supply empty string to not create these mappings. + option_toggle_prefix = [[\]], + + -- Window navigation with , resize with + windows = false, + + -- Move cursor in Insert, Command, and Terminal mode with + move_with_alt = false, + }, + + -- Autocommands. Set to `false` to disable + autocommands = { + -- Basic autocommands (highlight on yank, start Insert in terminal, ...) + basic = true, + + -- Set 'relativenumber' only in linewise and blockwise Visual mode + relnum_in_visual_mode = false, + }, + + -- Whether to disable showing non-error feedback + silent = false, + } +< + *MiniBasics.config.options* +# Options ~ + +Usage example: >lua + + require('mini.basics').setup({ + options = { + basic = true, + extra_ui = true, + win_borders = 'double', + } + }) +< +## options.basic ~ + +The `config.options.basic` sets certain options to values which are quite +commonly used (judging by study of available Neovim pre-configurations, +public dotfiles, and surveys). +Any option is changed only if it was not set manually beforehand. +For exact changes, please see source code ('lua/mini/basics.lua'). + +Here is the list of affected options (put cursor on it and press |CTRL-]|): +- General: + - Sets || key to ||. Be sure to make all Leader mappings + after this (otherwise they are made with default ). + - Runs `:filetype plugin indent on` (see |:filetype-overview|) + - |backup| + - |mouse| + - |undofile| + - |writebackup| +- Appearance + - |breakindent| + - |cursorline| + - |fillchars| + - |linebreak| + - |number| + - |ruler| + - |showmode| + - |signcolumn| + - |shortmess| + - |splitbelow| + - |splitkeep| (on Neovim>=0.9) + - |splitright| + - |termguicolors| (on Neovim<0.10; later versions have it smartly enabled) + - |wrap| +- Editing + - |completeopt| + - |formatoptions| + - |ignorecase| + - |incsearch| + - |infercase| + - |smartcase| + - |smartindent| + - |virtualedit| + +## options.extra_ui ~ + +The `config.options.extra_ui` sets certain options for visual appearance +which might not be aligned with common preferences, but still worth trying. +Any option is changed only if it was not set manually beforehand. +For exact changes, please see source code ('lua/mini/basics.lua'). + +List of affected options: +- |list| +- |listchars| +- |pumblend| +- |pumheight| +- |winblend| +- Runs `:syntax on` (see |:syntax-on|) + +## options.win_borders + +The `config.options.win_borders` updates |fillchars| to have a consistent set of +characters for window border (`vert`, `horiz`, etc.). + +Available values: +- `'bold'` - bold lines. +- `'dot'` - dot in every cell. +- `'double'` - double line. +- `'single'` - single line. +- `'solid'` - no symbol, only background. + + *MiniBasics.config.mappings* +# Mappings ~ + +Usage example: >lua + + require('mini.basics').setup({ + mappings = { + basic = true, + option_toggle_prefix = [[\]], + windows = true, + move_with_alt = true, + } + }) +< +If you don't want only some mappings to be made at all, use |vim.keymap.del()| +after calling |MiniBasics.setup()|. + +## mappings.basic ~ + +The `config.mappings.basic` creates mappings for certain commonly mapped actions +(judging by study of available Neovim pre-configurations and public dotfiles). + +Some of the mappings override built-in ones to either improve their +behavior or override its default not very useful action. +It will only add a mapping if it wasn't manually created before. + +Here is a table with created mappings : > + + |Keys | Modes | Description | + |-------|-----------------|-----------------------------------------------| + | j | Normal, Visual | Move down by visible lines with no [count] | + | k | Normal, Visual | Move up by visible lines with no [count] | + | go | Normal | Add [count] empty lines after cursor | + | gO | Normal | Add [count] empty lines before cursor | + | gy | Normal, Visual | Copy to system clipboard | + | gp | Normal, Visual | Paste from system clipboard | + | gV | Normal | Visually select latest changed or yanked text | + | g/ | Visual | Search inside current visual selection | + | * | Visual | Search forward for current visual selection | + | # | Visual | Search backward for current visual selection | + | | Normal, Visual, | Save and go to Normal mode | + | | Insert | | +< +Notes: +- See |[count]| for its meaning. +- On Neovim>=0.10 mappings for `#` and `*` are not created as their + enhanced variants are made built-in. See |v_star-default| and |v_#-default|. + +## mappings.option_toggle_prefix ~ + +The `config.mappings.option_toggle_prefix` defines a prefix used for +creating mappings that toggle common options. The result mappings will be +` + `. For example, with default value, `\w` will toggle |wrap|. + +Other viable choices for prefix are +- `,` (as a mnemonic for several values to toggle). +- `|` (as a same mnemonic). +- `yo` (used in 'tpope/vim-unimpaired') +- Something with || key, like `t` (`t` for "toggle"). Note: + if your prefix contains `` key, make sure to set it before + calling |MiniBasics.setup()| (as is done with default `basic` field of + |MiniBasics.config.options|). + +After toggling, there will be a feedback about the current option value if +prior to `require('mini.basics').setup()` module wasn't silenced (see +"Silencing" section in |mini.basics|). + +It will only add a mapping if it wasn't manually created before. + +Here is a list of suffixes for created toggling mappings (all in Normal mode): + +- `b` - |'background'|. +- `c` - |'cursorline'|. +- `C` - |'cursorcolumn'|. +- `d` - diagnostic (via |vim.diagnostic| functions). +- `h` - |'hlsearch'| (or |v:hlsearch| to be precise). +- `i` - |'ignorecase'|. +- `l` - |'list'|. +- `n` - |'number'|. +- `r` - |'relativenumber'|. +- `s` - |'spell'|. +- `w` - |'wrap'|. + +## mappings.windows ~ + +The `config.mappings.windows` creates mappings for easiere window manipulation. + +It will only add a mapping if it wasn't manually created before. + +Here is a list with created Normal mode mappings (all mappings respect |[count]|): +- Window navigation: + - `` - focus on left window (see |CTRL-W_H|). + - `` - focus on below window (see |CTRL-W_J|). + - `` - focus on above window (see |CTRL-W_K|). + - `` - focus on right window (see |CTRL-W_L|). +- Window resize (all use arrow keys; variants of |resize|; all respect |[count]|): + - `` - decrease window width. + - `` - decrease window height. + - `` - increase window height. + - `` - increase window width. + +## mappings.move_with_alt + +The `config.mappings.move_with_alt` creates mappings for a more consistent +cursor move in Insert, Command, and Terminal modes. For example, it proves +useful in combination of autopair plugin (like |MiniPairs|) to move right +outside of inserted pairs (no matter what the pair is). + +It will only add a mapping if it wasn't manually created before. + +Here is a list of created mappings (`` means `Alt`/`Meta` plus `x`): +- `` - move cursor left. Modes: Insert, Terminal, Command. +- `` - move cursor down. Modes: Insert, Terminal. +- `` - move cursor up. Modes: Insert, Terminal. +- `` - move cursor right. Modes: Insert, Terminal, Command. + + *MiniBasics.config.autocommands* +# Autocommands ~ + +Usage example: >lua + + require('mini.basics').setup({ + autocommands = { + basic = true, + relnum_in_visual_mode = true, + } + }) +< +## autocommands.basic ~ + +The `config.autocommands.basic` creates some common autocommands: + +- Starts insert mode when opening terminal (see |startinsert| and |TermOpen|). +- Highlights yanked text for a brief period of time (see + |vim.highlight.on_yank()| and |TextYankPost|). + +## autocommands.relnum_in_visual_mode ~ + +The `config.autocommands.relnum_in_visual_mode` creates autocommands that +enable |relativenumber| in linewise and blockwise Visual modes and disable +otherwise. See |ModeChanged|. + +------------------------------------------------------------------------------ + *MiniBasics.toggle_diagnostic()* + `MiniBasics.toggle_diagnostic`() +Toggle diagnostic for current buffer + +This uses |vim.diagnostic| functions per buffer. + +Return ~ +`(string)` String indicator for new state. Similar to what |:set| `{option}?` shows. + + + vim:tw=78:ts=8:noet:ft=help:norl: \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/mini.nvim/doc/mini-bracketed.txt b/config/neovim/store/lazy-plugins/mini.nvim/doc/mini-bracketed.txt new file mode 100644 index 00000000..c5e9cc0a --- /dev/null +++ b/config/neovim/store/lazy-plugins/mini.nvim/doc/mini-bracketed.txt @@ -0,0 +1,644 @@ +*mini.bracketed* Go forward/backward with square brackets +*MiniBracketed* + +MIT License Copyright (c) 2023 Evgeni Chasnovski + +============================================================================== + +Features: +- Configurable Lua functions to go forward/backward to a certain target. + Each function can be customized with: + - Direction. One of "forward", "backward", "first" (forward starting + from first one), "last" (backward starting from last one). + - Number of times to go. + - Whether to wrap on edges (going forward on last one goes to first). + - Some other target specific options. + +- Mappings using square brackets. They are created using configurable + target suffix and can be selectively disabled. + + Each mapping supports |[count]|. Mappings are created in Normal mode; for + targets which move cursor in current buffer also Visual and + Operator-pending (with dot-repeat) modes are supported. + + Using `lower-suffix` and `upper-suffix` (lower and upper case suffix) for + a single target the following mappings are created: + - `[` + `upper-suffix` : go first. + - `[` + `lower-suffix` : go backward. + - `]` + `lower-suffix` : go forward. + - `]` + `upper-suffix` : go last. + +- Supported targets (for more information see help for corresponding Lua + function): + + `Target` `Mappings` `Lua function` + + Buffer.......................... `[B` `[b` `]b` `]B` .... |MiniBracketed.buffer()| + + Comment block................... `[C` `[c` `]c` `]C` .... |MiniBracketed.comment()| + + Conflict marker................. `[X` `[x` `]x` `]X` .... |MiniBracketed.conflict()| + + Diagnostic...................... `[D` `[d` `]d` `]D` .... |MiniBracketed.diagnostic()| + + File on disk.................... `[F` `[f` `]f` `]F` .... |MiniBracketed.file()| + + Indent change................... `[I` `[i` `]i` `]I` .... |MiniBracketed.indent()| + + Jump from |jumplist| + inside current buffer........... `[J` `[j` `]j` `]J` .... |MiniBracketed.jump()| + + Location from |location-list|..... `[L` `[l` `]l` `]L` .... |MiniBracketed.location()| + + Old files....................... `[O` `[o` `]o` `]O` .... |MiniBracketed.oldfile()| + + Quickfix entry from |Quickfix|.... `[Q` `[q` `]q` `]Q` .... |MiniBracketed.quickfix()| + + Tree-sitter node and parents.... `[T` `[t` `]t` `]T` .... |MiniBracketed.treesitter()| + + Undo states from specially + tracked linear history.......... `[U` `[u` `]u` `]U` .... |MiniBracketed.undo()| + + Window in current tab........... `[W` `[w` `]w` `]W` .... |MiniBracketed.window()| + + Yank selection replacing + latest put region................`[Y` `[y` `]y` `]Y` .... |MiniBracketed.yank()| + +Notes: +- The `undo` target remaps |u| and || keys to register undo state + after undo and redo respectively. If this conflicts with your setup, + either disable `undo` target or make your remaps after calling + |MiniBracketed.setup()|. To use `undo` target, remap your undo/redo keys + to call |MiniBracketed.register_undo_state()| after the action. + +# Setup ~ + +This module needs a setup with `require('mini.bracketed').setup({})` (replace +`{}` with your `config` table). It will create global Lua table `MiniBracketed` +which you can use for scripting or manually (with `:lua MiniBracketed.*`). + +See |MiniBracketed.config| for available config settings. + +You can override runtime config settings (like target options) locally +to buffer inside `vim.b.minibracketed_config` which should have same structure +as `MiniBracketed.config`. See |mini.nvim-buffer-local-config| for more details. + +# Comparisons ~ + +- 'tpope/vim-unimpaired': + - Supports buffer, conflict, file, location, and quickfix targets mostly + via built-in commands (like |:bprevious|, etc.) without configuration. + - Supports files from argument list and tags. This module does not. + - Doesn't support most other this module's targets (comment, indent, ...). +- 'mini.indentscope': + - Target |MiniBracketed.indent()| target can go to "first" and "last" + indent change. It also can go not only to line with smaller indent, + but also bigger or different one. + - Mappings from 'mini.indentscope' have more flexibility in computation of + indent scope, like how to treat empty lines near border or whether to + compute indent at cursor. + +# Disabling ~ + +To disable, set `vim.g.minibracketed_disable` (globally) or +`vim.b.minibracketed_disable` (for a buffer) to `true`. Considering high +number of different scenarios and customization intentions, writing exact +rules for disabling module's functionality is left to user. See +|mini.nvim-disabling-recipes| for common recipes. + +------------------------------------------------------------------------------ + *MiniBracketed.setup()* + `MiniBracketed.setup`({config}) +Module setup + +Parameters ~ +{config} `(table|nil)` Module config table. See |MiniBracketed.config|. + +Usage ~ +>lua + require('mini.bracketed').setup() -- use default config + -- OR + require('mini.bracketed').setup({}) -- replace {} with your config table +< +------------------------------------------------------------------------------ + *MiniBracketed.config* + `MiniBracketed.config` +Module config + +Default values: +>lua + MiniBracketed.config = { + -- First-level elements are tables describing behavior of a target: + -- + -- - - single character suffix. Used after `[` / `]` in mappings. + -- For example, with `b` creates `[B`, `[b`, `]b`, `]B` mappings. + -- Supply empty string `''` to not create mappings. + -- + -- - - table overriding target options. + -- + -- See `:h MiniBracketed.config` for more info. + + buffer = { suffix = 'b', options = {} }, + comment = { suffix = 'c', options = {} }, + conflict = { suffix = 'x', options = {} }, + diagnostic = { suffix = 'd', options = {} }, + file = { suffix = 'f', options = {} }, + indent = { suffix = 'i', options = {} }, + jump = { suffix = 'j', options = {} }, + location = { suffix = 'l', options = {} }, + oldfile = { suffix = 'o', options = {} }, + quickfix = { suffix = 'q', options = {} }, + treesitter = { suffix = 't', options = {} }, + undo = { suffix = 'u', options = {} }, + window = { suffix = 'w', options = {} }, + yank = { suffix = 'y', options = {} }, + } +< +Options ~ + +Each entry configures target with the same name and can have data configuring +mapping suffix and target options. + +Example of configuration: >lua + + require('mini.bracketed').setup({ + -- Map [N, [n, ]n, ]N for conflict marker like in 'tpope/vim-unimpaired' + conflict = { suffix = 'n' }, + + -- Make diagnostic advance only by errors + diagnostic = { options = { severity = vim.diagnostic.severity.ERROR } }, + + -- Disable creation of mappings for `indent` target (for example, + -- in favor of ones from |mini.indentscope|) + indent = { suffix = '' }, + + -- Disable mappings for `window` target in favor of custom ones + window = { suffix = '' }, + }) + + -- Create custom `window` mappings + local map = vim.keymap.set + map('n', 'wH', "lua MiniBracketed.window('first')") + map('n', 'wh', "lua MiniBracketed.window('backward')") + map('n', 'wl', "lua MiniBracketed.window('forward')") + map('n', 'wL', "lua MiniBracketed.window('last')") +< +## Suffix ~ + +The `suffix` key is used to create target mappings. + +Supply empty string to disable mapping creation for that particular target. +To create a completely different mapping (like with ||) use target +function manually. + +Using `lower-suffix` and `upper-suffix` (lower and upper case suffix) for +a single target the following mappings are created: +- `[` + `upper-suffix` : go first. +- `[` + `lower-suffix` : go backward. +- `]` + `lower-suffix` : go forward. +- `]` + `upper-suffix` : go last. + +When supplied with a non-letter, only forward/backward mappings are created. + +## Options ~ + +The `options` key is directly forwarded as `opts` to corresponding Lua function. + +------------------------------------------------------------------------------ + *MiniBracketed.buffer()* + `MiniBracketed.buffer`({direction}, {opts}) +Listed buffer + +Go to next/previous listed buffer. Order by their number (see |bufnr()|). + +Direction "forward" increases number, "backward" - decreases. + +Parameters ~ +{direction} `(string)` One of "first", "backward", "forward", "last". +{opts} `(table|nil)` Options. A table with fields: + - `(number)` - Number of times to advance. Default: |v:count1|. + - `(boolean)` - Whether to wrap around edges. Default: `true`. + +------------------------------------------------------------------------------ + *MiniBracketed.comment()* + `MiniBracketed.comment`({direction}, {opts}) +Comment block + +Go to next/previous comment block. Only linewise comments using +'commentsring' are recognized. + +Direction "forward" increases line number, "backward" - decreases. + +Parameters ~ +{direction} `(string)` One of "first", "backward", "forward", "last". +{opts} `(table|nil)` Options. A table with fields: + - `(number)` - Number of times to advance. Default: |v:count1|. + - `(boolean)` - Whether to wrap around edges. Default: `true`. + - (`boolean`) - Whether to add current position to jumplist. + Default: `false`. + - `(string)` - which side of comment block to use. One of + "near" (default; use nearest side), "start" (use first line), "end" + (use last line), "both" (use both first and last lines). + +------------------------------------------------------------------------------ + *MiniBracketed.conflict()* + `MiniBracketed.conflict`({direction}, {opts}) +Git conflict marker + +Go to next/previous lines containing Git conflict marker. That is, if it +starts with "<<<<<<< ", ">>>>>>> ", or is "=======". + +Direction "forward" increases line number, "backward" - decreases. + +Notes: +- Using this target in Operator-pending mode allows the following approach + at resolving merge conflicts: + - Place cursor on `=======` line. + - Execute one of these: `d]x[xdd` (choose upper part) or + `d[x]xdd` (choose lower part). + +Parameters ~ +{direction} `(string)` One of "first", "backward", "forward", "last". +{opts} `(table|nil)` Options. A table with fields: + - `(number)` - Number of times to advance. Default: |v:count1|. + - `(boolean)` - Whether to wrap around edges. Default: `true`. + - (`boolean`) - Whether to add current position to jumplist. + Default: `false`. + +------------------------------------------------------------------------------ + *MiniBracketed.diagnostic()* + `MiniBracketed.diagnostic`({direction}, {opts}) +Diagnostic + +Go to next/previous diagnostic. This is mostly similar to +|vim.diagnostic.goto_next()| and |vim.diagnostic.goto_prev()| for +current buffer which supports |[count]| and functionality to go to +first/last diagnostic entry. + +Direction "forward" increases line number, "backward" - decreases. + +Notes: +- Using `severity` option, this target can be used in mappings like "go to + next/previous error" (), etc. Using code similar to this: >lua + + local severity_error = vim.diagnostic.severity.ERROR + -- Use these inside custom mappings + MiniBracketed.diagnostic('forward', { severity = severity_error }) + MiniBracketed.diagnostic('backward', { severity = severity_error }) +< +Parameters ~ +{direction} `(string)` One of "first", "backward", "forward", "last". +{opts} `(table|nil)` Options. A table with fields: + - `(number)` - Number of times to advance. Default: |v:count1|. + - `(boolean)` - Whether to wrap around edges. Default: `true`. + - `(boolean|table)` - control floating window after movement. + For available values see |vim.diagnostic.goto_next()|. + - `(string|table)` - which severity to use. + For available values see |diagnostic-severity|. + +------------------------------------------------------------------------------ + *MiniBracketed.file()* + `MiniBracketed.file`({direction}, {opts}) +File on disk + +Go to next/previous file on disk alphabetically. Files are taken from +directory of file in current buffer (or current working directory if buffer +doesn't contain a readable file). Only first-level files are used, i.e. it +doesn't go inside subdirectories. + +Direction "forward" goes forward alphabetically, "backward" - backward. + +Parameters ~ +{direction} `(string)` One of "first", "backward", "forward", "last". +{opts} `(table|nil)` Options. A table with fields: + - `(number)` - Number of times to advance. Default: |v:count1|. + - `(boolean)` - Whether to wrap around edges. Default: `true`. + +------------------------------------------------------------------------------ + *MiniBracketed.indent()* + `MiniBracketed.indent`({direction}, {opts}) +Indent change + +Go to next/previous line with different indent (see |indent()|). +Can be used to go to lines with smaller, bigger, or different indent. + +Notes: +- Directions "first" and "last" work differently from most other targets + for performance reasons. They are essentially "backward" and "forward" + with very big `n_times` option. +- For similar reasons, `wrap` is not supported. +- Blank line inherit indent from near non-blank line in direction of movement. + +Direction "forward" increases line number, "backward" - decreases. + +Parameters ~ +{direction} `(string)` One of "first", "backward", "forward", "last". +{opts} `(table|nil)` Options. A table with fields: + - `(number)` - Number of times to advance. Default: |v:count1|. + - (`boolean`) - Whether to add current position to jumplist. + Default: `false`. + - `(string)` - which type of indent change to use. + One of "less" (default; smaller indent), "more" (bigger indent), + "diff" (different indent). + +------------------------------------------------------------------------------ + *MiniBracketed.jump()* + `MiniBracketed.jump`({direction}, {opts}) +Jump inside current buffer + +Go to next/previous jump from |jumplist| which is inside current buffer. + +Notes: +- There are no Visual mode mappings due to implementation problems. + +Direction "forward" increases jump number, "backward" - decreases. + +Parameters ~ +{direction} `(string)` One of "first", "backward", "forward", "last". +{opts} `(table|nil)` Options. A table with fields: + - `(number)` - Number of times to advance. Default: |v:count1|. + - `(boolean)` - Whether to wrap around edges. Default: `true`. + +------------------------------------------------------------------------------ + *MiniBracketed.location()* + `MiniBracketed.location`({direction}, {opts}) +Location from location list + +Go to next/previous location from |location-list|. This is similar to +|:lfirst|, |:lprevious|, |:lnext|, and |:llast| but with support of +wrapping around edges and |[count]| for "first"/"last" direction. + +Direction "forward" increases location number, "backward" - decreases. + +Parameters ~ +{direction} `(string)` One of "first", "backward", "forward", "last". +{opts} `(table|nil)` Options. A table with fields: + - `(number)` - Number of times to advance. Default: |v:count1|. + - `(boolean)` - Whether to wrap around edges. Default: `true`. + +------------------------------------------------------------------------------ + *MiniBracketed.oldfile()* + `MiniBracketed.oldfile`({direction}, {opts}) +Old files from previous and current sessions + +Go to older/newer readable file either from previous session (see |v:oldfiles|) +or the current one (updated automatically after |MiniBracketed.setup()| call). + +Direction "forward" goes to more recent files, "backward" - to older. + +Notes: +- In current session it tracks only normal buffers (see |'buftype'|) for + some readable file. +- No new file is tracked when advancing this target. Only after buffer + change is done not through this target (like with |MiniBracketed.buffer()|), + it updates recency of last advanced and new buffers. + +Parameters ~ +{direction} `(string)` One of "first", "backward", "forward", "last". +{opts} `(table|nil)` Options. A table with fields: + - `(number)` - Number of times to advance. Default: |v:count1|. + - `(boolean)` - Whether to wrap around edges. Default: `true`. + +------------------------------------------------------------------------------ + *MiniBracketed.quickfix()* + `MiniBracketed.quickfix`({direction}, {opts}) +Quickfix from quickfix list + +Go to next/previous entry from |quickfix| list. This is similar to +|:cfirst|, |:cprevious|, |:cnext|, and |:clast| but with support of +wrapping around edges and |[count]| for "first"/"last" direction. + +Direction "forward" increases location number, "backward" - decreases. + +Parameters ~ +{direction} `(string)` One of "first", "backward", "forward", "last". +{opts} `(table|nil)` Options. A table with fields: + - `(number)` - Number of times to advance. Default: |v:count1|. + - `(boolean)` - Whether to wrap around edges. Default: `true`. + +------------------------------------------------------------------------------ + *MiniBracketed.treesitter()* + `MiniBracketed.treesitter`({direction}, {opts}) +Tree-sitter node + +Go to end/start of current tree-sitter node and its parents (except root). + +Notes: +- Requires |get_node_at_pos()| from |lua-treesitter| (present in Neovim=0.8) + or |vim.treesitter.get_node()| (present in Neovim>=0.9) along with loaded + tree-sitter parser in current buffer. +- Directions "first" and "last" work differently from most other targets + for performance reasons. They are essentially "backward" and "forward" + with very big `n_times` option. +- For similar reasons, `wrap` is not supported. + +Direction "forward" moves cursor forward to node's end, "backward" - backward +to node's start. + +Parameters ~ +{direction} `(string)` One of "first", "backward", "forward", "last". +{opts} `(table|nil)` Options. A table with fields: + - `(number)` - Number of times to advance. Default: |v:count1|. + - (`boolean`) - Whether to add current position to jumplist. + Default: `false`. + +------------------------------------------------------------------------------ + *MiniBracketed.undo()* + `MiniBracketed.undo`({direction}, {opts}) +Undo along a tracked linear history + +In a nutshell: +- Keys |u| and || (although remapped) can be used as usual, but every + their execution new state is recorded in this module's linear undo history. +- Advancing this target goes along linear undo history revealing undo states + **in order they actually appeared**. +- One big difference with built-in methods is that tracked linear history + can repeat undo states (not consecutively, though). + +Neovim's default way of managing undo history is through branches (see +|undo-branches|). Basically it means that if you undo several changes and then +make new ones, it creates new undo branch while usually (see |'undolevels'|) +saving previous buffer states in another branch. While there are commands +to navigate by time of undo state creation (like |:earlier| and |:later|), +there is no intuitive way to cycle through them. Existing |g-| and |g+| +cycle through undo states **based on their creation time**, which often +gets confusing really guickly in extensively edited buffer. + +This `undo()` target provides a way to cycle through linear undo history +**in order states actually appeared**. It does so by registering any new undo +states plus every time |MiniBracketed.register_undo_state()| is called. To have +more "out of the box" experience, |u| and || are remapped to call it after +they perform their undo/redo. + +Example ~ + +To show more clearly the difference between advancing this target and using +built-in functionality, here is an example: + +- Create undo history in a new buffer (|:new|): + - Enter `one two three` text. + - Delete first word with `daw` and undo the change with `u`. + - Delete second word with `daw` and undo the change with `u`. + - Delete third word with `daw` and undo the change with `u`. + +- Now try one of the following (each one after performing previous steps in + separate new buffer): + - Press `u`. It goes back to empty buffer. Press `` twice and it + goes to the latest change (`one two`). No way to get to other states + (like `two three` or `one three`) with these two keys. + + - Press `g-`. It goes to an empty buffer. Press `g+` 4 times. It cycles + through all available undo states **in order they were created**. + + - Finally, press `[u`. It goes back to `one two` - state which was + **previously visited** by the user. Another `[u` restores `one two three`. + Use `]U` to go to latest visited undo state. + +Parameters ~ +{direction} `(string)` One of "first", "backward", "forward", "last". +{opts} `(table|nil)` Options. A table with fields: + - `(number)` - Number of times to advance. Default: |v:count1|. + - `(boolean)` - Whether to wrap around edges. Default: `true`. + +------------------------------------------------------------------------------ + *MiniBracketed.register_undo_state()* + `MiniBracketed.register_undo_state`() +Register state for undo target + +Use this function to add current undo state to this module's linear undo +history. It is used in |MiniBracketed.setup()| to remap |u| and || keys to add +their new state to linear undo history. + +------------------------------------------------------------------------------ + *MiniBracketed.window()* + `MiniBracketed.window`({direction}, {opts}) +Normal window + +Go to next/previous normal window. Order by their number (see |winnr()|). + +Direction "forward" increases window number, "backward" - decreases. + +Only normal (non-floating) windows are used. + +Parameters ~ +{direction} `(string)` One of "first", "backward", "forward", "last". +{opts} `(table|nil)` Options. A table with fields: + - `(number)` - Number of times to advance. Default: |v:count1|. + - `(boolean)` - Whether to wrap around edges. Default: `true`. + +------------------------------------------------------------------------------ + *MiniBracketed.yank()* + `MiniBracketed.yank`({direction}, {opts}) +Replace "latest put region" with yank history entry + +After |MiniBracketed.setup()| is called, on every yank/delete/change operation +(technically, every trigger of |TextYankPost| event) the object of operation +is added to yank history. Advancing this target will replace the region of +latest put operation with entry from yank history. + +By default works best if called **right after** text paste (like with |p| or |P|). + +To better detect "latest put region", use |MiniBracketed.register_put_region()| +as described later. + +Direction "forward" goes to newer yank history entry, "backward" - to older. + +Example ~ + +- Type `one two three`. +- Yank each word with `yiw`. +- Create new line and press `p`. This should paste `three`. +- Type `[y`. This should replace latest `three` with `two`. + +Latest put region ~ + +"Latest put region" is (in order of decreasing priority): +- The one from latest advance of this target. +- The one registered by user with |MiniBracketed.register_put_region()|. +- The one taken from |`[| and |`]| marks. + +For users there are these approaches to manage which region will be used: +- Do nothing. In this case region between `[` / `]` marks will always be used + for first `yank` advance. + Although doable, this has several drawbacks: it will use latest yanked or + changed region or the entire buffer if marks are not set. + If remember to advance this target only after recent put operation, this + should work as expected. + +- Remap common put operations to use |MiniBracketed.register_put_region()|. + After that, only regions from mapped put operations will be used for first + advance. Example of custom mappings (note use of |:map-expression|): >lua + + local put_keys = { 'p', 'P' } + for _, lhs in ipairs(put_keys) do + local rhs = 'v:lua.MiniBracketed.register_put_region("' .. lhs .. '")' + vim.keymap.set({ 'n', 'x' }, lhs, rhs, { expr = true }) + end +< +Parameters ~ +{direction} `(string)` One of "first", "backward", "forward", "last". +{opts} `(table|nil)` Options. A table with fields: + - `(number)` - Number of times to advance. Default: |v:count1|. + - `(boolean)` - Whether to wrap around edges. Default: `true`. + - `(table)` - array of operator names ("c", "d", or "y") for + which yank entry should be used to advance. For example, use `{ "y" }` + to advance only by entries actually resulted from yank operation with |y|. + Default: `{ 'c', 'd', 'y' }`. + +------------------------------------------------------------------------------ + *MiniBracketed.register_put_region()* + `MiniBracketed.register_put_region`({put_key}) +Register "latest put region" + +This function should be called after put register becomes relevant +(|v:register| is appropriately set) but before put operation takes place +(|`[| and |`]| marks become relevant). + +Designed to be used in a user-facing expression mapping (see |:map-expression|). +For mapping examples see |MiniBracketed.yank()|. + +Parameters ~ +{put_key} `(string)` Put keys to be remapped. + +Return ~ +`(string)` Returns `put_key` for a better usage inside expression mappings. + +------------------------------------------------------------------------------ + *MiniBracketed.advance()* + `MiniBracketed.advance`({iterator}, {direction}, {opts}) +Advance iterator + +This is the main function which performs any forward/backward/first/last +advance in this module. Its basic idea is to take iterator (object containing +information about current state and how to go to next/previous one) and go +in certain direction until needed/allowed. + +Notes: +- Directions "first" and "last" are convenience wrappers for "forward" and + "backward" with pre-setting initial state to `start_edge` and `end_edge`. +- Iterators `next()` and `prev()` methods should be able to handle `nil` as input. +- This function only returns new state and doesn't modify `iterator.state`. + +Parameters ~ +{iterator} `(table)` Table: + - Methods: + - - given state, return state in forward direction (no wrap). + - - given state, return state in backward direction (no wrap). + - Fields: + - - object describing current state. + - (optional) - object with `forward(start_edge)` describing + first state. If `nil`, can't wrap forward or use direction "first". + - (optional) - object with `backward(end_edge)` describing + last state. If `nil`, can't wrap backward or use direction "last". +{direction} `(string)` Direction. One of "first", "backward", "forward", "last". +{opts} `(table|nil)` Options with the following keys: + - `(number)` - number of times to go in input direction. + Default: `v:count1`. + - `(boolean)` - whether to wrap around edges when `next()` or + `prev()` return `nil`. Default: `true`. + +Return ~ +`(any)` Result state. If `nil`, could not reach any valid result state. + + + vim:tw=78:ts=8:noet:ft=help:norl: \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/mini.nvim/doc/mini-bufremove.txt b/config/neovim/store/lazy-plugins/mini.nvim/doc/mini-bufremove.txt new file mode 100644 index 00000000..cb026ac5 --- /dev/null +++ b/config/neovim/store/lazy-plugins/mini.nvim/doc/mini-bufremove.txt @@ -0,0 +1,129 @@ +*mini.bufremove* Remove buffers +*MiniBufremove* + +MIT License Copyright (c) 2021 Evgeni Chasnovski + +============================================================================== + +Features: +- Unshow, delete, and wipeout buffer while saving window layout + (opposite to builtin Neovim's commands). + +# Setup ~ + +This module doesn't need setup, but it can be done to improve usability. +Setup with `require('mini.bufremove').setup({})` (replace `{}` with your +`config` table). It will create global Lua table `MiniBufremove` which you +can use for scripting or manually (with `:lua MiniBufremove.*`). + +See |MiniBufremove.config| for `config` structure and default values. + +This module doesn't have runtime options, so using `vim.b.minibufremove_config` +will have no effect here. + +To stop module from showing non-error feedback, set `config.silent = true`. + +# Notes ~ + +1. Which buffer to show in window(s) after its current buffer is removed is + decided by the algorithm: + - If alternate buffer (see |CTRL-^|) is listed (see |buflisted()|), use it. + - If previous listed buffer (see |bprevious|) is different, use it. + - Otherwise create a new one with `nvim_create_buf(true, false)` and use it. + +# Disabling ~ + +To disable core functionality, set `vim.g.minibufremove_disable` (globally) or +`vim.b.minibufremove_disable` (for a buffer) to `true`. Considering high +number of different scenarios and customization intentions, writing exact +rules for disabling module's functionality is left to user. See +|mini.nvim-disabling-recipes| for common recipes. + +------------------------------------------------------------------------------ + *MiniBufremove.setup()* + `MiniBufremove.setup`({config}) +Module setup + +Parameters ~ +{config} `(table|nil)` Module config table. See |MiniBufremove.config|. + +Usage ~ +>lua + require('mini.bufremove').setup() -- use default config + -- OR + require('mini.bufremove').setup({}) -- replace {} with your config table +< +------------------------------------------------------------------------------ + *MiniBufremove.config* + `MiniBufremove.config` +Module config + +Default values: +>lua + MiniBufremove.config = { + -- Whether to set Vim's settings for buffers (allow hidden buffers) + set_vim_settings = true, + + -- Whether to disable showing non-error feedback + silent = false, + } +< +------------------------------------------------------------------------------ + *MiniBufremove.delete()* + `MiniBufremove.delete`({buf_id}, {force}) +Delete buffer `buf_id` with |:bdelete| after unshowing it + +Parameters ~ +{buf_id} `(number|nil)` Buffer identifier (see |bufnr()|) to use. + Default: 0 for current. +{force} `(boolean|nil)` Whether to ignore unsaved changes (using `!` version of + command). If `false`, calling with unsaved changes will prompt confirm dialog. + Default: `false`. + +Return ~ +`(boolean|nil)` Whether operation was successful. If `nil`, no operation was done. + +------------------------------------------------------------------------------ + *MiniBufremove.wipeout()* + `MiniBufremove.wipeout`({buf_id}, {force}) +Wipeout buffer `buf_id` with |:bwipeout| after unshowing it + +Parameters ~ +{buf_id} `(number|nil)` Buffer identifier (see |bufnr()|) to use. + Default: 0 for current. +{force} `(boolean|nil)` Whether to ignore unsaved changes (using `!` version of + command). If `false`, calling with unsaved changes will prompt confirm dialog. + Default: `false`. + +Return ~ +`(boolean|nil)` Whether operation was successful. If `nil`, no operation was done. + +------------------------------------------------------------------------------ + *MiniBufremove.unshow()* + `MiniBufremove.unshow`({buf_id}) +Stop showing buffer `buf_id` in all windows + +Parameters ~ +{buf_id} `(number|nil)` Buffer identifier (see |bufnr()|) to use. + Default: 0 for current. + +Return ~ +`(boolean|nil)` Whether operation was successful. If `nil`, no operation was done. + +------------------------------------------------------------------------------ + *MiniBufremove.unshow_in_window()* + `MiniBufremove.unshow_in_window`({win_id}) +Stop showing current buffer of window `win_id` + +Notes: +- If `win_id` represents |cmdline-window|, this function will close it. + +Parameters ~ +{win_id} `(number|nil)` Window identifier (see |win_getid()|) to use. + Default: 0 for current. + +Return ~ +`(boolean|nil)` Whether operation was successful. If `nil`, no operation was done. + + + vim:tw=78:ts=8:noet:ft=help:norl: \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/mini.nvim/doc/mini-clue.txt b/config/neovim/store/lazy-plugins/mini.nvim/doc/mini-clue.txt new file mode 100644 index 00000000..7175b67f --- /dev/null +++ b/config/neovim/store/lazy-plugins/mini.nvim/doc/mini-clue.txt @@ -0,0 +1,755 @@ +*mini.clue* Show next key clues +*MiniClue* + +MIT License Copyright (c) 2023 Evgeni Chasnovski + +============================================================================== + +Features: +- Implement custom key query process to reach target key combination: + - Starts after customizable opt-in triggers (mode + keys). + + - Each key press narrows down set of possible targets. + Pressing `` removes previous user entry. + Pressing `` or `` leads to an early stop. + Doesn't depend on 'timeoutlen' and has basic support for 'langmap'. + + - Ends when there is at most one target left or user pressed ``. + Results into emulating pressing all query keys plus possible postkeys. + +- Show window (after configurable delay) with clues. It lists available + next keys along with their descriptions (auto generated from descriptions + present keymaps and user-supplied clues; preferring the former). + +- Configurable "postkeys" for key combinations - keys which will be emulated + after combination is reached during key query process. + +- Provide customizable sets of clues for common built-in keys/concepts: + - `g` key. + - `z` key. + - Window commands. + - Built-in completion. + - Marks. + - Registers. + +- Lua functions to disable/enable triggers globally or per buffer. + +For more details see: +- |MiniClue-key-query-process|. +- |MiniClue-examples|. +- |MiniClue.config|. +- |MiniClue.gen_clues|. + +Notes: +- Works on all supported versions but using Neovim>=0.9 is recommended. + +- There is no functionality to create mappings while defining clues. + This is done to clearly separate these two different actions. + The best suggested practice is to manually create mappings with + descriptions (`desc` field in options), as they will be automatically + used inside clue window. + +- Triggers are implemented as special buffer-local mappings. This leads to + several caveats: + - They will override same regular buffer-local mappings and have + precedence over global one. + + Example: having set `` as Normal mode trigger means that + there should not be another `` mapping. + + - They need to be the latest created buffer-local mappings or they will + not function properly. Most common indicator of this is that some + mapping starts to work only after clue window is shown. + + Example: `g` is set as Normal mode trigger, but `gcc` from |mini.comment| + doesn't work right away. This is probably because there are some + other buffer-local mappings starting with `g` which were created after + mapping for `g` trigger. Most common places for this are in LSP server's + `on_attach` or during tree-sitter start in buffer. + + To check if trigger is the most recent buffer-local mapping, execute + `:map ` (like `:nmap g` for previous example). + Mapping for trigger should be the first listed. + + This module makes the best effort to work out of the box and cover + most common cases, but it is not foolproof. The solution here is to + ensure that triggers are created after making all buffer-local mappings: + run either |MiniClue.setup()| or |MiniClue.ensure_buf_triggers()|. + +- Descriptions from existing mappings take precedence over user-supplied + clues. This is to ensure that information shown in clue window is as + relevant as possible. To add/customize description of an already existing + mapping, use |MiniClue.set_mapping_desc()|. + +- Due to technical difficulties, there is no foolproof support for + Operator-pending mode triggers (like `a`/`i` from |mini.ai|): + - Doesn't work as part of a command in "temporary Normal mode" (like + after |i_CTRL-O|) due to implementation difficulties. + - Can have unexpected behavior with custom operators. + +- Has (mostly solved) issues with macros: + - All triggers are disabled during macro recording due to technical + reasons. + - The `@` and `Q` keys are specially mapped inside |MiniClue.setup()| + to temporarily disable triggers. + +# Setup ~ + +This module needs a setup with `require('mini.clue').setup({})` (replace +`{}` with your `config` table). It will create global Lua table `MiniClue` +which you can use for scripting or manually (with `:lua MiniClue.*`). + +Config table **needs to have triggers configured**, none is set up by default. + +See |MiniClue.config| for available config settings. + +You can override runtime config settings (like clues or window options) +locally to a buffer inside `vim.b.miniclue_config` which should have same +structure as `MiniClue.config`. See |mini.nvim-buffer-local-config| for +more details. + +# Comparisons ~ + +- 'folke/which-key.nvim': + - Both have the same main goal: show available next keys along with + their customizable descriptions. + - Has different UI and content layout. + - Allows creating mappings inside its configuration, while this module + doesn't have this by design (to clearly separate two different tasks). + - Doesn't allow creating submodes, while this module does (via `postkeys`). + +- 'anuvyklack/hydra.nvim': + - Both allow creating submodes: state which starts at certain key + combination; treats some keys differently; ends after ``. + - Doesn't show information about available next keys (outside of + submodes), while that is this module's main goal. + +# Highlight groups ~ + +* `MiniClueBorder` - window border. +* `MiniClueDescGroup` - group description in clue window. +* `MiniClueDescSingle` - single target description in clue window. +* `MiniClueNextKey` - next key label in clue window. +* `MiniClueNextKeyWithPostkeys` - next key label with postkeys in clue window. +* `MiniClueSeparator` - separator in clue window. +* `MiniClueTitle` - window title. + +To change any highlight group, modify it directly with |:highlight|. + +# Disabling ~ + +To disable creating triggers, set `vim.g.miniclue_disable` (globally) or +`vim.b.miniclue_disable` (for a buffer) to `true`. Considering high number +of different scenarios and customization intentions, writing exact rules +for disabling module's functionality is left to user. See +|mini.nvim-disabling-recipes| for common recipes. + +------------------------------------------------------------------------------ + *MiniClue-key-query-process* +# Key query process ~ + +## General info ~ + +This module implements custom key query process imitating a usual built-in +mechanism of user pressing keys in order to execute a mapping. General idea +is the same: narrow down key combinations until the target is reached. + +Main goals of its existence are: + +- Allow reaching certain mappings be independent of 'timeoutlen'. That is, + there is no fixed timeout after which currently typed keys are executed. + +- Enable automated showing of next key clues after user-supplied delay + (also independent of 'timeoutlen'). + +- Allow emulating configurable key presses after certain key combination is + reached. This granular control allows creating so called "submodes". + See more at |MiniClue-examples-submodes|. + +This process is primarily designed for nested `` mappings in Normal +mode but works in all other main modes: Visual, Insert, Operator-pending +(with caveats; no foolproof guarantees), Command-line, Terminal. + +## Lifecycle ~ + +- Key query process starts when user types a trigger: certain keys in certain + mode. Those keys are put into key query as a single user input. All possible + mode key combinations are filtered to ones starting with the trigger keys. + + Note: trigger is implemented as a regular mapping, so if it has at least + two keys, they should be pressed within 'timeoutlen' milliseconds. + +- Wait (indefinitely) for user to press a key. Advance depending on the key: + + - Special key: + + - If `` or ``, stop the process without any action. + + - If ``, stop the process and execute current key query, meaning + emulate (with |nvim_feedkeys()|) user pressing those keys. + + - If ``, remove previous user input from the query. If query becomes + empty, stop the process without any action. + + - If a key for scrolling clue window (`scroll_down` / `scroll_up` + in `config.window`; `` / `` by default), scroll clue window + and wait for the next user key. + Note: if clue window is not shown, treated as a not special key. + + - Not special key. Add key to the query while filtering all available + key combinations to start with the current key query. Advance: + + - If there is a single available key combination matching current + key query, execute it. + + - If there is no key combinations starting with the current query, + execute it. This, for instance, allows a seamless execution of + operators in presence of a longer key combinations. Example: with + `g` as trigger in Normal mode and available mappings `gc` / `gcc` + (like from |mini.comment|), this allows typing `gcip` to comment + current paragraph, although there are no key combinations + starting with `gci`. + + - Otherwise wait for the new user key press. + +## Clue window ~ + +After initiating key query process and after each key press, a timer is +started to show a clue window: floating window with information about +available next keys along with their descriptions. Note: if window is +already shown, its content is updated right away. + +Clues can have these types: + +- "Terminal next key": when pressed, will lead to query execution. + +- "Terminal next key with postkeys": when pressed, will lead to query + execution plus some configured postkeys. + +- "Group next key": when pressed, will narrow down available key combinations + and wait for another key press. Note: can have configured description + (inside `config.clues`) or it will be auto generated based on the number of + available key combinations. + +------------------------------------------------------------------------------ + *MiniClue-examples* +# Full starter example ~ + +If not sure where to start, try this example with all provided clues from +this module plus all || mappings in Normal and Visual modes: >lua + + local miniclue = require('mini.clue') + miniclue.setup({ + triggers = { + -- Leader triggers + { mode = 'n', keys = '' }, + { mode = 'x', keys = '' }, + + -- Built-in completion + { mode = 'i', keys = '' }, + + -- `g` key + { mode = 'n', keys = 'g' }, + { mode = 'x', keys = 'g' }, + + -- Marks + { mode = 'n', keys = "'" }, + { mode = 'n', keys = '`' }, + { mode = 'x', keys = "'" }, + { mode = 'x', keys = '`' }, + + -- Registers + { mode = 'n', keys = '"' }, + { mode = 'x', keys = '"' }, + { mode = 'i', keys = '' }, + { mode = 'c', keys = '' }, + + -- Window commands + { mode = 'n', keys = '' }, + + -- `z` key + { mode = 'n', keys = 'z' }, + { mode = 'x', keys = 'z' }, + }, + + clues = { + -- Enhance this by adding descriptions for mapping groups + miniclue.gen_clues.builtin_completion(), + miniclue.gen_clues.g(), + miniclue.gen_clues.marks(), + miniclue.gen_clues.registers(), + miniclue.gen_clues.windows(), + miniclue.gen_clues.z(), + }, + }) +< +# Leader clues ~ + +Assume there are these || mappings set up: >lua + + -- Set `` before making any mappings and configuring 'mini.clue' + vim.g.mapleader = ' ' + + local nmap_leader = function(suffix, rhs, desc) + vim.keymap.set('n', '' .. suffix, rhs, { desc = desc }) + end + local xmap_leader = function(suffix, rhs, desc) + vim.keymap.set('x', '' .. suffix, rhs, { desc = desc }) + end + + nmap_leader('bd', 'lua MiniBufremove.delete()', 'Delete') + nmap_leader('bw', 'lua MiniBufremove.wipeout()', 'Wipeout') + + nmap_leader('lf', 'lua vim.lsp.buf.format()', 'Format') + xmap_leader('lf', 'lua vim.lsp.buf.format()', 'Format') + nmap_leader('lr', 'lua vim.lsp.buf.rename()', 'Rename') + nmap_leader('lR', 'lua vim.lsp.buf.references()', 'References') +< +The following setup will enable || as trigger in Normal and Visual +modes and add descriptions to mapping groups: >lua + + require('mini.clue').setup({ + -- Register `` as trigger + triggers = { + { mode = 'n', keys = '' }, + { mode = 'x', keys = '' }, + }, + + -- Add descriptions for mapping groups + clues = { + { mode = 'n', keys = 'b', desc = '+Buffers' }, + { mode = 'n', keys = 'l', desc = '+LSP' }, + }, + }) +< +# Clues without mappings ~ + +Clues can be shown not only for actually present mappings. This is helpful for +showing clues for built-in key combinations. Here is an example of clues for +a subset of built-in completion (see |MiniClue.gen_clues.builtin_completion()| +to generate clues for all available completion sources): >lua + + require('mini.clue').setup({ + -- Make `` a trigger. Otherwise, key query process won't start. + triggers = { + { mode = 'i', keys = '' }, + }, + + -- Register custom clues + clues = { + { mode = 'i', keys = '', desc = 'File names' }, + { mode = 'i', keys = '', desc = 'Whole lines' }, + { mode = 'i', keys = '', desc = 'Omni completion' }, + { mode = 'i', keys = '', desc = 'Spelling suggestions' }, + { mode = 'i', keys = '', desc = "With 'completefunc'" }, + } + }) +< + *MiniClue-examples-submodes* +# Submodes ~ + +Submode is a state initiated after pressing certain key combination ("prefix") +during which some keys are interpreted differently. + +In this module submode can be implemented following these steps: + +- Create mappings for each key inside submode. Left hand side of mappings + should consist from prefix followed by the key. + +- Create clue for each key inside submode with `postkeys` value equal to + prefix. It would mean that after executing particular key combination from + this submode, pressing its prefix will be automatically emulated (leading + back to being inside submode). + +- Register submode prefix (or some of its starting part) as trigger. + +## Submode examples ~ + +- Submode for moving with |mini.move|: + - Press `m` to start submode. + - Press any of `h`/`j`/`k`/`l` to move selection/line. + - Press `` to stop submode. + + The code: >lua + + require('mini.move').setup({ + mappings = { + left = 'mh', + right = 'ml', + down = 'mj', + up = 'mk', + line_left = 'mh', + line_right = 'ml', + line_down = 'mj', + line_up = 'mk', + }, + }) + + require('mini.clue').setup({ + triggers = { + { mode = 'n', keys = 'm' }, + { mode = 'x', keys = 'm' }, + }, + clues = { + { mode = 'n', keys = 'mh', postkeys = 'm' }, + { mode = 'n', keys = 'mj', postkeys = 'm' }, + { mode = 'n', keys = 'mk', postkeys = 'm' }, + { mode = 'n', keys = 'ml', postkeys = 'm' }, + { mode = 'x', keys = 'mh', postkeys = 'm' }, + { mode = 'x', keys = 'mj', postkeys = 'm' }, + { mode = 'x', keys = 'mk', postkeys = 'm' }, + { mode = 'x', keys = 'ml', postkeys = 'm' }, + }, + }) +< +- Submode for iterating buffers and windows with |mini.bracketed|: + - Press `[` or `]` to start key query process for certain direction. + - Press `b` / `w` to iterate buffers/windows until reach target one. + - Press `` to stop submode. + + The code: >lua + + require('mini.bracketed').setup() + + require('mini.clue').setup({ + triggers = { + { mode = 'n', keys = ']' }, + { mode = 'n', keys = '[' }, + }, + clues = { + { mode = 'n', keys = ']b', postkeys = ']' }, + { mode = 'n', keys = ']w', postkeys = ']' }, + + { mode = 'n', keys = '[b', postkeys = '[' }, + { mode = 'n', keys = '[w', postkeys = '[' }, + }, + }) +< +- Submode for window commands using |MiniClue.gen_clues.windows()|: + - Press `` to start key query process. + - Press keys which move / change focus / resize windows. + - Press `` to stop submode. + + The code: >lua + + local miniclue = require('mini.clue') + miniclue.setup({ + triggers = { + { mode = 'n', keys = '' }, + }, + clues = { + miniclue.gen_clues.windows({ + submode_move = true, + submode_navigate = true, + submode_resize = true, + }) + }, + }) +< +# Window config ~ +>lua + require('mini.clue').setup({ + triggers = { { mode = 'n', keys = '' } }, + + window = { + -- Show window immediately + delay = 0, + + config = { + -- Compute window width automatically + width = 'auto', + + -- Use double-line border + border = 'double', + }, + }, + }) +< +------------------------------------------------------------------------------ + *MiniClue.setup()* + `MiniClue.setup`({config}) +Module setup + +Parameters ~ +{config} `(table|nil)` Module config table. See |MiniClue.config|. + +Usage ~ +>lua + require('mini.clue').setup({}) -- replace {} with your config table + -- needs `triggers` field present +< +------------------------------------------------------------------------------ + *MiniClue.config* + `MiniClue.config` +Module config + +Default values: +>lua + MiniClue.config = { + -- Array of extra clues to show + clues = {}, + + -- Array of opt-in triggers which start custom key query process. + -- **Needs to have something in order to show clues**. + triggers = {}, + + -- Clue window settings + window = { + -- Floating window config + config = {}, + + -- Delay before showing clue window + delay = 1000, + + -- Keys to scroll inside the clue window + scroll_down = '', + scroll_up = '', + }, + } +< +# General info ~ + +- To use || as part of the config (either as trigger or inside clues), + set it prior to running |MiniClue.setup()|. + +- See |MiniClue-examples| for examples. + +# Clues ~ + +`config.clues` is an array with extra information about key combinations. +Each element can be one of: +- Clue table. +- Array (possibly nested) of clue tables. +- Callable (function) returning either of the previous two. + +A clue table is a table with the following fields: +- `(string)` - single character describing **single** mode short-name of + key combination as in `nvim_set_keymap()` ('n', 'x', 'i', 'o', 'c', etc.). +- `(string)` - key combination for which clue will be shown. + "Human-readable" key names as in |key-notation| (like "", "", + "", etc.) are allowed. +- `(string|nil)` - optional key combination description which will + be shown in clue window. +- `(string|nil)` - optional postkeys which will be executed + automatically after `keys`. Allows creation of submodes + (see |MiniClue-examples-submodes|). + +Notes: +- Postkeys are literal simulation of keypresses with |nvim_feedkeys()|. + +- Suggested approach to configuring clues is to create mappings with `desc` + field while supplying to `config.clues` only elements describing groups, + postkeys, and built-in mappings. + +# Triggers ~ + +`config.triggers` is an array with information when |MiniClue-key-query-process| +should start. Each element is a trigger table with the fields and + which are treated the same as in clue table. + +# Window ~ + +`config.window` defines behavior of clue window. + +`config.window.delay` is a number of milliseconds after which clue window will +appear. Can be 0 to show immediately. + +`config.window.config` is a table defining floating window characteristics +or a callable returning such table (will be called with identifier of +window's buffer already showing all clues). It should have the same +structure as in |nvim_open_win()| with the following enhancements: +- field can be equal to `"auto"` leading to window width being + computed automatically based on its content. Default is fixed width of 30. +- and can be equal to `"auto"` in which case they will be + computed to "stick" to set anchor ("SE" by default; see |nvim_open_win()|). + This allows changing corner in which window is shown: >lua + + -- Pick one anchor + local anchor = 'NW' -- top-left + local anchor = 'NE' -- top-right + local anchor = 'SW' -- bottom-left + local anchor = 'SE' -- bottom-right + + require('mini.clue').setup({ + window = { + config = { anchor = anchor, row = 'auto', col = 'auto' }, + }, + }) +< +`config.window.scroll_down` / `config.window.scroll_up` are strings defining +keys which will scroll clue window down / up which is useful in case not +all clues fit in current window height. Set to empty string `''` to disable +either of them. + +------------------------------------------------------------------------------ + *MiniClue.enable_all_triggers()* + `MiniClue.enable_all_triggers`() +Enable triggers in all listed buffers + +------------------------------------------------------------------------------ + *MiniClue.enable_buf_triggers()* + `MiniClue.enable_buf_triggers`({buf_id}) +Enable triggers in buffer + +Parameters ~ +{buf_id} `(number|nil)` Buffer identifier. Default: current buffer. + +------------------------------------------------------------------------------ + *MiniClue.disable_all_triggers()* + `MiniClue.disable_all_triggers`() +Disable triggers in all buffers + +------------------------------------------------------------------------------ + *MiniClue.disable_buf_triggers()* + `MiniClue.disable_buf_triggers`({buf_id}) +Disable triggers in buffer + +Parameters ~ +{buf_id} `(number|nil)` Buffer identifier. Default: current buffer. + +------------------------------------------------------------------------------ + *MiniClue.ensure_all_triggers()* + `MiniClue.ensure_all_triggers`() +Ensure all triggers are valid + +------------------------------------------------------------------------------ + *MiniClue.ensure_buf_triggers()* + `MiniClue.ensure_buf_triggers`({buf_id}) +Ensure buffer triggers are valid + +Parameters ~ +{buf_id} `(number|nil)` Buffer identifier. Default: current buffer. + +------------------------------------------------------------------------------ + *MiniClue.set_mapping_desc()* + `MiniClue.set_mapping_desc`({mode}, {lhs}, {desc}) +Update description of an existing mapping + +Notes: +- Uses buffer-local mapping in case there are both global and buffer-local + mappings with same mode and LHS. Similar to |maparg()|. + +Parameters ~ +{mode} `(string)` Mapping mode (as in `maparg()`). +{lhs} `(string)` Mapping left hand side (as `name` in `maparg()`). +{desc} `(string)` New description to set. + +------------------------------------------------------------------------------ + *MiniClue.gen_clues* + `MiniClue.gen_clues` +Generate pre-configured clues + +This is a table with function elements. Call to actually get array of clues. + +------------------------------------------------------------------------------ + *MiniClue.gen_clues.builtin_completion()* + `MiniClue.gen_clues.builtin_completion`() +Generate clues for built-in completion + +Contains clues for the following triggers: >lua + + { mode = 'i', keys = '' } +< +Return ~ +`(table)` Array of clues. + +------------------------------------------------------------------------------ + *MiniClue.gen_clues.g()* + `MiniClue.gen_clues.g`() +Generate clues for `g` key + +Contains clues for the following triggers: >lua + + { mode = 'n', keys = 'g' } + { mode = 'x', keys = 'g' } +< +Return ~ +`(table)` Array of clues. + +------------------------------------------------------------------------------ + *MiniClue.gen_clues.marks()* + `MiniClue.gen_clues.marks`() +Generate clues for marks + +Contains clues for the following triggers: >lua + + { mode = 'n', keys = "'" } + { mode = 'n', keys = "g'" } + { mode = 'n', keys = '`' } + { mode = 'n', keys = 'g`' } + { mode = 'x', keys = "'" } + { mode = 'x', keys = "g'" } + { mode = 'x', keys = '`' } + { mode = 'x', keys = 'g`' } +< +Note: if you use "g" as trigger (like to enable |MiniClue.gen_clues.g()|), +don't add "g'" and "g`" as triggers: they already will be taken into account. + +Return ~ +`(table)` Array of clues. + +See also ~ +|mark-motions| + +------------------------------------------------------------------------------ + *MiniClue.gen_clues.registers()* + `MiniClue.gen_clues.registers`({opts}) +Generate clues for registers + +Contains clues for the following triggers: >lua + + { mode = 'n', keys = '"' } + { mode = 'x', keys = '"' } + { mode = 'i', keys = '' } + { mode = 'c', keys = '' } +< +Parameters ~ +{opts} `(table|nil)` Options. Possible keys: + - `(boolean)` - whether to show contents of all possible + registers. If `false`, only description of special registers is shown. + Default: `false`. + +Return ~ +`(table)` Array of clues. + +See also ~ +|registers| + +------------------------------------------------------------------------------ + *MiniClue.gen_clues.windows()* + `MiniClue.gen_clues.windows`({opts}) +Generate clues for window commands + +Contains clues for the following triggers: >lua + + { mode = 'n', keys = '' } +< +Note: only non-duplicated commands are included. For full list see |CTRL-W|. + +Parameters ~ +{opts} `(table|nil)` Options. Possible keys: + - `(boolean)` - whether to make move (change layout) + commands a submode by using `postkeys` field. Default: `false`. + - `(boolean)` - whether to make navigation (change + focus) commands a submode by using `postkeys` field. Default: `false`. + - `(boolean)` - whether to make resize (change size) + commands a submode by using `postkeys` field. Default: `false`. + +Return ~ +`(table)` Array of clues. + +------------------------------------------------------------------------------ + *MiniClue.gen_clues.z()* + `MiniClue.gen_clues.z`() +Generate clues for `z` key + +Contains clues for the following triggers: >lua + + { mode = 'n', keys = 'z' } + { mode = 'x', keys = 'z' } +< +Return ~ +`(table)` Array of clues. + + + vim:tw=78:ts=8:noet:ft=help:norl: \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/mini.nvim/doc/mini-colors.txt b/config/neovim/store/lazy-plugins/mini.nvim/doc/mini-colors.txt new file mode 100644 index 00000000..4bc1c614 --- /dev/null +++ b/config/neovim/store/lazy-plugins/mini.nvim/doc/mini-colors.txt @@ -0,0 +1,836 @@ +*mini.colors* Tweak and save any color scheme +*MiniColors* + +MIT License Copyright (c) 2023 Evgeni Chasnovski + +============================================================================== + +Features: +- Create colorscheme object: either manually (|MiniColors.as_colorscheme()|) + or by querying present color schemes (including currently active one; see + |MiniColors.get_colorscheme()|). + +- Infer data about color scheme and/or modify based on it: + - Add transparency by removing background color (requires transparency + in terminal emulator). + - Infer cterm attributes (|cterm-colors|) based on gui colors making it + compatible with 'notermguicolors'. + - Resolve highlight group links (|:highlight-link|). + - Compress by removing redundant highlight groups. + - Extract palette of used colors and/or infer terminal colors + (|terminal-config|) based on it. + +- Modify colors to better fit your taste and/or goals (see more in + |MiniColors-colorscheme-methods|): + - Apply any function to color hex string. + - Update channels (like lightness, saturation, hue, temperature, red, + green, blue, etc.; see more in |MiniColors-channels|). + Use either own function or one of the implemented methods: + - Add value to channel or multiply it by coefficient. Like "add 10 + to saturation of every color" or "multiply saturation by 2" to + make colors more saturated (less gray). + - Invert. Like "invert lightness" to convert between dark/light theme. + - Set to one or more values (picks closest to current one). Like + "set to one or two hues" to make mono- or dichromatic color scheme. + - Repel from certain source(s) with stronger effect for closer values. + Like "repel from hue 30" to remove red color from color scheme. + Repel hue (how much is removed) is configurable. + - Simulate color vision deficiency. + +- Once color scheme is ready, either apply it to see effects right away or + write it into a Lua file as a fully functioning separate color scheme. + +- Experiment interactively with a feedback (|MiniColors.interactive()|). + +- Animate transition between color schemes either with |MiniColors.animate()| + or with |:Colorscheme| user command. + +- Convert within supported color spaces (|MiniColors.convert()|): + - Hex string. + - 8-bit number (terminal colors). + - RGB. + - Oklab, Oklch, Okhsl (https://bottosson.github.io/posts/oklab/). + +Notes: +- There is a collection of |MiniColors-recipes| with code snippets for some + common tasks. +- There is no goal to support as many color spaces as possible, only the + already present ones. + +Tweak quick start ~ + +- Execute `:lua require('mini.colors').interactive()`. + +- Experiment by writing calls to exposed color scheme methods and applying + them with ``. For more information, see |MiniColors-colorscheme-methods| + and |MiniColors-recipes|. + +- If you are happy with result, write color scheme with ``. If not, + reset to initial color scheme with ``. + +- If only some highlight groups can be made better, adjust them manually + inside written color scheme file. + +# Setup ~ + +This module doesn't need setup, but it can be done to improve usability. +Setup with `require('mini.colors').setup({})` (replace `{}` with your +`config` table). It will create global Lua table `MiniColors` which you can +use for scripting or manually (with `:lua MiniColors.*`). + +See |MiniColors.config| for `config` structure and default values. + +This module doesn't have runtime options, so using `vim.b.minicolors_config` +will have no effect here. + +# Comparisons ~ + +- 'rktjmp/lush.nvim': + - Oriented towards tweaking separate highlight groups, while 'mini.colors' + is more designed to work with color scheme as a whole. + - Uses HSL and HSLuv color spaces, while 'mini.colors' uses Oklab, Oklch, + and Okhsl which have slightly better perceptual uniformity properties. + - Doesn't have functionality to infer and repair missing data in color + scheme (like cterm attributes, terminal colors, transparency, etc.), + while 'mini.colors' does. + - Doesn't implement animation of color scheme transition, while + 'mini.colors' does. +- 'lifepillar/vim-colortemplate': + - Comparisons are similar to that of 'rktjmp/lush.nvim'. +- 'tjdevries/colorbuddy.nvim': + - Comparisons are similar to that of 'rktjmp/lush.nvim'. + +------------------------------------------------------------------------------ + *MiniColors-recipes* +Recipes for common tasks ~ + +All following code snippets assume to be executed inside interactive buffer +(|MiniColors.interactively()|). They are directly copy-pasteable. + +To apply single method to current color scheme, use >vim + :lua MiniColors.get_colorscheme()::apply(). +< +Recipes: +- Tweak lightness: >lua + + -- Invert dark/light color scheme to be light/dark + chan_invert('lightness', { gamut_clip = 'cusp' }) + + -- Ensure constant contrast ratio + chan_set('lightness', 15, { filter = 'bg' }) + chan_set('lightness', 85, { filter = 'fg' }) +< +- Tweak saturation: >lua + + -- Make background colors less saturated and foreground - more + chan_add('saturation', -20, { filter = 'bg' }) + chan_add('saturation', 20, { filter = 'fg' }) + + -- Convert to grayscale + chan_set('saturation', 0) +< +- Tweak hue: >lua + + -- Create monochromatic variant (this uses green color) + chan_set('hue', 135) + + -- Create dichromatic variant (this uses Neovim-themed hues) + chan_set('hue', { 140, 245 }) +< +- Tweak temperature: >lua + + -- Invert temperature (make cold theme become warm and vice versa) + chan_invert('temperature') + + -- Make background colors colder and foreground warmer + chan_add('temperature', -40, { filter = 'bg' }) + chan_add('temperature', 40, { filter = 'fg' }) +< +- Counter color vision deficiency (try combinations of these to see which + one works best for you): + + - Improve text saturation contrast (usually the best starting approach): >lua + + chan_set('saturation', { 10, 90 }, { filter = 'fg' }) +< + - Remove certain hues from all colors (use 30 for red, 90 for yellow, + 135 for green, 270 for blue): >lua + + -- Repel red color + chan_repel('hue', 30, 45) +< + - Force equally spaced palette (remove ones with which you know you + have trouble): >lua + + -- Might be a good choice for red-green color blindness + chan_set('hue', { 90, 180, 270}) + + -- Might be a good choice for blue-yellow color blindness + chan_set('hue', { 0, 90, 180 }) +< + - Inverting temperature or pressure can sometimes improve readability: >lua + + chan_invert('temperature') + chan_invert('pressure') +< + - If all hope is lost, hue random generation might help if you are lucky: >lua + + chan_modify('hue', function() return math.random(0, 359) end) +< +- For color scheme creators use |MiniColors-colorscheme:simulate_cvd()| to + simulate various color vision deficiency types to see how color scheme + would look in the eyes of color blind person. + +------------------------------------------------------------------------------ + *MiniColors-color-spaces* +Color space is a way to quantitatively describe a color. In this module +color spaces are used both as source for |MiniColors-channels| and inputs +for |MiniColors.convert()| + +List of supported color spaces (along with their id in parenthesis): +- 8-bit (`8-bit`) - integer between 16 and 255. Usually values 0-15 are also + supported, but they depend on terminal emulator theme which is not reliable. + See https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit . + +- Hex (`hex`) - string of the form "#xxxxxx" where `x` is a hexadecimal number. + +- RGB (`rgb`) - table with numeric fields `r` (red), `g` (green), `b` (blue). + Visible range is from 0 to 255. + +- Oklab (`oklab`) - table with fields `l` (lightness; numeric in [0; 100]), + `a`, `b` (both are unbounded numeric; visible range is usually between + -30 to 30). Field `l` describes how light is color; `a` - how "green-red" it is; + `b` - how "blue-yellow" it is. + +- Oklch (`oklch`) - table with fields `l` (same as in Oklab), + `c` (chroma; positive numeric, visible range usually lower than 32), + `h` (`nil` for grays or periodic numeric in [0, 360)). Field `c` describes how + colorful a color is; `h` is a value of "true color" on color circle/wheel. + NOTE: gray colors, being achromatic by nature, don't have hue. + +- Okhsl (`okhsl`) - Oklch but with `c` replaced by `s` (saturation; numeric + in [0; 100]). Field `s` describes a percent of chroma relative to maximum + visible chroma for the particular lightness and hue combination. Note, + that mathematical model used to compute maximum visible chroma is + approximate which might lead to inaccuracies for highly saturated colors + with relatively low or high lightness. + +Sources for Oklab/Oklch/Okhsl: +- https://bottosson.github.io/posts/oklab/ - initial derivation and + introduction of Oklab and Oklch. +- https://bottosson.github.io/misc/colorpicker - interactive color picker. + Great way for a hands-on introduction to concepts of lightness, chroma, + saturation, and hue. + + *MiniColors-gamut-clip* +Gamut clip ~ + +In Neovim highlight group colors are usually specified by their red, green, +and blue values from 0 to 255 in the form of HEX string (see |gui-colors|). +Although plenty, these are not all possible colors. + +When performing color manipulation using |MiniColors-colorscheme-methods|, +it is possible to end up with "impossible" color (which can't be directly +converted to HEX string). For example, inverting lightness of color "#fce094" +will lead to a color `{ l = 10, c = 10, h = 90 }` in Oklch space, i.e. +"dark yellow" which is impossible to show in HEX. + +**Gamut clipping** is an action of converting color outside of visible gamut +(colors representable with HEX string) to be inside it while preserving +certain perceptual characteristics as much as possible. + +Gamut clipping in this module is done inside Oklch color space. The goal is to +preserve hue as much as possible while manipulating lightness and/or chroma. + +List of supported gamut clip methods (along with their id in parenthesis): +- Clip chroma (`'chroma'`) - reduce chroma while preserving lightness until + color is inside visible gamut. Default method. + +- Clip lightness (`'lightness'`) - reduce lightness while preserving chroma + until color is inside visible gamut. + +- Clip according to "cusp" (`'cusp'`) - reduce both lightness and chroma in + a compromise way depending on hue. + Cusp is a color with the highest chroma inside slice of visible gamut + with the same hue (hue leaf). It is called that way because the slice has + a roughly triangular shape with points at (0, 0) - (0, 100) - "cusp" in + (chroma, lightness) coordinates. + Gamut clipping using "cusp" as reference is done by changing color towards + (0, cusp_lightness) point (gray with lightness equal to that of a current + cusp) until color is inside visible gamut. + +In short: +- Usually `'chroma'` is enough. +- If colors are too desaturated - try `'cusp'`. +- If still not colorful enough - try `'lightness'`. + +Notes: +- Currently implemented formulas are approximate (by design; to reduce code + complexity) so there might be problems for highly saturated colors with + relatively low or high lightness. + +------------------------------------------------------------------------------ + *MiniColors-channels* +A color channel is a number describing one particular aspect of a color. +It is usually direct or modified coordinate of a color space. See +|MiniColors-color-spaces| for information on color spaces. + +List of supported channels (along with their id in parenthesis): +- Lightness (`lightness`) - corrected `l` component of Oklch. Describes how + light is a color. Ranges from 0 (black dark) to 100 (white light). + +- Chroma (`chroma`) - `c` component of Oklch. Describes how colorful is + a color in absolute units. Ranges from 0 (gray) to infinity (more like + around 30 in practice). + +- Saturation (`saturation`) - `s` component of Okhsl. Describes how colorful + is color in relative units. Ranges from 0 (gray) to 100 (maximum saturation + for a given lightness-hue pair). + +- Hue (`hue`) - `h` component of Oklch. Describes "true color value" (like + red/green/blue) as a number. It is a periodic value from 0 (included) to + 360 (not included). Best perceived as a degree on a color circle/wheel. + + Approximate values for common color names: + - 0 - pink. + - 30 - red. + - 60 - orange. + - 90 - yellow. + - 135 - green. + - 180 - cyan. + - 225 - light blue. + - 270 - blue. + - 315 - magenta/purple. + +- Temperature (`temperature`) - circular distance from current hue to hue 270 + angle (blue). Ranges from 0 (cool) to 180 (hot) anchored at hues 270 (blue) + and 90 (yellow). Similar to `b` channel but tries to preserve chroma. + +- Pressure (`pressure`) - circular distance from current hue to hue 180. + Ranges from 0 (low; green-ish) to 180 (high; red-ish) anchored at hues + 180 and 0. Similar to `a` channel but tries to preserve chroma. + Not widely used; added to have something similar to temperature. + +- a (`a`) - `a` component of Oklab. Describes how "green-red" a color is. + Can have any value. Negative values are "green-ish", positive - "red-ish". + +- b (`b`) - `b` component of Oklab. Describes how "blue-yellow" a color is. + Can have any value. Negative values are "blue-ish", positive - "yellow-ish". + +- Red (`red`) - `r` component of RGB. Describes how much red a color has. + Ranges from 0 (no red) to 255 (full red). + +- Green (`green`) - `g` component of RGB. Describes how much green a color has. + Ranges from 0 (no green) to 255 (full green). + +- Blue (`blue`) - `b` component of RGB. Describes how much blue a color has. + Ranges from 0 (no blue) to 255 (full blue). + +------------------------------------------------------------------------------ + *MiniColors-colorscheme* +Colorscheme object is a central structure of this module. It contains all +data relevant to colors in fields and provides methods to modify it. + +Create colorscheme object manually with |MiniColors.as_colorscheme()|: >lua + + MiniColors.as_colorscheme({ + name = 'my_cs', + groups = { + Normal = { fg = '#dddddd', bg = '#222222' }, + SpellBad = { sp = '#dd2222', undercurl = true }, + }, + terminal = { [0] = '#222222', [1] = '#dd2222' }, + }) +< +Get any registered color scheme (including currently active) as colorscheme +object with |MiniColors.get_colorscheme()|: >lua + + -- Get current color scheme + MiniColors.get_colorscheme() + + -- Get registered color scheme by name + MiniColors.get_colorscheme('minischeme', { new_name = 'maxischeme' }) +< +Class ~ +{Colorscheme} + + *MiniColors-colorscheme-fields* + +Fields ~ +{name} `(string|nil)` Name of the color scheme (as in |g:colors_name|). + +{groups} `(table|nil)` Table with highlight groups data. Keys are group + names appropriate for `name` argument of |nvim_set_hl()|, values - tables + appropriate for its `val` argument. Note: gui colors are accepted only in + short form (`fg`, `bg`, `sp`). + +{terminal} `(table|nil)` Table with terminal colors data (|terminal-config|). + Keys are numbers from 0 to 15, values - strings representing color (hex + string or plain color name; see |nvim_get_color_by_name()|). + + *MiniColors-colorscheme-methods* +Notes about all methods: +- They never modify underlying colorscheme object instead returning deep + copy with modified fields. +- They accept `self` colorscheme object as first argument meaning they should be + called with `:` notation (like `cs:method()`). + +Example calling methods: >lua + + -- Get current color scheme, set hue of colors to 135, infer cterm + -- attributes and apply + local cs = MiniColors.get_colorscheme() + cs:chan_set('hue', 135):add_cterm_attributes():apply() +< + *MiniColors-colorscheme:add_cterm_attributes()* +Infer |cterm-colors| based on present |gui-colors|. It updates `ctermbg`/`ctermfg` +based on `fg`/`bg` by approximating in perceptually uniform distance in Oklab +space (|MiniColors-color-spaces|). + +Parameters ~ +{opts} `(table|nil)` Options. Possible fields: + - `(boolean)` - Whether to replace already present cterm attributes + with inferred ones. Default: `true`. + + *MiniColors-colorscheme:add_terminal_colors()* +Infer terminal colors (|terminal-config|) based on colorscheme palette +(see |MiniColors-colorscheme:get_palette()|). It updates `terminal` field +based on color scheme's palette by picking the most appropriate entry to +represent terminal color. Colors from 0 to 7 are attempted to be black, +red, green, yellow, blue, magenta, cyan, white. Colors from 8 to 15 are +the same as from 0 to 7. + +Parameters ~ +{opts} `(table|nil)` Options. Possible fields: + - `(boolean)` - Whether to replace already present terminal colors + with inferred ones. Default: `true`. + - `(table)` - |MiniColors-colorscheme:get_palette()| arguments. + + *MiniColors-colorscheme:add_transparency()* +Add transparency by removing background from a certain highlight groups. +Requires actual transparency from terminal emulator to experience visible +transparency. + +Parameters ~ +{opts} `(table|nil)` Options. Possible fields can be used to configure which + sets of highlight groups to update: + - `(boolean)` - general groups (like `Normal`). Default: `true`. + - `(boolean)` - built-in groups for floating windows. Default: `false`. + - `(boolean)` - groups related to 'statuscolumn' (signcolumn, + numbercolumn, foldcolumn). Also updates groups for all currently + defined signs. Default: `false`. + - `(boolean)` - built-in groups for 'statusline'. Default: `false`. + - `(boolean)` - built-in groups for 'tabline'. Default: `false`. + - `(boolean)` - built-in groups for 'winbar'. Default: `false`. + + *MiniColors-colorscheme:apply()* +Apply colorscheme: +- Set |g:colors_name| to a `name` field. +- Apply highlight groups in a `groups` field. +- Set terminal colors from a `terminal` field. + +Parameters ~ +{opts} `(table|nil)` Options. Possible fields: + - `(boolean)` - whether to execute |:hi-clear| first. Default: `true`. + + *MiniColors-colorscheme:chan_add()* +Add value to a channel (see |MiniColors-channels|). + +Parameters ~ +{channel} `(string)` One of supported |MiniColors-channels|. +{value} `(number)` Number to add (can be negative). +{opts} `(table|nil)` Options. Possible fields: + - `(function|string)` - filter colors to update. Possible values: + - String representing target attributes. One of `'fg'`, `'bg'`, `'sp'`, + `'term'` (only terminal colors). + - Callable with signature as in |MiniColors-colorscheme:color_modify()|. + Default: `nil` to update all colors. + - `(string)` - gamut clipping method. One of `'chroma'`, + `'lightness'`, `'cusp'`. See |MiniColors-gamut-clip|. Default: `'chroma'`. + + + *MiniColors-colorscheme:chan_invert()* +Invert value in a channel (see |MiniColors-channels|). + +Notes: +- Most Oklab/Oklch inversions are not exactly invertible: applying it twice + might lead to slightly different colors depending on gamut clip method + (|MiniColors-gamut-clip|) like smaller chroma with default `'chroma'` method. + +Parameters ~ +{channel} `(string)` One of supported |MiniColors-channels|. +{opts} `(table|nil)` Options. Possible fields: + - `(function|string)` - filter colors to update. Possible values: + - String representing target attributes. One of `'fg'`, `'bg'`, `'sp'`, + `'term'` (only terminal colors). + - Callable with signature as in |MiniColors-colorscheme:color_modify()|. + Default: `nil` to update all colors. + - `(string)` - gamut clipping method. One of `'chroma'`, + `'lightness'`, `'cusp'`. See |MiniColors-gamut-clip|. Default: `'chroma'`. + + *MiniColors-colorscheme:chan_modify()* +Modify channel with a callable. + +Parameters ~ +{channel} `(string)` One of supported |MiniColors-channels|. +{f} `(function)` - callable which defines modification. Should take current + value of a channel and return a new one. +{opts} `(table|nil)` Options. Possible fields: + - `(function|string)` - filter colors to update. Possible values: + - String representing target attributes. One of `'fg'`, `'bg'`, `'sp'`, + `'term'` (only terminal colors). + - Callable with signature as in |MiniColors-colorscheme:color_modify()|. + Default: `nil` to update all colors. + - `(string)` - gamut clipping method. One of `'chroma'`, + `'lightness'`, `'cusp'`. See |MiniColors-gamut-clip|. Default: `'chroma'`. + + *MiniColors-colorscheme:chan_multiply()* +Multiply value of a channel (see |MiniColors-channels|). + +Parameters ~ +{channel} `(string)` One of supported |MiniColors-channels|. +{coef} `(number)` Number to multiply with (can be negative). +{opts} `(table|nil)` Options. Possible fields: + - `(function|string)` - filter colors to update. Possible values: + - String representing target attributes. One of `'fg'`, `'bg'`, `'sp'`, + `'term'` (only terminal colors). + - Callable with signature as in |MiniColors-colorscheme:color_modify()|. + Default: `nil` to update all colors. + - `(string)` - gamut clipping method. One of `'chroma'`, + `'lightness'`, `'cusp'`. See |MiniColors-gamut-clip|. Default: `'chroma'`. + + *MiniColors-colorscheme:chan_repel()* +Repel from certain sources. + +Given an array of repel centers (`sources`) and repel degree (`coef`) add to +current channel value some amount ("nudge") with the following properties: +- Nudges from several sources are added together. +- Nudge is directly proportional to `coef`: bigger `coef` means bigger nudge. +- Nudge is inversely proportional to the distance between current value and + source: for positive `coef` bigger distance means smaller nudge, i.e. + repel effect weakens with distance. +- With positive `coef` nudges close to source are computed in a way to remove + whole `[source - coef; source + coef]` range. +- Negative `coef` results into attraction to source. Nudges in + `[source - coef; source + coef]` range are computed to completely collapse it + into `source`. + +Examples: >lua + + -- Repel hue from red color removing hue in range from 20 to 40 + chan_repel('hue', 30, 10) + + -- Attract hue to red color collapsing [20; 40] range into 30. + chan_repel('hue', 30, -10) +< +Parameters ~ +{channel} `(string)` One of supported |MiniColors-channels|. +{sources} `(table|number)` Single or multiple source from which to repel. +{coef} `(number)` Repel degree (can be negative to attract). +{opts} `(table|nil)` Options. Possible fields: + - `(function|string)` - filter colors to update. Possible values: + - String representing target attributes. One of `'fg'`, `'bg'`, `'sp'`, + `'term'` (only terminal colors). + - Callable with signature as in |MiniColors-colorscheme:color_modify()|. + Default: `nil` to update all colors. + - `(string)` - gamut clipping method. One of `'chroma'`, + `'lightness'`, `'cusp'`. See |MiniColors-gamut-clip|. Default: `'chroma'`. + + *MiniColors-colorscheme:chan_set()* +Set channel to certain value(s). This can be used to ensure that channel has +value(s) only within supplied set. If more than one is supplied, closest +element to current value is used. + +Parameters ~ +{channel} `(string)` One of supported |MiniColors-channels|. +{values} `(table|number)` Single or multiple values to set. +{opts} `(table|nil)` Options. Possible fields: + - `(function|string)` - filter colors to update. Possible values: + - String representing target attributes. One of `'fg'`, `'bg'`, `'sp'`, + `'term'` (only terminal colors). + - Callable with signature as in |MiniColors-colorscheme:color_modify()|. + Default: `nil` to update all colors. + - `(string)` - gamut clipping method. One of `'chroma'`, + `'lightness'`, `'cusp'`. See |MiniColors-gamut-clip|. Default: `'chroma'`. + + *MiniColors-colorscheme:color_modify()* +Modify all colors with a callable. It should return new color value (hex +string or `nil` to remove attribute) base on the following input: +- Current color as hex string. +- Data about the color: a table with fields: + - - one of `'fg'`, `'bg'`, `'sp'`, and `'term'` for terminal color. + - - name of color source. Either a name of highlight group or + string of the form `terminal_color_x` for terminal color (as in + |terminal-config|). + +Example: >lua + + -- Set to '#dd2222' all foreground colors for groups starting with "N" + color_modify(function(hex, data) + if data.attr == 'fg' and data.name:find('^N') then + return '#dd2222' + end + return hex + end) +< +Parameters ~ +{f} `(function)` Callable returning new color value. + + *MiniColors-colorscheme:compress()* +Remove redundant highlight groups. These are one of the two kinds: +- Having values identical to ones after |:hi-clear| (meaning they usually + don't add new information). +- Coming from a curated list of plugins with highlight groups usually not + worth keeping around. Current list of such plugins: + - 'nvim-tree/nvim-web-devicons' + - 'norcalli/nvim-colorizer.lua' + +This method is useful to reduce size of color scheme before writing into +the file with |MiniColors-colorscheme:write()|. + +Parameters ~ +{opts} `(table|nil)` Options. Possible fields: + - `(boolean)` - whether to remove highlight groups from a curated + list of plugins. Default: `true`. + + *MiniColors-colorscheme:get_palette()* +Get commonly used colors. This basically counts number of all color +occurrences and filter out rare ones. + +It is usually a good idea to apply both |MiniColors-colorscheme:compress()| +and |MiniColors-colorscheme:resolve_links()| before applying this. + +Parameters ~ +{opts} `(table|nil)` Options. Possible fields: + - `(number)` - relative threshold for groups to keep. A group + is not included in output if it has less than this many occurrences + relative to a total number of colors. Default: 0.01. + + *MiniColors-colorscheme:resolve_links()* +Resolve links (|:highlight-link|). This makes all highlight groups with `link` +attribute have data from a linked one. + +Notes: +- Resolves nested links. +- If some group is linked to a group missing in current colorscheme object, + it is not resolved. + + *MiniColors-colorscheme:simulate_cvd()* +Simulate color vision deficiency (CVD, color blindness). This is basically +a wrapper using |MiniColors.simulate_cvd()| as a part of +call to |MiniColors-colorscheme:color_modify()| method. + +Parameters ~ +{cvd_type} `(string)` One of `'protan'`, `'deutan'`, `'tritan'`, `'mono'`. +{severity} `(number|nil)` Severity of CVD, number between 0 and 1. Default: 1. + + *MiniColors-colorscheme:write()* +Write color scheme to a file. It will be a Lua script readily usable as +a regular color scheme. Useful to both save results of color scheme tweaking +and making local snapshot of some other color scheme. + +Sourcing this file on startup usually leads to a better performance that +sourcing initial color scheme, as it is essentially a conditioned +|:hi-clear| call followed by a series of |nvim_set_hl()| calls. + +Default writing location is a "colors" directory of your Neovim config +directory (see |base-directories|). After writing, it should be available +for sourcing with |:colorscheme| or |:Colorscheme|. + +Name of the file by default is taken from `name` field (`'mini_colors'` is +used if it is `nil`). If color scheme with this name already exists, it +appends prefix based on current time to make it unique. + +Notes: +- If colors were updated, it is usually a good idea to infer cterm attributes + with |MiniColors-colorscheme:add_cterm_attributes()| prior to writing. + +Parameters ~ +{opts} `(table|nil)` Options. Possible fields: + - `(boolean)` - whether to call |MiniColors-colorscheme:compress()| + prior to writing. Default: `true`. + - `(string|nil)` - basename of written file. Default: `nil` to infer + from `name` field. + - `(string)` - directory to where file should be saved. + Default: "colors" subdirectory of Neovim home config (`stdpath("config")`). + +------------------------------------------------------------------------------ + *MiniColors.setup()* + `MiniColors.setup`({config}) +Module setup + + *:Colorscheme* +Calling this function creates a `:Colorscheme` user command. It takes one or +more registered color scheme names and performs animated transition between +them (starting from currently active color scheme). +It uses |MiniColors.animte()| with default options. + +Parameters ~ +{config} `(table|nil)` Module config table. See |MiniColors.config|. + +Usage ~ +>lua + require('mini.colors').setup() -- use default config + -- OR + require('mini.colors').setup({}) -- replace {} with your config table +< +------------------------------------------------------------------------------ + *MiniColors.config* + `MiniColors.config` +Module config + +Default values: +>lua + MiniColors.config = {} +< +------------------------------------------------------------------------------ + *MiniColors.as_colorscheme()* + `MiniColors.as_colorscheme`({x}) +Create colorscheme object + +Parameters ~ +{x} `(table)` Table to be transformed into |MiniColors-colorscheme| object. + +Return ~ +`(table)` Copy of `x` transformed into a colorscheme object. + +------------------------------------------------------------------------------ + *MiniColors.get_colorscheme()* + `MiniColors.get_colorscheme`({name}, {opts}) +Get colorscheme object from registered color scheme + +Parameters ~ +{name} `(string|nil)` Name of color scheme to use. If `nil` (default) creates + colorscheme object based on currently active data (|g:colors_name|, + highlight groups, terminal colors). If string, converts color scheme with + that name to a colorscheme object. +{opts} `(table|nil)` Options. Possible fields: + - `(string|nil)` - new name of colorscheme object. + +Return ~ +`(table)` Colorscheme object |(MiniColors-colorscheme|). + +------------------------------------------------------------------------------ + *MiniColors.interactive()* + `MiniColors.interactive`({opts}) +Start interactive experiments + +Create a special buffer in which user can write plain Lua code to tweak +color scheme and apply to get visual feedback. + +General principles ~ +- Initial colorscheme object is fixed to interactive buffer on its creation. + +- There are special buffer convenience mappings: + - Apply (source) current buffer content. + - Reset color scheme (make initial colorscheme the current one). + - Write to a file the result of applying current buffer content. + This sources current content and calls |MiniColors-colorscheme:write()|. + - Quit interactive buffer. + +- User is expected to iteratively tweak color scheme by writing general Lua + code in interactive buffer and applying it using convenience mapping. + +- Application of interactive buffer is essentially these steps: + - Expose `self` as initial colorscheme object on any application. + It is always the same for every application. + - Expose initial colorscheme methods as standalone functions. So instead + of writing `self = self:add_transparency()` user can only write + `add_transparency()`. + - Source buffer content as plain Lua code. + +Example of interactive buffer content: >lua + + chan_modify('hue', function() return math.random(0, 359) end) + simulate_cvd('protan') + add_cterm_attributes() + add_terminal_colors() +< +Parameters ~ +{opts} `(table|nil)` Options. Possible fields: + - `(table|nil)` - |MiniColors-colorscheme| object to be + used as initial colorscheme for executed code. By default uses current + color scheme. + - `table` - buffer mappings for actions. Possible fields: + - `(string)` - apply buffer code. Default: `''`. + - `(string)` - apply initial color scheme as is. Default: `''`. + - `(string)` - close interactive buffer. Default: `''`. + - `(string)` - write result of buffer code into a file. + Prompts for file name with |vim.ui.input()| and then + uses |MiniColors-colorscheme:write()| with other options being default. + Default: `''`. + +------------------------------------------------------------------------------ + *MiniColors.animate()* + `MiniColors.animate`({cs_array}, {opts}) +Animate color scheme change + +Start from currently active color scheme and loop through `cs_array`. + +Powers |:Colorscheme| user command created in |MiniColors.setup()|. + +Parameters ~ +{cs_array} `(`(table)`)` Array of |MiniColors-colorscheme| objects. +{opts} `(table|nil)` Options. Possible fields: + - `(number)` - number of intermediate steps to show + during transition between two color schemes. Bigger values result in + smoother visual feedback but require more computational power. + Default: 25. + - `(number)` - number of milliseconds to spend + showing transition. Default: 1000. + - `(number)` - number of milliseconds to show intermediate + color schemes (all but last in `cs_array`). Default: 1000. + +------------------------------------------------------------------------------ + *MiniColors.convert()* + `MiniColors.convert`({x}, {to_space}, {opts}) +Convert between color spaces + +For a list of supported colors spaces see |MiniColors-color-spaces|. + +Parameters ~ +{x} `(table|string|number|nil)` Color to convert from. Its color space is + inferred automatically. +{to_space} `(string)` Id of allowed color space. +{opts} `(table|nil)` Options. Possible fields: + - `(string)` - method for |MiniColors-gamut-clip|. + Default: `'chroma'`. + +Return ~ +`(table|string|number|nil)` Color in space `to_space` or `nil` if input is `nil`. + +------------------------------------------------------------------------------ + *MiniColors.modify_channel()* + `MiniColors.modify_channel`({x}, {channel}, {f}, {opts}) +Modify channel + +Parameters ~ +{x} `(table|string|number|nil)` Color which channel will be modified. Color + space is inferred automatically. +{channel} `(string)` One of supported |MiniColors-channels|. +{f} `(function)` Callable which defines modification. Should take current + value of a channel and return a new one. +{opts} `(table|nil)` Options. Possible fields: + - `(string)` - method for |MiniColors-gamut-clip|. + Default: `'chroma'`. + +Return ~ +`(string|nil)` Hex string of color with modified channel or `nil` if input is `nil`. + +------------------------------------------------------------------------------ + *MiniColors.simulate_cvd()* + `MiniColors.simulate_cvd`({x}, {cvd_type}, {severity}) +Simulate color vision deficiency + +Parameters ~ +{x} `(table|string|number|nil)` Color to convert from. Its color space is + inferred automatically. +{cvd_type} `(string)` Type of CVD. One of `'protan'`, `'deutan'`, +or `'mono'` (equivalent to converting to graysacle). +{severity} `(number|nil)` Severity of CVD. A number between 0 and 1 (default). + +Return ~ +`(string|nil)` Hex string of simulated color or `nil` if input is `nil`. + + + vim:tw=78:ts=8:noet:ft=help:norl: \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/mini.nvim/doc/mini-comment.txt b/config/neovim/store/lazy-plugins/mini.nvim/doc/mini-comment.txt new file mode 100644 index 00000000..f39092ce --- /dev/null +++ b/config/neovim/store/lazy-plugins/mini.nvim/doc/mini-comment.txt @@ -0,0 +1,231 @@ +*mini.comment* Comment lines +*MiniComment* + +MIT License Copyright (c) 2021 Evgeni Chasnovski + +============================================================================== + +Features: +- Commenting in Normal mode respects |count| and is dot-repeatable. + +- Comment structure by default is inferred from 'commentstring': either + from current buffer or from locally active tree-sitter language (only on + Neovim>=0.9). It can be customized via `options.custom_commentstring` + (see |MiniComment.config| for details). + +- Allows custom hooks before and after successful commenting. + +- Configurable options for some nuanced behavior. + +What it doesn't do: +- Block and sub-line comments. This will only support per-line commenting. + +- Handle indentation with mixed tab and space. + +- Preserve trailing whitespace in empty lines. + +Notes: +- To use tree-sitter aware commenting, global value of 'commentstring' + should be `''` (empty string). This is the default value in Neovim>=0.9, + so make sure to not set it manually. + +# Setup ~ + +This module needs a setup with `require('mini.comment').setup({})` (replace +`{}` with your `config` table). It will create global Lua table +`MiniComment` which you can use for scripting or manually (with +`:lua MiniComment.*`). + +See |MiniComment.config| for `config` structure and default values. + +You can override runtime config settings locally to buffer inside +`vim.b.minicomment_config` which should have same structure as +`MiniComment.config`. See |mini.nvim-buffer-local-config| for more details. + +# Disabling ~ + +To disable core functionality, set `vim.g.minicomment_disable` (globally) or +`vim.b.minicomment_disable` (for a buffer) to `true`. Considering high number +of different scenarios and customization intentions, writing exact rules +for disabling module's functionality is left to user. See +|mini.nvim-disabling-recipes| for common recipes. + +------------------------------------------------------------------------------ + *MiniComment.setup()* + `MiniComment.setup`({config}) +Module setup + +Parameters ~ +{config} `(table|nil)` Module config table. See |MiniComment.config|. + +Usage ~ +>lua + require('mini.comment').setup() -- use default config + -- OR + require('mini.comment').setup({}) -- replace {} with your config table +< +------------------------------------------------------------------------------ + *MiniComment.config* + `MiniComment.config` +Module config + +Default values: +>lua + MiniComment.config = { + -- Options which control module behavior + options = { + -- Function to compute custom 'commentstring' (optional) + custom_commentstring = nil, + + -- Whether to ignore blank lines when commenting + ignore_blank_line = false, + + -- Whether to recognize as comment only lines without indent + start_of_line = false, + + -- Whether to force single space inner padding for comment parts + pad_comment_parts = true, + }, + + -- Module mappings. Use `''` (empty string) to disable one. + mappings = { + -- Toggle comment (like `gcip` - comment inner paragraph) for both + -- Normal and Visual modes + comment = 'gc', + + -- Toggle comment on current line + comment_line = 'gcc', + + -- Toggle comment on visual selection + comment_visual = 'gc', + + -- Define 'comment' textobject (like `dgc` - delete whole comment block) + -- Works also in Visual mode if mapping differs from `comment_visual` + textobject = 'gc', + }, + + -- Hook functions to be executed at certain stage of commenting + hooks = { + -- Before successful commenting. Does nothing by default. + pre = function() end, + -- After successful commenting. Does nothing by default. + post = function() end, + }, + } +< +# Options ~ + +## Custom commentstring ~ + +`options.custom_commentstring` can be a function customizing 'commentstring' +option used to infer comment structure. It is called once before every +commenting action with the following arguments: +- `ref_position` - position at which to compute 'commentstring' (might be + relevant for a text with locally different commenting rules). Its structure + is the same as `opts.ref_position` in |MiniComment.toggle_lines()|. + +Its output should be a valid 'commentstring' (string containing `%s`). + +If not set or the output is `nil`, |MiniComment.get_commentstring()| is used. + +For example, this option can be used to always use buffer 'commentstring' +even in case of present active tree-sitter parser: >lua + + require('mini.comment').setup({ + options = { + custom_commentstring = function() return vim.bo.commentstring end, + } + }) +< +# Hooks ~ + +`hooks.pre` and `hooks.post` functions are executed before and after successful +commenting action (toggle or computing textobject). They will be called +with a single table argument which has the following fields: +- `(string)` - action name. One of "toggle" (when actual toggle + direction is yet unknown), "comment", "uncomment", "textobject". +- `(number|nil)` - action start line. Can be absent if yet unknown. +- `(number|nil)` - action end line. Can be absent if yet unknown. +- `(table|nil)` - reference position. + +Notes: +- Changing 'commentstring' in `hooks.pre` is allowed and will take effect. +- If hook returns `false`, any further action is terminated. + +------------------------------------------------------------------------------ + *MiniComment.operator()* + `MiniComment.operator`({mode}) +Main function to be mapped + +It is meant to be used in expression mappings (see |map-|) to enable +dot-repeatability and commenting on range. There is no need to do this +manually, everything is done inside |MiniComment.setup()|. + +It has a somewhat unintuitive logic (because of how expression mapping with +dot-repeatability works): it should be called without arguments inside +expression mapping and with argument when action should be performed. + +Parameters ~ +{mode} `(string|nil)` Optional string with 'operatorfunc' mode (see |g@|). + +Return ~ +`(string|nil)` 'g@' if called without argument, '' otherwise (but after + performing action). + +------------------------------------------------------------------------------ + *MiniComment.toggle_lines()* + `MiniComment.toggle_lines`({line_start}, {line_end}, {opts}) +Toggle comments between two line numbers + +It uncomments if lines are comment (every line is a comment) and comments +otherwise. It respects indentation and doesn't insert trailing +whitespace. Toggle commenting not in visual mode is also dot-repeatable +and respects |count|. + +# Notes ~ + +- Comment structure is inferred from buffer's 'commentstring' option or + local language of tree-sitter parser (if active; only on Neovim>=0.9). + +- Call to this function will remove all |extmarks| from target range. + +Parameters ~ +{line_start} `(number)` Start line number (inclusive from 1 to number of lines). +{line_end} `(number)` End line number (inclusive from 1 to number of lines). +{opts} `(table|nil)` Options. Possible fields: + - `(table)` - A two-value array with `{ row, col }` (both + starting at 1) of reference position at which 'commentstring' value + will be computed. Default: `{ line_start, 1 }`. + +------------------------------------------------------------------------------ + *MiniComment.textobject()* + `MiniComment.textobject`() +Select comment textobject + +This selects all commented lines adjacent to cursor line (if it itself is +commented). Designed to be used with operator mode mappings (see |mapmode-o|). + +------------------------------------------------------------------------------ + *MiniComment.get_commentstring()* + `MiniComment.get_commentstring`({ref_position}) +Get 'commentstring' + +This function represents default approach of computing relevant +'commentstring' option in current buffer. Used to infer comment structure. + +It has the following logic: +- (Only on Neovim>=0.9) If there is an active tree-sitter parser, try to get + 'commentstring' from the local language at `ref_position`. + +- If first step is not successful, use buffer's 'commentstring' directly. + +Parameters ~ +{ref_position} `(table)` Reference position inside current buffer at which + to compute 'commentstring'. Same structure as `opts.ref_position` + in |MiniComment.toggle_lines()|. + +Return ~ +`(string)` Relevant value of 'commentstring'. + + + vim:tw=78:ts=8:noet:ft=help:norl: \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/mini.nvim/doc/mini-completion.txt b/config/neovim/store/lazy-plugins/mini.nvim/doc/mini-completion.txt new file mode 100644 index 00000000..f0c3a75b --- /dev/null +++ b/config/neovim/store/lazy-plugins/mini.nvim/doc/mini-completion.txt @@ -0,0 +1,273 @@ +*mini.completion* Completion and signature help +*MiniCompletion* + +MIT License Copyright (c) 2021 Evgeni Chasnovski + +============================================================================== + +Key design ideas: +- Have an async (with customizable "debounce" delay) "two-stage chain + completion": first try to get completion items from LSP client (if set + up) and if no result, fallback to custom action. + +- Managing completion is done as much with Neovim's built-in tools as + possible. + +Features: +- Two-stage chain completion: + - First stage is an LSP completion implemented via + |MiniCompletion.completefunc_lsp()|. It should be set up as either + |completefunc| or |omnifunc|. It tries to get completion items from + LSP client (via 'textDocument/completion' request). Custom + preprocessing of response items is possible (with + `MiniCompletion.config.lsp_completion.process_items`), for example + with fuzzy matching. By default items which are not snippets and + directly start with completed word are kept and sorted according to + LSP specification. Supports `additionalTextEdits`, like auto-import + and others (see 'Notes'). + - If first stage is not set up or resulted into no candidates, fallback + action is executed. The most tested actions are Neovim's built-in + insert completion (see |ins-completion|). + +- Automatic display in floating window of completion item info (via + 'completionItem/resolve' request) and signature help (with highlighting + of active parameter if LSP server provides such information). After + opening, window for signature help is fixed and is closed when there is + nothing to show, text is different or + when leaving Insert mode. + +- Automatic actions are done after some configurable amount of delay. This + reduces computational load and allows fast typing (completion and + signature help) and item selection (item info) + +- User can force two-stage completion via + |MiniCompletion.complete_twostage()| (by default is mapped to + ``) or fallback completion via + |MiniCompletion.complete_fallback()| (mapped to ``). + +What it doesn't do: +- Snippet expansion. +- Many configurable sources. +- Automatic mapping of ``, ``, etc., as those tend to have highly + variable user expectations. See 'Helpful key mappings' for suggestions. + +# Setup ~ + +This module needs a setup with `require('mini.completion').setup({})` +(replace `{}` with your `config` table). It will create global Lua table +`MiniCompletion` which you can use for scripting or manually (with +`:lua MiniCompletion.*`). + +See |MiniCompletion.config| for `config` structure and default values. + +You can override runtime config settings locally to buffer inside +`vim.b.minicompletion_config` which should have same structure as +`MiniCompletion.config`. See |mini.nvim-buffer-local-config| for more details. + +# Notes ~ + +- More appropriate, albeit slightly advanced, LSP completion setup is to set + it not on every `BufEnter` event (default), but on every attach of LSP + client. To do that: + - Use in initial config: + `lsp_completion = {source_func = 'omnifunc', auto_setup = false}`. + - In `on_attach()` of every LSP client set 'omnifunc' option to exactly + `v:lua.MiniCompletion.completefunc_lsp`. + +- Uses `vim.lsp.protocol.CompletionItemKind` map in LSP step to show a readable + version of item's kind. Modify it directly to change what is displayed. + If you have |mini.icons| enabled, take a look at |MiniIcons.tweak_lsp_kind()|. + +- If you have trouble using custom (overridden) |vim.ui.input| (like from + 'stevearc/dressing.nvim'), make automated disable of 'mini.completion' + for input buffer. For example, currently for 'dressing.nvim' it can be + with `au FileType DressingInput lua vim.b.minicompletion_disable = true`. + +- Support of `additionalTextEdits` tries to handle both types of servers: + - When `additionalTextEdits` are supplied in response to + 'textDocument/completion' request (like currently in 'pyright'). + - When `additionalTextEdits` are supplied in response to + 'completionItem/resolve' request (like currently in + 'typescript-language-server'). In this case to apply edits user needs + to trigger such request, i.e. select completion item and wait for + `MiniCompletion.config.delay.info` time plus server response time. + +# Comparisons ~ + +- 'nvim-cmp': + - More complex design which allows multiple sources each in form of + separate plugin. `MiniCompletion` has two built in: LSP and fallback. + - Supports snippet expansion. + - Doesn't have customizable delays for basic actions. + - Doesn't allow fallback action. + - Doesn't provide signature help. + +# Helpful mappings ~ + +To use `` and `` for navigation through completion list, make +these mappings: >lua + + local imap_expr = function(lhs, rhs) + vim.keymap.set('i', lhs, rhs, { expr = true }) + end + imap_expr('', [[pumvisible() ? "\" : "\"]]) + imap_expr('', [[pumvisible() ? "\" : "\"]]) +< +To get more consistent behavior of ``, you can use this template in +your 'init.lua' to make customized mapping: >lua + + local keycode = vim.keycode or function(x) + return vim.api.nvim_replace_termcodes(x, true, true, true) + end + local keys = { + ['cr'] = keycode(''), + ['ctrl-y'] = keycode(''), + ['ctrl-y_cr'] = keycode(''), + } + + _G.cr_action = function() + if vim.fn.pumvisible() ~= 0 then + -- If popup is visible, confirm selected item or add new line otherwise + local item_selected = vim.fn.complete_info()['selected'] ~= -1 + return item_selected and keys['ctrl-y'] or keys['ctrl-y_cr'] + else + -- If popup is not visible, use plain ``. You might want to customize + -- according to other plugins. For example, to use 'mini.pairs', replace + -- next line with `return require('mini.pairs').cr()` + return keys['cr'] + end + end + + vim.keymap.set('i', '', 'v:lua._G.cr_action()', { expr = true }) +< +# Highlight groups ~ + +* `MiniCompletionActiveParameter` - signature active parameter. + By default displayed as plain underline. + +To change any highlight group, modify it directly with |:highlight|. + +# Disabling ~ + +To disable, set `vim.g.minicompletion_disable` (globally) or +`vim.b.minicompletion_disable` (for a buffer) to `true`. Considering high +number of different scenarios and customization intentions, writing exact +rules for disabling module's functionality is left to user. See +|mini.nvim-disabling-recipes| for common recipes. + +------------------------------------------------------------------------------ + *MiniCompletion.setup()* + `MiniCompletion.setup`({config}) +Module setup + +Parameters ~ +{config} `(table|nil)` Module config table. See |MiniCompletion.config|. + +Usage ~ +>lua + require('mini.completion').setup() -- use default config + -- OR + require('mini.completion').setup({}) -- replace {} with your config table +< +------------------------------------------------------------------------------ + *MiniCompletion.config* + `MiniCompletion.config` +Module config + +Default values: +>lua + MiniCompletion.config = { + -- Delay (debounce type, in ms) between certain Neovim event and action. + -- This can be used to (virtually) disable certain automatic actions by + -- setting very high delay time (like 10^7). + delay = { completion = 100, info = 100, signature = 50 }, + + -- Configuration for action windows: + -- - `height` and `width` are maximum dimensions. + -- - `border` defines border (as in `nvim_open_win()`). + window = { + info = { height = 25, width = 80, border = 'none' }, + signature = { height = 25, width = 80, border = 'none' }, + }, + + -- Way of how module does LSP completion + lsp_completion = { + -- `source_func` should be one of 'completefunc' or 'omnifunc'. + source_func = 'completefunc', + + -- `auto_setup` should be boolean indicating if LSP completion is set up + -- on every `BufEnter` event. + auto_setup = true, + + -- `process_items` should be a function which takes LSP + -- 'textDocument/completion' response items and word to complete. Its + -- output should be a table of the same nature as input items. The most + -- common use-cases are custom filtering and sorting. You can use + -- default `process_items` as `MiniCompletion.default_process_items()`. + process_items = --, + }, + + -- Fallback action. It will always be run in Insert mode. To use Neovim's + -- built-in completion (see `:h ins-completion`), supply its mapping as + -- string. Example: to use 'whole lines' completion, supply ''. + fallback_action = --` completion>, + + -- Module mappings. Use `''` (empty string) to disable one. Some of them + -- might conflict with system mappings. + mappings = { + force_twostep = '', -- Force two-step completion + force_fallback = '', -- Force fallback completion + }, + + -- Whether to set Vim's settings for better experience (modifies + -- `shortmess` and `completeopt`) + set_vim_settings = true, + } +< +------------------------------------------------------------------------------ + *MiniCompletion.complete_twostage()* + `MiniCompletion.complete_twostage`({fallback}, {force}) +Run two-stage completion + +Parameters ~ +{fallback} `(boolean|nil)` Whether to use fallback completion. Default: `true`. +{force} `(boolean|nil)` Whether to force update of completion popup. + Default: `true`. + +------------------------------------------------------------------------------ + *MiniCompletion.complete_fallback()* + `MiniCompletion.complete_fallback`() +Run fallback completion + +------------------------------------------------------------------------------ + *MiniCompletion.stop()* + `MiniCompletion.stop`({actions}) +Stop actions + +This stops currently active (because of module delay or LSP answer delay) +actions. + +Designed to be used with |autocmd|. No need to use it directly, everything +is setup in |MiniCompletion.setup|. + +Parameters ~ +{actions} `(table|nil)` Array containing any of 'completion', 'info', or + 'signature' string. Default: array containing all of them. + +------------------------------------------------------------------------------ + *MiniCompletion.completefunc_lsp()* + `MiniCompletion.completefunc_lsp`({findstart}, {base}) +Module's |complete-function| + +This is the main function which enables two-stage completion. It should be +set as one of |completefunc| or |omnifunc|. + +No need to use it directly, everything is setup in |MiniCompletion.setup|. + +------------------------------------------------------------------------------ + *MiniCompletion.default_process_items()* + `MiniCompletion.default_process_items`({items}, {base}) +Default `MiniCompletion.config.lsp_completion.process_items` + + + vim:tw=78:ts=8:noet:ft=help:norl: \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/mini.nvim/doc/mini-cursorword.txt b/config/neovim/store/lazy-plugins/mini.nvim/doc/mini-cursorword.txt new file mode 100644 index 00000000..b6777529 --- /dev/null +++ b/config/neovim/store/lazy-plugins/mini.nvim/doc/mini-cursorword.txt @@ -0,0 +1,107 @@ +*mini.cursorword* Autohighlight word under cursor +*MiniCursorword* + +MIT License Copyright (c) 2021 Evgeni Chasnovski + +============================================================================== + +Features: +- Autohighlight word under cursor with customizable delay. + +- Current word under cursor can be highlighted differently. + +- Highlighting is triggered only if current cursor character is a |[:keyword:]|. + +- Highlighting stops in insert and terminal modes. + +- "Word under cursor" is meant as in Vim's ||: something user would + get as 'iw' text object. + +# Setup ~ + +This module needs a setup with `require('mini.cursorword').setup({})` +(replace `{}` with your `config` table). It will create global Lua table +`MiniCursorword` which you can use for scripting or manually (with +`:lua MiniCursorword.*`). + +See |MiniCursorword.config| for `config` structure and default values. + +You can override runtime config settings locally to buffer inside +`vim.b.minicursorword_config` which should have same structure as +`MiniCursorword.config`. See |mini.nvim-buffer-local-config| for more details. + +# Highlight groups ~ + +* `MiniCursorword` - highlight group of a non-current cursor word. + Default: plain underline. + +* `MiniCursorwordCurrent` - highlight group of a current word under cursor. + Default: links to `MiniCursorword` (so `:hi clear MiniCursorwordCurrent` + will lead to showing `MiniCursorword` highlight group). + Note: To not highlight it, use the following Lua code: >lua + + vim.api.nvim_set_hl(0, 'MiniCursorwordCurrent', {}) +< +To change any highlight group, modify it directly with |:highlight|. + +# Disabling ~ + +To disable core functionality, set `vim.g.minicursorword_disable` (globally) or +`vim.b.minicursorword_disable` (for a buffer) to `true`. Considering high +number of different scenarios and customization intentions, writing exact +rules for disabling module's functionality is left to user. See +|mini.nvim-disabling-recipes| for common recipes. Note: after disabling +there might be highlighting left; it will be removed after next +highlighting update. + +Module-specific disabling: +- Don't show highlighting if cursor is on the word that is in a blocklist + of current filetype. In this example, blocklist for "lua" is "local" and + "require" words, for "javascript" - "import": >lua + + _G.cursorword_blocklist = function() + local curword = vim.fn.expand('') + local filetype = vim.bo.filetype + + -- Add any disabling global or filetype-specific logic here + local blocklist = {} + if filetype == 'lua' then + blocklist = { 'local', 'require' } + elseif filetype == 'javascript' then + blocklist = { 'import' } + end + + vim.b.minicursorword_disable = vim.tbl_contains(blocklist, curword) + end + + -- Make sure to add this autocommand *before* calling module's `setup()`. + vim.cmd('au CursorMoved * lua _G.cursorword_blocklist()') +< +------------------------------------------------------------------------------ + *MiniCursorword.setup()* + `MiniCursorword.setup`({config}) +Module setup + +Parameters ~ +{config} `(table|nil)` Module config table. See |MiniCursorword.config|. + +Usage ~ +>lua + require('mini.cursorword').setup() -- use default config + -- OR + require('mini.cursorword').setup({}) -- replace {} with your config table +< +------------------------------------------------------------------------------ + *MiniCursorword.config* + `MiniCursorword.config` +Module config + +Default values: +>lua + MiniCursorword.config = { + -- Delay (in ms) between when cursor moved and when highlighting appeared + delay = 100, + } +< + + vim:tw=78:ts=8:noet:ft=help:norl: \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/mini.nvim/doc/mini-deps.txt b/config/neovim/store/lazy-plugins/mini.nvim/doc/mini-deps.txt new file mode 100644 index 00000000..6988a5d4 --- /dev/null +++ b/config/neovim/store/lazy-plugins/mini.nvim/doc/mini-deps.txt @@ -0,0 +1,578 @@ +*mini.deps* Plugin manager +*MiniDeps* + +MIT License Copyright (c) 2024 Evgeni Chasnovski + +============================================================================== + +Features: + +- Manage plugins utilizing Git and built-in |packages| with these actions: + - Add plugin to current session, download if absent. See |MiniDeps.add()|. + - Update with/without confirm, with/without parallel download of new data. + See |MiniDeps.update()|. + - Delete unused plugins with/without confirm. See |MiniDeps.clean()|. + - Get / set / save / load snapshot. See `MiniDeps.snap_*()` functions. + + All main actions are available both as Lua functions and user commands + (see |MiniDeps-commands|). + +- Minimal yet flexible plugin |MiniDeps-plugin-specification|: + - Plugin source. + - Name of target plugin directory. + - Checkout target: branch, commit, tag, etc. + - Monitor branch to track updates without checking out. + - Dependencies to be set up prior to the target plugin. + - Hooks to call before/after plugin is created/changed. + +- Helpers implementing two-stage startup: |MiniDeps.now()| and |MiniDeps.later()|. + See |MiniDeps-overview| for how to implement basic lazy loading with them. + +What it doesn't do: + +- Manage plugins which are developed without Git. The suggested approach is + to create a separate package (see |packages|). + +- Provide ways to completely remove or update plugin's functionality in + current session. Although this is partially doable, it can not be done + in full (yet) because plugins can have untraceable side effects + (autocmmands, mappings, etc.). + The suggested approach is to restart Nvim. + +Sources with more details: +- |MiniDeps-overview| +- |MiniDeps-plugin-specification| +- |MiniDeps-commands| + +# Dependencies ~ + +For most of its functionality this plugin relies on `git` CLI tool. +See https://git-scm.com/ for more information about how to install it. +Actual knowledge of Git is not required but helpful. + +# Setup ~ + +This module needs a setup with `require('mini.deps').setup({})` (replace +`{}` with your `config` table). It will create global Lua table `MiniDeps` +which you can use for scripting or manually (with `:lua MiniDeps.*`). + +See |MiniDeps.config| for `config` structure and default values. + +You can override runtime config settings locally to buffer inside +`vim.b.minideps_config` which should have same structure as +`MiniDeps.config`. See |mini.nvim-buffer-local-config| for more details. + +# Comparisons ~ + +- 'folke/lazy.nvim': + - More feature-rich and complex. + - Uses table specification with dedicated functions to add plugins, + while this module uses direct function call approach + (calling |MiniDeps.add()| ensures that plugin is usable). + - Uses version tags by default, while this module is more designed towards + tracking branches. Using tags is possible too (see |MiniDeps-overview|). + +- 'savq/paq-nvim': + - Overall less feature-rich than this module (by design). + - Uses array of plugin specifications inside `setup()` call to define which + plugins should be installed. Requires separate `:PaqInstall` call to + actually install them. This module ensures installation on first load. + +- 'junegunn/vim-plug': + - Written in Vimscript, while this module is in Lua. + - Similar approach to defining and installing plugins as 'savq/paq-nvim'. + - Has basic lazy-loading built-in, while this module does not (by design). + +# Highlight groups ~ + +Highlight groups are used inside confirmation buffers after +default |MiniDeps.update()| and |MiniDeps.clean()|. + +* `MiniDepsChangeAdded` - added change (commit) during update. +* `MiniDepsChangeRemoved` - removed change (commit) during update. +* `MiniDepsHint` - various hints. +* `MiniDepsInfo` - various information. +* `MiniDepsMsgBreaking` - message for (conventional commit) breaking change. +* `MiniDepsPlaceholder` - placeholder when there is no valuable information. +* `MiniDepsTitle` - various titles. +* `MiniDepsTitleError` - title when plugin had errors during update. +* `MiniDepsTitleSame` - title when plugin has no changes to update. +* `MiniDepsTitleUpdate` - title when plugin has changes to update. + +To change any highlight group, modify it directly with |:highlight|. + +------------------------------------------------------------------------------ + *MiniDeps-overview* +# Directory structure ~ + +This module uses built-in |packages| to make plugins usable in current session. +It works with "pack/deps" package inside `config.path.package` directory. + +By default "opt" subdirectory is used to install optional plugins which are +loaded on demand with |MiniDeps.add()|. +Non-optional plugins in "start" subdirectory are supported but only if moved +there manually after initial install. Use it if you know what you are doing. + +# Add plugin ~ + +Use |MiniDeps.add()| to add plugin to current session. Supply plugin's URL +source as a string or |MiniDeps-plugin-specification| in general. If plugin is +not present in "pack/deps" package, it will be created (a.k.a. installed) +before processing anything else. + +The recommended way of adding a plugin is by calling |MiniDeps.add()| in the +|init.lua| file (make sure |MiniDeps.setup()| is called prior): >lua + + local add = MiniDeps.add + + -- Add to current session (install if absent) + add({ + source = 'neovim/nvim-lspconfig', + -- Supply dependencies near target plugin + depends = { 'williamboman/mason.nvim' }, + }) + + add({ + source = 'nvim-treesitter/nvim-treesitter', + -- Use 'master' while monitoring updates in 'main' + checkout = 'master', + monitor = 'main', + -- Perform action after every checkout + hooks = { post_checkout = function() vim.cmd('TSUpdate') end }, + }) + -- Possible to immediately execute code which depends on the added plugin + require('nvim-treesitter.configs').setup({ + ensure_installed = { 'lua', 'vimdoc' }, + highlight = { enable = true }, + }) +< +NOTE: +- To increase performance, `add()` only ensures presence on disk and + nothing else. In particular, it doesn't ensure `opts.checkout` state. + Update or modify plugin state explicitly (see later sections). + +# Lazy loading ~ + +Any lazy-loading is assumed to be done manually by calling |MiniDeps.add()| +at appropriate time. This module provides helpers implementing special safe +two-stage loading: +- |MiniDeps.now()| safely executes code immediately. Use it to load plugins + with UI necessary to make initial screen draw. +- |MiniDeps.later()| schedules code to be safely executed later, preserving + order. Use it (with caution) for everything else which doesn't need + precisely timed effect, as it will be executed some time soon on one of + the next event loops. >lua + + local now, later = MiniDeps.now, MiniDeps.later + + -- Safely execute immediately + now(function() vim.cmd('colorscheme randomhue') end) + now(function() require('mini.statusline').setup() end) + + -- Safely execute later + later(function() require('mini.pick').setup() end) +< +# Update ~ + +To update plugins from current session with new data from their sources, +use |:DepsUpdate|. This will download updates (utilizing multiple cores) and +show confirmation buffer. Follow instructions at its top to finish an update. + +NOTE: This updates plugins on disk which most likely won't affect current +session. Restart Nvim to have them properly loaded. + +# Modify ~ + +To change plugin's specification (like set different `checkout`, etc.): +- Update corresponding |MiniDeps.add()| call. +- Run `:DepsUpdateOffline `. +- Review changes and confirm. +- Restart Nvim. + +NOTE: if `add()` prior used a single source string, make sure to convert +its argument to `{ source = '', checkout = ''}` + +# Snapshots ~ + +Use |:DepsSnapSave| to save state of all plugins from current session into +a snapshot file (see `config.path.snapshot`). + +Use |:DepsSnapLoad| to load snapshot. This will change (without confirmation) +state on disk. Plugins present in both snapshot file and current session +will be affected. Restart Nvim to see the effect. + +NOTE: loading snapshot does not change plugin's specification defined inside +|MiniDeps.add()| call. This means that next update might change plugin's state. +To make it permanent, freeze plugin in target state manually. + +# Freeze ~ + +Modify plugin's specification to have `checkout` pointing to a static +target: tag, state (commit hash), or 'HEAD' (to freeze in current state). + +Frozen plugins will not receive updates. You can monitor any new changes from +its source by "subscribing" to `monitor` branch which will be shown inside +confirmation buffer after |:DepsUpdate|. + +Example: use `checkout = 'v0.10.0'` to freeze plugin at tag "v0.10.0" while +monitoring new versions in the log from `monitor` (usually default) branch. + +# Rollback ~ + +To roll back after an unfortunate update: +- Get identifier of latest working state: + - Use |:DepsShowLog| to see update log, look for plugin's name, and copy + identifier listed as "State before:". + - See previously saved snapshot file for plugin's name and copy + identifier next to it. +- Freeze plugin at that state while monitoring appropriate branch. + Revert to previous shape of |MiniDeps.add()| call to resume updating. + +# Remove ~ + +- Make sure that target plugin is not registered in current session. + Usually it means removing corresponding |MiniDeps.add()| call. +- Run |:DepsClean|. This will show confirmation buffer with a list of plugins to + be deleted from disk. Follow instructions at its top to finish cleaning. + +Alternatively, manually delete plugin's directory from "pack/deps" package. + +------------------------------------------------------------------------------ + *MiniDeps-plugin-specification* +# Plugin specification ~ + +Each plugin dependency is managed based on its specification (a.k.a. "spec"). +See |MiniDeps-overview| for some examples. + +Specification can be a single string which is inferred as: +- Plugin if it doesn't contain "/". +- Plugin otherwise. + +Primarily, specification is a table with the following fields: + +- `(string|nil)` - field with URI of plugin source used during creation + or update. Can be anything allowed by `git clone`. + Default: `nil` to rely on source set up during install. + Notes: + - It is required for creating plugin, but can be omitted afterwards. + - As the most common case, URI of the format "user/repo" is transformed + into "https://github.com/user/repo". + +- `(string|nil)` - directory basename of where to put plugin source. + It is put in "pack/deps/opt" subdirectory of `config.path.package`. + Default: basename of if it is present, otherwise should be + provided explicitly. + +- `(string|nil)` - checkout target used to set state during update. + Can be anything supported by `git checkout` - branch, commit, tag, etc. + Default: `nil` for default branch (usually "main" or "master"). + +- `(string|nil)` - monitor branch used to track new changes from + different target than `checkout`. Should be a name of present Git branch. + Default: `nil` for default branch (usually "main" or "master"). + +- `(table|nil)` - array of plugin specifications (strings or tables) + to be added prior to the target. + Default: `nil` for no dependencies. + +- `(table|nil)` - table with callable hooks to call on certain events. + Possible hook names: + - - before creating plugin directory. + - - after creating plugin directory. + - - before making change in existing plugin. + - - after making change in existing plugin. + Each hook is executed with the following table as an argument: + - (`string`) - absolute path to plugin's directory + (might not yet exist on disk). + - (`string`) - resolved from spec. + - (`string`) - resolved from spec. + Default: `nil` for no hooks. + +------------------------------------------------------------------------------ + *MiniDeps-commands* +# User commands ~ + +Note: Most commands have a Lua function alternative which they rely on. +Like |:DepsAdd| uses |MiniDeps.add()|, etc. + + *:DepsAdd* +`:DepsAdd user/repo` makes plugin from https://github.com/user/repo available +in the current session (also creates it, if it is not present). +`:DepsAdd name` adds already installed plugin `name` to current session. +Accepts only single string compatible with |MiniDeps-plugin-specification|. +To add plugin in every session, put |MiniDeps.add()| in |init.lua|. + + *:DepsUpdate* +`:DepsUpdate` synchronizes plugins with their session specifications and +updates them with new changes from sources. It shows confirmation buffer in +a separate |tabpage| with information about an upcoming update to review +and (selectively) apply. See |MiniDeps.update()| for more info. + +`:DepsUpdate name` updates plugin `name`. Any number of names is allowed. + +`:DepsUpdate!` and `:DepsUpdate! name` update without confirmation. +You can see what was done in the log file afterwards (|:DepsShowLog|). + + *:DepsUpdateOffline* +`:DepsUpdateOffline` is same as |:DepsUpdate| but doesn't download new updates +from sources. Useful to only synchronize plugin specification in code and +on disk without unnecessary downloads. + + *:DepsShowLog* +`:DepsShowLog` opens log file to review. + + *:DepsClean* +`:DepsClean` deletes plugins from disk not added to current session. It shows +confirmation buffer in a separate |tabpage| with information about an upcoming +deletes to review and (selectively) apply. See |MiniDeps.clean()| for more info. + +`:DepsClean!` deletes plugins without confirmation. + + *:DepsSnapSave* +`:DepsSnapSave` creates snapshot file in default location (see |MiniDeps.config|). +`:DepsSnapSave path` creates snapshot file at `path`. + + *:DepsSnapLoad* + +`:DepsSnapLoad` loads snapshot file from default location (see |MiniDeps.config|). +`:DepsSnapLoad path` loads snapshot file at `path`. + +------------------------------------------------------------------------------ + *MiniDeps.setup()* + `MiniDeps.setup`({config}) +Module setup + +Calling this function creates user commands described in |MiniDeps-commands|. + +Parameters ~ +{config} `(table|nil)` Module config table. See |MiniDeps.config|. + +Usage ~ +>lua + require('mini.deps').setup() -- use default config + -- OR + require('mini.deps').setup({}) -- replace {} with your config table +< +------------------------------------------------------------------------------ + *MiniDeps.config* + `MiniDeps.config` +Module config + +Default values: +>lua + MiniDeps.config = { + -- Parameters of CLI jobs + job = { + -- Number of parallel threads to use. Default: 80% of all available. + n_threads = nil, + + -- Timeout (in ms) for each job before force quit + timeout = 30000, + }, + + -- Paths describing where to store data + path = { + -- Directory for built-in package. + -- All plugins are actually stored in 'pack/deps' subdirectory. + package = vim.fn.stdpath('data') .. '/site', + + -- Default file path for a snapshot + snapshot = vim.fn.stdpath('config') .. '/mini-deps-snap', + + -- Log file + log = vim.fn.stdpath('log') .. '/mini-deps.log' + }, + + -- Whether to disable showing non-error feedback + silent = false, + } +< +# Job ~ + +`config.job` defines how CLI jobs are run. + +`job.n_threads` is a maximum number of parallel jobs used when needed. +Default: 80% of all available. + +`job.timeout` is a duration (in ms) from job start until it is forced to stop. +Default: 30000. + +# Paths ~ + +`config.path` defines main paths used in this module. + +`path.package` is a string with path inside which "pack/deps" package is stored +(see |MiniDeps-overview|). +Default: "site" subdirectory of "data" standard path (see |stdpath()|). + +`path.snapshot` is a string with default path for snapshot. +See |:DepsSnapSave| and |:DepsSnapLoad|. +Default: "mini-deps-snap" file in "config" standard path (see |stdpath()|). + +`path.log` is a string with path containing log of operations done by module. +In particular, it contains all changes done after making an update. +Default: "mini-deps.log" file in "log" standard path (see |stdpath()|). + +# Silent ~ + +`config.silent` is a boolean controlling whether to suppress non-error feedback. +Default: `false`. + +------------------------------------------------------------------------------ + *MiniDeps.add()* + `MiniDeps.add`({spec}, {opts}) +Add plugin to current session + +- Process specification by expanding dependencies into single spec array. +- Ensure plugin is present on disk along with its dependencies by installing + (in parallel) absent ones: + - Execute `opts.hooks.pre_install`. + - Use `git clone` to clone plugin from its source URI into "pack/deps/opt". + - Set state according to `opts.checkout`. + - Execute `opts.hooks.post_install`. +- Register spec(s) in current session. +- Make sure plugin(s) can be used in current session (see |:packadd|). +- If not during startup and is needed, source all "after/plugin/" scripts. + +Notes: +- Presence of plugin is checked by its name which is the same as the name + of its directory inside "pack/deps" package (see |MiniDeps-overview|). +- To increase performance, this function only ensures presence on disk and + nothing else. In particular, it doesn't ensure `opts.checkout` state. + Use |MiniDeps.update()| or |:DepsUpdateOffline| explicitly. +- Adding plugin several times updates its session specs. + +Parameters ~ +{spec} `(table|string)` Plugin specification. See |MiniDeps-plugin-specification|. +{opts} `(table|nil)` Options. Possible fields: + - `(boolean)` - whether to use `:packadd!` instead of plain |:packadd|. + +------------------------------------------------------------------------------ + *MiniDeps.update()* + `MiniDeps.update`({names}, {opts}) +Update plugins + +- Synchronize specs with state of plugins on disk (set `source`, etc.). +- Infer data before downloading updates. +- If not offline, download updates (in parallel). +- Infer data after downloading updates. +- If update is forced, apply all changes immediately while updating log + file (at `config.path.log`; use |:DepsShowLog| to review). + Otherwise show confirmation buffer with instructions on how to proceed. + +Parameters ~ +{names} `(table|nil)` Array of plugin names to update. + Default: all plugins from current session (see |MiniDeps.get_session()|). +{opts} `(table|nil)` Options. Possible fields: + - `(boolean)` - whether to force update without confirmation. + Default: `false`. + - `(boolean)` - whether to skip downloading updates from sources. + Default: `false`. + +------------------------------------------------------------------------------ + *MiniDeps.clean()* + `MiniDeps.clean`({opts}) +Clean plugins + +- Compute absent plugins: not registered in current session + (see |MiniDeps.get_session()|) but present on disk in dedicated "pack/deps" + package (inside `config.path.package`). +- If cleaning is forced, delete all absent plugins from disk. + Otherwise show confirmation buffer with instructions on how to proceed. + +Parameters ~ +{opts} `(table|nil)` Options. Possible fields: + - `(boolean)` - whether to force delete without confirmation. + Default: `false`. + +------------------------------------------------------------------------------ + *MiniDeps.snap_get()* + `MiniDeps.snap_get`() +Compute snapshot + +Return ~ +`(table)` A snapshot table: plugin names as keys and state as values. + All plugins in current session are processed. + +------------------------------------------------------------------------------ + *MiniDeps.snap_set()* + `MiniDeps.snap_set`({snap}) +Apply snapshot + +Notes: +- Checking out states from snapshot does not update session plugin spec + (`checkout` field in particular). Among others, it means that next call + to |MiniDeps.update()| might override the result of this function. + To make changes permanent, set `checkout` spec field to state from snapshot. + +Parameters ~ +{snap} `(table)` A snapshot table: plugin names as keys and state as values. + Only plugins in current session are processed. + +------------------------------------------------------------------------------ + *MiniDeps.snap_save()* + `MiniDeps.snap_save`({path}) +Save snapshot + +Parameters ~ +{path} `(string|nil)` A valid path on disk where to write snapshot computed + with |MiniDeps.snap_get()|. + Default: `config.path.snapshot`. + +------------------------------------------------------------------------------ + *MiniDeps.snap_load()* + `MiniDeps.snap_load`({path}) +Load snapshot file + +Notes from |MiniDeps.snap_set()| also apply here. + +Parameters ~ +{path} `(string|nil)` A valid path on disk from where to read snapshot. + Default: `config.path.snapshot`. + +------------------------------------------------------------------------------ + *MiniDeps.get_session()* + `MiniDeps.get_session`() +Get session + +Plugin is registered in current session if it either: +- Was added with |MiniDeps.add()| (preserving order of calls). +- Is a "start" plugin and present in 'runtimpath'. + +Return ~ +session `(table)` Array with specifications of all plugins registered in + current session. + +------------------------------------------------------------------------------ + *MiniDeps.now()* + `MiniDeps.now`({f}) +Execute function now + +Safely execute function immediately. Errors are shown with |vim.notify()| +later, after all queued functions (including with |MiniDeps.later()|) +are executed, thus not blocking execution of next code in file. + +Assumed to be used as a first step during two-stage config execution to +load plugins immediately during startup. See |MiniDeps-overview|. + +Parameters ~ +{f} `(function)` Callable to execute. + +------------------------------------------------------------------------------ + *MiniDeps.later()* + `MiniDeps.later`({f}) +Execute function later + +Queue function to be safely executed later without blocking execution of +next code in file. All queued functions are guaranteed to be executed in +order they were added. +Errors are shown with |vim.notify()| after all queued functions are executed. + +Assumed to be used as a second step during two-stage config execution to +load plugins "lazily" after startup. See |MiniDeps-overview|. + +Parameters ~ +{f} `(function)` Callable to execute. + + + vim:tw=78:ts=8:noet:ft=help:norl: \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/mini.nvim/doc/mini-diff.txt b/config/neovim/store/lazy-plugins/mini.nvim/doc/mini-diff.txt new file mode 100644 index 00000000..115e69f8 --- /dev/null +++ b/config/neovim/store/lazy-plugins/mini.nvim/doc/mini-diff.txt @@ -0,0 +1,633 @@ +*mini.diff* Work with diff hunks +*MiniDiff* + +MIT License Copyright (c) 2024 Evgeni Chasnovski + +============================================================================== + +Features: + +- Visualize difference between buffer text and its configurable reference + interactively (updates as you type). This is done per line showing whether + it is inside added, changed, or deleted part of difference (called hunk). + Visualization can be with customizable colored signs or line numbers. + +- Special toggleable overlay view with more hunk details inside text area. + See |MiniDiff.toggle_overlay()|. + +- Completely configurable per buffer source of reference text used to keep + it up to date and define interactions with it. + See |MiniDiff-source-specification|. By default uses buffer's file content + in Git index. See |MiniDiff.gen_source.git()|. + +- Configurable mappings to manage diff hunks: + - Apply and reset hunks inside region (selected visually or with + a dot-repeatable operator). + - "Hunk range under cursor" textobject to be used as operator target. + - Navigate to first/previous/next/last hunk. See |MiniDiff.goto_hunk()|. + +What it doesn't do: + +- Provide functionality to work directly with Git outside of visualizing + and staging (applying) hunks with (default) Git source. In particular, + unstaging hunks is not supported. See |MiniDiff.gen_source.git()|. + +Sources with more details: +- |MiniDiff-overview| +- |MiniDiff-source-specification| +- |MiniDiff-hunk-specification| +- |MiniDiff-diff-summary| + +# Setup ~ + +This module needs a setup with `require('mini.diff').setup({})` (replace +`{}` with your `config` table). It will create global Lua table `MiniDiff` +which you can use for scripting or manually (with `:lua MiniDiff.*`). + +See |MiniDiff.config| for `config` structure and default values. + +You can override runtime config settings locally to buffer inside +`vim.b.minidiff_config` which should have same structure as +`MiniDiff.config`. See |mini.nvim-buffer-local-config| for more details. + +# Comparisons ~ + +- 'lewis6991/gitsigns.nvim': + - Main inspiration for this module, so there are many similarities. + - Can display only Git hunks, while this module has extensible design. + - Provides more functionality to work with Git outside of hunks. + This module does not (by design). + +# Highlight groups ~ + +* `MiniDiffSignAdd` - "add" hunk lines visualization. +* `MiniDiffSignChange` - "change" hunk lines visualization. +* `MiniDiffSignDelete` - "delete" hunk lines visualization. +* `MiniDiffOverAdd` - added text shown in overlay. +* `MiniDiffOverChange` - changed text shown in overlay. +* `MiniDiffOverContext` - context of changed text shown in overlay. +* `MiniDiffOverDelete` - deleted text shown in overlay. + +To change any highlight group, modify it directly with |:highlight|. + +# Disabling ~ + +To temporarily disable features without relying on |MiniDiff.disable()|, +set `vim.g.minidiff_disable` (globally) or `vim.b.minidiff_disable` (for +a buffer) to `true`. Considering high number of different scenarios and +customization intentions, writing exact rules for disabling module's +functionality is left to user. +See |mini.nvim-disabling-recipes| for common recipes. + +------------------------------------------------------------------------------ + *MiniDiff-overview* +# Diffs and hunks ~ + +The "diff" (short for "difference") is a result of computing how two text +strings differ from one another. This is done on per line basis, i.e. the +goal is to compute sequences of lines common to both files, interspersed +with groups of differing lines (called "hunks"). + +Although computing diff is a general concept (used on its own, in Git, etc.), +this module computes difference between current text in a buffer and some +reference text which is kept up to date specifically for that buffer. +For example, default reference text is computed as file content in Git index. +This can be customized in `config.source` (see |MiniDiff-source-specification|). + + *MiniDiff-hunk-specification* +Hunk describes two sets (one from buffer text, one - from reference) of +consecutive lines which are different. In this module hunk is stored as +a table with the following fields: + +- `(number)` - start of hunk buffer lines. First line is 1. + Can be 0 if first reference lines are deleted. + +- `(number)` - number of consecutive buffer lines. Can be 0 in + case reference lines are deleted. + +- `(number)` - start of hunk reference lines. First line is 1. + Can be 0 if lines are added before first reference line. + +- `(number)` - number of consecutive reference lines. Can be 0 in + case buffer lines are added. + +- `(string)` - hunk type. Can be one of: + - "add" - lines are present in buffer but absent in reference. + - "change" - lines are present in both buffer and reference. + - "delete" - lines are absent in buffer but present in reference. + +# Life cycle ~ + +- When entering proper (not already enabled, valid, showing text) buffer, + it is attempted to be enabled for diff processing. +- During enabling, attempt attaching the source. This should set up how + reference text is kept up to date. +- On every text change, diff computation is scheduled in debounced fashion + after customizable delay (200 ms by default). +- After the diff is computed, do the following: + - Update visualization based on configurable style: either by placing + colored text in sign column or coloring line numbers. Colors for both + styles are defined per hunk type in corresponding `MiniDiffSign*` + highlight group (see |MiniDiff|) and sign text for "sign" style can + be configured in `view.signs` of |MiniDiff.config|. + - Update overlay view (if it is enabled). + - Update `vim.b.minidiff_summary` and `vim.b.minidiff_summary_string` + buffer-local variables. These can be used, for example, in statusline. + *MiniDiff-update-event* + - Trigger `MiniDiffUpdated` `User` event. See |MiniDiff-diff-summary| for + example of how to use it. + +Notes: +- Use |:edit| to reset (disable and re-enable) current buffer. + +# Overlay ~ + +Along with basic visualization, there is a special view called "overlay". +Although it is meant for temporary overview of diff details and can be +manually toggled via |MiniDiff.toggle_overlay()|, text can be changed with +overlay reacting accordingly. + +It shows more diff details inside text area: + +- Added buffer lines are highlighted with `MiniDiffOverAdd` highlight group. + +- Deleted reference lines are shown as virtual text and highlighted with + `MiniDiffOverDelete` highlight group. + +- Changed reference lines are shown as virtual text and highlighted with + `MiniDiffOverChange` highlight group. + + "Change" hunks with equal number of buffer and reference lines have special + treatment and show "word diff". Reference line is shown next to its buffer + counterpart and only changed parts of both lines are highlighted with + `MiniDiffOverChange`. The rest of reference line has `MiniDiffOverContext` + highlighting. + This usually is the case when `config.options.linematch` is enabled. + +Notes: +- Word diff has non-zero context width. This means if changed characters + are close enough, whole range between them is also colored. This usually + reduces visual noise. +- Virtual lines above line 1 (like deleted or changed lines) need manual + scroll to become visible (with |CTRL-Y|). + +# Mappings ~ + +This module provides mappings for common actions with diffs, like: +- Apply and reset hunks. +- "Hunk range under cursor" textobject. +- Go to first/previous/next/last hunk range. + +Examples: +- `vip` followed by `gh` / `gH` applies/resets hunks inside current paragraph. + Same can be achieved in operator form `ghip` / `gHip`, which has the + advantage of being dot-repeatable (see |single-repeat|). +- `gh_` / `gH_` applies/resets current line (even if it is not a full hunk). +- `ghgh` / `gHgh` applies/resets hunk range under cursor. +- `dgh` deletes hunk range under cursor. +- `[H` / `[h` / `]h` / `]H` navigate cursor to the first / previous / next / last + hunk range of the current buffer. + +Mappings for some functionality are assumed to be done manually. +See |MiniDiff.operator()|. + +# Buffer-local variables ~ + *MiniDiff-diff-summary* +Each enabled buffer has the following buffer-local variables which can be +used in custom statusline to show an overview of hunks in current buffer: + +- `vim.b.minidiff_summary` is a table with the following fields: + - `source_name` - name of the source. + - `n_ranges` - number of hunk ranges (sequences of contiguous hunks). + - `add` - number of added lines. + - `change` - number of changed lines. + - `delete` - number of deleted lines. + +- `vim.b.minidiff_summary_string` is a string representation of summary + with a fixed format. It is expected to be used as is. To achieve + different formatting, use `vim.b.minidiff_summary` to construct one. + The best way to do this is by overriding `vim.b.minidiff_summary_string` + in the callback for |MiniDiff-update-event| event: >lua + + local format_summary = function(data) + local summary = vim.b[data.buf].minidiff_summary + local t = {} + if summary.add > 0 then table.insert(t, '+' .. summary.add) end + if summary.change > 0 then table.insert(t, '~' .. summary.change) end + if summary.delete > 0 then table.insert(t, '-' .. summary.delete) end + vim.b[data.buf].minidiff_summary_string = table.concat(t, ' ') + end + local au_opts = { pattern = 'MiniDiffUpdated', callback = format_summary } + vim.api.nvim_create_autocmd('User', au_opts) +< +------------------------------------------------------------------------------ + *MiniDiff.setup()* + `MiniDiff.setup`({config}) +Module setup + +Parameters ~ +{config} `(table|nil)` Module config table. See |MiniDiff.config|. + +Usage ~ +>lua + require('mini.diff').setup() -- use default config + -- OR + require('mini.diff').setup({}) -- replace {} with your config table +< +------------------------------------------------------------------------------ + *MiniDiff.config* + `MiniDiff.config` +Module config + +Default values: +>lua + MiniDiff.config = { + -- Options for how hunks are visualized + view = { + -- Visualization style. Possible values are 'sign' and 'number'. + -- Default: 'number' if line numbers are enabled, 'sign' otherwise. + style = vim.go.number and 'number' or 'sign', + + -- Signs used for hunks with 'sign' view + signs = { add = '▒', change = '▒', delete = '▒' }, + + -- Priority of used visualization extmarks + priority = 199, + }, + + -- Source for how reference text is computed/updated/etc + -- Uses content from Git index by default + source = nil, + + -- Delays (in ms) defining asynchronous processes + delay = { + -- How much to wait before update following every text change + text_change = 200, + }, + + -- Module mappings. Use `''` (empty string) to disable one. + mappings = { + -- Apply hunks inside a visual/operator region + apply = 'gh', + + -- Reset hunks inside a visual/operator region + reset = 'gH', + + -- Hunk range textobject to be used inside operator + -- Works also in Visual mode if mapping differs from apply and reset + textobject = 'gh', + + -- Go to hunk range in corresponding direction + goto_first = '[H', + goto_prev = '[h', + goto_next = ']h', + goto_last = ']H', + }, + + -- Various options + options = { + -- Diff algorithm. See `:h vim.diff()`. + algorithm = 'histogram', + + -- Whether to use "indent heuristic". See `:h vim.diff()`. + indent_heuristic = true, + + -- The amount of second-stage diff to align lines (in Neovim>=0.9) + linematch = 60, + + -- Whether to wrap around edges during hunk navigation + wrap_goto = false, + }, + } +< +# View ~ + +`config.view` contains settings for how diff hunks are visualized. +Example of using custom signs: >lua + + require('mini.diff').setup({ + view = { + style = 'sign', + signs = { add = '+', change = '~', delete = '-' }, + }, + }) +< +`view.style` is a string defining visualization style. Can be one of "sign" +(as a colored sign in a |sign-column|) or "number" (colored line number). +Default: "number" if |number| option is enabled, "sign" otherwise. +Note: with "sign" style it is usually better to have |signcolumn| always shown. + +`view.signs` is a table with one or two character strings used as signs for +corresponding ("add", "change", "delete") hunks. +Default: all hunks use "▒" character resulting in a contiguous colored lines. + +`view.priority` is a number with priority used for visualization and +overlay |extmarks|. +Default: 199 which is one less than `user` in |vim.highlight.priorities| to have +higher priority than automated extmarks but not as in user enabled ones. + + *MiniDiff-source-specification* +# Source ~ + +`config.source` is a table defining how reference text is managed in +a particular buffer. It can have the following fields: +- `(function)` - callable which defines how and when reference text + should be updated inside a particular buffer. It is called + inside |MiniDiff.enable()| with a buffer identifier as a single argument. + + Should execute logic which results into calling |MiniDiff.set_ref_text()| + when reference text for buffer needs to be updated. Like inside callback + for an |autocommand| or file watcher (see |watch-file|). + + For example, default Git source watches when ".git/index" file is changed + and computes reference text as the one from Git index for current file. + + Can return `false` to force buffer to not be enabled. If this can not be + inferred immediately (for example, due to asynchronous execution), should + call |MiniDiff.disable()| later to disable buffer. + + No default value, should be always supplied. + +- `(string|nil)` - source name. String `"unknown"` is used if not supplied. + +- `(function|nil)` - callable with cleanup action to be done when + buffer is disabled. It is called inside |MiniDiff.disable()| with a buffer + identifier as a single argument. + + If not supplied, nothing is done during detaching. + +- `(function|nil)` - callable which defines how hunks are applied. + It is called with buffer identifier as first argument and array of hunks + (see |MiniDiff-hunk-specification|) as second. It should eventually update + reference text: either by explicitly calling |MiniDiff.set_ref_text()| or + performing action triggering its call. + + For example, default Git source computes patch based on the hunks and + applies it inside file's git repo. + + If not supplied, applying hunks throws an error. + +Default: |MiniDiff.gen_source.git()|. + +# Delay ~ + +`config.delay` contains settings for delays in asynchronous processes. + +`delay.text_change` is a number (in ms) defining how long to wait after latest +text change (in debounced fashion) before updating diff and visualization. +Default: 200. + +# Mappings ~ + +`config.mappings` contains keys which are mapped during |MiniDiff.setup()|. + +`mappings.apply` keys can be used to apply hunks inside visual/operator region. +What exactly "apply hunks" means depends on the source and its `apply_hunks()`. +For example, in default Git source it means stage hunks. + +`mappings.reset` keys can be used to reset hunks inside visual/operator region. +Reset means replacing buffer text in region with corresponding reference text. + +`mappings.textobject` keys define "hunk range under cursor" textobject +which can be used in Operator-pending mode as target for operator (like +|d|, |y|, apply/reset hunks, etc.). It is also set up in Visual mode if +keys do not conflict with `mappings.apply` and `mappings.reset`. +"Hunk range" is used in a sense that contiguous (back-to-back) hunks are +considered as parts of a same hunk range. + +`mappings.goto_first` / `mappings.goto_prev` / `mappings.goto_next` / +`mappings.goto_last` keys can be used to navigate to first / previous / next / +last hunk range in the current buffer. + +# Options ~ + +`config.options` contains various customization options. + +`options.algorithm` is a string defining which diff algorithm to use. +Default: "histogram". See |vim.diff()| for possible values. + +`options.indent_heuristic` is a boolean defining whether to use indent +heuristic for a (possibly) more naturally aligned hunks. +Default: `true`. + +`options.linematch` is a number defining hunk size for which a second +stage diff is executed for a better aligned and more granular hunks. +Note: present only in Neovim>=0.9. +Default: 60. See |vim.diff()| and 'diffopt' for more details. + +`options.wrap_goto` is a boolean indicating whether to wrap around edges during +hunk navigation (with |MiniDiff.goto_hunk()| or `goto_*` mappings). Like if +cursor is after the last hunk, going "next" will put cursor on the first hunk. +Default: `false`. + +------------------------------------------------------------------------------ + *MiniDiff.enable()* + `MiniDiff.enable`({buf_id}) +Enable diff processing in buffer + +Parameters ~ +{buf_id} `(number)` Target buffer identifier. Default: 0 for current buffer. + +------------------------------------------------------------------------------ + *MiniDiff.disable()* + `MiniDiff.disable`({buf_id}) +Disable diff processing in buffer + +Parameters ~ +{buf_id} `(number)` Target buffer identifier. Default: 0 for current buffer. + +------------------------------------------------------------------------------ + *MiniDiff.toggle()* + `MiniDiff.toggle`({buf_id}) +Toggle diff processing in buffer + +Enable if disabled, disable if enabled. + +Parameters ~ +{buf_id} `(number)` Target buffer identifier. Default: 0 for current buffer. + +------------------------------------------------------------------------------ + *MiniDiff.toggle_overlay()* + `MiniDiff.toggle_overlay`({buf_id}) +Toggle overlay view in buffer + +Parameters ~ +{buf_id} `(number)` Target buffer identifier. Default: 0 for current buffer. + +------------------------------------------------------------------------------ + *MiniDiff.export()* + `MiniDiff.export`({format}, {opts}) +Export hunks + +Get and convert hunks from current/all buffers. Example of using it: >lua + + -- Set quickfix list from all available hunks + vim.fn.setqflist(MiniDiff.export('qf')) +< +Parameters ~ +{format} `(string)` Output format. Currently only `'qf'` value is supported. +{opts} `(table|nil)` Options. Possible fields: + - `(string)` - scope defining from which buffers to use hunks. + One of "all" (all enabled buffers) or "current". + +Return ~ +`(table)` Result of export. Depends on the `format`: + - If "qf", an array compatible with |setqflist()| and |setloclist()|. + +------------------------------------------------------------------------------ + *MiniDiff.get_buf_data()* + `MiniDiff.get_buf_data`({buf_id}) +Get buffer data + +Parameters ~ +{buf_id} `(number)` Target buffer identifier. Default: 0 for current buffer. + +Return ~ +`(table|nil)` Table with buffer diff data or `nil` if buffer is not enabled. + Table has the following fields: + - `(table)` - config used for this particular buffer. + - `(table)` - array of hunks. See |MiniDiff-hunk-specification|. + - `(boolean)` - whether an overlay view is shown. + - `(string|nil)` - current value of reference text. Lines are + separated with newline character (`'\n'`). Can be `nil` indicating that + reference text was not yet set (for example, if source did not yet react). + -

`(table)` - overall diff summary. See |MiniDiff-diff-summary|. + +------------------------------------------------------------------------------ + *MiniDiff.set_ref_text()* + `MiniDiff.set_ref_text`({buf_id}, {text}) +Set reference text for the buffer + +Note: this will call |MiniDiff.enable()| for target buffer if it is not +already enabled. + +Parameters ~ +{buf_id} `(number)` Target buffer identifier. Default: 0 for current buffer. +{text} `(string|table)` New reference text. Either a string with `\n` used to + separate lines or array of lines. Use empty table to unset current + reference text (results into no hunks shown). Default: `{}`. + Note: newline character is appended at the end (if it is not there already) + for better diffs. + +------------------------------------------------------------------------------ + *MiniDiff.gen_source* + `MiniDiff.gen_source` +Generate builtin sources + +This is a table with function elements. Call to actually get source. +Example of using |MiniDiff.gen_source.save()|: >lua + + local diff = require('mini.diff') + diff.setup({ source = diff.gen_source.save() }) +< +------------------------------------------------------------------------------ + *MiniDiff.gen_source.git()* + `MiniDiff.gen_source.git`() +Git source + +Default source. Uses file text from Git index as reference. This results in: +- "Add" hunks represent text present in current buffer, but not in index. +- "Change" hunks represent modified text already present in index. +- "Delete" hunks represent text deleted from index. + +Applying hunks means staging, a.k.a adding to index. +Notes: +- Requires Git version at least 2.38.0. +- There is no capability for unstaging hunks. Use full Git client for that. + +Return ~ +`(table)` Source. See |MiniDiff-source-specification|. + +------------------------------------------------------------------------------ + *MiniDiff.gen_source.none()* + `MiniDiff.gen_source.none`() +"Do nothing" source + +Allows buffers to be enabled while not setting any reference text. +Use this if the goal is to rely on manual |MiniDiff.set_ref_text()| calls. + +Return ~ +`(table)` Source. See |MiniDiff-source-specification|. + +------------------------------------------------------------------------------ + *MiniDiff.gen_source.save()* + `MiniDiff.gen_source.save`() +Latest save source + +Uses text at latest save as the reference. This results into diff showing +difference after the latest save. + +Return ~ +`(table)` Source. See |MiniDiff-source-specification|. + +------------------------------------------------------------------------------ + *MiniDiff.do_hunks()* + `MiniDiff.do_hunks`({buf_id}, {action}, {opts}) +Perform action on hunks in region + +Compute hunks inside a target region (even for hunks only partially inside it) +and perform apply/reset/yank operation on them. + +The "yank" action yanks all reference lines of target hunks into +a specified register (should be one of |registers|). + +Notes: +- Whether hunk is inside a region is computed based on position of its + buffer lines. +- If "change" or "delete" is only partially inside a target region, all + reference lines are used in computed "intersection" hunk. + +Used directly in `config.mappings.apply` and `config.mappings.reset`. +Usually there is no need to use this function manually. +See |MiniDiff.operator()| for how to set up a mapping for "yank". + +Parameters ~ +{buf_id} `(number)` Target buffer identifier. Default: 0 for current buffer. +{action} `(string)` One of "apply", "reset", "yank". +{opts} `(table|nil)` Options. Possible fields: + - `(number)` - start line of the region. Default: 1. + - `(number)` - start line of the region. Default: last buffer line. + - `(string)` - register to yank reference lines into. + Default: |v:register|. + +------------------------------------------------------------------------------ + *MiniDiff.goto_hunk()* + `MiniDiff.goto_hunk`({direction}, {opts}) +Go to hunk range in current buffer + +Parameters ~ +{direction} `(string)` One of "first", "prev", "next", "last". +{opts} `(table|nil)` Options. A table with fields: + - `(number)` - Number of times to advance. Default: |v:count1|. + - `(number)` - Line number to start from for directions + "prev" and "next". Default: cursor line. + - `(boolean)` - Whether to wrap around edges. + Default: `options.wrap` value of the config. + +------------------------------------------------------------------------------ + *MiniDiff.operator()* + `MiniDiff.operator`({mode}) +Perform action over region + +Perform action over region defined by marks. Used in mappings. + +Example of a mapping to yank reference lines of hunk range under cursor +(assuming default 'config.mappings.textobject'): >lua + + local rhs = function() return MiniDiff.operator('yank') .. 'gh' end + vim.keymap.set('n', 'ghy', rhs, { expr = true, remap = true }) +< +Parameters ~ +{mode} `(string)` One of "apply", "reset", "yank", or the ones used in |g@|. + +------------------------------------------------------------------------------ + *MiniDiff.textobject()* + `MiniDiff.textobject`() +Select hunk range textobject + +Selects all contiguous lines adjacent to cursor line which are in any (not +necessarily same) hunk (if cursor line itself is in hunk). +Used in default mappings. + + + vim:tw=78:ts=8:noet:ft=help:norl: \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/mini.nvim/doc/mini-doc.txt b/config/neovim/store/lazy-plugins/mini.nvim/doc/mini-doc.txt new file mode 100644 index 00000000..5e6c4447 --- /dev/null +++ b/config/neovim/store/lazy-plugins/mini.nvim/doc/mini-doc.txt @@ -0,0 +1,437 @@ +*mini.doc* Generate Neovim help files +*MiniDoc* + +MIT License Copyright (c) 2022 Evgeni Chasnovski + +============================================================================== + +Key design ideas: +- Keep documentation next to code by writing EmmyLua-like annotation + comments. They will be parsed as is, so formatting should follow built-in + guide in |help-writing|. However, custom hooks are allowed at many + generation stages for more granular management of output help file. + +- Generation is done by processing a set of ordered files line by line. + Each line can either be considered as a part of documentation block (if + it matches certain configurable pattern) or not (considered to be an + "afterline" of documentation block). See |MiniDoc.generate()| for more + details. + +- Processing is done by using nested data structures (section, block, file, + doc) describing certain parts of help file. See |MiniDoc-data-structures| + for more details. + +- Project specific script can be written as plain Lua file with + configuratble path. See |MiniDoc.generate()| for more details. + +What it doesn't do: +- It doesn't support markdown or other markup language inside annotations. +- It doesn't use treesitter in favor of Lua string manipulation for basic + tasks (parsing annotations, formatting, auto-generating tags, etc.). This + is done to manage complexity and be dependency free. + +# Setup ~ + +This module needs a setup with `require('mini.doc').setup({})` (replace +`{}` with your `config` table). It will create global Lua table `MiniDoc` +which you can use for scripting or manually (with `:lua MiniDoc.*`). + +See |MiniDoc.config| for available config settings. + +You can override runtime config settings locally to buffer inside +`vim.b.minidoc_config` which should have same structure as `MiniDoc.config`. +See |mini.nvim-buffer-local-config| for more details. + +To stop module from showing non-error feedback, set `config.silent = true`. + +# Tips ~ + +- Some settings tips that might make writing annotation comments easier: + - Set up appropriate 'comments' for `lua` file type to respect + EmmyLua-like's `---` comment leader. Value `:---,:--` seems to work. + - Set up appropriate 'formatoptions' (see also |fo-table|). Consider + adding `j`, `n`, `q`, and `r` flags. + - Set up appropriate 'formatlistpat' to help auto-formatting lists (if + `n` flag is added to 'formatoptions'). One suggestion (not entirely + ideal) is a value `^\s*[0-9\-\+\*]\+[\.\)]*\s\+`. This reads as 'at + least one special character (digit, `-`, `+`, `*`) possibly followed + by some punctuation (`.` or `)`) followed by at least one space is a + start of list item'. +- Probably one of the most reliable resources for what is considered to be + best practice when using this module is this whole plugin. Look at source + code for the reference. + +# Comparisons ~ + +- 'tjdevries/tree-sitter-lua': + - Its key design is to use treesitter grammar to parse both Lua code + and annotation comments. This makes it not easy to install, + customize, and support. + - It takes more care about automating output formatting (like auto + indentation and line width fit). This plugin leans more to manual + formatting with option to supply customized post-processing hooks. + +------------------------------------------------------------------------------ + *MiniDoc-data-structures* +Data structures + +Data structures are basically arrays of other structures accompanied with +some fields (keys with data values) and methods (keys with function +values): +- `Section structure` is an array of string lines describing one aspect + (determined by section id like '@param', '@return', '@text') of an + annotation subject. All lines will be used directly in help file. +- `Block structure` is an array of sections describing one annotation + subject like function, table, concept. +- `File structure` is an array of blocks describing certain file on disk. + Basically, file is split into consecutive blocks: annotation lines go + inside block, non-annotation - inside `block_afterlines` element of info. +- `Doc structure` is an array of files describing a final help file. Each + string line from section (when traversed in depth-first fashion) goes + directly into output file. + +All structures have these keys: +- Fields: + - `info` - contains additional information about current structure. + For more details see next section. + - `parent` - table of parent structure (if exists). + - `parent_index` - index of this structure in its parent's array. Useful + for adding to parent another structure near current one. + - `type` - string with structure type (section, block, file, doc). +- Methods (use them as `x:method(args)`): + - `insert(self, [index,] child)` - insert `child` to `self` at position + `index` (optional; if not supplied, child will be appended to end). + Basically, a `table.insert()`, but adds `parent` and `parent_index` + fields to `child` while properly updating `self`. + - `remove(self [,index])` - remove from `self` element at position + `index`. Basically, a `table.remove()`, but properly updates `self`. + - `has_descendant(self, predicate)` - whether there is a descendant + (structure or string) for which `predicate` returns `true`. In case of + success also returns the first such descendant as second value. + - `has_lines(self)` - whether structure has any lines (even empty ones) + to be put in output file. For section structures this is equivalent to + `#self`, but more useful for higher order structures. + - `clear_lines(self)` - remove all lines from structure. As a result, + this structure won't contribute to output help file. + +Description of `info` fields per structure type: +- `Section`: + - `id` - captured section identifier. Can be empty string meaning no + identifier is captured. + - `line_begin` - line number inside file at which section begins (-1 if + not generated from file). + - `line_end` - line number inside file at which section ends (-1 if not + generated from file). +- `Block`: + - `afterlines` - array of strings which were parsed from file after + this annotation block (up until the next block or end of file). + Useful for making automated decisions about what is being documented. + - `line_begin` - line number inside file at which block begins (-1 if + not generated from file). + - `line_end` - line number inside file at which block ends (-1 if not + generated from file). +- `File`: + - `path` - absolute path to a file (`''` if not generated from file). +- `Doc`: + - `input` - array of input file paths (as in |MiniDoc.generate|). + - `output` - output path (as in |MiniDoc.generate|). + - `config` - configuration used (as in |MiniDoc.generate|). + +------------------------------------------------------------------------------ + *MiniDoc.setup()* + `MiniDoc.setup`({config}) +Module setup + +Parameters ~ +{config} `(table|nil)` Module config table. See |MiniDoc.config|. + +Usage ~ +>lua + require('mini.doc').setup() -- use default config + -- OR + require('mini.doc').setup({}) -- replace {} with your config table +< +------------------------------------------------------------------------------ + *MiniDoc.config* + `MiniDoc.config` +Module config + +Default values: +>lua + MiniDoc.config = { + -- Function which extracts part of line used to denote annotation. + -- For more information see 'Notes' in |MiniDoc.config|. + annotation_extractor = function(l) return string.find(l, '^%-%-%-(%S*) ?') end, + + -- Identifier of block annotation lines until first captured identifier + default_section_id = '@text', + + -- Hooks to be applied at certain stage of document life cycle. Should + -- modify its input in place (and not return new one). + hooks = { + -- Applied to block before anything else + block_pre = --, + + -- Applied to section before anything else + section_pre = --, + + -- Applied if section has specified captured id + sections = { + ['@alias'] = --, + ['@class'] = --, + ['@diagnostic'] = --, + -- For most typical usage see |MiniDoc.afterlines_to_code| + ['@eval'] = --, + ['@field'] = --, + ['@overload'] = --, + ['@param'] = --, + ['@private'] = --, + ['@return'] = --, + ['@seealso'] = --, + ['@signature'] = --, + ['@tag'] = --, + ['@text'] = --, + ['@toc'] = --, + ['@toc_entry'] = --, + ['@type'] = --, + ['@usage'] = --, + }, + + -- Applied to section after all previous steps + section_post = --, + + -- Applied to block after all previous steps + block_post = --, + + -- Applied to file after all previous steps + file = --, + + -- Applied to doc after all previous steps + doc = --, + + -- Applied before output file is written. Takes lines array as argument. + write_pre = --, + + -- Applied after output help file is written. Takes doc as argument. + write_post = --, + }, + + -- Path (relative to current directory) to script which handles project + -- specific help file generation (like custom input files, hooks, etc.). + script_path = 'scripts/minidoc.lua', + + -- Whether to disable showing non-error feedback + silent = false, + } +< +# Notes ~ + +- `annotation_extractor` takes single string line as input. Output + describes what makes an input to be an annotation (if anything). It + should be similar to `string.find` with one capture group: start and end + of annotation indicator (whole part will be removed from help line) with + third value being string of section id (if input describes first line of + section; `nil` or empty string otherwise). Output should be `nil` if line + is not part of annotation. + Default value means that annotation line should: + - Start with `---` at first column. + - Any non-whitespace after `---` will be treated as new section id. + - Single whitespace at the start of main text will be ignored. +- Hooks are expected to be functions. Their default values might do many + things which might change over time, so for more information please look + at source code. Some more information can be found in + |MiniDoc.default_hooks|. + +------------------------------------------------------------------------------ + *MiniDoc.current* + `MiniDoc.current` +Table with information about current state of auto-generation + +It is reset at the beginning and end of `MiniDoc.generate()`. + +At least these keys are supported: +- {aliases} - table with keys being alias name and values - alias + description and single string (using `\n` to separate lines). +- {eval_section} - input section of `@eval` section hook. Can be used for + information about current block, etc. +- {toc} - array with table of contents entries. Each entry is a whole + `@toc_entry` section. + +------------------------------------------------------------------------------ + *MiniDoc.default_hooks* + `MiniDoc.default_hooks` +Default hooks + +This is default value of `MiniDoc.config.hooks`. Use it if only a little +tweak is needed. + +Some more insight about their behavior: +- Default inference of documented object metadata (tag and object signature + at the moment) is done in `block_pre`. Inference is based on string + pattern matching, so can lead to false results, although works in most + cases. It intentionally works only if first line after block has no + indentation and contains all necessary information to determine if + inference should happen. +- Hooks for sections describing some "variable-like" object ('@class', + '@field', '@param') automatically enclose first word in '{}'. +- Hooks for sections which supposed to have "type-like" data ('@field', + '@param', '@return', '@type') automatically enclose *first found* + "type-like" word and its neighbor characters in '`()`' (expect + false positives). Algorithm is far from being 100% correct, but seems to + work with present allowed type annotation. For allowed types see + https://github.com/sumneko/lua-language-server/wiki/EmmyLua-Annotations#types-and-type + or, better yet, look in source code of this module. +- Automated creation of table of contents (TOC) is done in the following way: + - Put section with `@toc_entry` id in the annotation block. Section's + lines will be registered as TOC entry. + - Put `@toc` section where you want to insert rendered table of + contents. TOC entries will be inserted on the left, references for + their respective tag section (only first, if present) on the right. + Render is done in default `doc` hook (because it should be done after + processing all files). +- The `write_post` hook executes some actions convenient for iterative + annotations writing: + - Generate `:helptags` for directory containing output file. + - Silently reload buffer containing output file (if such exists). + - Display notification message about result. + +------------------------------------------------------------------------------ + *MiniDoc.generate()* + `MiniDoc.generate`({input}, {output}, {config}) +Generate help file + +# Algorithm ~ + +- Main parameters for help generation are an array of input file paths and + path to output help file. +- Parse all inputs: + - For each file, lines are processed top to bottom in order to create an + array of documentation blocks. Each line is tested whether it is an + annotation by applying `MiniDoc.config.annotation_extractor`: if + anything is extracted, it is considered to be an annotation. Annotation + line goes to "current block" after removing extracted annotation + indicator, otherwise - to afterlines of "current block". + - Each block's annotation lines are processed top to bottom. If line had + captured section id, it is a first line of "current section" (first + block lines are allowed to not specify section id; by default it is + `@text`). All subsequent lines without captured section id go into + "current section". +- Apply structure hooks (they should modify its input in place, which is + possible due to 'table nature' of all inputs): + - Each block is processed by `MiniDoc.config.hooks.block_pre`. This is a + designated step for auto-generation of sections from described + annotation subject (like sections with id `@tag`, `@type`). + - Each section is processed by `MiniDoc.config.hooks.section_pre`. + - Each section is processed by corresponding + `MiniDoc.config.hooks.sections` function (table key equals to section + id). This is a step where most of formatting should happen (like + wrap first word of `@param` section with `{` and `}`, append empty + line to section, etc.). + - Each section is processed by `MiniDoc.config.hooks.section_post`. + - Each block is processed by `MiniDoc.config.hooks.block_post`. This is + a step for processing block after formatting is done (like add first + line with `----` delimiter). + - Each file is processed by `MiniDoc.config.hooks.file`. This is a step + for adding any file-related data (like add first line with `====` + delimiter). + - Doc is processed by `MiniDoc.config.hooks.doc`. This is a step for + adding any helpfile-related data (maybe like table of contents). +- Collect all strings from sections in depth-first fashion (equivalent to + nested "for all files -> for all blocks -> for all sections -> for all + strings -> add string to output"). Strings can have `\n` character + indicating start of new line. +- Modify collected strings with `MiniDoc.config.write_pre`. Takes strings + from previous step as input and should return array of strings. +- Write modified strings to output file. +- Execute `MiniDoc.config.write_post` hook. This is useful for showing some + feedback and making actions involving newly updated help file (like + generate tags, etc.). + +# Project specific script ~ + +If all arguments have default `nil` values, first there is an attempt to +source project specific script. This is basically a `luafile +` with current Lua runtime while caching and +restoring current `MiniDoc.config`. Its successful execution stops any +further generation actions while error means proceeding generation as if no +script was found. + +Typical script content might include definition of custom hooks, input and +output files with eventual call to `require('mini.doc').generate()` (with +or without arguments). + +Parameters ~ +{input} `(table|nil)` Array of file paths which will be processed in supplied + order. Default: all '.lua' files from current directory following by all + such files in these subdirectories: 'lua/', 'after/', 'colors/'. Note: + any 'init.lua' file is placed before other files from the same directory. +{output} `(string|nil)` Path for output help file. Default: + `doc/.txt` (designed to be used for generating help + file for plugin). +{config} `(table|nil)` Configuration overriding parts of |MiniDoc.config|. + +Return ~ +`(table)` Document structure which was generated and used for output + help file. In case `MiniDoc.config.script_path` was successfully used, + this is a return from the latest call of this function. + +------------------------------------------------------------------------------ + *MiniDoc.afterlines_to_code()* + `MiniDoc.afterlines_to_code`({struct}) +Convert afterlines to code + +This function is designed to be used together with `@eval` section to +automate documentation of certain values (notably default values of a +table). It processes afterlines based on certain directives and makes +output look like a Lua code block. + +Most common usage is by adding the following section in your annotation: > + + ---@eval return MiniDoc.afterlines_to_code(MiniDoc.current.eval_section) +< +# Directives ~ + +Directives are special comments that are processed using Lua string pattern +capabilities (so beware of false positives). Each directive should be put +on its separate line. Supported directives: +- `--minidoc_afterlines_end` denotes a line at afterlines end. Only all + lines before it will be considered as afterlines. Useful if there is + extra code in afterlines which shouldn't be used. +- `--minidoc_replace_start ` and `--minidoc_replace_end` + denote lines between them which should be replaced with ``. + Useful for manually changing what should be placed in output like in case + of replacing function body with something else. + +Here is an example. Suppose having these afterlines: >lua + + --minidoc_replace_start { + M.config = { + --minidoc_replace_end + param_one = 1, + --minidoc_replace_start param_fun = -- + param_fun = function(x) + return x + 1 + end + --minidoc_replace_end + } + --minidoc_afterlines_end + + return M +< +After adding `@eval` section those will be formatted as: > + + { + param_one = 1, + param_fun = -- + } +< +Parameters ~ +{struct} `(table)` Block or section structure which after lines will be + converted to code. + +Return ~ +`(string|nil)` Single string (using `\n` to separate lines) describing + afterlines as Lua code block in help file. If `nil`, input is not valid. + + + vim:tw=78:ts=8:noet:ft=help:norl: \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/mini.nvim/doc/mini-extra.txt b/config/neovim/store/lazy-plugins/mini.nvim/doc/mini-extra.txt new file mode 100644 index 00000000..7674a2e5 --- /dev/null +++ b/config/neovim/store/lazy-plugins/mini.nvim/doc/mini-extra.txt @@ -0,0 +1,805 @@ +*mini.extra* Extra 'mini.nvim' functionality +*MiniExtra* + +MIT License Copyright (c) 2023 Evgeni Chasnovski + +============================================================================== + +Extra useful functionality which is not essential enough for other 'mini.nvim' +modules to include directly. + +Features: + +- Various pickers for 'mini.pick': + - Built-in diagnostic (|MiniExtra.pickers.diagnostic()|). + - File explorer (|MiniExtra.pickers.explorer()|). + - Git branches/commits/files/hunks (|MiniExtra.pickers.git_hunks()|, etc.). + - Command/search/input history (|MiniExtra.pickers.history()|). + - LSP references/symbols/etc. (|MiniExtra.pickers.lsp()|). + - Tree-sitter nodes (|MiniExtra.pickers.treesitter()|). + - And much more. + See |MiniExtra.pickers| for more. + +- Various textobject specifications for 'mini.ai'. See |MiniExtra.gen_ai_spec|. + +- Various highlighters for 'mini.hipatterns'. See |MiniExtra.gen_highlighter|. + +Notes: +- This module requires only those 'mini.nvim' modules which are needed for + a particular functionality: 'mini.pick' for pickers, etc. + +# Setup ~ + +This module needs a setup with `require('mini.extra').setup({})` (replace +`{}` with your `config` table). It will create global Lua table `MiniExtra` +which you can use for scripting or manually (with `:lua MiniExtra.*`). + +See |MiniExtra.config| for `config` structure and default values. + +This module doesn't have runtime options, so using `vim.b.miniextra_config` +will have no effect here. + +# Comparisons ~ + +- 'nvim-telescope/telescope.nvim': + - With |MiniExtra.pickers|, 'mini.pick' is reasonably on par when it comes + to built-in pickers. + +- 'ibhagwan/fzf-lua': + - Same as 'nvim-telescope/telescope.nvim'. + +------------------------------------------------------------------------------ + *MiniExtra.setup()* + `MiniExtra.setup`({config}) +Module setup + +Parameters ~ +{config} `(table|nil)` Module config table. See |MiniExtra.config|. + +Usage ~ +>lua + require('mini.extra').setup() -- use default config + -- OR + require('mini.extra').setup({}) -- replace {} with your config table +< +------------------------------------------------------------------------------ + *MiniExtra.config* + `MiniExtra.config` +Module config + +Default values: +>lua + MiniExtra.config = {} +< +------------------------------------------------------------------------------ + *MiniExtra.gen_ai_spec* + `MiniExtra.gen_ai_spec` +'mini.ai' textobject specification generators + +This is a table with function elements. Call to actually get specification. + +Assumed to be used as part of |MiniAi.setup()|. Example: >lua + + local gen_ai_spec = require('mini.extra').gen_ai_spec + require('mini.ai').setup({ + custom_textobjects = { + B = gen_ai_spec.buffer(), + D = gen_ai_spec.diagnostic(), + I = gen_ai_spec.indent(), + L = gen_ai_spec.line(), + N = gen_ai_spec.number(), + }, + }) +< +------------------------------------------------------------------------------ + *MiniExtra.gen_ai_spec.buffer()* + `MiniExtra.gen_ai_spec.buffer`() +Current buffer textobject + +Notes: +- `a` textobject selects all lines in a buffer. +- `i` textobject selects all lines except blank lines at start and end. + +Return ~ +`(function)` Function implementing |MiniAi-textobject-specification|. + +------------------------------------------------------------------------------ + *MiniExtra.gen_ai_spec.diagnostic()* + `MiniExtra.gen_ai_spec.diagnostic`({severity}) +Current buffer diagnostic textobject + +Notes: +- Both `a` and `i` textobjects return |vim.diagnostic.get()| output for the + current buffer. It is modified to fit |MiniAi-textobject-specification|. + +Parameters ~ +{severity} `(any)` Which severity to use. Forwarded to |vim.diagnostic.get()|. + Default: `nil` to use all diagnostic entries. + +Return ~ +`(function)` Function implementing |MiniAi-textobject-specification|. + +------------------------------------------------------------------------------ + *MiniExtra.gen_ai_spec.indent()* + `MiniExtra.gen_ai_spec.indent`() +Current buffer indent scopes textobject + +Indent scope is a set of consecutive lines with the following properties: +- Lines above first and below last are non-blank. They are called borders. +- There is at least one non-blank line in a set. +- All non-blank lines between borders have strictly greater indent + (perceived leading space respecting |tabstop|) than either of borders. + +Notes: +- `a` textobject selects scope including borders. +- `i` textobject selects the scope charwise. +- Differences with |MiniIndentscope.textobject|: + - This textobject always treats blank lines on top and bottom of `i` + textobject as part of it, while 'mini.indentscope' can configure that. + - This textobject can select non-covering scopes, while 'mini.indentscope' + can not (by design). + - In this textobject scope computation is done only by "casting rays" from + top to bottom and not in both ways as in 'mini.indentscope'. + This works in most common scenarios and doesn't work only if indent of + of the bottom border is expected to be larger than the top. + +Return ~ +`(function)` Function implementing |MiniAi-textobject-specification|. + It returns array of regions representing all indent scopes in the buffer + ordered increasingly by the start line. + +------------------------------------------------------------------------------ + *MiniExtra.gen_ai_spec.line()* + `MiniExtra.gen_ai_spec.line`() +Current line textobject + +Notes: +- `a` textobject selects whole line. +- `i` textobject selects line after initial indent. + +Return ~ +`(function)` Function implementing |MiniAi-textobject-specification|. + +------------------------------------------------------------------------------ + *MiniExtra.gen_ai_spec.number()* + `MiniExtra.gen_ai_spec.number`() +Number textobject + +Notes: +- `a` textobject selects a whole number possibly preceded with "-" and + possibly followed by decimal part (dot and digits). +- `i` textobject selects consecutive digits. + +Return ~ +`(function)` Function implementing |MiniAi-textobject-specification|. + +------------------------------------------------------------------------------ + *MiniExtra.gen_highlighter* + `MiniExtra.gen_highlighter` +'mini.hipatterns' highlighter generators + +This is a table with function elements. Call to actually get specification. + +Assumed to be used as part of |MiniHipatterns.setup()|. Example: >lua + + local hi_words = require('mini.extra').gen_highlighter.words + require('mini.hipatterns').setup({ + highlighters = { + todo = hi_words({ 'TODO', 'Todo', 'todo' }, 'MiniHipatternsTodo'), + }, + }) +< +------------------------------------------------------------------------------ + *MiniExtra.gen_highlighter.words()* + `MiniExtra.gen_highlighter.words`({words}, {group}, {extmark_opts}) +Highlight words + +Notes: +- Words should start and end with alphanumeric symbol (latin letter or digit). +- Words will be highlighted only in full and not if part bigger word, i.e. + there should not be alphanumeric symbol before and after it. + +Parameters ~ +{words} `(table)` Array of words to highlight. Will be matched as is, not + as Lua pattern. +{group} `(string|function)` Proper `group` field for `highlighter`. + See |MiniHipatterns.config|. +{extmark_opts} `(any)` Proper `extmark_opts` field for `highlighter`. + See |MiniHipatterns.config|. + +------------------------------------------------------------------------------ + *MiniExtra.pickers* + `MiniExtra.pickers` +'mini.pick' pickers + +A table with |MiniPick| pickers (which is a hard dependency). +Notes: +- All have the same signature: + - - optional table with options local to picker. + - - optional table with options forwarded to |MiniPick.start()|. +- All of them are automatically registered in |MiniPick.registry|. +- All use default versions of |MiniPick-source.preview|, |MiniPick-source.choose|, + and |MiniPick-source.choose_marked| if not stated otherwise. + Shown text and |MiniPick-source.show| are targeted to the picked items. + +Examples of usage: +- As Lua code: `MiniExtra.pickers.buf_lines()`. +- With |:Pick| command: `:Pick buf_lines scope='current'` + Note: this requires calling |MiniExtra.setup()|. + +------------------------------------------------------------------------------ + *MiniExtra.pickers.buf_lines()* + `MiniExtra.pickers.buf_lines`({local_opts}, {opts}) +Buffer lines picker + +Pick from buffer lines. Notes: +- Loads all target buffers which are currently unloaded. + +Parameters ~ +{local_opts} `(table|nil)` Options defining behavior of this particular picker. + Possible fields: + - `(string)` - one of "all" (normal listed buffers) or "current". + Default: "all". +{opts} `(table|nil)` Options forwarded to |MiniPick.start()|. + +Return ~ +`(any)` Output of the called picker. + +------------------------------------------------------------------------------ + *MiniExtra.pickers.commands()* + `MiniExtra.pickers.commands`({local_opts}, {opts}) +Neovim commands picker + +Pick from Neovim built-in (|ex-commands|) and |user-commands|. +Notes: +- Preview shows information about the command (if available). +- Choosing either executes command (if reliably known that it doesn't need + arguments) or populates Command line with the command. + +Parameters ~ +{local_opts} `(table|nil)` Options defining behavior of this particular picker. + Not used at the moment. +{opts} `(table|nil)` Options forwarded to |MiniPick.start()|. + +Return ~ +`(any)` Output of the called picker. + +------------------------------------------------------------------------------ + *MiniExtra.pickers.diagnostic()* + `MiniExtra.pickers.diagnostic`({local_opts}, {opts}) +Built-in diagnostic picker + +Pick from |vim.diagnostic| using |vim.diagnostic.get()|. + +Parameters ~ +{local_opts} `(table|nil)` Options defining behavior of this particular picker. + Possible fields: + - `(table)` - options for |vim.diagnostic.get()|. Can be used + to limit severity or namespace. Default: `{}`. + - `(string)` - one of "all" (available) or "current" (buffer). + Default: "all". + - `(string)` - sort priority. One of "severity", "path", "none". + Default: "severity". +{opts} `(table|nil)` Options forwarded to |MiniPick.start()|. + +Return ~ +`(any)` Output of the called picker. + +------------------------------------------------------------------------------ + *MiniExtra.pickers.explorer()* + `MiniExtra.pickers.explorer`({local_opts}, {opts}) +File explorer picker + +Explore file system and open file. +Notes: +- Choosing a directory navigates inside it, changing picker's items and + current working directory. +- Query and preview work as usual (not only `move_next`/`move_prev` can be used). +- Preview works for any item. + +Examples ~ + +- `MiniExtra.pickers.explorer()` +- `:Pick explorer cwd='..'` - open explorer in parent directory. + +Parameters ~ +{local_opts} `(table|nil)` Options defining behavior of this particular picker. + Possible fields: + - `(string)` - initial directory to explore. Should be a valid + directory path. Default: `nil` for |current-directory|. + - `(function)` - callable predicate to filter items to show. + Will be called for every item and should return `true` if it should be + shown. Each item is a table with the following fields: + - `(string)` - path type. One of "directory" or "file". + - `(string)` - item path. + - `(string)` - shown text (path's basename). + - `(function)` - callable item sorter. Will be called with array + of items (each element with structure as described above) and should + return sorted array of items. +{opts} `(table|nil)` Options forwarded to |MiniPick.start()|. + +Return ~ +`(any)` Output of the called picker. + +------------------------------------------------------------------------------ + *MiniExtra.pickers.git_branches()* + `MiniExtra.pickers.git_branches`({local_opts}, {opts}) +Git branches picker + +Pick from Git branches using `git branch`. +Notes: +- Requires executable `git`. +- Requires target path to be part of git repository. +- Present for exploration and navigation purposes. Doing any Git operations + is suggested to be done in a dedicated Git client and is not planned. +- On choose opens scratch buffer with branch's history. + +Examples ~ + +- `MiniExtra.pickers.git_branches({ scope = 'local' })` - local branches of + the |current-directory| parent Git repository. +- `:Pick git_branches path='%'` - all branches of the current file parent + Git repository. + +Parameters ~ +{local_opts} `(table|nil)` Options defining behavior of this particular picker. + Possible fields: + - `(string|nil)` - target path for Git operation (if required). Also + used to find Git repository inside which to construct items. + Default: `nil` for root of Git repository containing |current-directory|. + - `(string)` - branch scope to show. One of "all", "local", "remotes". + Default: "all". +{opts} `(table|nil)` Options forwarded to |MiniPick.start()|. + +Return ~ +`(any)` Output of the called picker. + +------------------------------------------------------------------------------ + *MiniExtra.pickers.git_commits()* + `MiniExtra.pickers.git_commits`({local_opts}, {opts}) +Git commits picker + +Pick from Git commits using `git log`. +Notes: +- Requires executable `git`. +- Requires target path to be part of git repository. +- Present for exploration and navigation purposes. Doing any Git operations + is suggested to be done in a dedicated Git client and is not planned. +- On choose opens scratch buffer with commit's diff. + +Examples ~ + +- `MiniExtra.pickers.git_commits()` - all commits from parent Git + repository of |current-directory|. +- `MiniExtra.pickers.git_commits({ path = 'subdir' })` - commits affecting + files from 'subdir' subdirectory. +- `:Pick git_commits path='%'` commits affecting current file. + +Parameters ~ +{local_opts} `(table|nil)` Options defining behavior of this particular picker. + Possible fields: + - `(string|nil)` - target path for Git operation (if required). Also + used to find Git repository inside which to construct items. + Default: `nil` for root of Git repository containing |current-directory|. +{opts} `(table|nil)` Options forwarded to |MiniPick.start()|. + +Return ~ +`(any)` Output of the called picker. + +------------------------------------------------------------------------------ + *MiniExtra.pickers.git_files()* + `MiniExtra.pickers.git_files`({local_opts}, {opts}) +Git files picker + +Pick from Git files using `git ls-files`. +Notes: +- Requires executable `git`. +- Requires target path to be part of git repository. +- Present for exploration and navigation purposes. Doing any Git operations + is suggested to be done in a dedicated Git client and is not planned. + +Examples ~ + +- `MiniExtra.pickers.git_files({ scope = 'ignored' })` - ignored files from + parent Git repository of |current-directory|. +- `:Pick git_files path='subdir' scope='modified'` - files from 'subdir' + subdirectory which are ignored by Git. + +Parameters ~ +{local_opts} `(table|nil)` Options defining behavior of this particular picker. + Possible fields: + - `(string|nil)` - target path for Git operation (if required). Also + used to find Git repository inside which to construct items. + Default: `nil` for root of Git repository containing |current-directory|. + - `(string)` - files scope to show. One of + - "tracked" (`--cached` Git flag). + - "modified" (`--modified` Git flag). + - "untracked" (`--others` Git flag). + - "ignored" (`--ignored` Git flag). + - "deleted" (`--deleted` Git flag). + Default: "tracked". +{opts} `(table|nil)` Options forwarded to |MiniPick.start()|. + +Return ~ +`(any)` Output of the called picker. + +------------------------------------------------------------------------------ + *MiniExtra.pickers.git_hunks()* + `MiniExtra.pickers.git_hunks`({local_opts}, {opts}) +Git hunks picker + +Pick from Git hunks using `git diff`. +Notes: +- Requires executable `git`. +- Requires target path to be part of git repository. +- Present for exploration and navigation purposes. Doing any Git operations + is suggested to be done in a dedicated Git client and is not planned. +- On choose navigates to hunk's first change. + +Examples ~ + +- `MiniExtra.pickers.git_hunks({ scope = 'staged' })` - staged hunks from + parent Git repository of |current-directory|. +- `:Pick git_hunks path='%' n_context=0` - hunks from current file computed + with no context. + +Parameters ~ +{local_opts} `(table|nil)` Options defining behavior of this particular picker. + Possible fields: + - `(number)` - number of context lines to show in hunk's preview. + Default: 3. + - `(string|nil)` - target path for Git operation (if required). Also + used to find Git repository inside which to construct items. + Default: `nil` for root of Git repository containing |current-directory|. + - `(string)` - hunks scope to show. One of "unstaged" or "staged". + Default: "unstaged". +{opts} `(table|nil)` Options forwarded to |MiniPick.start()|. + +Return ~ +`(any)` Output of the called picker. + +------------------------------------------------------------------------------ + *MiniExtra.pickers.hipatterns()* + `MiniExtra.pickers.hipatterns`({local_opts}, {opts}) +Matches from 'mini.hipatterns' picker + +Pick from |MiniHipatterns| matches using |MiniHipatterns.get_matches()|. +Notes: +- Requires 'mini.hipatterns'. +- Highlighter identifier is highlighted with its highlight group. + +Parameters ~ +{local_opts} `(table|nil)` Options defining behavior of this particular picker. + Possible fields: + - `(string)` - one of "all" (buffers with enabled 'mini.hipatterns') + or "current" (buffer). Default: "all". + - `(table|nil)` - highlighters for which to find matches. + Forwarded to |MiniHipatterns.get_matches()|. Default: `nil`. +{opts} `(table|nil)` Options forwarded to |MiniPick.start()|. + +Return ~ +`(any)` Output of the called picker. + +------------------------------------------------------------------------------ + *MiniExtra.pickers.history()* + `MiniExtra.pickers.history`({local_opts}, {opts}) +Neovim history picker + +Pick from output of |:history|. +Notes: +- Has no preview. +- Choosing action depends on scope: + - For "cmd" / ":" scopes, the command is executed. + - For "search" / "/" / "?" scopes, search is redone. + - For other scopes nothing is done (but chosen item is still returned). + +Examples ~ + +- Command history: `MiniExtra.pickers.history({ scope = ':' })` +- Search history: `:Pick history scope='/'` + +Parameters ~ +{local_opts} `(table|nil)` Options defining behavior of this particular picker. + Possible fields: + - `(string)` - any allowed {name} flag of |:history| command. + Note: word abbreviations are not allowed. Default: "all". +{opts} `(table|nil)` Options forwarded to |MiniPick.start()|. + +Return ~ +`(any)` Output of the called picker. + +------------------------------------------------------------------------------ + *MiniExtra.pickers.hl_groups()* + `MiniExtra.pickers.hl_groups`({local_opts}, {opts}) +Highlight groups picker + +Pick and preview highlight groups. +Notes: +- Item line is colored with same highlight group it represents. +- Preview shows highlight's definition (as in |:highlight| with {group-name}). +- Choosing places highlight definition in Command line to update and apply. + +Parameters ~ +{local_opts} `(table|nil)` Options defining behavior of this particular picker. + Not used at the moment. +{opts} `(table|nil)` Options forwarded to |MiniPick.start()|. + +Return ~ +`(any)` Output of the called picker. + +------------------------------------------------------------------------------ + *MiniExtra.pickers.keymaps()* + `MiniExtra.pickers.keymaps`({local_opts}, {opts}) +Neovim keymaps picker + +Pick and preview data about Neovim keymaps. +Notes: +- Item line contains data about keymap mode, whether it is buffer local, its + left hand side, and inferred description. +- Preview shows keymap data or callback source (if present and reachable). +- Choosing emulates pressing the left hand side of the keymap. + +Parameters ~ +{local_opts} `(table|nil)` Options defining behavior of this particular picker. + Possible fields: + - `(string)` - modes to show. One of "all" or appropriate mode + for |nvim_set_keymap()|. Default: "all". + - `(string)` - scope to show. One of "all", "global", "buf". + Default: "all". +{opts} `(table|nil)` Options forwarded to |MiniPick.start()|. + +Return ~ +`(any)` Output of the called picker. + +------------------------------------------------------------------------------ + *MiniExtra.pickers.list()* + `MiniExtra.pickers.list`({local_opts}, {opts}) +Neovim lists picker + +Pick and navigate to elements of the following Neovim lists: +- |quickfix| list. +- |location-list| of current window. +- |jumplist|. +- |changelist|. + +Note: it requires explicit `scope`. + +Examples ~ + +- `MiniExtra.pickers.list({ scope = 'quickfix' })` - quickfix list. +- `:Pick list scope='jump'` - jump list. + +Parameters ~ +{local_opts} `(table|nil)` Options defining behavior of this particular picker. + Possible fields: + - `(string)` - type of list to show. One of "quickfix", "location", + "jump", "change". Default: `nil` which means explicit scope is needed. +{opts} `(table|nil)` Options forwarded to |MiniPick.start()|. + +Return ~ +`(any)` Output of the called picker. + +------------------------------------------------------------------------------ + *MiniExtra.pickers.lsp()* + `MiniExtra.pickers.lsp`({local_opts}, {opts}) +LSP picker + +Pick and navigate with LSP methods. +Notes: +- Needs an explicit scope from a list of supported ones: + - "declaration". + - "definition". + - "document_symbol". + - "implementation". + - "references". + - "type_definition". + - "workspace_symbol". +- Directly relies on `vim.lsp.buf` methods which support |lsp-on-list-handler|. + In particular, it means that picker is started only if LSP server returns + list of locations and not a single location. +- Doesn't return anything due to async nature of `vim.lsp.buf` methods. +- Requires set up |mini.icons| to show extra icons and highlighting in + "document_symbol" and "workspace_symbol" scopes. + +Examples ~ + +- `MiniExtra.pickers.lsp({ scope = 'references' })` - references of the symbol + under cursor. +- `:Pick lsp scope='document_symbol'` - symbols in current file. + +Parameters ~ +{local_opts} `(table)` Options defining behavior of this particular picker. + Possible fields: + - `(string)` - LSP method to use. One of the supported ones (see + list above). Default: `nil` which means explicit scope is needed. + - `(string)` - query for |vim.lsp.buf.workspace_symbol()|. + Default: empty string for all symbols (according to LSP specification). +{opts} `(table|nil)` Options forwarded to |MiniPick.start()|. + +Return ~ +`(nil)` Nothing is returned. + +------------------------------------------------------------------------------ + *MiniExtra.pickers.marks()* + `MiniExtra.pickers.marks`({local_opts}, {opts}) +Neovim marks picker + +Pick and preview position of Neovim |mark|s. + +Parameters ~ +{local_opts} `(table|nil)` Options defining behavior of this particular picker. + Possible fields: + - `(string)` - scope to show. One of "all", "global", "buf". + Default: "all". +{opts} `(table|nil)` Options forwarded to |MiniPick.start()|. + +Return ~ +`(any)` Output of the called picker. + +------------------------------------------------------------------------------ + *MiniExtra.pickers.oldfiles()* + `MiniExtra.pickers.oldfiles`({local_opts}, {opts}) +Old files picker + +Pick from |v:oldfiles| entries representing readable files. + +Parameters ~ +{local_opts} `(table|nil)` Options defining behavior of this particular picker. + Possible fields: + - `(boolean)` - whether to return files only from current + working directory and its subdirectories. Default: `false`. +{opts} `(table|nil)` Options forwarded to |MiniPick.start()|. + +Return ~ +`(any)` Output of the called picker. + +------------------------------------------------------------------------------ + *MiniExtra.pickers.options()* + `MiniExtra.pickers.options`({local_opts}, {opts}) +Neovim options picker + +Pick and preview data about Neovim options. +Notes: +- Item line is colored based on whether it was set (dimmed if wasn't). +- Preview shows option value in target window and its general information. +- Choosing places option name in Command line to update and apply. + +Parameters ~ +{local_opts} `(table|nil)` Options defining behavior of this particular picker. + Possible fields: + - `(string)` - options to show. One of "all", "global", "win", "buf". + Default: "all". +{opts} `(table|nil)` Options forwarded to |MiniPick.start()|. + +Return ~ +`(any)` Output of the called picker. + +------------------------------------------------------------------------------ + *MiniExtra.pickers.registers()* + `MiniExtra.pickers.registers`({local_opts}, {opts}) +Neovim registers picker + +Pick from Neovim |registers|. +Notes: +- There is no preview (all information is in the item's text). +- Choosing pastes content of a register: with |i_CTRL-R| in Insert mode, + |c_CTRL-R| in Command-line mode, and |P| otherwise. + Expression register |quote=| is reevaluated (if present) and pasted. + +Parameters ~ +{local_opts} `(table|nil)` Options defining behavior of this particular picker. + Not used at the moment. +{opts} `(table|nil)` Options forwarded to |MiniPick.start()|. + +Return ~ +`(any)` Output of the called picker. + +------------------------------------------------------------------------------ + *MiniExtra.pickers.spellsuggest()* + `MiniExtra.pickers.spellsuggest`({local_opts}, {opts}) +Neovim spell suggestions picker + +Pick and apply spell suggestions. +Notes: +- No preview is available. +- Choosing replaces current word (||) with suggestion. + +Parameters ~ +{local_opts} `(table|nil)` Options defining behavior of this particular picker. + Possible fields: + - `(number)` - number of spell suggestions. Default: 25. + +{opts} `(table|nil)` Options forwarded to |MiniPick.start()|. + +Return ~ +`(any)` Output of the called picker. + +------------------------------------------------------------------------------ + *MiniExtra.pickers.treesitter()* + `MiniExtra.pickers.treesitter`({local_opts}, {opts}) +Tree-sitter nodes picker + +Pick and navigate to |treesitter| nodes of current buffer. +Notes: +- Requires active tree-sitter parser in the current buffer. + +Parameters ~ +{local_opts} `(table|nil)` Options defining behavior of this particular picker. + Not used at the moment. +{opts} `(table|nil)` Options forwarded to |MiniPick.start()|. + +Return ~ +`(any)` Output of the called picker. + +------------------------------------------------------------------------------ + *MiniExtra.pickers.visit_paths()* + `MiniExtra.pickers.visit_paths`({local_opts}, {opts}) +Visit paths from 'mini.visits' picker + +Pick paths from |MiniVisits| using |MiniVisits.list_paths()|. +Notes: +- Requires 'mini.visits'. + +Examples ~ + +- `MiniExtra.pickers.visit_paths()` - visits registered for |current-directory| + and ordered by "robust frecency". +- `:Pick visit_paths cwd='' recency_weight=1 filter='core'` - all visits with + "core" label ordered from most to least recent. + +Parameters ~ +{local_opts} `(table|nil)` Options defining behavior of this particular picker. + Possible fields: + - `(string)` - forwarded to |MiniVisits.list_paths()|. + Default: `nil` to get paths registered for |current-directory|. + - `(function|string)` - forwarded to |MiniVisits.list_paths()|. + Default: `nil` to use all paths. + - `(boolean)` - whether to preserve original order + during query. Default: `false`. + - `(number)` - forwarded to |MiniVisits.gen_sort.default()|. + Default: 0.5 to use "robust frecency" sorting. + - `(function)` - forwarded to |MiniVisits.list_paths()|. + Default: `nil` to use "robust frecency". + Note: if supplied, has precedence over `recency_weight`. +{opts} `(table|nil)` Options forwarded to |MiniPick.start()|. + +Return ~ +`(any)` Output of the called picker. + +------------------------------------------------------------------------------ + *MiniExtra.pickers.visit_labels()* + `MiniExtra.pickers.visit_labels`({local_opts}, {opts}) +Visit labels from 'mini.visits' picker + +Pick labels from |MiniVisits| using |MiniVisits.list_labels()| +and |MiniVisits.list_paths()|. +Notes: +- Requires 'mini.visits'. +- Preview shows target visit paths filtered to those having previewed label. +- Choosing essentially starts |MiniExtra.pickers.visit_paths()| for paths + with the chosen label. + +Examples ~ + +- `MiniExtra.pickers.visit_labels()` - labels from visits registered + for |current-directory|. +- `:Pick visit_labels cwd=''` - labels from all visits. + +Parameters ~ +{local_opts} `(table|nil)` Options defining behavior of this particular picker. + Possible fields: + - `(string)` - forwarded to |MiniVisits.list_labels()|. + Default: `nil` to get labels from visits registered for |current-directory|. + - `(function|string)` - forwarded to |MiniVisits.list_labels()|. + Default: `nil` to use all visits. + - `(string)` - forwarded to |MiniVisits.list_labels()|. + Default: `""` to get labels from all visits for target `cwd`. + - `(function)` - forwarded to |MiniVisits.list_paths()| for + preview and choose. Default: `nil` to use "robust frecency". +{opts} `(table|nil)` Options forwarded to |MiniPick.start()|. + +Return ~ +Chosen path. + + + vim:tw=78:ts=8:noet:ft=help:norl: \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/mini.nvim/doc/mini-files.txt b/config/neovim/store/lazy-plugins/mini.nvim/doc/mini-files.txt new file mode 100644 index 00000000..11d79096 --- /dev/null +++ b/config/neovim/store/lazy-plugins/mini.nvim/doc/mini-files.txt @@ -0,0 +1,859 @@ +*mini.files* Navigate and manipulate file system +*MiniFiles* + +MIT License Copyright (c) 2023 Evgeni Chasnovski + +============================================================================== + +Features: +- Navigate file system using column view (Miller columns) to display nested + directories. See |MiniFiles-navigation| for overview. + +- Opt-in preview of file or directory under cursor. + +- Manipulate files and directories by editing text buffers: create, delete, + copy, rename, move. See |MiniFiles-manipulation| for overview. + +- Use as default file explorer instead of |netrw|. + +- Configurable: + - Filter/prefix/sort of file system entries. + - Mappings used for common explorer actions. + - UI options: whether to show preview of file/directory under cursor, etc. + +What it doesn't do: +- Try to be replacement of system file explorer. It is mostly designed to + be used within Neovim to quickly explore file system structure, open + files, and perform some quick file system edits. + +- Work on remote locations. Only local file system is supported. + +- Provide built-in interactive toggle of content `filter` and `sort`. + See |MiniFiles-examples| for some common examples. + +- Provide out of the box extra information like git or diagnostic status. + This can be achieved by setting |extmarks| on appropriate event(s) + (see |MiniFiles-events|) + +Notes: +- This module is written and thoroughly tested on Linux. Support for other + platform/OS (like Windows or MacOS) is a goal, but there is no guarantee. + +- Works on all supported versions but using Neovim>=0.9 is recommended. + +- This module silently reacts to not enough permissions: + - In case of missing file, check its or its parent read permissions. + - In case of no manipulation result, check write permissions. + +# Dependencies ~ + +Suggested dependencies (provide extra functionality, will work without them): + +- Enabled |MiniIcons| module to show icons near file/directory names. + Falls back to 'nvim-tree/nvim-web-devicons' plugin or uses default icons. + +# Setup ~ + +This module needs a setup with `require('mini.files').setup({})` (replace +`{}` with your `config` table). It will create global Lua table `MiniFiles` +which you can use for scripting or manually (with `:lua MiniFiles.*`). + +See |MiniFiles.config| for available config settings. + +You can override runtime config settings (like mappings or window options) +locally to buffer inside `vim.b.minifiles_config` which should have same +structure as `MiniFiles.config`. See |mini.nvim-buffer-local-config| for +more details. + +# Comparisons ~ + +- 'nvim-tree/nvim-tree.lua': + - Provides tree view of file system, while this module uses column view. + - File system manipulation is done with custom set of mappings for each + action, while this module is designed to do that by editing text. + - Has more out of the box functionality with extra configuration, while + this module has not (by design). + +- 'stevearc/oil.nvim': + - Uses single window to show information only about currently explored + directory, while this module uses column view to show whole currently + explored branch. + - Also uses text editing to manipulate file system entries. + - Can work for remote file systems, while this module can not (by design). + +- 'nvim-neo-tree/neo-tree.nvim': + - Compares to this module mostly the same as 'nvim-tree/nvim-tree.lua'. + +# Highlight groups ~ + +* `MiniFilesBorder` - border of regular windows. +* `MiniFilesBorderModified` - border of windows showing modified buffer. +* `MiniFilesCursorLine` - cursor line in explorer windows. +* `MiniFilesDirectory` - text and icon representing directory. +* `MiniFilesFile` - text representing file. +* `MiniFilesNormal` - basic foreground/background highlighting. +* `MiniFilesTitle` - title of regular windows. +* `MiniFilesTitleFocused` - title of focused window. + +To change any highlight group, modify it directly with |:highlight|. + +# Disabling ~ + +This plugin provides only manually started functionality, so no disabling +is available. + +------------------------------------------------------------------------------ + *MiniFiles-navigation* +Navigation ~ + +Every navigation starts by calling |MiniFiles.open()|, either directly or via +mapping (see its help for examples of some common scenarios). It will show +an explorer consisting of side-by-side floating windows with the following +principles: + +- Explorer shows one branch of nested directories at a time. + +- Explorer consists from several windows: + + - Each window displays entries of a single directory in a modifiable + scratch buffer. + + - Windows are organized left to right: for any particular window the left + neighbor is its parent directory and right neighbor - its child. + +- Explorer windows are the viewport to some part of current branch, meaning + that their opening/closing does not affect the branch. This matters, for + example, if there are more elements in the branch than can be shown windows. + +- Every buffer line represents separate file system entry following certain + format (not visible for users by default; set |conceallevel| to 0 to see it) + +- Once directory is shown, its buffer is not updated automatically following + external file system changes. Manually use |MiniFiles.synchronize()| for that. + +After opening explorer, in-buffer navigation is done the same way as any +regular buffer, except without some keys reserved for built-in actions. + +Most common ways to navigate are: + +- Press `j` to move cursor onto next (lower) entry in current directory. +- Press `k` to move cursor onto previous (higher) entry in current directory. +- Press `l` to expand entry under cursor (see "Go in" action). +- Press `h` to focus on parent directory (see "Go out" action). + +Cursor positions in each directory buffer are tracked and saved during +navigation. This allows for more convenient repeated navigation to some +previously visited branch. + +Available built-in actions (see "Details" for more information): > + + | Action | Keys | Description | + |-------------|------|------------------------------------------------| + | Close | q | Close explorer | + |-------------|------|------------------------------------------------| + | Go in | l | Expand entry (show directory or open file) | + |-------------|------|------------------------------------------------| + | Go in plus | L | Expand entry plus extra action | + |-------------|------|------------------------------------------------| + | Go out | h | Focus on parent directory | + |-------------|------|------------------------------------------------| + | Go out plus | H | Focus on parent directory plus extra action | + |-------------|------|------------------------------------------------| + | Reset | | Reset current explorer | + |-------------|------|------------------------------------------------| + | Reveal cwd | @ | Reset current current working directory | + |-------------|------|------------------------------------------------| + | Show help | g? | Show help window | + |-------------|------|------------------------------------------------| + | Synchronize | = | Synchronize user edits and/or external changes | + |-------------|------|------------------------------------------------| + | Trim left | < | Trim left part of branch | + |-------------|------|------------------------------------------------| + | Trim right | > | Trim right part of branch | + |-------------|------|------------------------------------------------| +< +Details: + +- "Go in": + - Always opens file in the latest window before `MiniFiles.open()` call. + - Never closes explorer. + - Works in linewise Visual mode to expand multiple entries. + +- "Go in plus" is regular "Go in" but closes explorer after opening a file. + +- "Go out plus" is regular "Go out" but trims right part of branch. + +- "Reset" focuses only on "anchor" directory (the one used to open current + explorer) and resets all stored directory cursor positions. + +- "Reveal cwd" extends branch to include |current-directory|. + If it is not an ancestor of the current branch, nothing is done. + +- "Show help" results into new window with helpful information about current + explorer. Press `q` to close it. + +- "Synchronize" parses user edits in directory buffers, applies them (after + confirmation), and updates all directory buffers with the most relevant + file system information. Can also be used without user edits to show up + to date file system entries. + See |MiniFiles-manipulation| for more info about file system manipulation. + +- "Trim left" and "Trim right" trim parts of the whole branch, not only its + currently visible parts. + +Notes: + +- Each action has exported function with more details about it. + +- Keys can be configured with `mappings` table of |MiniFiles.config|. + +------------------------------------------------------------------------------ + *MiniFiles-manipulation* +Manipulation ~ + +File system manipulation is done by editing text inside directory buffers, +which are shown inside dedicated window(s). See |MiniFiles-navigation| for +more information about navigating to a particular directory. + +General workflow: + +- Navigate to the directory in which manipulation should be done. + +- Edit buffer in the way representing file system action. + +- Repeat previous steps until all necessary file system actions are recorded. + Note: even if directory buffer is hidden, its modifications are preserved, + so you can navigate in and out of directory with modified buffer. + +- Execute |MiniFiles.synchronize()| (default key is `=`). This will prompt + confirmation dialog listing all file system actions it is about to perform. + READ IT CAREFULLY. + +- Confirm by pressing `y`/`` (applies edits and updates buffers) or + don't confirm by pressing `n`/`` (updates buffers without applying edits). + +# How does it work ~ + +All manipulation functionality is powered by creating and keeping track of +path indexes: text of the form `/xxx` (`xxx` is the number path index) placed +at the start of every line representing file system entry. + +By default they are hidden as concealed text (along with prefix separators) +for more convenience but you can see them by setting |conceallevel| to 0. +DO NOT modify text to the left of entry name. + +During synchronization, actual text for entry name is compared to path index +at that line (if present) to deduce which file system action to perform. + +# Supported file system actions ~ + +## Create ~ + +- Create file by creating new line with file name (including extension). + +- Create directory by creating new line with directory name followed by `/`. + +- Create file or directory inside nested directories by creating new line + with text like 'dir/nested-dir/' or 'dir/nested-dir/file'. + Always use `/` on any OS. + +## Delete ~ + +- Delete file or directory by deleting **whole line** describing it. + +- If `options.permanent_delete` is `true`, delete is permanent. Otherwise + file system entry is moved to a module-specific trash directory + (see |MiniFiles.config| for more details). + +## Rename ~ + +- Rename file or directory by editing its name (not icon or path index to + the left of it). + +- With default mappings for `h` / `l` it might be not convenient to rename + only part of an entry. You can adopt any of the following approaches: + - Use different motions, like |$|, |e|, |f|, etc. + - Go into Insert mode and navigate inside it. + - Change mappings to be more suited for manipulation and not navigation. + See "Mappings" section in |MiniFiles.config|. + +- It is not needed to end directory name with `/`. + +- Cyclic renames ("a" to "b" and "b" to "a") are not supported. + +## Copy ~ + +- Copy file or directory by copying **whole line** describing it and pasting + it inside buffer of target directory. + +- Change of target path is allowed. Edit only entry name in target location + (not icon or path index to the left of it). + +- Copying inside same parent directory is supported only if target path has + different name. + +- Copying inside child directory is supported. + +## Move ~ + +- Move file or directory by cutting **whole line** describing it and then + pasting it inside target directory. + +- Change of target path is allowed. Edit only entry name in target location + (not icon or path index to the left of it). + +- Moving directory inside itself is not supported. + +------------------------------------------------------------------------------ + *MiniFiles-events* +Events ~ + +To allow user customization and integration of external tools, certain |User| +autocommand events are triggered under common circumstances. + +UI events ~ + +- `MiniFilesExplorerOpen` - just after explorer finishes opening. + +- `MiniFilesExplorerClose` - just before explorer starts closing. + +- `MiniFilesBufferCreate` - when buffer is created to show a particular + directory. Triggered once per directory during one explorer session. + Can be used to create buffer-local mappings. + +- `MiniFilesBufferUpdate` - when directory buffer is updated with new content. + Can be used for integrations to set |extmarks| with useful information. + +- `MiniFilesWindowOpen` - when new window is opened. Can be used to set + window-local settings (like border, 'winblend', etc.) + +- `MiniFilesWindowUpdate` - when a window is updated. Triggers frequently, + for example, for every "go in" or "go out" action. + +Callback for each UI event will receive `data` field (see |nvim_create_autocmd()|) +with the following information: + +- - index of target buffer. +- - index of target window. Can be `nil`, like in + `MiniFilesBufferCreate` and buffer's first `MiniFilesBufferUpdate` as + they are triggered before window is created. + +File action events ~ + +- `MiniFilesActionCreate` - after entry is successfully created. + +- `MiniFilesActionDelete` - after entry is successfully deleted. + +- `MiniFilesActionRename` - after entry is successfully renamed. + +- `MiniFilesActionCopy` - after entry is successfully copied. + +- `MiniFilesActionMove` - after entry is successfully moved. + +Callback for each file action event will receive `data` field +(see |nvim_create_autocmd()|) with the following information: + +- - string with action name. +- - absolute path of entry before action (`nil` for "create" action). +- - absolute path of entry after action (`nil` for "delete" action). + +------------------------------------------------------------------------------ + *MiniFiles-examples* +Common configuration examples ~ + +# Toggle explorer ~ + +Use a combination of |MiniFiles.open()| and |MiniFiles.close()|: >lua + + local minifiles_toggle = function(...) + if not MiniFiles.close() then MiniFiles.open(...) end + end +< +# Customize windows ~ + +Create an autocommand for `MiniFilesWindowOpen` event: >lua + + vim.api.nvim_create_autocmd('User', { + pattern = 'MiniFilesWindowOpen', + callback = function(args) + local win_id = args.data.win_id + + -- Customize window-local settings + vim.wo[win_id].winblend = 50 + local config = vim.api.nvim_win_get_config(win_id) + config.border, config.title_pos = 'double', 'right' + vim.api.nvim_win_set_config(win_id, config) + end, + }) +< +# Customize icons ~ + +Use different directory icon: >lua + + local my_prefix = function(fs_entry) + if fs_entry.fs_type == 'directory' then + -- NOTE: it is usually a good idea to use icon followed by space + return ' ', 'MiniFilesDirectory' + end + return MiniFiles.default_prefix(fs_entry) + end + + require('mini.files').setup({ content = { prefix = my_prefix } }) +< +Show no icons: >lua + + require('mini.files').setup({ content = { prefix = function() end } }) +< +# Create mapping to show/hide dot-files ~ + +Create an autocommand for `MiniFilesBufferCreate` event which calls +|MiniFiles.refresh()| with explicit `content.filter` functions: >lua + + local show_dotfiles = true + + local filter_show = function(fs_entry) return true end + + local filter_hide = function(fs_entry) + return not vim.startswith(fs_entry.name, '.') + end + + local toggle_dotfiles = function() + show_dotfiles = not show_dotfiles + local new_filter = show_dotfiles and filter_show or filter_hide + MiniFiles.refresh({ content = { filter = new_filter } }) + end + + vim.api.nvim_create_autocmd('User', { + pattern = 'MiniFilesBufferCreate', + callback = function(args) + local buf_id = args.data.buf_id + -- Tweak left-hand side of mapping to your liking + vim.keymap.set('n', 'g.', toggle_dotfiles, { buffer = buf_id }) + end, + }) +< +# Create mappings to modify target window via split ~ + +Combine |MiniFiles.get_target_window()| and |MiniFiles.set_target_window()|: >lua + + local map_split = function(buf_id, lhs, direction) + local rhs = function() + -- Make new window and set it as target + local new_target_window + vim.api.nvim_win_call(MiniFiles.get_target_window(), function() + vim.cmd(direction .. ' split') + new_target_window = vim.api.nvim_get_current_win() + end) + + MiniFiles.set_target_window(new_target_window) + end + + -- Adding `desc` will result into `show_help` entries + local desc = 'Split ' .. direction + vim.keymap.set('n', lhs, rhs, { buffer = buf_id, desc = desc }) + end + + vim.api.nvim_create_autocmd('User', { + pattern = 'MiniFilesBufferCreate', + callback = function(args) + local buf_id = args.data.buf_id + -- Tweak keys to your liking + map_split(buf_id, 'gs', 'belowright horizontal') + map_split(buf_id, 'gv', 'belowright vertical') + end, + }) +< +# Create mapping to set current working directory ~ + +Use |MiniFiles.get_fs_entry()| together with |vim.fs.dirname()|: >lua + + local files_set_cwd = function(path) + -- Works only if cursor is on the valid file system entry + local cur_entry_path = MiniFiles.get_fs_entry().path + local cur_directory = vim.fs.dirname(cur_entry_path) + vim.fn.chdir(cur_directory) + end + + vim.api.nvim_create_autocmd('User', { + pattern = 'MiniFilesBufferCreate', + callback = function(args) + vim.keymap.set('n', 'g~', files_set_cwd, { buffer = args.data.buf_id }) + end, + }) +< +------------------------------------------------------------------------------ + *MiniFiles.setup()* + `MiniFiles.setup`({config}) +Module setup + +Parameters ~ +{config} `(table|nil)` Module config table. See |MiniFiles.config|. + +Usage ~ +>lua + require('mini.files').setup() -- use default config + -- OR + require('mini.files').setup({}) -- replace {} with your config table +< +------------------------------------------------------------------------------ + *MiniFiles.config* + `MiniFiles.config` +Module config + +Default values: +>lua + MiniFiles.config = { + -- Customization of shown content + content = { + -- Predicate for which file system entries to show + filter = nil, + -- What prefix to show to the left of file system entry + prefix = nil, + -- In which order to show file system entries + sort = nil, + }, + + -- Module mappings created only inside explorer. + -- Use `''` (empty string) to not create one. + mappings = { + close = 'q', + go_in = 'l', + go_in_plus = 'L', + go_out = 'h', + go_out_plus = 'H', + reset = '', + reveal_cwd = '@', + show_help = 'g?', + synchronize = '=', + trim_left = '<', + trim_right = '>', + }, + + -- General options + options = { + -- Whether to delete permanently or move into module-specific trash + permanent_delete = true, + -- Whether to use for editing directories + use_as_default_explorer = true, + }, + + -- Customization of explorer windows + windows = { + -- Maximum number of windows to show side by side + max_number = math.huge, + -- Whether to show preview of file/directory under cursor + preview = false, + -- Width of focused window + width_focus = 50, + -- Width of non-focused window + width_nofocus = 15, + -- Width of preview window + width_preview = 25, + }, + } +< +# Content ~ + +`content.filter` is a predicate which takes file system entry data as input +and returns `true`-ish value if it should be shown. +Uses |MiniFiles.default_filter()| by default. + +A file system entry data is a table with the following fields: + - `(string)` - one of "file" or "directory". + - `(string)` - basename of an entry (including extension). + - `(string)` - full path of an entry. + +`content.prefix` describes what text (prefix) to show to the left of file +system entry name (if any) and how to highlight it. It also takes file +system entry data as input and returns tuple of text and highlight group +name to be used to highlight prefix. See |MiniFiles-examples| for common +examples of how to use it. +Note: due to how lines are parsed to detect user edits for file system +manipulation, output of `content.prefix` should not contain `/` character. +Uses |MiniFiles.default_prefix()| by default. + +`content.sort` describes in which order directory entries should be shown +in directory buffer. Takes as input and returns as output an array of file +system entry data. Note: technically, it can be used to filter and modify +its elements as well. +Uses |MiniFiles.default_sort()| by default. + +# Mappings ~ + +`mappings` table can be used to customize buffer-local mappings created in each +directory buffer for built-in actions. Entry name corresponds to the function +name of the action, value - right hand side of the mapping. Supply empty +string to not create a particular mapping. + +Default mappings are mostly designed for consistent navigation experience. +Here are some alternatives: >lua + + -- Close explorer after opening file with `l` + mappings = { + go_in = 'L', + go_in_plus = 'l', + } + + -- Don't use `h`/`l` for easier cursor navigation during text edit + mappings = { + go_in = 'L', + go_in_plus = '', + go_out = 'H', + go_out_plus = '', + } +< +# Options ~ + +`options.use_as_default_explorer` is a boolean indicating whether this module +should be used as a default file explorer for editing directories (instead of +|netrw| by default). + +`options.permanent_delete` is a boolean indicating whether to perform +permanent delete or move into special trash directory. +This is a module-specific variant of "remove to trash". +Target directory is 'mini.files/trash' inside standard path of Neovim data +directory (execute `:echo stdpath('data')` to see its path in your case). + +# Windows ~ + +`windows.max_number` is a maximum number of windows allowed to be open +simultaneously. For example, use value 1 to always show single window. +There is no constraint by default. + +`windows.preview` is a boolean indicating whether to show preview of +file/directory under cursor. Note: it is shown with highlighting if Neovim +version is sufficient and file is small enough (less than 1K bytes per line +or 1M bytes in total). + +`windows.width_focus` and `windows.width_nofocus` are number of columns used +as `width` for focused and non-focused windows respectively. + +------------------------------------------------------------------------------ + *MiniFiles.open()* + `MiniFiles.open`({path}, {use_latest}, {opts}) +Open file explorer + +Common ways to use this function: >lua + + -- Open current working directory in a last used state + MiniFiles.open() + + -- Fresh explorer in current working directory + MiniFiles.open(nil, false) + + -- Open directory of current file (in last used state) focused on the file + MiniFiles.open(vim.api.nvim_buf_get_name(0)) + + -- Fresh explorer in directory of current file + MiniFiles.open(vim.api.nvim_buf_get_name(0), false) + + -- Open last used `path` (per tabpage) + -- Current working directory for the first time + MiniFiles.open(MiniFiles.get_latest_path()) +< +Parameters ~ +{path} `(string|nil)` A valid file system path used as anchor. + If it is a path to directory, used directly. + If it is a path to file, its parent directory is used as anchor while + explorer will focus on the supplied file. + Default: path of |current-directory|. +{use_latest} `(boolean|nil)` Whether to load explorer state from history + (based on the supplied anchor path). Default: `true`. +{opts} `(table|nil)` Table of options overriding |MiniFiles.config| and + `vim.b.minifiles_config` for this particular explorer session. + +------------------------------------------------------------------------------ + *MiniFiles.refresh()* + `MiniFiles.refresh`({opts}) +Refresh explorer + +Notes: +- If in `opts` at least one of `content` entry is not `nil`, all directory + buffers are forced to update. + +Parameters ~ +{opts} `(table|nil)` Table of options to update. + +------------------------------------------------------------------------------ + *MiniFiles.synchronize()* + `MiniFiles.synchronize`() +Synchronize explorer + +- Parse user edits in directory buffers. +- Convert edits to file system actions and apply them after confirmation. +- Update all directory buffers with the most relevant file system information. + Can be used without user edits to account for external file system changes. + +------------------------------------------------------------------------------ + *MiniFiles.reset()* + `MiniFiles.reset`() +Reset explorer + +- Show single window focused on anchor directory (which was used as first + argument for |MiniFiles.open()|). +- Reset all tracked directory cursors to point at first entry. + +------------------------------------------------------------------------------ + *MiniFiles.close()* + `MiniFiles.close`() +Close explorer + +Return ~ +`(boolean|nil)` Whether closing was done or `nil` if there was nothing to close. + +------------------------------------------------------------------------------ + *MiniFiles.go_in()* + `MiniFiles.go_in`({opts}) +Go in entry under cursor + +Depends on entry under cursor: +- If directory, focus on it in the window to the right. +- If file, open it in the window which was current during |MiniFiles.open()|. + Explorer is not closed after that. + +Parameters ~ +{opts} Options. Possible fields: + - `(boolean)` - whether to close explorer after going + inside a file. Powers the `go_in_plus` mapping. + Default: `false`. + +------------------------------------------------------------------------------ + *MiniFiles.go_out()* + `MiniFiles.go_out`() +Go out to parent directory + +- Focus on window to the left showing parent of current directory. + +------------------------------------------------------------------------------ + *MiniFiles.trim_left()* + `MiniFiles.trim_left`() +Trim left part of branch + +- Remove all branch paths to the left of currently focused one. This also + results into current window becoming the most left one. + +------------------------------------------------------------------------------ + *MiniFiles.trim_right()* + `MiniFiles.trim_right`() +Trim right part of branch + +- Remove all branch paths to the right of currently focused one. This also + results into current window becoming the most right one. + +------------------------------------------------------------------------------ + *MiniFiles.reveal_cwd()* + `MiniFiles.reveal_cwd`() +Reveal current working directory + +- Prepend branch with parent paths until current working directory is reached. + Do nothing if not inside it. + +------------------------------------------------------------------------------ + *MiniFiles.show_help()* + `MiniFiles.show_help`() +Show help window + +- Open window with helpful information about currently shown explorer and + focus on it. To close it, press `q`. + +------------------------------------------------------------------------------ + *MiniFiles.get_fs_entry()* + `MiniFiles.get_fs_entry`({buf_id}, {line}) +Get file system entry data + +Parameters ~ +{buf_id} `(number|nil)` Buffer identifier of valid directory buffer. + Default: current buffer. +{line} `(number|nil)` Line number of entry for which to return information. + Default: cursor line. + +Return ~ +`(table|nil)` Table of file system entry data with the following fields: + - `(string)` - one of "file" or "directory". + - `(string)` - basename of an entry (including extension). + - `(string)` - full path of an entry. + +Returns `nil` if there is no proper file system entry path at the line. + +------------------------------------------------------------------------------ + *MiniFiles.get_target_window()* + `MiniFiles.get_target_window`() +Get target window + +Return ~ +`(number|nil)` Window identifier inside which file will be opened or + `nil` if no explorer is opened. + +------------------------------------------------------------------------------ + *MiniFiles.set_target_window()* + `MiniFiles.set_target_window`({win_id}) +Set target window + +Parameters ~ +{win_id} `(number)` Window identifier inside which file will be opened. + +------------------------------------------------------------------------------ + *MiniFiles.get_latest_path()* + `MiniFiles.get_latest_path`() +Get latest used anchor path + +Note: if latest used `path` argument for |MiniFiles.open()| was for file, +this will return its parent (as it was used as anchor path). + +------------------------------------------------------------------------------ + *MiniFiles.default_filter()* + `MiniFiles.default_filter`({fs_entry}) +Default filter of file system entries + +Currently does not filter anything out. + +Parameters ~ +{fs_entry} `(table)` Table with the following fields: + - `(string)` - one of "file" or "directory". + - `(string)` - basename of an entry (including extension). + - `(string)` - full path of an entry. + +Return ~ +`(boolean)` Always `true`. + +------------------------------------------------------------------------------ + *MiniFiles.default_prefix()* + `MiniFiles.default_prefix`({fs_entry}) +Default prefix of file system entries + +- If |MiniIcons| is set up, use |MiniIcons.get()| for "directory"/"file" category. +- Otherwise: + - For directory return fixed icon and "MiniFilesDirectory" group name. + - For file try to use `get_icon()` from 'nvim-tree/nvim-web-devicons'. + If missing, return fixed icon and 'MiniFilesFile' group name. + +Parameters ~ +{fs_entry} `(table)` Table with the following fields: + - `(string)` - one of "file" or "directory". + - `(string)` - basename of an entry (including extension). + - `(string)` - full path of an entry. + +Return ~ +`(...)` Icon and highlight group name. For more details, see |MiniFiles.config| + and |MiniFiles-examples|. + +------------------------------------------------------------------------------ + *MiniFiles.default_sort()* + `MiniFiles.default_sort`({fs_entries}) +Default sort of file system entries + +Sort directories and files separately (alphabetically ignoring case) and +put directories first. + +Parameters ~ +{fs_entries} `(table)` Array of file system entry data. + Each one is a table with the following fields: + - `(string)` - one of "file" or "directory". + - `(string)` - basename of an entry (including extension). + - `(string)` - full path of an entry. + +Return ~ +`(table)` Sorted array of file system entries. + + + vim:tw=78:ts=8:noet:ft=help:norl: \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/mini.nvim/doc/mini-fuzzy.txt b/config/neovim/store/lazy-plugins/mini.nvim/doc/mini-fuzzy.txt new file mode 100644 index 00000000..9af06f90 --- /dev/null +++ b/config/neovim/store/lazy-plugins/mini.nvim/doc/mini-fuzzy.txt @@ -0,0 +1,160 @@ +*mini.fuzzy* Fuzzy matching +*MiniFuzzy* + +MIT License Copyright (c) 2021 Evgeni Chasnovski + +============================================================================== + +Features: +- Minimal and fast fuzzy matching algorithm which prioritizes match width. + +- Functions to for common fuzzy matching operations: + - |MiniFuzzy.match()|. + - |MiniFuzzy.filtersort()|. + - |MiniFuzzy.process_lsp_items()|. + +- Generator of |telescope.nvim| sorter: |MiniFuzzy.get_telescope_sorter()|. + +# Setup ~ + +This module doesn't need setup, but it can be done to improve usability. +Setup with `require('mini.fuzzy').setup({})` (replace `{}` with your +`config` table). It will create global Lua table `MiniFuzzy` which you can +use for scripting or manually (with `:lua MiniFuzzy.*`). + +See |MiniFuzzy.config| for `config` structure and default values. + +You can override runtime config settings locally to buffer inside +`vim.b.minifuzzy_config` which should have same structure as +`MiniFuzzy.config`. +See |mini.nvim-buffer-local-config| for more details. + +# Notes ~ + +1. Currently there is no explicit design to work with multibyte symbols, + but simple examples should work. +2. Smart case is used: case insensitive if input word (which is usually a + user input) is all lower case. Case sensitive otherwise. + +------------------------------------------------------------------------------ + *MiniFuzzy-algorithm* +# Algorithm design ~ + +General design uses only width of found match and index of first letter +match. No special characters or positions (like in fzy and fzf) are used. + +Given input `word` and target `candidate`: +- The goal is to find matching between `word`'s letters and letters in + `candidate`, which minimizes certain score. It is assumed that order of + letters in `word` and those matched in `candidate` should be the same. +- Matching is represented by matched positions: an array `positions` of + integers with length equal to number of letters in `word`. The following + should be always true in case of a match: `candidate`'s letter at index + `positions[i]` is letters[i]` for all valid `i`. +- Matched positions are evaluated based only on two features: their width + (number of indexes between first and last positions) and first match + (index of first letter match). There is a global setting `cutoff` for + which all feature values greater than it can be considered "equally bad". +- Score of matched positions is computed with following explicit formula: + `cutoff * min(width, cutoff) + min(first, cutoff)`. It is designed to be + equivalent to first comparing widths (lower is better) and then comparing + first match (lower is better). For example, if `word = 'time'`: + - '_time' (width 4) will have a better match than 't_ime' (width 5). + - 'time_a' (width 4, first 1) will have a better match than 'a_time' + (width 4, first 3). +- Final matched positions are those which minimize score among all possible + matched positions of `word` and `candidate`. + +------------------------------------------------------------------------------ + *MiniFuzzy.setup()* + `MiniFuzzy.setup`({config}) +Module setup + +Parameters ~ +{config} `(table|nil)` Module config table. See |MiniFuzzy.config|. + +Usage ~ +>lua + require('mini.fuzzy').setup() -- use default config + -- OR + require('mini.fuzzy').setup({}) -- replace {} with your config table +< +------------------------------------------------------------------------------ + *MiniFuzzy.config* + `MiniFuzzy.config` +Module config + +Default values: +>lua + MiniFuzzy.config = { + -- Maximum allowed value of match features (width and first match). All + -- feature values greater than cutoff can be considered "equally bad". + cutoff = 100, + } +< +------------------------------------------------------------------------------ + *MiniFuzzy.match()* + `MiniFuzzy.match`({word}, {candidate}) +Compute match data of input `word` and `candidate` strings + +It tries to find best match for input string `word` (usually user input) +and string `candidate`. Returns table with elements: +- `positions` - array with letter indexes inside `candidate` which + matched to corresponding letters in `word`. Or `nil` if no match. +- `score` - positive number representing how good the match is (lower is + better). Or `-1` if no match. + +Parameters ~ +{word} `(string)` Input word (usually user input). +{candidate} `(string)` Target word (usually with which matching is done). + +Return ~ +`(table)` Table with matching information (see function's description). + +------------------------------------------------------------------------------ + *MiniFuzzy.filtersort()* + `MiniFuzzy.filtersort`({word}, {candidate_array}) +Filter string array + +This leaves only those elements of input array which matched with `word` +and sorts from best to worst matches (based on score and index in original +array, both lower is better). + +Parameters ~ +{word} `(string)` String which will be searched. +{candidate_array} `(table)` Lua array of strings inside which word will be + searched. + +Return ~ +`(...)` Arrays of matched candidates and their indexes in original input. + +------------------------------------------------------------------------------ + *MiniFuzzy.process_lsp_items()* + `MiniFuzzy.process_lsp_items`({items}, {base}) +Fuzzy matching for `lsp_completion.process_items` of |MiniCompletion.config| + +Parameters ~ +{items} `(table)` Array with LSP 'textDocument/completion' response items. +{base} `(string)` Word to complete. + +------------------------------------------------------------------------------ + *MiniFuzzy.get_telescope_sorter()* + `MiniFuzzy.get_telescope_sorter`({opts}) +Custom getter for `telescope.nvim` sorter + +Designed to be used as value for |telescope.defaults.file_sorter| and +|telescope.defaults.generic_sorter| inside `setup()` call. + +Parameters ~ +{opts} `(table|nil)` Options (currently not used). + +Usage ~ +>lua + require('telescope').setup({ + defaults = { + generic_sorter = require('mini.fuzzy').get_telescope_sorter + } + }) +< + + vim:tw=78:ts=8:noet:ft=help:norl: \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/mini.nvim/doc/mini-git.txt b/config/neovim/store/lazy-plugins/mini.nvim/doc/mini-git.txt new file mode 100644 index 00000000..9046be38 --- /dev/null +++ b/config/neovim/store/lazy-plugins/mini.nvim/doc/mini-git.txt @@ -0,0 +1,426 @@ +*mini.git* Git integration +*MiniGit* + +MIT License Copyright (c) 2024 Evgeni Chasnovski + +============================================================================== + +Features: + +- Automated tracking of Git related data: root path, status, HEAD, etc. + Exposes buffer-local variables for convenient use in statusline. + See |MiniGit.enable()| and |MiniGit.get_buf_data()| for more information. + +- |:Git| command for executing any `git` call inside file's repository root with + deeper current instance integration (show output as notification/buffer, + use to edit commit messages, etc.). + +- Helper functions to inspect Git history: + - |MiniGit.show_range_history()| shows how certain line range evolved. + - |MiniGit.show_diff_source()| shows file state as it was at diff entry. + - |MiniGit.show_at_cursor()| shows Git related data depending on context. + +What it doesn't do: + +- Replace fully featured Git client. Rule of thumb: if feature does not rely + on a state of current Neovim (opened buffers, etc.), it is out of scope. + For more functionality, use either |MiniDiff| or fully featured Git client. + +Sources with more details: +- |:Git| +- |MiniGit-examples| +- |MiniGit.enable()| +- |MiniGit.get_buf_data()| + +# Setup ~ + +This module needs a setup with `require('mini.git').setup({})` (replace `{}` with +your `config` table). It will create global Lua table `MiniGit` which you can use +for scripting or manually (with `:lua MiniGit.*`). + +See |MiniGit.config| for `config` structure and default values. + +# Comparisons ~ + +- 'tpope/vim-fugitive': + - Mostly a dedicated Git client, while this module is not (by design). + - Provides buffer-local Git data only through fixed statusline component, + while this module has richer data in the form of a Lua table. + - Both provide |:Git| command with 'vim-fugitive' treating some cases + extra specially (like `:Git blame`, etc.), while this module mostly + treats all cases the same. See |MiniGit-examples| for how they can be + manually customized. + Also this module provides slightly different (usually richer) + completion suggestions. + +- 'NeogitOrg/neogit': + - Similar to 'tpope/vim-fugitive', but without `:Git` command. + +- 'lewis6991/gitsigns.nvim': + - Provides buffer-local Git data with emphasis on granular diff status, + while this module is more oriented towards repository and file level + data (root, HEAD, file status, etc.). Use |MiniDiff| for diff tracking. + +# Disabling ~ + +To prevent buffer(s) from being tracked, set `vim.g.minigit_disable` (globally) +or `vim.b.minigit_disable` (for a buffer) to `true`. Considering high number of +different scenarios and customization intentions, writing exact rules for +disabling module's functionality is left to user. +See |mini.nvim-disabling-recipes| for common recipes. + +------------------------------------------------------------------------------ + *MiniGit-examples* +# Statusline component ~ + +Tracked buffer data can be used in statusline via `vim.b.minigit_summary_string` +buffer-local variable. It is expected to be used as is. To show another info, +tweak buffer-local variable directly inside `MiniGitUpdated` `User` event: >lua + + -- Use only HEAD name as summary string + local format_summary = function(data) + -- Utilize buffer-local table summary + local summary = vim.b[data.buf].minigit_summary + vim.b[data.buf].minigit_summary_string = summary.head_name or '' + end + + local au_opts = { pattern = 'MiniGitUpdated', callback = format_summary } + vim.api.nvim_create_autocmd('User', au_opts) +< +# Tweaking command output ~ + +Buffer output of |:Git| command can be tweaked inside autocommand for +`MiniGitCommandSplit` `User` event (see |MiniGit-command-events|). +For example, to make `:vertical Git blame -- %` align blame output with the +current window state, use the following code: >lua + + local align_blame = function(au_data) + if au_data.data.git_subcommand ~= 'blame' then return end + + -- Align blame output with source + local win_src = au_data.data.win_source + vim.wo.wrap = false + vim.fn.winrestview({ topline = vim.fn.line('w0', win_src) }) + vim.api.nvim_win_set_cursor(0, { vim.fn.line('.', win_src), 0 }) + + -- Bind both windows so that they scroll together + vim.wo[win_src].scrollbind, vim.wo.scrollbind = true, true + end + + local au_opts = { pattern = 'MiniGitCommandSplit', callback = align_blame } + vim.api.nvim_create_autocmd('User', au_opts) +< +# History navigation ~ + +Function |MiniGit.show_at_cursor()| is specifically exported to make Git +history navigation easier. Here are some different ways it can be used: + +- Call inside buffer for already committed file to show the evolution of + the current line (or visually selected range) through history. + It is essentially a `:Git log HEAD` with proper `-L` flag. + This also works inside output of |MiniGit.show_diff_source()|. + +- Call with cursor on commit hash to inspect that commit in full. + This is usually helpful in the output of `:Git log`. + +- Call with cursor inside diff entry to inspect its file in the state how it + was at certain commit. By default it shows state after commit, unless cursor + is on the "deleted" line (i.e. line starting with "-") in which case + state before commit is shown. + +This workflow can be made more interactive when used with mapping, like this: >lua + + local rhs = 'lua MiniGit.show_at_cursor()' + vim.keymap.set({ 'n', 'x' }, 'gs', rhs, { desc = 'Show at cursor' }) +< +------------------------------------------------------------------------------ + *MiniGit-command* + *:Git* +The `:Git` user command runs `git` CLI call with extra integration for currently +opened Neovim process: +- Command is executed inside repository root of the currently active file + (or |current-directory| if file is not tracked by this module). + +- Command output is shown either in dedicated buffer in window split or as + notification via |vim.notify()|. Which method is used depends on whether + particular Git subcommand is supposed to show data for user to inspect + (like `log`, `status`, etc.) or not (like `commit`, `push`, etc.). This is + determined automatically based on the data Git itself provides. + Split window is made current after command execution. + + Use split-related |command-modifiers| (|:vertical|, |:horizontal|, or |:tab|) + to force output in a particular type of split. Default split direction is + controlled by `command.split` in |MiniGit.config|. + + Use |:silent| command modifier to not show any output. + + Errors and warnings are always shown as notifications. + + See |MiniGit-examples| for the example of tweaking command output. + +- Editor for tasks that require interactive user input (like `:Git commit` or + `:Git rebase --interactive`) is opened inside current session in a separate + split. Make modifications as in regular buffer, |:write| changes followed by + |:close| / |:quit| for Git CLI command to resume. + +Examples of usage: +- `:Git log --oneline` - show compact log of current repository. +- `:vert Git blame -- %` - show latest commits per line in vertical split. +- `:Git help rebase` - show help page for `rebase` subcommand. +- `:Git -C status` - execute `git status` inside |current-directory|. + +There is also a context aware completion which can be invoked with ``: +- If completed word starts with "-", options for the current Git subcommand + are shown. Like completion at `:Git log -` will suggest `-L`, `--oneline`, etc. +- If there is an explicit " -- " to the cursor's left, incremental path + suggestions will be shown. +- If there is no recognized Git subcommand yet, show list of subcommands. + Otherwise for some common subcommands list of its targets will be suggested: + like for `:Git branch` it will be list of branches, etc. + +Notes: +- Paths are always treated as relative to command's execution directory + (file's repository root or |current-directory| if absent). +- Don't use quotes for entries containing space, escape it with `\` directly. + Like `:Git commit -m Hello\ world` and not `:Git commit -m 'Hello world'` + (which treats `'Hello` and `world'` as separate arguments). + + *MiniGit-command-events* +There are several `User` events triggered during command execution: + +- `MiniGitCommandDone` - after command is done executing. For Lua callbacks it + provides a special `data` table with the following fields: + - `(table)` - structured data about executed command. + Has same structure as Lua function input in |nvim_create_user_command()|. + - `(string)` - directory path inside which Git command was executed. + - `` `(number)` - exit code of CLI process. + - `` `(table)` - array with arguments of full executed command. + - `` `(string)` - detected Git subcommand (like "log", etc.). + - `` `(string)` - `stderr` process output. + - `` `(string)` - `stdout` process output. + +- `MiniGitCommandSplit` - after command showed its output in a split. Triggered + after `MiniGitCommandDone` and provides similar `data` table with extra fields: + - `` `(number)` - window identifier of "source" window (current at + the moment before command execution). + - `` `(number)` - window identifier of command output. + +------------------------------------------------------------------------------ + *MiniGit.setup()* + `MiniGit.setup`({config}) +Module setup + +Besides general side effects (see |mini.nvim|), it also: +- Sets up auto enabling in every normal buffer for an actual file on disk. +- Creates |:Git| command. + +Parameters ~ +{config} `(table|nil)` Module config table. See |MiniGit.config|. + +Usage ~ +>lua + require('mini.git').setup() -- use default config + -- OR + require('mini.git').setup({}) -- replace {} with your config table +< +------------------------------------------------------------------------------ + *MiniGit.config* + `MiniGit.config` +Module config + +Default values: +>lua + MiniGit.config = { + -- General CLI execution + job = { + -- Path to Git executable + git_executable = 'git', + + -- Timeout (in ms) for each job before force quit + timeout = 30000, + }, + + -- Options for `:Git` command + command = { + -- Default split direction + split = 'auto', + }, + } +< +# Job ~ + +`config.job` contains options for customizing CLI executions. + +`job.git_executable` defines a full path to Git executable. Default: "git". + +`job.timeout` is a duration (in ms) from job start until it is forced to stop. +Default: 30000. + +# Command ~ + +`config.command` contains options for customizing |:Git| command. + +`command.split` defines default split direction for |:Git| command output. Can be +one of "horizontal", "vertical", "tab", or "auto". Value "auto" uses |:vertical| +if only 'mini.git' buffers are shown in the tabpage and |:tab| otherwise. +Default: "auto". + +------------------------------------------------------------------------------ + *MiniGit.show_at_cursor()* + `MiniGit.show_at_cursor`({opts}) +Show Git related data at cursor + +- If there is a commit-like ||, show it in split with `git show`. +- If possible, show diff source via |MiniGit.show_diff_source()|. +- If possible, show range history via |MiniGit.show_range_history()|. +- Otherwise throw an error. + +Parameters ~ +{opts} `(table|nil)` Options. Possible values: + - `(string)` - split direction. One of "horizontal", "vertical", + "tab", or "auto" (default). Value "auto" uses |:vertical| if only 'mini.git' + buffers are shown in the tabpage and |:tab| otherwise. + - Fields appropriate for forwarding to other functions. + +------------------------------------------------------------------------------ + *MiniGit.show_diff_source()* + `MiniGit.show_diff_source`({opts}) +Show diff source + +When buffer contains text formatted as unified patch (like after +`:Git log --patch`, `:Git diff`, or |MiniGit.show_range_history()|), +show state of the file at the particular state. Target commit/state, path, +and line number are deduced from cursor position. + +Notes: +- Needs |current-directory| to be the Git root for relative paths to work. +- Needs cursor to be inside hunk lines or on "---" / "+++" lines with paths. +- Only basic forms of `:Git diff` output is supported: `:Git diff`, + `:Git diff --cached`, and `:Git diff `. + +Parameters ~ +{opts} `(table|nil)` Options. Possible values: + - `(string)` - split direction. One of "horizontal", "vertical", + "tab", or "auto" (default). Value "auto" uses |:vertical| if only 'mini.git' + buffers are shown in the tabpage and |:tab| otherwise. + - `(string)` - which file state to show. One of "before", "after", + "both" (both states in vertical split), "auto" (default). Value "auto" + shows "before" state if cursor line starts with "-", otherwise - "after". + +------------------------------------------------------------------------------ + *MiniGit.show_range_history()* + `MiniGit.show_range_history`({opts}) +Show range history + +Compute and show in split data about how particular line range in current +buffer evolved through Git history. Essentially a `git log` with `-L` flag. + +Notes: +- Works well with |MiniGit.diff_foldexpr()|. +- Does not work if there are uncommited changes, as there is no easy way to + compute effective range line numbers. + +Parameters ~ +{opts} `(table|nil)` Options. Possible fields: + - `(number)` - range start line. + - `(number)` - range end line. + If both and are not supplied, they default to + current line in Normal mode and visual selection in Visual mode. + - `(table)` - array of options to append to `git log` call. + - `(string)` - split direction. One of "horizontal", "vertical", + "tab", or "auto" (default). Value "auto" uses |:vertical| if only 'mini.git' + buffers are shown in the tabpage and |:tab| otherwise. + +------------------------------------------------------------------------------ + *MiniGit.diff_foldexpr()* + `MiniGit.diff_foldexpr`({lnum}) +Fold expression for Git logs + +Folds contents of hunks, file patches, and log entries in unified diff. +Useful for filetypes "diff" (like after `:Git diff`) and "git" (like after +`:Git log --patch` or `:Git show` for commit). +Works well with |MiniGit.show_range_history()|. + +General idea of folding levels (use |zr| and |zm| to adjust interactively): +- At level 0 there is one line per whole patch or log entry. +- At level 1 there is one line per patched file. +- At level 2 there is one line per hunk. +- At level 3 there is no folds. + +For automated setup, set the following for "git" and "diff" filetypes (either +inside |FileType| autocommand or |ftplugin|): >vim + + setlocal foldmethod=expr foldexpr=v:lua.MiniGit.diff_foldexpr() +< +Parameters ~ +{lnum} `(number|nil)` Line number for which fold level is computed. + Default: |v:lnum|. + +Return ~ +`(number|string)` Line fold level. See |fold-expr|. + +------------------------------------------------------------------------------ + *MiniGit.enable()* + `MiniGit.enable`({buf_id}) +Enable Git tracking in a file buffer + +Tracking is done by reacting to changes in file content or file's repository +in the form of keeping buffer data up to date. The data can be used via: +- |MiniGit.get_buf_data()|. See its help for a list of actually tracked data. +- `vim.b.minigit_summary` (table) and `vim.b.minigit_summary_string` (string) + buffer-local variables which are more suitable for statusline. + `vim.b.minigit_summary_string` contains information about HEAD, file status, + and in progress action (see |MiniGit.get_buf_data()| for more details). + See |MiniGit-examples| for how it can be tweaked and used in statusline. + +Note: this function is called automatically for all new normal buffers. +Use it explicitly if buffer was disabled. + +`User` event `MiniGitUpdated` is triggered whenever tracking data is updated. +Note that not all data listed in |MiniGit.get_buf_data()| can be present (yet) +at the point of event being triggered. + +Parameters ~ +{buf_id} `(number)` Target buffer identifier. Default: 0 for current buffer. + +------------------------------------------------------------------------------ + *MiniGit.disable()* + `MiniGit.disable`({buf_id}) +Disable Git tracking in buffer + +Parameters ~ +{buf_id} `(number)` Target buffer identifier. Default: 0 for current buffer. + +------------------------------------------------------------------------------ + *MiniGit.toggle()* + `MiniGit.toggle`({buf_id}) +Toggle Git tracking in buffer + +Enable if disabled, disable if enabled. + +Parameters ~ +{buf_id} `(number)` Target buffer identifier. Default: 0 for current buffer. + +------------------------------------------------------------------------------ + *MiniGit.get_buf_data()* + `MiniGit.get_buf_data`({buf_id}) +Get buffer data + +Parameters ~ +{buf_id} `(number)` Target buffer identifier. Default: 0 for current buffer. + +Return ~ +`(table|nil)` Table with buffer Git data or `nil` if buffer is not enabled. + If the file is not part of Git repo, table will be empty. + Table has the following fields: + - `(string)` - full path to '.git' directory. + - `(string)` - full path to worktree root. + - `(string)` - full commit of current HEAD. + - `(string)` - short name of current HEAD (like "master"). + For detached HEAD it is "HEAD". + - `(string)` - two character file status as returned by `git status`. + - `(string)` - name of action(s) currently in progress + (bisect, merge, etc.). Can be a combination of those separated by ",". + + + vim:tw=78:ts=8:noet:ft=help:norl: \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/mini.nvim/doc/mini-hipatterns.txt b/config/neovim/store/lazy-plugins/mini.nvim/doc/mini-hipatterns.txt new file mode 100644 index 00000000..3bf0ee9e --- /dev/null +++ b/config/neovim/store/lazy-plugins/mini.nvim/doc/mini-hipatterns.txt @@ -0,0 +1,487 @@ +*mini.hipatterns* Highlight patterns in text +*MiniHipatterns* + +MIT License Copyright (c) 2023 Evgeni Chasnovski + +============================================================================== + +Features: +- Highlight text with configurable patterns and highlight groups (can be + string or callable). + +- Highlighting is updated asynchronously with configurable debounce delay. + +- Function to get matches in a buffer (see |MiniHipatterns.get_matches()|). + +See |MiniHipatterns-examples| for common configuration examples. + +Notes: +- It does not define any highlighters by default. Add to `config.highlighters` + to have a visible effect. + +- Sometimes (especially during frequent buffer updates on same line numbers) + highlighting can be outdated or not applied when it should be. This is due + to asynchronous nature of updates reacting to text changes (via + `on_lines` of |nvim_buf_attach()|). + To make them up to date, use one of the following: + - Scroll window (for example, with |CTRL-E| / |CTRL-Y|). This will ensure + up to date highlighting inside window view. + - Hide and show buffer. + - Execute `:edit` (if you enabled highlighting with |MiniHipatterns.setup()|). + - Manually call |MiniHipatterns.update()|. + +- If you experience flicker when typing near highlighted pattern in Insert + mode, it might be due to `delay` configuration of 'mini.completion' or + using built-in completion. + For better experience with 'mini.completion', make sure that its + `delay.completion` is less than this module's `delay.text_change` (which + it is by default). + The reason for this is (currently unresolvable) limitations of Neovim's + built-in completion implementation. + +# Setup ~ + +Setting up highlights can be done in two ways: +- Manually for every buffer with `require('mini.hipatterns').enable()`. + This will enable highlighting only in one particular buffer until it is + unloaded (which also includes calling `:edit` on current file). + +- Globally with `require('mini.hipatterns').setup({})` (replace `{}` with + your `config` table). This will auto-enable highlighting in "normal" + buffers (see 'buftype'). Use |MiniHipatterns.enable()| to manually enable + in other buffers. + It will also create global Lua table `MiniHipatterns` which you can use + for scripting or manually (with `:lua MiniHipatterns.*`). + +See |MiniHipatterns.config| for `config` structure and default values. + +You can override runtime config settings (like highlighters and delays) +locally to buffer inside `vim.b.minihipatterns_config` which should have +same structure as `MiniHipatterns.config`. +See |mini.nvim-buffer-local-config| for more details. + +# Comparisons ~ + +- 'folke/todo-comments': + - Oriented for "TODO", "NOTE", "FIXME" like patterns, while this module + can work with any Lua patterns and computable highlight groups. + - Has functionality beyond text highlighting (sign placing, + "telescope.nvim" extension, etc.), while this module only focuses on + highlighting text. +- 'folke/paint.nvim': + - Mostly similar to this module, but with slightly less functionality, + such as computed pattern and highlight group, asynchronous delay, etc. +- 'NvChad/nvim-colorizer.lua': + - Oriented for color highlighting, while this module can work with any + Lua patterns and computable highlight groups. + - Has more built-in color spaces to highlight, while this module out of + the box provides only hex color highlighting + (see |MiniHipatterns.gen_highlighter.hex_color()|). Other types are + also possible to implement. +- 'uga-rosa/ccc.nvim': + - Has more than color highlighting functionality, which is compared to + this module in the same way as 'NvChad/nvim-colorizer.lua'. + +# Highlight groups ~ + +* `MiniHipatternsFixme` - suggested group to use for `FIXME`-like patterns. +* `MiniHipatternsHack` - suggested group to use for `HACK`-like patterns. +* `MiniHipatternsTodo` - suggested group to use for `TODO`-like patterns. +* `MiniHipatternsNote` - suggested group to use for `NOTE`-like patterns. + +To change any highlight group, modify it directly with |:highlight|. + +# Disabling ~ + +This module can be disabled in three ways: +- Globally: set `vim.g.minihipatterns_disable` to `true`. +- Locally for buffer permanently: set `vim.b.minihipatterns_disable` to `true`. +- Locally for buffer temporarily (until next auto-enabling event if set up + with |MiniHipatterns.setup()|): call |MiniHipatterns.disable()|. + +Considering high number of different scenarios and customization +intentions, writing exact rules for disabling module's functionality is +left to user. See |mini.nvim-disabling-recipes| for common recipes. + +------------------------------------------------------------------------------ + *MiniHipatterns-examples* +# Common configuration examples ~ + +- Special words used to convey different level of attention: >lua + + require('mini.hipatterns').setup({ + highlighters = { + fixme = { pattern = 'FIXME', group = 'MiniHipatternsFixme' }, + hack = { pattern = 'HACK', group = 'MiniHipatternsHack' }, + todo = { pattern = 'TODO', group = 'MiniHipatternsTodo' }, + note = { pattern = 'NOTE', group = 'MiniHipatternsNote' }, + } + }) +< +- To match only when pattern appears as a standalone word, use frontier + patterns `%f`. For example, instead of `'TODO'` pattern use + `'%f[%w]()TODO()%f[%W]'`. In this case, for example, 'TODOING' or 'MYTODO' + won't match, but 'TODO' and 'TODO:' will. + +- Color hex (like `#rrggbb`) highlighting: >lua + + local hipatterns = require('mini.hipatterns') + hipatterns.setup({ + highlighters = { + hex_color = hipatterns.gen_highlighter.hex_color(), + } + }) +< + You can customize which part of hex color is highlighted by using `style` + field of input options. See |MiniHipatterns.gen_highlighter.hex_color()|. + +- Colored words: >lua + + local words = { red = '#ff0000', green = '#00ff00', blue = '#0000ff' } + local word_color_group = function(_, match) + local hex = words[match] + if hex == nil then return nil end + return MiniHipatterns.compute_hex_color_group(hex, 'bg') + end + + local hipatterns = require('mini.hipatterns') + hipatterns.setup({ + highlighters = { + word_color = { pattern = '%S+', group = word_color_group }, + }, + }) +< +- Trailing whitespace (if don't want to use more specific 'mini.trailspace'): >lua + + { pattern = '%f[%s]%s*$', group = 'Error' } +< +- Censor certain sensitive information: >lua + + local censor_extmark_opts = function(_, match, _) + local mask = string.rep('x', vim.fn.strchars(match)) + return { + virt_text = { { mask, 'Comment' } }, virt_text_pos = 'overlay', + priority = 200, right_gravity = false, + } + end + + require('mini.hipatterns').setup({ + highlighters = { + censor = { + pattern = 'password: ()%S+()', + group = '', + extmark_opts = censor_extmark_opts, + }, + }, + }) +< +- Enable only in certain filetypes. There are at least these ways to do it: + - (Suggested) With `vim.b.minihipatterns_config` in |filetype-plugin|. + Basically, create "after/ftplugin/.lua" file in your config + directory (see |$XDG_CONFIG_HOME|) and define `vim.b.minihipatterns_config` + there with filetype specific highlighters. + + This assumes `require('mini.hipatterns').setup()` call. + + For example, to highlight keywords in EmmyLua comments in Lua files, + create "after/ftplugin/lua.lua" with the following content: >lua + + vim.b.minihipatterns_config = { + highlighters = { + emmylua = { pattern = '^%s*%-%-%-()@%w+()', group = 'Special' } + } + } +< + - Use callable `pattern` with condition. For example: >lua + + require('mini.hipatterns').setup({ + highlighters = { + emmylua = { + pattern = function(buf_id) + if vim.bo[buf_id].filetype ~= 'lua' then return nil end + return '^%s*%-%-%-()@%w+()' + end, + group = 'Special', + }, + }, + }) +< +- Disable only in certain filetypes. Enable with |MiniHipatterns.setup()| + and set `vim.b.minihipatterns_disable` buffer-local variable to `true` for + buffer you want disabled. See |mini.nvim-disabling-recipes| for more examples. + +------------------------------------------------------------------------------ + *MiniHipatterns.setup()* + `MiniHipatterns.setup`({config}) +Module setup + +Parameters ~ +{config} `(table|nil)` Module config table. See |MiniHipatterns.config|. + +Usage ~ +>lua + require('mini.hipatterns').setup({}) -- replace {} with your config table + -- needs `highlighters` field present +< +------------------------------------------------------------------------------ + *MiniHipatterns.config* + `MiniHipatterns.config` +Module config + +Default values: +>lua + MiniHipatterns.config = { + -- Table with highlighters (see |MiniHipatterns.config| for more details). + -- Nothing is defined by default. Add manually for visible effect. + highlighters = {}, + + -- Delays (in ms) defining asynchronous highlighting process + delay = { + -- How much to wait for update after every text change + text_change = 200, + + -- How much to wait for update after window scroll + scroll = 50, + }, + } +< +# Options ~ + +## Highlighters ~ + +`highlighters` table defines which patterns will be highlighted by placing +|extmark| at the match start. It might or might not have explicitly named +fields, but having them is recommended and is required for proper use of +`vim.b.minihipatterns_config` as buffer-local config. By default it is +empty expecting user definition. + +Each entry defines single highlighter as a table with the following fields: +- `(string|function|table)` - Lua pattern to highlight. Can be + either string, callable returning the string, or an array of those. + If string: + - It can have submatch delimited by placing `()` on start and end, NOT + by surrounding with it. Otherwise it will result in error containing + `number expected, got string`. Example: `xx()abcd()xx` will match `abcd` + only if `xx` is placed before and after it. + + If callable: + - It will be called for every enabled buffer with its identifier as input. + + - It can return `nil` meaning this particular highlighter will not work + in this particular buffer. + + If array: + - Each element is matched and highlighted with the same highlight group. + +- `(string|function)` - name of highlight group to use. Can be either + string or callable returning the string. + If callable: + - It will be called for every pattern match with the following arguments: + - `buf_id` - buffer identifier. + - `match` - string pattern match to be highlighted. + - `data` - extra table with information about the match. + It has at least these fields: + - - string with full pattern match. + - - match line number (1-indexed). + - - match starting byte column (1-indexed). + - - match ending byte column (1-indexed, inclusive). + + - It can return `nil` meaning this particular match will not be highlighted. + +- `(table|function|nil)` - optional extra options + for |nvim_buf_set_extmark()|. If callable, will be called in the same way + as callable (`data` will also contain `hl_group` key with + value) and should return a table with all options for extmark (including + `end_row`, `end_col`, `hl_group`, and `priority`). + Note: if is supplied, is ignored. + +- `(number|nil)` - SOFT DEPRECATED in favor + of `extmark_opts = { priority = }`. + Optional highlighting priority (as in |nvim_buf_set_extmark()|). + Default: 200. See also |vim.highlight.priorities|. + +See "Common use cases" section for the examples. + +## Delay ~ + +`delay` is a table defining delays in milliseconds used for asynchronous +highlighting process. + +`delay.text_change` is used to delay highlighting updates by accumulating +them (in debounce fashion). Smaller values will lead to faster response but +more frequent updates. Bigger - slower response but less frequent updates. + +`delay.scroll` is used to delay updating highlights in current window view +during scrolling (see |WinScrolled| event). These updates are present to +ensure up to date highlighting after scroll. + +------------------------------------------------------------------------------ + *MiniHipatterns.enable()* + `MiniHipatterns.enable`({buf_id}, {config}) +Enable highlighting in buffer + +Notes: +- With default config it will highlight nothing, as there are no default + highlighters. + +- Buffer highlighting is enabled until buffer is unloaded from memory + or |MiniHipatterns.disable()| on this buffer is called. + +- `:edit` disables this, as it is mostly equivalent to closing and opening + buffer. In order for highlighting to persist after `:edit`, call + |MiniHipatterns.setup()|. + +Parameters ~ +{buf_id} `(number|nil)` Buffer identifier in which to enable highlighting. + Default: 0 for current buffer. +{config} `(table|nil)` Optional buffer-local config. Should have the same + structure as |MiniHipatterns.config|. Values will be taken in this order: + - From this `config` argument (if supplied). + - From buffer-local config in `vim.b.minihipatterns_config` (if present). + - From global config (if |MiniHipatterns.setup()| was called). + - From default values. + +------------------------------------------------------------------------------ + *MiniHipatterns.disable()* + `MiniHipatterns.disable`({buf_id}) +Disable highlighting in buffer + +Note that if |MiniHipatterns.setup()| was called, the effect is present +until the next auto-enabling event. To permanently disable highlighting in +buffer, set `vim.b.minihipatterns_disable` to `true` + +Parameters ~ +{buf_id} `(number|nil)` Buffer identifier in which to enable highlighting. + Default: 0 for current buffer. + +------------------------------------------------------------------------------ + *MiniHipatterns.toggle()* + `MiniHipatterns.toggle`({buf_id}, {config}) +Toggle highlighting in buffer + +Call |MiniHipatterns.disable()| if enabled; |MiniHipatterns.enable()| otherwise. + +Parameters ~ +{buf_id} `(number|nil)` Buffer identifier in which to enable highlighting. + Default: 0 for current buffer. +{config} `(table|nil)` Forwarded to |MiniHipatterns.enable()|. + +------------------------------------------------------------------------------ + *MiniHipatterns.update()* + `MiniHipatterns.update`({buf_id}, {from_line}, {to_line}) +Update highlighting in range + +Works only in buffer with enabled highlighting. Effect takes immediately +without delay. + +Parameters ~ +{buf_id} `(number|nil)` Buffer identifier in which to enable highlighting. + Default: 0 for current buffer. +{from_line} `(number|nil)` Start line from which to update (1-indexed). +{to_line} `(number|nil)` End line from which to update (1-indexed, inclusive). + +------------------------------------------------------------------------------ + *MiniHipatterns.get_enabled_buffers()* + `MiniHipatterns.get_enabled_buffers`() +Get an array of enabled buffers + +Return ~ +`(table)` Array of buffer identifiers with enabled highlighting. + +------------------------------------------------------------------------------ + *MiniHipatterns.get_matches()* + `MiniHipatterns.get_matches`({buf_id}, {highlighters}) +Get buffer matches + +Parameters ~ +{buf_id} `(number|nil)` Buffer identifier for which to return matches. + Default: `nil` for current buffer. +{highlighters} `(table|nil)` Array of highlighter identifiers (as in + `highlighters` field of |MiniHipatterns.config|) for which to return matches. + Default: all available highlighters (ordered by string representation). + +Return ~ +`(table)` Array of buffer matches which are tables with following fields: + - `(number)` - buffer identifier of a match. + - `(any)` - highlighter identifier which produced the match. + - `(number)` - line number of the match start (starts with 1). + - `(number)` - column number of the match start (starts with 1). + - `(number|nil)` - line number of the match end (starts with 1). + - `(number|nil)` - column number next to the match end + (implements end-exclusive region; starts with 1). + - `(string|nil)` - name of match's highlight group. + + Matches are ordered first by supplied `highlighters`, then by line and + column of match start. + +------------------------------------------------------------------------------ + *MiniHipatterns.gen_highlighter* + `MiniHipatterns.gen_highlighter` +Generate builtin highlighters + +This is a table with function elements. Call to actually get highlighter. + +------------------------------------------------------------------------------ + *MiniHipatterns.gen_highlighter.hex_color()* + `MiniHipatterns.gen_highlighter.hex_color`({opts}) +Highlight hex color string + +This will match color hex string in format `#rrggbb` and highlight it +according to `opts.style` displaying matched color. + +Highlight group is computed using |MiniHipatterns.compute_hex_color_group()|, +so all its usage notes apply here. + +Parameters ~ +{opts} `(table|nil)` Options. Possible fields: + - + + + + +
+

+ This is an Example
link
with
line
break. +

+
+
+

Goodbye.

+
+ + diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/htmldjango/regular.html b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/htmldjango/regular.html new file mode 100644 index 00000000..1002f63c --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/htmldjango/regular.html @@ -0,0 +1,28 @@ +{# This is a comment #} + +{% extends 'some/other/template.html' %} +{% load some_lib %} + + +{% block content %} +
    + {% for user in users %} +
  • + {{ user.name }} + {% if user == current_user %} + (you) + {% endif %} +
  • + {% endfor %} +
+ +
+

Some title

+

+ This is some dummy template for testing. +

+
+
+{% endblock %} + +{# vim: set ft=htmldjango: #} diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/janet_simple/regular.janet b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/janet_simple/regular.janet new file mode 100644 index 00000000..8d3fb615 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/janet_simple/regular.janet @@ -0,0 +1,251 @@ +@(:ant :bee + :cat :dog + :elephant :fox + :giraffe :heron + :iguana :janet) + +@["Archimedes" "Bohm" + "Cantor" "Deming" + "Erdos" "Feynman" + "Gauss" "Houdini" + "Ishikawa" "Janet"] + +{"Ada" + {:file-extensions [".adb" ".ads"] + :people ["Jean Ichbiah"] + :year 1983} + + "Bash" + {:file-extensions [".sh"] + :people ["Brian Fox" + "Chet Ramey"] + :year 1989} + + "C" + {:file-extensions [".c" ".h"] + :people ["Dennis Ritchie"] + :year 1972} + + "Dart" + {:file-extensions [".dart"] + :people ["Lars Bak" + "Kasper Lund"] + :year 2011} + + "Emacs Lisp" + {:file-extensions [".el" ".elc" ".eln"] + :people ["Richard Stallman" + "Guy L. Steele, Jr."] + :year 1985} + + "Forth" + {:file-extensions [".fs" ".fth" ".4th" ".f" ".forth"] + :people ["Charles H. Moore"] + :year 1970} + + "Go" + {:file-extensions [".go"] + :people ["Robert Griesemer" + "Rob Pike" + "Ken Thompson"] + :year 2009} + + "Haskell" + {:file-extensions [".hs" ".lhs"] + :people ["Lennart Augustsson" + "Dave Barton" + "Brian Boutel" + "Warren Burton" + "Joseph Fasel" + "Kevin Hammond" + "Ralf Hinze" + "Paul Hudak" + "John Hughes" + "Thomas Johnsson" + "Mark Jones" + "Simon Peyton Jones" + "John Launchbury" + "Erik Meijer" + "John Peterson" + "Alastair Reid" + "Colin Runciman" + "Philip Wadler"] + :year 1990} + + "Idris" + {:file-extensions [".idr" ".lidr"] + :people ["Edwin Brady"] + :year 2007} + + "Janet" + {:file-extensions [".cgen" ".janet" ".jdn"] + :people ["Calvin Rose"] + :year 2017}} + +~@{:main + (some :input) + # + :input + (choice :non-form + :form) + # + :non-form + (choice :whitespace + :comment) + # + :whitespace + (choice (some (set " \0\f\t\v")) + (choice "\r\n" + "\r" + "\n")) + # + :comment + (sequence "#" + (any (if-not (set "\r\n") 1))) + # + :form + (choice :reader-macro + :collection + :literal) + # + :reader-macro + (choice :fn + :quasiquote + :quote + :splice + :unquote) + # + :fn + (sequence "|" + (any :non-form) + :form) + # + :quasiquote + (sequence "~" + (any :non-form) + :form) + # + :quote + (sequence "'" + (any :non-form) + :form) + # + :splice + (sequence ";" + (any :non-form) + :form) + # + :unquote + (sequence "," + (any :non-form) + :form) + # + :literal + (choice :number + :constant + :buffer + :string + :long-buffer + :long-string + :keyword + :symbol) + # + :collection + (choice :array + :bracket-array + :tuple + :bracket-tuple + :table + :struct) + # + :number + (drop (cmt + (capture (some :name-char)) + ,scan-number)) + # + :name-char + (choice (range "09" "AZ" "az" "\x80\xFF") + (set "!$%&*+-./:@^_")) + # + :constant + (sequence (choice "false" "nil" "true") + (not :name-char)) + # + :buffer + (sequence "@\"" + (any (choice :escape + (if-not "\"" 1))) + "\"") + # + :escape + (sequence "\\" + (choice (set `"'0?\abefnrtvz`) + (sequence "x" [2 :h]) + (sequence "u" [4 :h]) + (sequence "U" [6 :h]) + (error (constant "bad escape")))) + # + :string + (sequence "\"" + (any (choice :escape + (if-not "\"" 1))) + "\"") + # + :long-string :long-bytes + # + :long-bytes + {:main (drop (sequence :open + (any (if-not :close 1)) + :close)) + :open (capture :delim :n) + :delim (some "`") + :close (cmt (sequence (not (look -1 "`")) + (backref :n) + (capture (backmatch :n))) + ,=)} + # + :long-buffer + (sequence "@" + :long-bytes) + # + :keyword + (sequence ":" + (any :name-char)) + # + :symbol (some :name-char) + # + :array + (sequence "@(" + (any :input) + (choice ")" + (error (constant "missing )")))) + # + :tuple + (sequence "(" + (any :input) + (choice ")" + (error (constant "missing )")))) + # + :bracket-array + (sequence "@[" + (any :input) + (choice "]" + (error (constant "missing ]")))) + # + :bracket-tuple + (sequence "[" + (any :input) + (choice "]" + (error (constant "missing ]")))) + :table + (sequence "@{" + (any :input) + (choice "}" + (error (constant "missing }")))) + # + :struct + (sequence "{" + (any :input) + (choice "}" + (error (constant "missing }")))) + } diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/java/HelloWorld.java b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/java/HelloWorld.java new file mode 100644 index 00000000..076f9d24 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/java/HelloWorld.java @@ -0,0 +1,66 @@ +@Author(name = "John Doe") +public class HelloWorld { + // Constructor body + public HelloWorld() { + } + + // Method with formal parameters + public static void main(String[] args) { + System.out.println("Hello, world!"); + System.out.println(args[0]); + } + + public static void printList(List>> l) { + // Array initializer + String[] names = {"Alice", "Bob", "Carol", "Dan"}; + // Multi-dimensional dimensions and a dimensions expression + Integer[][] inputArrays = new Integer[3][]; + + // Enhanced for statement (for-each) + for (var name: names) { + var msg = String.format("Hello, %s.", name); + System.out.println(msg); + } + + // Regular for-statement + for (var i = 0; i < 3; ++i) { + System.out.print(i); + } + + // Parentheses around condition + if (false) { + System.err.println("This will never print"); + } + + // Parentheses around catch clause + try { + // A parenthesized expression + System.out.print(((3/0))); + } catch(ArithmeticException e) { + System.err.print(e); + } + + + // Nested bodies + for (var item1: l) { + for (var item2: item1) { + for (var item3: item2) { + System.out.format("%d", item3) + } + } + } + + // Try resource specification + try (FileWriter fw = new FileWriter("test"); + BufferedWriter bw = new BufferedWriter(fw)) { + bw.close(); + } catch (IOException e) { + System.out.println(e); + } + + double d = 13.37; + int i = (int) d; // cast expression + } +} + +// vim:noexpandtab diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/java/LambdaTest.java b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/java/LambdaTest.java new file mode 100644 index 00000000..8dda82b2 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/java/LambdaTest.java @@ -0,0 +1,9 @@ +class LambdaTest { + void singleton() { + version -> create; + // Inferred parameters + (record, b) -> record + b; + } +} + +// vim:noexpandtab diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/javascript/regular.js b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/javascript/regular.js new file mode 100644 index 00000000..3ab85acc --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/javascript/regular.js @@ -0,0 +1,67 @@ +// Named imports +import { useState } from 'react' + +// Template strings +const who = 'world'; +console.log(`Hello, ${who}`); + +// Function with nested function +function add(x, y) { + function iter(i, acc) { + if (i == 0) { + return acc; + } + return iter(i - 1, acc + 1); + } + return iter(y, x) +} + +// Loops +function iterate() { + for (let i = 0; i <= 2; i++) { + break; + } + + let list = [] + for (let element of list) { + console.log(element); + } +} + +// Arrow function definition +const multiply = (x, y) => x * y; + +// Nested object and array +let some_object = { + a: { + b: { + c: {}, + }, + d: [[1, 2, 3]] + } +}; + +// object pattern +const destructuredFunction = ({ value }) => { + return {} +} + +// Subscript expressions +const zeroes = [0]; +console.log(zeroes[zeroes[zeroes[0]]]) + +// Destructuring assignment +const [x, y] = array; + +// Parenthesized expressions +console.log(1 + (2 + (3 + 4))) + +let a = 1 + +switch(a) { + case 1: + break; +} + +// export clause +export { zeroes } diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/json/regular.json b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/json/regular.json new file mode 100644 index 00000000..893326ed --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/json/regular.json @@ -0,0 +1,10 @@ +{ + "foo": "bar", + "bar": { + "baz": [ + [ + [] + ] + ] + } +} diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/json5/regular.json5 b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/json5/regular.json5 new file mode 100644 index 00000000..4f5ebdb6 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/json5/regular.json5 @@ -0,0 +1,13 @@ +{ + // comments + unquoted: 'and you can quote me on that', + singleQuotes: 'I can use "double quotes" here', + lineBreaks: "Look, Mom! +No \\n's!", + hexadecimal: 0xdecaf, + object: {a: {b: {c: {}}}}, + leadingDecimalPoint: .8675309, andTrailing: 8675309., + positiveSign: +1, + trailingComma: 'in objects', andIn: [[['arrays',]]], + "backwardsCompatible": "with JSON", +} diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/jsonc/regular.jsonc b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/jsonc/regular.jsonc new file mode 100644 index 00000000..f66d3f0f --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/jsonc/regular.jsonc @@ -0,0 +1,13 @@ +// This is a comment +{ + "foo": "bar", + /* This is a multi-line comment + */ + "bar": { + "baz": [ + [ + [] + ] + ] + } +} diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/jsonnet/arithmetic.jsonnet b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/jsonnet/arithmetic.jsonnet new file mode 100644 index 00000000..3130fe28 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/jsonnet/arithmetic.jsonnet @@ -0,0 +1,34 @@ +{ + concat_array: [1, 2, 3] + [4], + concat_string: '123' + 4, + equality1: 1 == '1', + equality2: [{}, { x: 3 - 1 }] + == [{}, { x: 2 }], + ex1: 1 + 2 * 3 / (4 + 5), + // Bitwise operations first cast to int. + ex2: self.ex1 | 3, + // Modulo operator. + ex3: self.ex1 % 2, + // Boolean logic + ex4: (4 > 3) && (1 <= 3) || false, + // Mixing objects together + obj: { a: 1, b: 2 } + { b: 3, c: 4 }, + // Test if a field is in an object + obj_member: 'foo' in { foo: 1 }, + // String formatting + str1: 'The value of self.ex2 is ' + + self.ex2 + '.', + str2: 'The value of self.ex2 is %g.' + % self.ex2, + str3: 'ex1=%0.2f, ex2=%0.2f' + % [self.ex1, self.ex2], + // By passing self, we allow ex1 and ex2 to + // be extracted internally. + str4: 'ex1=%(ex1)0.2f, ex2=%(ex2)0.2f' + % self, + // Do textual templating of entire files: + str5: ||| + ex1=%(ex1)0.2f + ex2=%(ex2)0.2f + ||| % self, +} diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/jsonnet/cocktail-comprehensions.jsonnet b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/jsonnet/cocktail-comprehensions.jsonnet new file mode 100644 index 00000000..6be13dc1 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/jsonnet/cocktail-comprehensions.jsonnet @@ -0,0 +1,31 @@ +{ + cocktails: { + "Bee's Knees": { + // Construct the ingredients by using + // 4/3 oz of each element in the given + // list. + ingredients: [ // Array comprehension. + { kind: kind, qty: 4 / 3 } + for kind in [ + 'Honey Syrup', + 'Lemon Juice', + 'Farmers Gin', + ] + ], + garnish: 'Lemon Twist', + served: 'Straight Up', + }, + } + { // Object comprehension. + [sd.name + 'Screwdriver']: { + ingredients: [ + { kind: 'Vodka', qty: 1.5 }, + { kind: sd.fruit, qty: 3 }, + ], + served: 'On The Rocks', + } + for sd in [ + { name: 'Yellow ', fruit: 'Lemonade' }, + { name: '', fruit: 'Orange Juice' }, + ] + }, +} diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/jsonnet/computed-fields.jsonnet b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/jsonnet/computed-fields.jsonnet new file mode 100644 index 00000000..197da375 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/jsonnet/computed-fields.jsonnet @@ -0,0 +1,12 @@ +local Margarita(salted) = { + ingredients: [ + { kind: 'Tequila Blanco', qty: 2 }, + { kind: 'Lime', qty: 1 }, + { kind: 'Cointreau', qty: 1 }, + ], + [if salted then 'garnish']: 'Salt', +}; +{ + Margarita: Margarita(true), + 'Margarita Unsalted': Margarita(false), +} diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/jsonnet/function.jsonnet b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/jsonnet/function.jsonnet new file mode 100644 index 00000000..fb89f226 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/jsonnet/function.jsonnet @@ -0,0 +1,44 @@ +// Define a local function. +// Default arguments are like Python: +local my_function(x, y=10) = x + y; + +// Define a local multiline function. +local multiline_function(x) = + // One can nest locals. + local temp = x * 2; + // Every local ends with a semi-colon. + [temp, temp + 1]; + +local object = { + // A method + my_method(x): x * x, +}; + +{ + // Functions are first class citizens. + call_inline_function: + (function(x) x * x)(5), + + call_multiline_function: multiline_function(4), + + // Using the variable fetches the function, + // the parens call the function. + call: my_function(2), + + // Like python, parameters can be named at + // call time. + named_params: my_function(x=2), + // This allows changing their order + named_params2: my_function(y=3, x=2), + + // object.my_method returns the function, + // which is then called like any other. + call_method1: object.my_method(3), + + standard_lib: + std.join(' ', std.split('foo/bar', '/')), + len: [ + std.length('hello'), + std.length([1, 2, 3]), + ], +} diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/jsx/regular.jsx b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/jsx/regular.jsx new file mode 100644 index 00000000..99ff730d --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/jsx/regular.jsx @@ -0,0 +1,46 @@ +// Template strings +const who = 'world'; +console.log(`Hello, ${who}`); + +// Nested object +let some_object = { + a: { + b: { + c: {}, + } + } +}; + +// Subscript expressions +const zeroes = [0]; +console.log(zeroes[zeroes[zeroes[0]]]) + +// Parenthesized expressions +console.log(1 + (2 + (3 + 4))) + +function hello() { + console.log('Hello, world!'); +} + +function app() { + const [x, y] = array; + + return ( +
+

+ This is an Example link. +

+

+ This is an Example
link
with
line
break. +

+ + {someFunction().map((x) =>
)} +
+ + {someFunction().map((x) =>
)} +
+ + +
+ ) +} diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/julia/regular.jl b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/julia/regular.jl new file mode 100644 index 00000000..28b0b12b --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/julia/regular.jl @@ -0,0 +1,9 @@ +a = Vector{Int}([1, 2, 3, 4, 5, 6]); +A = [ + 28 32 + 11 70 +]; + +f(x) = abs((x-4)*(x+2)) +b = [f(x) for x ∈ A] +x = (1, 2) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/kotlin/Test.kt b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/kotlin/Test.kt new file mode 100644 index 00000000..c8754d10 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/kotlin/Test.kt @@ -0,0 +1,113 @@ +// Define a simple class with a primary constructor +class Person(private val name: String, private val age: Int, private val t: T) { + // Secondary constructor + constructor(name: String) : this(name, 0) + + class Hello { + class Goodbye { + } + } + + init { + println("New person created with name $name") + } + + // Member function + fun greet() { + println("Hello, my name is $name and I am $age years old.") + } +} + +// Extension function +fun String.exclaim() = "$this!" + +// Top-level function +fun calculateFactorial(n: Int): Int { + return if (n == 1) n else n * calculateFactorial(n - 1) +} + +// Main function - entry point of the program +fun main() { + val person = Person>("Alice", 30, emptyMap()) + person.greet() + + // Using the extension function + println("Wow".exclaim()) + + // Conditional + val number = 5 + if (number % 2 == 0) { + println("$number is even") + } else { + println("$number is odd") + } + + // Loop + for (i in 1..5) { + println("Factorial of $i is: ${calculateFactorial(i)}") + } + + // Using a map + val map = mapOf("a" to 1, "b" to 2, "c" to 3) + for ((key, value) in map) { + println("Key: $key, Value: $value") + } + + // Lambda expression + val numbers = listOf(1, 2, 3, 4, 5) + val doubled = numbers.map { it * 2 } + println("Doubled numbers: $doubled") +} + +val list = listOf(1, 2, 3) +list.forEach { item -> + println(item) +} + +fun operateOnNumbers(a: Int, b: Int, operation: (Int, Int) -> Int): Int { + return operation(a, b) +} + +val sum = operateOnNumbers(2, 3) { x, y -> x + y } +println("Sum: $sum") + + +val multiply = fun(x: Int, y: Int): Int { + return x * y +} + +println("Product: ${multiply(2, 3)}") + +val x = 2 +when (x) { + 1 -> println("x == 1") + 2 -> println("x == 2") + else -> println("x is neither 1 nor 2") +} + +when { + 1 == 1 -> print("1") + else -> print("not") +} + + +val rows = 2 +val cols = 3 +val matrix = Array(rows) { IntArray(cols) } + +// Fill the array +for (i in matrix.indices) { + for (j in matrix[i].indices) { + matrix[i][j] = i + j + } + matrix[matrix[i][i]] +} + +// Print the 2D array +for (row in matrix) { + for (col in row) { + print("$col ") + } + println() +} + diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/latex/regular.tex b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/latex/regular.tex new file mode 100644 index 00000000..426c7bdc --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/latex/regular.tex @@ -0,0 +1,31 @@ +\documentclass{article} % Starts an article +\usepackage{amsmath} % Imports amsmath + +\title{\LaTeX} % Title + +\begin{document} % Begins a document + \maketitle + \LaTeX{} is a document preparation system for + the \TeX{} typesetting program. It offers + programmable desktop publishing features and + extensive facilities for automating most + aspects of typesetting and desktop publishing, + including numbering and cross-referencing, + tables and figures, page layout, + bibliographies, and much more. \LaTeX{} was + originally written in 1984 by Leslie Lamport + and has become the dominant method for using + \TeX; few people write in plain \TeX{} anymore. + The current version is \LaTeXe. + + % This is a comment, not shown in final output. + % The following shows typesetting power of LaTeX: + \begin{align} + E_0 &= mc^2 \\ + E &= \frac{mc^2}{\sqrt{1-\frac{v^2}{c^2}}} + \end{align} + + This is testing {nesting {of {text} with a reference\ref{section:some_sec}}}. +\end{document} + +% vim:ft=latex diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/lua/regular.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/lua/regular.lua new file mode 100644 index 00000000..ac363c39 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/lua/regular.lua @@ -0,0 +1,66 @@ +-- This is a comment + +local function f1(a, b) + local function f2(a2, b2) + return a2, b2 + end + return f2(a, b) +end + +function GlobalFunction() + print 'This is a global function' +end + +if true then + print 'True condition' +elseif false then + print 'Alternative condition' +elseif false then + print 'Alternative condition' +else + print 'Alternative' +end + +while false do + print 'A while-loop' +end + +repeat + print 'This will repeat only once' +until true + +do + print 'A block' +end + +for i, v in ipairs({'a', 'b', 'c'}) do + print(string.format("%d = %s", i, v)) +end + +for i = 1, 5, 1 do + print(string.format("Number %d", i)) +end + +print(f1('a', 'b')) +print((((('Hello, world!'))))) + +print { + { + { + 'Hello, world!' + } + } +} + +local one = {1} + +print(one[one[one[1]]]) + +-- Embedded Vim script +vim.cmd [[ + echo a(b(c(d(e(f()))))) +]] + +local tbl = { + ["highlight me"] = {} +} diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/luadoc/regular.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/luadoc/regular.lua new file mode 100644 index 00000000..f9344771 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/luadoc/regular.lua @@ -0,0 +1,30 @@ +---@type fun(x: (fun(): integer), y: fun(z: fun())) + +---@type { key1: { key2: { [string]: table }, [integer]: integer } } + +---@type table>> + +---@class test +---@field a boolean +---@field b (((boolean))) +---@field x number | string | { key: number | string | boolean } | boolean +---@field [string] boolean + +---@type string[] +local _str_tbl = { 'a', 'b', 'c' } + +---@param f fun(i: integer): (integer, integer) +---@return integer, integer +local function _test_fun(f) + return f(1) +end + +-- Note: The parser nests union types, which can mess +-- with rainbow-delimiters highlighting, so we don't +-- highlight the '|' here: +---@type number | integer[] | string | number[] | string[] | boolean | boolean[] +local _x = 1 +---@type boolean[] | integer[] +local _t = { true, false } or { 0, 1 } +---@type (boolean | integer)[] +local _arr = { true, 0 } diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/make/makefile b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/make/makefile new file mode 100644 index 00000000..73487eca --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/make/makefile @@ -0,0 +1,23 @@ +.PHONY: all + +all: herp derp + +herp: a.txt + # Command substitution + echo $(basedir $(pwd)) + + # Variable expansion + echo ${FOO${BAR${BAZ}}} + + # Test expression (using the `test` command) + if [ -d "herp/derp/" ]; then + echo "Yay" + fi + + # Test expression (bashism) + if [[ -d "herp/derp/" ]]; then + echo "Yay" + fi + + # Sub-shells + (true; false; (true; true; (false; true))) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/markdown/extra.md b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/markdown/extra.md new file mode 100644 index 00000000..d28b0576 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/markdown/extra.md @@ -0,0 +1,9 @@ +Some markdown. +```markdown +~~~lua +print({{{{}}}}) +print({{{{}}}}) +vim.cmd[[echo str([])]] +~~~ +``` +More markdown diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/markdown/regular.md b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/markdown/regular.md new file mode 100644 index 00000000..0963363c --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/markdown/regular.md @@ -0,0 +1,72 @@ +# A Markdown example + +## Some nonsense text +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor +incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis +nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. +Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu +fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in +culpa qui officia deserunt mollit anim id est laborum. + +## Injected languages + +Here we test highlighting of an injected + + +### Lua + +Lua is a good candidate + +```lua +-- This is a comment + +local function f1(a, b) + local function f2(a2, b2) + return a2, b2 + end + return f2(a, b) +end + +print(f1('a', 'b')) +print((((('Hello, world!'))))) + +print { + { + { + 'Hello, wold!' + } + } +} + +local one = {1} + +print(one[one[one[1]]]) + +-- Embedded Vim script +vim.cmd [[ + echo a(b(c(d(e(f()))))) +]] +-- Embedded Vim script on one line +vim.cmd[[echo a(b(c(d())))]] +``` + +### Vim script + +Let's try another embedded language + +```vim +let g:my_list = [[[1]]] +let g:my_dict = { + \'a': { + \'b': { + \'c': {}, + \} + \} +\ } + +echo string(1 + (2 + (3 + 4))) +echo string(-(3)) +echo string((5)-(3)) +echo string((1) ? (2) : (3)) +echo ((('Hello, world!'))) +```` diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/nim/regular.nim b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/nim/regular.nim new file mode 100644 index 00000000..226ab487 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/nim/regular.nim @@ -0,0 +1,26 @@ +# parameter_declaration_list and generic_parameter_list +proc p[T: seq[int]](a: seq[seq[int]]): int = + result = 1 + +let + # array + a = [[[1], [1]], [[1], [1]]] + # tuple and tuple_deconstruct_declaration + (((q), (_)), ((p), (_))) = (((1, ), (1, )), ((1, ), (1, ))) + # set + c = {'a'} + # table + d = {1: {1: {: }, 2: {: }}, 2: {1: {: }, 2: {: }}} + # parenthesized + e = ((( + discard; + discard; + 1))) + # call and bracket_expression + f = p[seq[int]](@[@[p[seq[int]](@[@[1]])]]) + +# cast and field_declaration_list +cast[tuple[a: seq[int], ]](p[seq[int]](@[@[1]])) + +# term_rewriting_pattern and curly_expression +template t{(0|1|2){x}}(x: untyped): untyped = x + 1 diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/nix/regular.nix b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/nix/regular.nix new file mode 100644 index 00000000..4ba44150 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/nix/regular.nix @@ -0,0 +1,56 @@ +{ + description = "Test flake for rainbow-delimiters.nvim"; + + inputs = { + nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; + + pre-commit-hooks = { + url = "github:cachix/pre-commit-hooks.nix"; + }; + + flake-utils.url = "github:numtide/flake-utils"; + }; + + outputs = { + self, + nixpkgs, + flake-utils, + pre-commit-hooks, + ... + }: let + supportedSystems = [ + "x86_64-linux" + ]; + in + flake-utils.lib.eachSystem supportedSystems (system: let + inherit (nixpkgs) lib; + pkgs = nixpkgs.legacyPackages.${system}; + + formatting = pre-commit-hooks.lib.${system}.run { + src = lib.cleanSource self; + hooks = { + alejandra.enable = true; + markdownlint.enable = true; + }; + settings = { + markdownlint.config = { + MD004 = false; + }; + }; + }; + in { + apps = rec { + hi = with pkgs; flake-utils.lib.mkApp { + drv = writeShellScriptBin "hi" '' + echo "Hello, world" + ''; + }; + default = hi; + }; + packages = { + }; + checks = { + inherit formatting; + }; + }); +} diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/perl/regular.pl b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/perl/regular.pl new file mode 100644 index 00000000..b6da9cd8 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/perl/regular.pl @@ -0,0 +1,47 @@ +#!/usr/bin/perl +use v5.20; +use feature qw(signatures); +no warnings qw(experimental::signatures); + +sub foobar($foo, $bar) { + my %h = ( + foo => +{ foo => 'bar' }, + ($foo ? ( + bar => hoge(foo => $bar)->id, + ) : ()), + ); + say $h{foo}{foo}; + my $h_ref = \%h; + say $h_ref->{foo}{foo}; +} + +sub barfoo { + my ($foo, $bar) = @_; + say $_[0]; + foobar([ $foo, $bar ]); + my ($ary) = ([ ($foo, $bar) ]); + $ary = [ $foo, $bar ]; + my $result = ($foo ? $bar : $foo); + { + say @$ary[0]; + say @{$ary}[0]; + say $ary->[1]; + } + if ($foo) { + # TODO: tree-sitter-perl cannot detect string interpolation yet. + # say "${foo} $bar"; + } + my $sub = sub { + say $foo; + }; + map { +{} } @ary; + qw(a b c d e); + qr(a b c d e); + qx(a b c d e); + qq(a b c d e); + q(a b c d e); + m(a b c d e); + s(a b c)(d e); + tr(a b c)(d e); + y(a b c)(d e); +} diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/php/regular.php b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/php/regular.php new file mode 100644 index 00000000..cbb9c87f --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/php/regular.php @@ -0,0 +1,32 @@ +innerValue; + } + +} diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/python/regular.py b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/python/regular.py new file mode 100644 index 00000000..d371384f --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/python/regular.py @@ -0,0 +1,49 @@ +# NOTE: When updating this file update the Starlark test file as well if +# applicable. + +from typing import ( + Dict, + List, +) + + +def sum_list(lst: List[Dict[int, int]]) -> int: + result = 0 + for inner in lst: + for i in inner: + result += i + return result + + +my_list = [[['Hello, world!']]] +my_dict = {'x': {'x': {'x': 'Hello, wold!'}}} +my_set = {{{{'Hello, wold!'}}}} +my_tuple = (((('Hello, wold!'),),),) + +list_comp = [i for i in [j for j in range(5)] if i % 2 == 0] +dict_comp = {k: v for k, v in {k: v for k, v in {'k': 'v'}.items()} + if k == 'k'} +set_comp = {i for i in {j for j in range(5)} if i % 2 == 0} +gen_comp = (i for i in (j for j in range(5)) if i % 2 == 0) + +match my_dict: + case {'x': {'x': {'x': message}}}: + print(message) + case [[[message]]]: + print(message) + case (((message))): + print(message) + +zero = [0] + +(a,b) = (1,2) +[c,d] = [3,4] + +print(zero[zero[zero[0]]]) + + +print(2 + ((((3))))) +print(len(my_list)) + +# Format-string with embedded delimiters +print(f'The sum of 2 and 3 is {2 + (1 + 2)}') diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/query/regular.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/query/regular.scm new file mode 100644 index 00000000..7d37c044 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/query/regular.scm @@ -0,0 +1,7 @@ +(foo (bar (baz)) @bar) @foo + +[foo [bar [baz]] @bar] @foo + +(foo [bar (baz)] @bar) @foo + +;;; vim:ft=query diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/r/regular.r b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/r/regular.r new file mode 100644 index 00000000..993d8a26 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/r/regular.r @@ -0,0 +1,35 @@ +# call +suppressWarnings(library(datasets)) + +# outer subset, inner subset2 +mtcars[mtcars[[1, 2]], ] + +# if ladder, inner brace_list +var <- 10 +if (var > 5) { + print(paste(var, "is greater than 5")) + if (var < 10) { + print(paste(var, "is less than 10")) + } +} + +foobar <- function(num) { + for (i in 1:5) { + print(i) + } + + while (TRUE) { + break + } + + x <- "a" + v <- switch(x, "a"="apple", "b"="banana", "c"="cherry") + + if (num > 0) { + return("Positive") + } else if (num < 0) { + return("Negative") + } else { + return("Zero") + } +} diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/racket/regular.rkt b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/racket/regular.rkt new file mode 100644 index 00000000..446f941c --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/racket/regular.rkt @@ -0,0 +1,56 @@ +#lang racket + +(define [add x y] + "A silly way to add two numbers recursively." + (if (zero? y) + x + (add (add1 x) + (sub1 x)))) + +(define-syntax foo +  (syntax-rules () +    ((_ a ...) +     (printf "~a\n" (list a ...))))) + +{+ 2 {+ 3 {+ 4 5}}} + +'(((a . b))) +'((((a b . c)))) + +'[[[a . b]]] +'[[[a b . c]]] + +'{{{a . b}}} +' +'([{a . b}]) +'([{a b . c}]) + +;;; Vector literals +#(#(#(a))) +#[#[#[a]]] +#{#{#{a}}} + + +;;; Inexact number vector literals +#fl(#fl(#fl(a))) +#fl[#fl[#fl[a]]] +#fl{#fl{#fl{a}}} + +#Fl(#Fl(#Fl(a))) +#Fl[#Fl[#Fl[a]]] +#Fl{#Fl{#Fl{a}}} + + +;;; Fixnum vector literals +#fx(#fx(#fx(a))) +#fx[#fx[#fx[a]]] +#fx{#fx{#fx{a}}} + +#Fx(#Fx(#Fx(a))) +#Fx[#Fx[#Fx[a]]] +#Fx{#Fx{#Fx{a}}} + + +;;; Structures +(struct prefab-point (x y) #:prefab) +'#s(prefab-point 1 2) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/rasi/regular.rasi b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/rasi/regular.rasi new file mode 100644 index 00000000..eb5631eb --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/rasi/regular.rasi @@ -0,0 +1,23 @@ +// Ref: https://github.com/davatorium/rofi/blob/next/doc/rofi-theme.5.markdown + +* { + background-image: url("a.jpg", width); + background-color: env(ROFI_BACKGROUND_COLOR, transparent); + text-color: rgba(256, 256, 256, 0.9); + text-color-2: var(text-color, hsl(20, 1, 1)); + text-color-3: hwb(20, 1, 10); + text-color-4: cmyk(20, 15, 10, 5); + width: 1024px +} + +@media (monitor-id: ${ROFI_MAIN_MONITOR}) { + width: calc(120% * 1024px); +} + +mainbox { + background-image: linear-gradient(to bottom, darkgreen/50%, black/70%); + children: [inputbar, listview]; +} + + +// vim:ft=rasi diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/regex/regular.txt b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/regex/regular.txt new file mode 100644 index 00000000..8fd7ce32 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/regex/regular.txt @@ -0,0 +1,9 @@ +a(b(c(d))) +a(b(c(d)?)) +a(b(c[def])) +a(b(c[^def])) +a(b(c{1})) +a(b(c{1,4})) +a(b(c(?=d))) + + vim:ft=regex diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/rst/regular.rst b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/rst/regular.rst new file mode 100644 index 00000000..ecf2b5e8 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/rst/regular.rst @@ -0,0 +1,74 @@ +.. default-role:: code + +############################ + A reStructuredText example +############################ + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor +incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis +nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. +Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu +fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in +culpa qui officia deserunt mollit anim id est laborum. + + +Injected languages +################## + +Here we test highlighting of an injected + + +Lua +=== + +Lua is a good candidate + +.. code:: lua + + -- This is a comment + + local function f1(a, b) + local function f2(a2, b2) + return a2, b2 + end + return f2(a, b) + end + + print(f1('a', 'b')) + print((((('Hello, world!'))))) + + print { + { + { + 'Hello, world!' + } + } + } + + local one = {1} + + print(one[one[one[1]]]) + + -- Embedded Vim script + vim.cmd [[ + echo a(b(c(d(e(f()))))) + ]] + +Let's try another embedded language + +.. code:: vim + + let g:my_list = [[[1]]] + let g:my_dict = { + \'a': { + \'b': { + \'c': {}, + \} + \} + \ } + + echo string(1 + (2 + (3 + 4))) + echo string(-(3)) + echo string((5)-(3)) + echo string((1) ? (2) : (3)) + echo ((('Hello, world!'))) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/ruby/regular.rb b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/ruby/regular.rb new file mode 100644 index 00000000..810b3099 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/ruby/regular.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +an_array = [[['Hello', 'world!']]] # rubocop:disable Lint/UselessAssignment +a_hash = { 'x' => { 'x' => { 'x' => 'Hello, world!' } } } # rubocop:disable Lint/UselessAssignment + +def greeting(name, age) + age_in_seconds = (((((age * 365))) * 24) * 60) * 60 + + puts "Hello, #{name}! You are #{age} years old, which is #{age_in_seconds} in seconds!" +end + +puts greeting('Fry', 25) + +[[1], [2], [3]].each { |nums| nums.each { |num| puts num } } diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/rust/regular.rs b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/rust/regular.rs new file mode 100644 index 00000000..4ee29cfe --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/rust/regular.rs @@ -0,0 +1,173 @@ +#![crate_type = "lib"] +struct NestedStruct { + value: u32, + inner: Inner, +} + +struct Inner { + value: u32, +} + +extern "C" { + fn extern_block(); +} + +union TestUnion { + val_1: f32, + val_2: u32, +} + +#[derive(Default, Debug)] +struct TupleStruct(u32); + +#[cfg_attr(all(target_os = "linux", feature = "multithreaded"), derive(Default))] +enum EnumTest { + TupleVariant(u32), + TupleVariantTupleStruct(TupleStruct), + StructVariant { value: u32 }, + NestedStructVariant { inner: Inner }, +} + +fn test_type_param() -> usize { + std::mem::size_of::() +} + +fn test_param(a: u32, b: u32) -> u32 { + a * b +} + +fn tuple_param(a: (u32, u32)) -> u32 { + let (a, b) = a; + + a * a +} + +macro_rules! inefficient_vec { + ( $( $x:expr ),* ) => { + { + let mut temp_vec = Vec::new(); + $( + temp_vec.push($x); + )* + temp_vec + } + }; +} + +pub(crate) struct VisibilityModifier; + + +pub const NAMES: &'static [(&'static str, u32)] = &[ + ("TEST NAME 1", 1), + ("TEST NAME 2", 2), +]; + +fn main() { + let nested_vec: Vec>>>>> = Vec::<_>::new(); + let arr_arr_arr = [[[0; 4]; 4]; 4]; + let constructed_struct = Inner { value: 0 }; + + let nested_constructed = NestedStruct { + value: 0, + inner: Inner { value: 0 }, + }; + + let tuple_struct = TupleStruct(0); + let nested_tuple = ( + ((1, 2, 3, 4), (5, 6, 7, 8)), + ((9, 10, 11, 12), (13, 14, 15, 16)), + ); + + let enums = vec![ + EnumTest::TupleVariant(0), + EnumTest::TupleVariantTupleStruct(TupleStruct(0)), + EnumTest::StructVariant { value: 0 }, + EnumTest::NestedStructVariant { + inner: Inner { value: 0 }, + }, + ]; + + let closure = |long_parameter_name: u8, + long_parameter_name_two: u8, + very_long_parameter_name: u8, + extra_long_name: u8| { + let nested_closure = || {}; + nested_closure(); + }; + + let async_block = async { 0 }; + + let labelled_block = 'a: { 0 }; + + let boolean_expr = (((3 * 4) + 5) > 1 || false) && (true || true); + + let num = 5; + + let match_expr = match num { + _ => match boolean_expr { + _ => {} + }, + }; + + let fancy_match_expr = match enums[0] { + EnumTest::TupleVariant(v) => {} + EnumTest::TupleVariantTupleStruct(TupleStruct(v)) => {} + EnumTest::StructVariant { value } => {} + EnumTest::NestedStructVariant { + inner: Inner { value }, + } => {} + }; + + let array = [1, 2, 3, 4]; + + let array_match = match array { + [a, b, c, d] => {} + }; + + let nested_macro = vec![vec![vec![vec![vec![0]]]]]; + + test_param(3, 4); + + let test_tuple: (u32, u32) = (0, 1); + tuple_param(test_tuple); + + let a = >::from(1u8); +} + +use level_1::{ + level_2::{ + level_3::{ + level_4::{ + level_5::{A, B}, + C, D, + }, + E, F, + }, + G, H, + }, + I, J, +}; + +mod level_1 { + pub mod level_2 { + pub mod level_3 { + pub mod level_4 { + pub mod level_5 { + pub struct A; + pub struct B; + } + pub struct C; + pub struct D; + } + + pub struct E; + pub struct F; + } + + pub struct G; + pub struct H; + } + + pub struct I; + pub struct J; +} diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/scheme/regular.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/scheme/regular.scm new file mode 100644 index 00000000..09390a08 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/scheme/regular.scm @@ -0,0 +1,22 @@ +(define (add x y) + "A silly way to add two numbers recursively." + (if (zero? y) + x + (add (add1 x) + (sub1 y)))) + +;; R6RS allows square brackets as well +(define [mult x y] + "A silly way of multiplying to numbers recursively" + (if [= 1 y] + x + (add (add x x) + (sub1 y)))) + +(define-syntax foo +  (syntax-rules () +    ((_ a ...) +     (printf "~a\n" (list a ...))))) + +'(((a . b))) +'((((a b . c)))) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/scss/regular.scss b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/scss/regular.scss new file mode 100644 index 00000000..44c13efd --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/scss/regular.scss @@ -0,0 +1,19 @@ +@mixin admon($fg, $sign, $title) { + border-top: 2.25rem solid $fg; + background: color-mix(in srgb, $fg 50%, var(--color-bg)); + + &::before { + position: absolute; + content: $sign; + top: 0.4rem; + left: 0.75rem; + } + + &::after { + position: absolute; + content: $title; + font-weight: bold; + top: 0.5rem; + left: 2.25rem; + } +} diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/sql/regular.sql b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/sql/regular.sql new file mode 100644 index 00000000..8812dd78 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/sql/regular.sql @@ -0,0 +1,34 @@ +SELECT (1 + (2 + (3 + (4 + (5 + (6 + (7 + (8 + ((9) + (0)))))))))); + +SELECT + (1 + ((2)((())) - 3)) AS "expression", + (()) AS "list", + -- ((((())))) AS "list" -- this will cause problems with the highlighting! + "users"."id" AS "user_id", + SUM("orders"."sum_prices") AS "user_orders_amount" +FROM "users" +JOIN ( + SELECT + "orders"."id", + "orders"."user_id", + SUM("orders"."amount") AS "sum_prices" + FROM "orders" + GROUP BY + "orders"."id", + "orders"."user_id" +) AS "orders" ON "orders"."user_id" = "users"."id" +WHERE "users"."age" = (2 + (3 * 4)) AND (4 - (5 * 0)) = (1 * (2 + 2 + (5))) + AND "users"."id" IN (1, 2, 3, 4) +GROUP BY + "users"."id"; + +SELECT * +FROM products +where ( + Product_Category = 'Fit' + AND Product_number IN (1234, 1235, 1236, 1237, 1238) +) +or + (Product_Category IN ('Tight', 'Wide') AND Product_number = 1324); + +SELECT 10 FROM generate_series(1, 10) WHERE (TRUE); diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/starlark/regular.star b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/starlark/regular.star new file mode 100644 index 00000000..1f004c3c --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/starlark/regular.star @@ -0,0 +1,43 @@ +# This is mostly identical to Python, without the generator comprehension +# NOTE: if you update queries for Python, please consider adding the changes +# to this file as well + +def sum_list(lst: List[Dict[int, int]]) -> int: + result = 0 + for inner in lst: + for i in inner: + result += i + return result + + +my_list = [[['Hello, world!']]] +my_dict = {'x': {'x': {'x': 'Hello, wold!'}}} +my_set = {{{{'Hello, wold!'}}}} +my_tuple = (((('Hello, wold!'),),),) +(a,b) = (1,2) + +list_comp = [i for i in [j for j in range(5)] if i % 2 == 0] +dict_comp = {k: v for k, v in {k: v for k, v in {'k': 'v'}.items()} + if k == 'k'} +set_comp = {i for i in {j for j in range(5)} if i % 2 == 0} +gen_comp = (i for i in (j for j in range(5)) if i % 2 == 0) + +match my_dict: + case {'x': {'x': {'x': message}}}: + print(message) + case [[[message]]]: + print(message) + case (((message))): + print(message) + + +zero = [0] + +(a,b) = (1,2) +[c,d] = [3,4] + +print(zero[zero[zero[0]]]) + + +print(2 + ((((3))))) +print(len(my_list)) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/svelte/regular.svelte b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/svelte/regular.svelte new file mode 100644 index 00000000..044a408f --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/svelte/regular.svelte @@ -0,0 +1,31 @@ + + + + + + Test page + + + +

A test page for Svelte

+ +
+

This is a paragraph

+
+
    + {#each ["foo", "bar", "baz"] as x} +
  • { x }
  • + {/each} +
+ {# if True} +

Some text

+ {/if} +
diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/systemverilog/regular.sv b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/systemverilog/regular.sv new file mode 100644 index 00000000..54fbb354 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/systemverilog/regular.sv @@ -0,0 +1,140 @@ +// Comment +`timescale 1ns/1ns +`default_nettype none +`include "filename.svh" + +typedef enum { + A, + B, + C +} Enum_t; + +module test #( + parameter int PARAM = 1 +) ( + input logic[15:0] a, + input logic[15:0] b, + + output logic[15:0] c +); + logic[15:0][8:0] packed_data; + logic[8:0] to_be_casted; + + divu #( + .WIDTH(24), + .FBITS(15) + ) divider ( + .clk(i_clk), + .rst(div_rst_actual), + .start(div_start), + .valid(o_avg_rdy), + .done(), + .dbz(), + .ovf(), + .busy(div_busy), + .a(div_dividend), + .b(div_divisor), + .val(div_result_q15_9) + ); + + always_comb begin + if (a > b) begin + c = 15'd1; + end else if ((a == b) || (a == c)) begin + c = 15'd2; + to_be_casted = 32'(c); + + if (c == 15'd2) begin + c = 15'd3; + packed_data[2][3] = 8'd4; + end + end + end + + always_ff @(posedge a) begin + c <= ((a + b) + b); + end +endmodule + +// This module implements an unsigned fixed point divider. +// Source: https://projectf.io/posts/division-in-verilog/ +module divu #( + parameter WIDTH=32, // width of numbers in bits (integer and fractional) + parameter FBITS=16 // fractional bits within WIDTH + ) ( + input wire logic clk, // clock + input wire logic rst, // reset + input wire logic start, // start calculation + output logic busy, // calculation in progress + output logic done, // calculation is complete (high for one tick) + output logic valid, // result is valid + output logic dbz, // divide by zero + output logic ovf, // overflow + input wire logic [WIDTH-1:0] a, // dividend (numerator) + input wire logic [WIDTH-1:0] b, // divisor (denominator) + output logic [WIDTH-1:0] val // result value: quotient + ); + + localparam FBITSW = (FBITS == 0) ? 1 : FBITS; // avoid negative vector width when FBITS=0 + + logic [WIDTH-1:0] b1; // copy of divisor + logic [WIDTH-1:0] quo, quo_next; // intermediate quotient + logic [WIDTH:0] acc, acc_next; // accumulator (1 bit wider) + + localparam ITER = WIDTH + FBITS; // iteration count: unsigned input width + fractional bits + logic [$clog2(ITER)-1:0] i; // iteration counter + + // division algorithm iteration + always_comb begin + if (acc >= {1'b0, b1}) begin + acc_next = acc - b1; + {acc_next, quo_next} = {acc_next[WIDTH-1:0], quo, 1'b1}; + end else begin + {acc_next, quo_next} = {acc, quo} << 1; + end + end + + // calculation control + always_ff @(posedge clk) begin + done <= 0; + if (start) begin + valid <= 0; + ovf <= 0; + i <= 0; + if (b == 0) begin // catch divide by zero + busy <= 0; + done <= 1; + dbz <= 1; + end else begin + busy <= 1; + dbz <= 0; + b1 <= b; + {acc, quo} <= {{WIDTH{1'b0}}, a, 1'b0}; // initialize calculation + end + end else if (busy) begin + if (i == ITER-1) begin // done + busy <= 0; + done <= 1; + valid <= 1; + val <= quo_next; + end else if (i == WIDTH-1 && quo_next[WIDTH-1:WIDTH-FBITSW] != 0) begin // overflow? + busy <= 0; + done <= 1; + ovf <= 1; + val <= 0; + end else begin // next iteration + i <= i + 1; + acc <= acc_next; + quo <= quo_next; + end + end + if (rst) begin + busy <= 0; + done <= 0; + valid <= 0; + dbz <= 0; + ovf <= 0; + val <= 0; + end + end +endmodule diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/teal/regular.tl b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/teal/regular.tl new file mode 100644 index 00000000..dea3a4d6 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/teal/regular.tl @@ -0,0 +1,62 @@ +-- This is a comment + +local function add(x: integer, y: integer): integer + if y == 0 then + return x + end + return add((x + (1)), (y - (1))) +end + +if true then + print 'True condition' +elseif false then + print 'Alternative condition' +elseif false then + print 'Alternative condition' +else + print 'Alternative' +end + +while false do + print 'A while-loop' +end + +repeat + print 'This will repeat only once' +until true + +do + print 'A block' +end + +for i, v in ipairs({'a', 'b', 'c'}) do + print(string.format("%d = %s", i, v)) +end + +for i = 1, 5, 1 do + print(string.format("Number %d", i)) +end + +print(f1('a', 'b')) +print((((('Hello, world!'))))) + +print { + { + { + 'Hello, world!' + } + } +} + +local one = {1} + +print(one[one[one[1]]]) + +-- Embedded Vim script +vim.cmd [[ + echo a(b(c(d(e(f()))))) +]] + +local tbl = { + ["highlight me"] = {} +} diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/templ/regular.templ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/templ/regular.templ new file mode 100644 index 00000000..597c57f2 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/templ/regular.templ @@ -0,0 +1,86 @@ +package main + +import "fmt" +import "time" + +templ headerTemplate(name string) { +
+ switch name { + case "Alice", "Bob": +

{ name }

+ default: +

{ "Unknown" }

+ } + + +
+} + +templ footerTemplate() { +
+
© { fmt.Sprintf("%d", time.Now().Year()) }
+
+} + +templ layout(name string) { + + { name } + + @headerTemplate(name) + @navTemplate() +
+ { children... } +

+ Hello
world! +

+
+ + @footerTemplate() + +} + +templ navTemplate() { +
+} + +templ posts(posts []Post) { + @layout("Posts") { + @postsTemplate(posts) + if len(posts) > 0 { +
{ "Not empty" }
+ } else { +
{ "Empty" }
+ } + } +} + +templ postsTemplate(posts []Post) { +
+ for _, p := range posts { +
+
{ p.Name }
+
{ p.Author }
+
+ } +
+} + +script withParameters(a string, b string, c int) { + console.log(a, b, c); +} + +css red() { + background-color: #ff0000; + font-family: "Iosevka"; +} + +// vim:ft=templ diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/terraform/basic.tf b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/terraform/basic.tf new file mode 100644 index 00000000..bef06343 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/terraform/basic.tf @@ -0,0 +1,72 @@ +terraform { + required_providers { + provider1 = { + source = "provider1" + version = "0.1.3" + } + } +} + +data "terraform_remote_state" "test_remotestate" { + backend = "test" + + config = { + storage_account_name = "abc" + container_name = "terraform-state" + key = "prod.terraform.tfstate" + } +} + +resource "provider_role_grants" "admins_role_grants" { + provider = provider.security_admin + role_name = provider_role.admins_role.name + users = [provider_user.user1.name] + roles = [provider_role.role2.name] +} + +resource "provider_grant" "usage_grants" { + for_each = toset(["USAGE", "TEST"]) + privilege = each.key + roles = [provider_role.role2.name] +} + +resource "example" "binary_expressions" { + cond1 = (0*1) ? 1 : "foobar" + bin1 = ((!(1)+2)%3)*4 +} + +resource "example" "for_expressions" { + for1 = { for i, v in ["a", "a", "b"] : v => i... } + for2 = [ for k, v in x : "${k}-${v}" ] +} + +variable "timestamp" { + type = string + + validation { + # formatdate fails if the second argument is not a valid timestamp + condition = can(formatdate("", var.timestamp)) + error_message = "Hello, %{ if var.name != "" }${var.name}%{ else }unnamed%{ endif }!" + } +} + +block { + sample = <<-EOT + %{ for ip in aws_instance.example[*].private_ip } + server ${ip} + %{ endfor } + EOT +} + +resource "terraform_data" "cluster" { + # Replacement of any instance of the cluster requires re-provisioning + triggers_replace = aws_instance.cluster.[*].id + + # Bootstrap script can run on any instance of the cluster + # So we just choose the first in this case + connection { + host = aws_instance.cluster.[0].public_ip + } +} + +# vim:ft=hcl diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/toml/regular.toml b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/toml/regular.toml new file mode 100644 index 00000000..033b16cd --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/toml/regular.toml @@ -0,0 +1,20 @@ +[table] +[table.sub] +people.names = [ "John", "Joe" ] + +inline-table = { x = 0.1, y = 2 } + +array-of-table = [ + { name = "Alice", level = 2 }, + { name = "Bob", level = 1 }, +] + +[[array-of-table2]] +z = 3 + +[[array-of-table2.t]] +desc = "Index 1" + +[[array-of-table2]] +z = 30 +t.desc = "Index 2" diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/tsx/regular.tsx b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/tsx/regular.tsx new file mode 100644 index 00000000..e0bc15f0 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/tsx/regular.tsx @@ -0,0 +1,79 @@ +// Function with nested function +function add(x: number, y: number): number { + function iter(i: number, acc: number) { + if (i == 0) { + return acc; + } + return iter(i - 1, acc + 1); + } + return iter(y, x) +} + +// Function with generic type parameter +function id(x: T): T { + return x; +} + +// Class with members +class Person { + private name: string; + private age: number; + private salary: number; + + constructor(name: string, age: number, salary: number) { + this.name = name; + this.age = age; + this.salary = salary; + } + + toString(): string { + return `${this.name} (${this.age}) (${this.salary})`; // As of version 1.4 + } +} + +// Template strings +const who = 'world'; +console.log(`Hello, ${who}`); + +// Nested object +let some_object = { + a: { + b: { + c: {}, + } + } +}; + +// Subscript expressions +const zeroes = [0]; +console.log(zeroes[zeroes[zeroes[0]]]) + +// Parenthesized expressions +console.log(1 + (2 + (3 + (4 + (5 + 6))))) + + +function hello() { + console.log('Hello, world!'); +} + +function app() { + return ( +
+

+ This is an Example link. +

+

+ This is an Example
link
with
line
break. +

+ + + {someFunction().map((x) =>
)} +
+ + {someFunction().map((x) =>
)} +
+ + +
+ ) +} diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/typescript/regular.d.ts b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/typescript/regular.d.ts new file mode 100644 index 00000000..dba267f3 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/typescript/regular.d.ts @@ -0,0 +1,5 @@ +// Declarations +declare namespace arithmetics { + add(x: number, y: number): number; +} + diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/typescript/regular.ts b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/typescript/regular.ts new file mode 100644 index 00000000..c1f27095 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/typescript/regular.ts @@ -0,0 +1,71 @@ +// Function with nested function +function add(x: number, y: number): number { + function iter(i: number, acc: number) { + if (i == 0) { + return accu; + } + return iter(i - 1, acc + 1); + } + return iter(y, x) +} + +// Function with generic type parameter +function id(x: T): T { + return x; +} + +// Class with members +class Person { + private name: string; + private age: number; + private salary: number; + + constructor(name: string, age: number, salary: number) { + this.name = name; + this.age = age; + this.salary = salary; + } + + toString(): string { + return `${this.name} (${this.age}) (${this.salary})`; // As of version 1.4 + } + + async method(): Promise>> { + return [] + } +} + +interface Request { + body: RequestProp['body']; +} + +enum A { + Foo = "Bar", +} + +// Template strings +const who = 'world'; +console.log(`Hello, ${who}`); + +// Nested object +let some_object = { + a: { + b: { + c: {}, + } + } +}; + +// Subscript expressions +const zeroes = [0]; +console.log(zeroes[zeroes[zeroes[0]]]) + +let a = 1 + +switch(a) { + case 1: + break; +} + +// Parenthesized expressions +console.log(1 + (2 + (3 + (4 + (5 + 6))))) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/typst/regular.typ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/typst/regular.typ new file mode 100644 index 00000000..f080e390 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/typst/regular.typ @@ -0,0 +1,29 @@ +#let template(doc) = { + set page(paper: "a4", margin: (x: 2cm, y: 3cm)) + set heading(numbering: "1.1") + set par(justify: true, leading: 0.55em) + + show heading: it => { + set block(above: 1.6em, below: 1em) + it + } + + doc +} + +#show: template + += Typst + +Typst is a markup language for typesetting documents. It is designed to be an +alternative to LaTeX and other document processing tools. + +This is a #[nested section #[of text with #[multiple layers of nesting.]]] + +Maths can either be typeset inline: $A = pi r^2$; or as a separate block: +$ frac(a^(2x), (5x + (3))) $ + +We can also put #[maths inside other content blocks: $V = 4/3 (pi r^3)$]. + + +// vim:ft=typst diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/verilog/regular.v b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/verilog/regular.v new file mode 100644 index 00000000..bc956ecc --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/verilog/regular.v @@ -0,0 +1,52 @@ +// Comment +`timescale 1ns/1ns +`default_nettype none +`include "filename.vh" + +module test #( + parameter PARAM = 1 +) ( + input reg[15:0] a, + input reg[15:0] b, + + output reg[15:0] c +); + logic[15:0][8:0] packed_data; + + always @* begin + if (a > b) begin + c = 15'd1; + end else if ((a == b) || (a == c)) begin + c = 15'd2; + + if (c == 15'd2) begin + c = 15'd3; + packed_data[2][3] = 8'd4; + end + end + end +endmodule + +module test2 #( + parameter PARAM = 1 +) ( + input reg[15:0] a, + input reg[15:0] b, + + output reg[15:0] c +); + logic[15:0][8:0] packed_data; + + always @* begin + if (a > b) begin + c = 15'd1; + end else if ((a == b) || (a == c)) begin + c = 15'd2; + + if (c == 15'd2) begin + c = 15'd3; + packed_data[2][3] = 8'd4; + end + end + end +endmodule diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/vim/regular.vim b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/vim/regular.vim new file mode 100644 index 00000000..d50e3e31 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/vim/regular.vim @@ -0,0 +1,14 @@ +let g:my_list = [[[1]]] +let g:my_dict = { + \'a': { + \'b': { + \'c': {}, + \} + \} +\ } + +echo string(1 + (2 + (3 + 4))) +echo string(-(3)) +echo string((5)-(3)) +echo string((1) ? (2) : (3)) +echo ((('Hello, world!'))) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/vue/pug-template.vue b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/vue/pug-template.vue new file mode 100644 index 00000000..5e731d29 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/vue/pug-template.vue @@ -0,0 +1,10 @@ + + + diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/vue/regular.vue b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/vue/regular.vue new file mode 100644 index 00000000..8d06c940 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/vue/regular.vue @@ -0,0 +1,39 @@ + + + + + + + diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/vue/scss-style.vue b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/vue/scss-style.vue new file mode 100644 index 00000000..d0d8cfd1 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/vue/scss-style.vue @@ -0,0 +1,18 @@ + + + diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/vue/typescript-script.vue b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/vue/typescript-script.vue new file mode 100644 index 00000000..6906d9a8 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/vue/typescript-script.vue @@ -0,0 +1,14 @@ + + + diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/wgsl/regular.wgsl b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/wgsl/regular.wgsl new file mode 100644 index 00000000..49f7a9cb --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/wgsl/regular.wgsl @@ -0,0 +1,57 @@ +@group(0) +@binding(0) +var array_1: array; + +@group(0) +@binding(1) +var array_2: array, 256>; + +@group(1) +@binding(0) +var array_3: array, 100>; + +struct MyStruct { + x: f32, + y: f32, + i: u32, + j: u32, +} + +fn next_bit_string_same_hamming_weight(bit_string: u32) -> u32 { + let t = bit_string | (bit_string - 1u); // bit_string with least significant 0 set to 1 + let tmp = (~t & (0u - ~t)) - 1u; + return (t+1) | (tmp >> (countTrailingZeros(bit_string) + 1u)); +} + +fn function_with_loop(a: u32, b_ptr: ptr) { + var bits = a; + loop { + if (bits & 3u) == 0u { + return; + } else { + bits = bits - 1u; + *b_ptr += 1u; + } + } +} + +@compute +@workgroup_size(32) +fn main( + @builtin(global_invocation_id) global_id: vec3, +) { + let start = 10 * global_id.x; + + if (global_id.x >= 10) { return; } + var a = array_1[global_id.x]; + + let end = start + 10; + + for (var id = start; id < end; id += 1u) { + if (id >= 100) { return; } + + var b = array_3[id].x; + + array_3[id].y = a + b; + } +} diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/xml/regular.xml b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/xml/regular.xml new file mode 100644 index 00000000..f907a900 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/xml/regular.xml @@ -0,0 +1,24 @@ + + + + + Example of MathML embedded in an XHTML file + + + +

Example of MathML embedded in an XHTML file

+

+ The area of a circle is + + π + + + r + 2 + + + . +

+ + diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/yaml/regular.yaml b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/yaml/regular.yaml new file mode 100644 index 00000000..e4ef650e --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/yaml/regular.yaml @@ -0,0 +1,25 @@ +json_compatibility: + { + "foo": "bar", + "bar": { + "baz": [ + [ + [[['Hello, world!']]] + ] + ] + }, + "key": { + "key": { + "key": { + "key": { + "key": "value" + } + } + } + } + } + +list_of_objects: + - { key1: value, key2: value, key3: value } + - { key1: value, key2: value, key3: value } # A comment + - { key1: { key2: { key3: value, key4: value, key5: value } } } # Nested map diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/zig/regular.zig b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/zig/regular.zig new file mode 100644 index 00000000..361ba54b --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/samples/zig/regular.zig @@ -0,0 +1,86 @@ +const std = @import("std"); + +const Void = struct {}; + +const MyBool = enum { + my_true, + my_false, +}; + +const SomeUnion = union(enum) { + top: u0, + kek: u1, +}; + +comptime { + const a: anyerror!SomeUnion = SomeUnion{.top = 0}; + + const b = switch (a catch |err| err) { + SomeUnion.top => |val| val, + SomeUnion.kek => |val| val, + else => undefined, + }; + + _ = b; +} + +pub fn main() !void { + const some_type: type = *[][:8][*][*:.{ .mqu = false }]u123; + _ = some_type; + + const stoqn = [_]u8{ 'k', 'o', 'l', 'e', 'v' }; + + std.debug.print("My last {s} is {s} and it's first letter is {s}\n", .{ "name", stoqn, [_]u8{ stoqn[0] } }); + + // stdout is for the actual output of your application, for example if you + // are implementing gzip, then only the compressed bytes should be sent to + // stdout, not any debugging messages. + const stdout_file = blk: { + break :blk std.io.getStdOut().writer(); + }; + var bw = std.io.bufferedWriter(stdout_file); + const stdout = bw.writer(); + + switch (6) { + 5 => undefined, + _ => { + try stdout.print("Run `zig build test` to run the tests.\n", .{}); + }, + } + + if (false) { + const k = undefined; + const a = undefined; + { + asm volatile ("" + : [_] "=r,m" (k) + : [_] "r,m" (a) + : "" + ); + } + } else if (true) { + for ("proba", 0..) |c, i| { + _ = c; + _ = i; + } + } else { + while (false) { + // ... + } + } + + try bw.flush(); // don't forget to flush! +} + +const truth linksection("lambda") = "calculus"; + +fn foo(a: *opaque {}) callconv(.C) void { + _ = a; +} + +test "simple test" { + var list = std.ArrayList(i32).init(std.testing.allocator); + defer list.deinit(); // try commenting this out and see if zig detects the memory leak! + try list.append(42); + try std.testing.expectEqual(@as(i32, 42), list.pop()); +} diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/astro/rainbow-delimiters/regular.astro.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/astro/rainbow-delimiters/regular.astro.lua new file mode 100644 index 00000000..2b765d1d --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/astro/rainbow-delimiters/regular.astro.lua @@ -0,0 +1,4 @@ +return { + astro = {}, + typescript = {} +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/awk/rainbow-delimiters/regular.awk.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/awk/rainbow-delimiters/regular.awk.lua new file mode 100644 index 00000000..87452447 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/awk/rainbow-delimiters/regular.awk.lua @@ -0,0 +1,340 @@ +return { + awk = { { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterRed", + start_col = 6, + start_row = 0 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 2 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterRed", + start_col = 22, + start_row = 4 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterYellow", + start_col = 7, + start_row = 6 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterBlue", + start_col = 12, + start_row = 6 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterOrange", + start_col = 17, + start_row = 6 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterOrange", + start_col = 23, + start_row = 6 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterBlue", + start_col = 24, + start_row = 6 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterYellow", + start_col = 25, + start_row = 6 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterYellow", + start_col = 10, + start_row = 7 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterBlue", + start_col = 14, + start_row = 7 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterOrange", + start_col = 18, + start_row = 7 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterGreen", + start_col = 23, + start_row = 7 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterGreen", + start_col = 28, + start_row = 7 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterOrange", + start_col = 29, + start_row = 7 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterBlue", + start_col = 30, + start_row = 7 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterYellow", + start_col = 31, + start_row = 7 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterYellow", + start_col = 10, + start_row = 8 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterBlue", + start_col = 14, + start_row = 8 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterOrange", + start_col = 18, + start_row = 8 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterGreen", + start_col = 23, + start_row = 8 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterGreen", + start_col = 28, + start_row = 8 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterOrange", + start_col = 29, + start_row = 8 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterBlue", + start_col = 30, + start_row = 8 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterYellow", + start_col = 31, + start_row = 8 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 9 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterYellow", + start_col = 10, + start_row = 9 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 9 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterBlue", + start_col = 5, + start_row = 10 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterBlue", + start_col = 11, + start_row = 10 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 10 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterOrange", + start_col = 6, + start_row = 11 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterOrange", + start_col = 12, + start_row = 11 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterOrange", + start_col = 14, + start_row = 11 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterOrange", + start_col = 3, + start_row = 13 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 14 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 15 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterYellow", + start_col = 7, + start_row = 17 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterYellow", + start_col = 13, + start_row = 17 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterYellow", + start_col = 15, + start_row = 17 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterBlue", + start_col = 5, + start_row = 18 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterOrange", + start_col = 7, + start_row = 19 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterOrange", + start_col = 25, + start_row = 19 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterOrange", + start_col = 27, + start_row = 19 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterOrange", + start_col = 3, + start_row = 21 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterOrange", + start_col = 7, + start_row = 22 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterOrange", + start_col = 20, + start_row = 22 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterOrange", + start_col = 22, + start_row = 22 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterOrange", + start_col = 3, + start_row = 24 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 25 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 26 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterYellow", + start_col = 8, + start_row = 28 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterYellow", + start_col = 13, + start_row = 28 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterYellow", + start_col = 15, + start_row = 28 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 37 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 38 + } }, + regex = {} +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/bash/rainbow-delimiters/regular.sh.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/bash/rainbow-delimiters/regular.sh.lua new file mode 100644 index 00000000..a4629621 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/bash/rainbow-delimiters/regular.sh.lua @@ -0,0 +1,207 @@ +return { + bash = { { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterRed", + start_col = 5, + start_row = 3 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterYellow", + start_col = 15, + start_row = 3 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterYellow", + start_col = 20, + start_row = 3 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterRed", + start_col = 21, + start_row = 3 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterRed", + start_col = 5, + start_row = 6 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 10, + start_row = 6 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 6 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 17, + start_row = 6 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterBlue", + start_col = 19, + start_row = 6 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterBlue", + start_col = 24, + start_row = 6 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterYellow", + start_col = 25, + start_row = 6 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterRed", + start_col = 26, + start_row = 6 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterRed", + start_col = 3, + start_row = 9 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterRed", + start_col = 21, + start_row = 9 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterRed", + start_col = 3, + start_row = 14 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterRed", + start_col = 22, + start_row = 14 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 19 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterYellow", + start_col = 14, + start_row = 19 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterBlue", + start_col = 27, + start_row = 19 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterBlue", + start_col = 39, + start_row = 19 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterYellow", + start_col = 40, + start_row = 19 + }, { + end_col = 42, + end_row = 42, + hl_group = "RainbowDelimiterRed", + start_col = 41, + start_row = 19 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterRed", + start_col = 6, + start_row = 21 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterRed", + start_col = 7, + start_row = 21 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterRed", + start_col = 9, + start_row = 21 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterYellow", + start_col = 7, + start_row = 22 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 11, + start_row = 23 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterBlue", + start_col = 20, + start_row = 23 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 25 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterYellow", + start_col = 7, + start_row = 26 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterBlue", + start_col = 14, + start_row = 26 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterBlue", + start_col = 17, + start_row = 26 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 18, + start_row = 26 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 27 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/c/rainbow-delimiters/regular.c.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/c/rainbow-delimiters/regular.c.lua new file mode 100644 index 00000000..e6f2d61f --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/c/rainbow-delimiters/regular.c.lua @@ -0,0 +1,723 @@ +return { + c = { { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 11, + start_row = 6 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterRed", + start_col = 15, + start_row = 6 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterRed", + start_col = 12, + start_row = 10 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterRed", + start_col = 22, + start_row = 10 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterRed", + start_col = 23, + start_row = 10 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterRed", + start_col = 27, + start_row = 10 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterRed", + start_col = 10, + start_row = 11 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 11, + start_row = 11 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterRed", + start_col = 13, + start_row = 11 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterRed", + start_col = 25, + start_row = 11 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterRed", + start_col = 10, + start_row = 15 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterRed", + start_col = 22, + start_row = 15 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterRed", + start_col = 24, + start_row = 15 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterRed", + start_col = 34, + start_row = 15 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterRed", + start_col = 13, + start_row = 17 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 22 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterRed", + start_col = 7, + start_row = 25 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterRed", + start_col = 16, + start_row = 25 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterRed", + start_col = 15, + start_row = 27 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 30 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterRed", + start_col = 19, + start_row = 33 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterRed", + start_col = 34, + start_row = 33 + }, { + end_col = 36, + end_row = 36, + hl_group = "RainbowDelimiterRed", + start_col = 35, + start_row = 33 + }, { + end_col = 43, + end_row = 43, + hl_group = "RainbowDelimiterRed", + start_col = 42, + start_row = 33 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterRed", + start_col = 7, + start_row = 36 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterRed", + start_col = 20, + start_row = 36 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterRed", + start_col = 22, + start_row = 36 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 37 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterYellow", + start_col = 7, + start_row = 37 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterYellow", + start_col = 9, + start_row = 37 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterBlue", + start_col = 5, + start_row = 38 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterBlue", + start_col = 7, + start_row = 38 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterBlue", + start_col = 9, + start_row = 38 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterOrange", + start_col = 6, + start_row = 39 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterOrange", + start_col = 8, + start_row = 39 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterOrange", + start_col = 10, + start_row = 39 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterGreen", + start_col = 7, + start_row = 40 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterGreen", + start_col = 9, + start_row = 40 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterGreen", + start_col = 11, + start_row = 40 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterGreen", + start_col = 4, + start_row = 42 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterOrange", + start_col = 3, + start_row = 43 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 44 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 45 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterYellow", + start_col = 7, + start_row = 47 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterYellow", + start_col = 9, + start_row = 47 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterYellow", + start_col = 11, + start_row = 47 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterBlue", + start_col = 8, + start_row = 48 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterBlue", + start_col = 10, + start_row = 48 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterBlue", + start_col = 12, + start_row = 48 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterOrange", + start_col = 9, + start_row = 49 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterOrange", + start_col = 11, + start_row = 49 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterOrange", + start_col = 13, + start_row = 49 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterOrange", + start_col = 3, + start_row = 51 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 52 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 53 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterYellow", + start_col = 5, + start_row = 55 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterYellow", + start_col = 27, + start_row = 55 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterYellow", + start_col = 29, + start_row = 55 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterBlue", + start_col = 6, + start_row = 56 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterBlue", + start_col = 28, + start_row = 56 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterBlue", + start_col = 30, + start_row = 56 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterOrange", + start_col = 7, + start_row = 57 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterOrange", + start_col = 29, + start_row = 57 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterOrange", + start_col = 31, + start_row = 57 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterOrange", + start_col = 3, + start_row = 59 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 60 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 61 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterYellow", + start_col = 11, + start_row = 63 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterYellow", + start_col = 24, + start_row = 63 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 64 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterRed", + start_col = 15, + start_row = 66 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterRed", + start_col = 21, + start_row = 66 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterRed", + start_col = 23, + start_row = 66 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterYellow", + start_col = 8, + start_row = 67 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterYellow", + start_col = 14, + start_row = 67 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 68 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterRed", + start_col = 8, + start_row = 70 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterYellow", + start_col = 29, + start_row = 70 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterYellow", + start_col = 30, + start_row = 70 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterRed", + start_col = 31, + start_row = 70 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterRed", + start_col = 33, + start_row = 70 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterYellow", + start_col = 17, + start_row = 72 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterYellow", + start_col = 22, + start_row = 72 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterYellow", + start_col = 7, + start_row = 73 + }, { + end_col = 39, + end_row = 39, + hl_group = "RainbowDelimiterBlue", + start_col = 38, + start_row = 73 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterOrange", + start_col = 39, + start_row = 73 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterGreen", + start_col = 40, + start_row = 73 + }, { + end_col = 42, + end_row = 42, + hl_group = "RainbowDelimiterViolet", + start_col = 41, + start_row = 73 + }, { + end_col = 44, + end_row = 44, + hl_group = "RainbowDelimiterViolet", + start_col = 43, + start_row = 73 + }, { + end_col = 45, + end_row = 45, + hl_group = "RainbowDelimiterGreen", + start_col = 44, + start_row = 73 + }, { + end_col = 46, + end_row = 46, + hl_group = "RainbowDelimiterOrange", + start_col = 45, + start_row = 73 + }, { + end_col = 47, + end_row = 47, + hl_group = "RainbowDelimiterBlue", + start_col = 46, + start_row = 73 + }, { + end_col = 59, + end_row = 59, + hl_group = "RainbowDelimiterYellow", + start_col = 58, + start_row = 73 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 74 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterYellow", + start_col = 13, + start_row = 74 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterYellow", + start_col = 17, + start_row = 74 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterYellow", + start_col = 21, + start_row = 74 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterYellow", + start_col = 16, + start_row = 75 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterBlue", + start_col = 24, + start_row = 75 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterOrange", + start_col = 32, + start_row = 75 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterGreen", + start_col = 40, + start_row = 75 + }, { + end_col = 49, + end_row = 49, + hl_group = "RainbowDelimiterViolet", + start_col = 48, + start_row = 75 + }, { + end_col = 57, + end_row = 57, + hl_group = "RainbowDelimiterCyan", + start_col = 56, + start_row = 75 + }, { + end_col = 59, + end_row = 59, + hl_group = "RainbowDelimiterCyan", + start_col = 58, + start_row = 75 + }, { + end_col = 60, + end_row = 60, + hl_group = "RainbowDelimiterViolet", + start_col = 59, + start_row = 75 + }, { + end_col = 61, + end_row = 61, + hl_group = "RainbowDelimiterGreen", + start_col = 60, + start_row = 75 + }, { + end_col = 62, + end_row = 62, + hl_group = "RainbowDelimiterOrange", + start_col = 61, + start_row = 75 + }, { + end_col = 63, + end_row = 63, + hl_group = "RainbowDelimiterBlue", + start_col = 62, + start_row = 75 + }, { + end_col = 64, + end_row = 64, + hl_group = "RainbowDelimiterYellow", + start_col = 63, + start_row = 75 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterYellow", + start_col = 8, + start_row = 78 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterBlue", + start_col = 39, + start_row = 78 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterOrange", + start_col = 40, + start_row = 78 + }, { + end_col = 42, + end_row = 42, + hl_group = "RainbowDelimiterGreen", + start_col = 41, + start_row = 78 + }, { + end_col = 43, + end_row = 43, + hl_group = "RainbowDelimiterViolet", + start_col = 42, + start_row = 78 + }, { + end_col = 45, + end_row = 45, + hl_group = "RainbowDelimiterViolet", + start_col = 44, + start_row = 78 + }, { + end_col = 46, + end_row = 46, + hl_group = "RainbowDelimiterGreen", + start_col = 45, + start_row = 78 + }, { + end_col = 47, + end_row = 47, + hl_group = "RainbowDelimiterOrange", + start_col = 46, + start_row = 78 + }, { + end_col = 48, + end_row = 48, + hl_group = "RainbowDelimiterBlue", + start_col = 47, + start_row = 78 + }, { + end_col = 60, + end_row = 60, + hl_group = "RainbowDelimiterYellow", + start_col = 59, + start_row = 78 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 81 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/c_sharp/rainbow-delimiters/HelloWorld.cs.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/c_sharp/rainbow-delimiters/HelloWorld.cs.lua new file mode 100644 index 00000000..508fc361 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/c_sharp/rainbow-delimiters/HelloWorld.cs.lua @@ -0,0 +1,51 @@ +return { + c_sharp = { { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterRed", + start_col = 14, + start_row = 3 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterYellow", + start_col = 20, + start_row = 4 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterYellow", + start_col = 21, + start_row = 4 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterYellow", + start_col = 23, + start_row = 4 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterBlue", + start_col = 25, + start_row = 5 + }, { + end_col = 42, + end_row = 42, + hl_group = "RainbowDelimiterBlue", + start_col = 41, + start_row = 5 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 6 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 7 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/c_sharp/rainbow-delimiters/array.cs.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/c_sharp/rainbow-delimiters/array.cs.lua new file mode 100644 index 00000000..4bc9d96d --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/c_sharp/rainbow-delimiters/array.cs.lua @@ -0,0 +1,339 @@ +return { + c_sharp = { { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterRed", + start_col = 14, + start_row = 3 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterYellow", + start_col = 20, + start_row = 4 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterYellow", + start_col = 21, + start_row = 4 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterYellow", + start_col = 23, + start_row = 4 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterBlue", + start_col = 11, + start_row = 5 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterBlue", + start_col = 14, + start_row = 5 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterBlue", + start_col = 33, + start_row = 5 + }, { + end_col = 37, + end_row = 37, + hl_group = "RainbowDelimiterBlue", + start_col = 36, + start_row = 5 + }, { + end_col = 39, + end_row = 39, + hl_group = "RainbowDelimiterBlue", + start_col = 38, + start_row = 5 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterOrange", + start_col = 9, + start_row = 6 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterGreen", + start_col = 11, + start_row = 6 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterGreen", + start_col = 13, + start_row = 6 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterGreen", + start_col = 16, + start_row = 6 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterGreen", + start_col = 18, + start_row = 6 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterOrange", + start_col = 20, + start_row = 6 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterOrange", + start_col = 9, + start_row = 7 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterGreen", + start_col = 11, + start_row = 7 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterGreen", + start_col = 13, + start_row = 7 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterGreen", + start_col = 16, + start_row = 7 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterGreen", + start_col = 18, + start_row = 7 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterOrange", + start_col = 20, + start_row = 7 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterOrange", + start_col = 9, + start_row = 8 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterGreen", + start_col = 11, + start_row = 8 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterGreen", + start_col = 13, + start_row = 8 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterGreen", + start_col = 16, + start_row = 8 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterGreen", + start_col = 18, + start_row = 8 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterOrange", + start_col = 20, + start_row = 8 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterOrange", + start_col = 6, + start_row = 9 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterGreen", + start_col = 8, + start_row = 9 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterGreen", + start_col = 10, + start_row = 9 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterGreen", + start_col = 13, + start_row = 9 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterGreen", + start_col = 15, + start_row = 9 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterOrange", + start_col = 17, + start_row = 9 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterBlue", + start_col = 5, + start_row = 10 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterBlue", + start_col = 8, + start_row = 11 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterBlue", + start_col = 9, + start_row = 11 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterBlue", + start_col = 28, + start_row = 11 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterBlue", + start_col = 29, + start_row = 11 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterBlue", + start_col = 31, + start_row = 11 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterBlue", + start_col = 33, + start_row = 11 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterBlue", + start_col = 20, + start_row = 12 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterBlue", + start_col = 28, + start_row = 12 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterBlue", + start_col = 31, + start_row = 13 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterBlue", + start_col = 32, + start_row = 13 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterBlue", + start_col = 34, + start_row = 13 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterBlue", + start_col = 39, + start_row = 13 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterBlue", + start_col = 20, + start_row = 14 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterOrange", + start_col = 28, + start_row = 14 + }, { + end_col = 37, + end_row = 37, + hl_group = "RainbowDelimiterGreen", + start_col = 36, + start_row = 14 + }, { + end_col = 45, + end_row = 45, + hl_group = "RainbowDelimiterViolet", + start_col = 44, + start_row = 14 + }, { + end_col = 47, + end_row = 47, + hl_group = "RainbowDelimiterViolet", + start_col = 46, + start_row = 14 + }, { + end_col = 48, + end_row = 48, + hl_group = "RainbowDelimiterGreen", + start_col = 47, + start_row = 14 + }, { + end_col = 49, + end_row = 49, + hl_group = "RainbowDelimiterOrange", + start_col = 48, + start_row = 14 + }, { + end_col = 50, + end_row = 50, + hl_group = "RainbowDelimiterBlue", + start_col = 49, + start_row = 14 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 15 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 16 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/c_sharp/rainbow-delimiters/attributes.cs.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/c_sharp/rainbow-delimiters/attributes.cs.lua new file mode 100644 index 00000000..a3a4db4b --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/c_sharp/rainbow-delimiters/attributes.cs.lua @@ -0,0 +1,87 @@ +return { + c_sharp = { { + end_col = 42, + end_row = 42, + hl_group = "RainbowDelimiterRed", + start_col = 41, + start_row = 0 + }, { + end_col = 44, + end_row = 44, + hl_group = "RainbowDelimiterRed", + start_col = 43, + start_row = 0 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 2 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterYellow", + start_col = 5, + start_row = 2 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterYellow", + start_col = 6, + start_row = 2 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterRed", + start_col = 7, + start_row = 2 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 4 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 5 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterBlue", + start_col = 9, + start_row = 5 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterBlue", + start_col = 10, + start_row = 5 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterYellow", + start_col = 11, + start_row = 5 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterYellow", + start_col = 24, + start_row = 6 + }, { + end_col = 37, + end_row = 37, + hl_group = "RainbowDelimiterYellow", + start_col = 36, + start_row = 6 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 7 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/c_sharp/rainbow-delimiters/generics.cs.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/c_sharp/rainbow-delimiters/generics.cs.lua new file mode 100644 index 00000000..581087bb --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/c_sharp/rainbow-delimiters/generics.cs.lua @@ -0,0 +1,171 @@ +return { + c_sharp = { { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterRed", + start_col = 14, + start_row = 2 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterRed", + start_col = 16, + start_row = 2 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterRed", + start_col = 18, + start_row = 2 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterRed", + start_col = 20, + start_row = 2 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterRed", + start_col = 15, + start_row = 4 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterRed", + start_col = 17, + start_row = 4 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterRed", + start_col = 19, + start_row = 4 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterRed", + start_col = 21, + start_row = 4 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterRed", + start_col = 18, + start_row = 6 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterRed", + start_col = 20, + start_row = 6 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterRed", + start_col = 25, + start_row = 6 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterYellow", + start_col = 37, + start_row = 6 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterYellow", + start_col = 39, + start_row = 6 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterRed", + start_col = 40, + start_row = 6 + }, { + end_col = 43, + end_row = 43, + hl_group = "RainbowDelimiterRed", + start_col = 42, + start_row = 6 + }, { + end_col = 45, + end_row = 45, + hl_group = "RainbowDelimiterRed", + start_col = 44, + start_row = 6 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterRed", + start_col = 14, + start_row = 9 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterYellow", + start_col = 20, + start_row = 10 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterBlue", + start_col = 25, + start_row = 10 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterOrange", + start_col = 30, + start_row = 10 + }, { + end_col = 36, + end_row = 36, + hl_group = "RainbowDelimiterGreen", + start_col = 35, + start_row = 10 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterGreen", + start_col = 37, + start_row = 10 + }, { + end_col = 39, + end_row = 39, + hl_group = "RainbowDelimiterOrange", + start_col = 38, + start_row = 10 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterBlue", + start_col = 39, + start_row = 10 + }, { + end_col = 43, + end_row = 43, + hl_group = "RainbowDelimiterYellow", + start_col = 42, + start_row = 10 + }, { + end_col = 45, + end_row = 45, + hl_group = "RainbowDelimiterYellow", + start_col = 44, + start_row = 10 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 11 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 12 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/c_sharp/rainbow-delimiters/loop.cs.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/c_sharp/rainbow-delimiters/loop.cs.lua new file mode 100644 index 00000000..45588175 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/c_sharp/rainbow-delimiters/loop.cs.lua @@ -0,0 +1,195 @@ +return { + c_sharp = { { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterRed", + start_col = 14, + start_row = 4 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterYellow", + start_col = 11, + start_row = 5 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 5 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterYellow", + start_col = 25, + start_row = 5 + }, { + end_col = 37, + end_row = 37, + hl_group = "RainbowDelimiterYellow", + start_col = 36, + start_row = 5 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterYellow", + start_col = 20, + start_row = 7 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterYellow", + start_col = 21, + start_row = 7 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterYellow", + start_col = 23, + start_row = 7 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterBlue", + start_col = 16, + start_row = 8 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterBlue", + start_col = 34, + start_row = 8 + }, { + end_col = 37, + end_row = 37, + hl_group = "RainbowDelimiterBlue", + start_col = 36, + start_row = 8 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterOrange", + start_col = 17, + start_row = 9 + }, { + end_col = 36, + end_row = 36, + hl_group = "RainbowDelimiterOrange", + start_col = 35, + start_row = 9 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterOrange", + start_col = 37, + start_row = 9 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterGreen", + start_col = 18, + start_row = 10 + }, { + end_col = 37, + end_row = 37, + hl_group = "RainbowDelimiterGreen", + start_col = 36, + start_row = 10 + }, { + end_col = 39, + end_row = 39, + hl_group = "RainbowDelimiterGreen", + start_col = 38, + start_row = 10 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterViolet", + start_col = 19, + start_row = 11 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterViolet", + start_col = 37, + start_row = 11 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterViolet", + start_col = 39, + start_row = 11 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterCyan", + start_col = 18, + start_row = 12 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterCyan", + start_col = 24, + start_row = 12 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterCyan", + start_col = 26, + start_row = 12 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterRed", + start_col = 30, + start_row = 13 + }, { + end_col = 47, + end_row = 47, + hl_group = "RainbowDelimiterRed", + start_col = 46, + start_row = 13 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterCyan", + start_col = 12, + start_row = 14 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterViolet", + start_col = 11, + start_row = 15 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterGreen", + start_col = 10, + start_row = 16 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterOrange", + start_col = 9, + start_row = 17 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterBlue", + start_col = 8, + start_row = 18 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 19 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 20 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/c_sharp/rainbow-delimiters/misc.cs.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/c_sharp/rainbow-delimiters/misc.cs.lua new file mode 100644 index 00000000..fb0bd9dd --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/c_sharp/rainbow-delimiters/misc.cs.lua @@ -0,0 +1,531 @@ +return { + c_sharp = { { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 1 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterYellow", + start_col = 24, + start_row = 2 + }, { + end_col = 37, + end_row = 37, + hl_group = "RainbowDelimiterYellow", + start_col = 36, + start_row = 2 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterYellow", + start_col = 14, + start_row = 3 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterYellow", + start_col = 15, + start_row = 3 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterYellow", + start_col = 16, + start_row = 3 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterYellow", + start_col = 17, + start_row = 3 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterYellow", + start_col = 34, + start_row = 3 + }, { + end_col = 47, + end_row = 47, + hl_group = "RainbowDelimiterYellow", + start_col = 46, + start_row = 3 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterYellow", + start_col = 29, + start_row = 5 + }, { + end_col = 42, + end_row = 42, + hl_group = "RainbowDelimiterBlue", + start_col = 41, + start_row = 5 + }, { + end_col = 54, + end_row = 54, + hl_group = "RainbowDelimiterOrange", + start_col = 53, + start_row = 5 + }, { + end_col = 61, + end_row = 61, + hl_group = "RainbowDelimiterOrange", + start_col = 60, + start_row = 5 + }, { + end_col = 62, + end_row = 62, + hl_group = "RainbowDelimiterBlue", + start_col = 61, + start_row = 5 + }, { + end_col = 72, + end_row = 72, + hl_group = "RainbowDelimiterYellow", + start_col = 71, + start_row = 5 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 6 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterBlue", + start_col = 26, + start_row = 7 + }, { + end_col = 52, + end_row = 52, + hl_group = "RainbowDelimiterOrange", + start_col = 51, + start_row = 7 + }, { + end_col = 59, + end_row = 59, + hl_group = "RainbowDelimiterOrange", + start_col = 58, + start_row = 7 + }, { + end_col = 60, + end_row = 60, + hl_group = "RainbowDelimiterBlue", + start_col = 59, + start_row = 7 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 8 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterYellow", + start_col = 25, + start_row = 10 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterYellow", + start_col = 26, + start_row = 10 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 11 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterBlue", + start_col = 16, + start_row = 12 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterOrange", + start_col = 39, + start_row = 12 + }, { + end_col = 42, + end_row = 42, + hl_group = "RainbowDelimiterOrange", + start_col = 41, + start_row = 12 + }, { + end_col = 43, + end_row = 43, + hl_group = "RainbowDelimiterBlue", + start_col = 42, + start_row = 12 + }, { + end_col = 45, + end_row = 45, + hl_group = "RainbowDelimiterBlue", + start_col = 44, + start_row = 12 + }, { + end_col = 47, + end_row = 47, + hl_group = "RainbowDelimiterBlue", + start_col = 46, + start_row = 12 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterBlue", + start_col = 12, + start_row = 14 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterBlue", + start_col = 34, + start_row = 14 + }, { + end_col = 37, + end_row = 37, + hl_group = "RainbowDelimiterBlue", + start_col = 36, + start_row = 14 + }, { + end_col = 39, + end_row = 39, + hl_group = "RainbowDelimiterBlue", + start_col = 38, + start_row = 14 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterBlue", + start_col = 14, + start_row = 16 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterBlue", + start_col = 20, + start_row = 16 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterBlue", + start_col = 22, + start_row = 16 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterBlue", + start_col = 24, + start_row = 16 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterOrange", + start_col = 11, + start_row = 18 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterOrange", + start_col = 13, + start_row = 18 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterBlue", + start_col = 21, + start_row = 18 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterBlue", + start_col = 27, + start_row = 18 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 19 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterYellow", + start_col = 30, + start_row = 21 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterYellow", + start_col = 31, + start_row = 21 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 22 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterBlue", + start_col = 11, + start_row = 24 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterBlue", + start_col = 16, + start_row = 24 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterBlue", + start_col = 18, + start_row = 24 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterOrange", + start_col = 33, + start_row = 25 + }, { + end_col = 55, + end_row = 55, + hl_group = "RainbowDelimiterOrange", + start_col = 54, + start_row = 25 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterBlue", + start_col = 8, + start_row = 26 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 27 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterYellow", + start_col = 32, + start_row = 29 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterYellow", + start_col = 33, + start_row = 29 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 30 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterBlue", + start_col = 20, + start_row = 31 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterBlue", + start_col = 34, + start_row = 31 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 32 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 34 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterBlue", + start_col = 29, + start_row = 34 + }, { + end_col = 45, + end_row = 45, + hl_group = "RainbowDelimiterBlue", + start_col = 44, + start_row = 34 + }, { + end_col = 46, + end_row = 46, + hl_group = "RainbowDelimiterYellow", + start_col = 45, + start_row = 34 + }, { + end_col = 64, + end_row = 64, + hl_group = "RainbowDelimiterYellow", + start_col = 63, + start_row = 34 + }, { + end_col = 65, + end_row = 65, + hl_group = "RainbowDelimiterYellow", + start_col = 64, + start_row = 34 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 35 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterBlue", + start_col = 15, + start_row = 36 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterOrange", + start_col = 22, + start_row = 36 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterOrange", + start_col = 27, + start_row = 36 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterBlue", + start_col = 28, + start_row = 36 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 37 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 39 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterYellow", + start_col = 21, + start_row = 39 + }, { + end_col = 37, + end_row = 37, + hl_group = "RainbowDelimiterYellow", + start_col = 36, + start_row = 39 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterYellow", + start_col = 37, + start_row = 39 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 40 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterBlue", + start_col = 15, + start_row = 41 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterBlue", + start_col = 20, + start_row = 41 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 42 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterYellow", + start_col = 33, + start_row = 44 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterYellow", + start_col = 34, + start_row = 44 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 45 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterBlue", + start_col = 12, + start_row = 46 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterBlue", + start_col = 17, + start_row = 46 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterBlue", + start_col = 34, + start_row = 46 + }, { + end_col = 36, + end_row = 36, + hl_group = "RainbowDelimiterBlue", + start_col = 35, + start_row = 46 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 47 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 48 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/c_sharp/rainbow-delimiters/parens.cs.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/c_sharp/rainbow-delimiters/parens.cs.lua new file mode 100644 index 00000000..5c69c3c8 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/c_sharp/rainbow-delimiters/parens.cs.lua @@ -0,0 +1,147 @@ +return { + c_sharp = { { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterRed", + start_col = 14, + start_row = 3 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterYellow", + start_col = 20, + start_row = 4 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterYellow", + start_col = 21, + start_row = 4 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterYellow", + start_col = 23, + start_row = 4 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 5 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterOrange", + start_col = 14, + start_row = 5 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterGreen", + start_col = 15, + start_row = 5 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterViolet", + start_col = 16, + start_row = 5 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterCyan", + start_col = 17, + start_row = 5 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterCyan", + start_col = 23, + start_row = 5 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterViolet", + start_col = 24, + start_row = 5 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterGreen", + start_col = 25, + start_row = 5 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterGreen", + start_col = 29, + start_row = 5 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterViolet", + start_col = 30, + start_row = 5 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterCyan", + start_col = 31, + start_row = 5 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterRed", + start_col = 32, + start_row = 5 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterRed", + start_col = 34, + start_row = 5 + }, { + end_col = 36, + end_row = 36, + hl_group = "RainbowDelimiterCyan", + start_col = 35, + start_row = 5 + }, { + end_col = 37, + end_row = 37, + hl_group = "RainbowDelimiterViolet", + start_col = 36, + start_row = 5 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterGreen", + start_col = 37, + start_row = 5 + }, { + end_col = 39, + end_row = 39, + hl_group = "RainbowDelimiterOrange", + start_col = 38, + start_row = 5 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterBlue", + start_col = 39, + start_row = 5 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 6 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 7 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/c_sharp/rainbow-delimiters/switch.cs.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/c_sharp/rainbow-delimiters/switch.cs.lua new file mode 100644 index 00000000..d25eb060 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/c_sharp/rainbow-delimiters/switch.cs.lua @@ -0,0 +1,543 @@ +return { + c_sharp = { { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 1 + }, { + end_col = 53, + end_row = 53, + hl_group = "RainbowDelimiterYellow", + start_col = 52, + start_row = 2 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterBlue", + start_col = 12, + start_row = 4 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterBlue", + start_col = 27, + start_row = 4 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 5 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterYellow", + start_col = 8, + start_row = 7 + }, { + end_col = 52, + end_row = 52, + hl_group = "RainbowDelimiterBlue", + start_col = 51, + start_row = 8 + }, { + end_col = 59, + end_row = 59, + hl_group = "RainbowDelimiterOrange", + start_col = 58, + start_row = 8 + }, { + end_col = 65, + end_row = 65, + hl_group = "RainbowDelimiterOrange", + start_col = 64, + start_row = 8 + }, { + end_col = 66, + end_row = 66, + hl_group = "RainbowDelimiterBlue", + start_col = 65, + start_row = 8 + }, { + end_col = 46, + end_row = 46, + hl_group = "RainbowDelimiterBlue", + start_col = 45, + start_row = 9 + }, { + end_col = 56, + end_row = 56, + hl_group = "RainbowDelimiterOrange", + start_col = 55, + start_row = 9 + }, { + end_col = 62, + end_row = 62, + hl_group = "RainbowDelimiterOrange", + start_col = 61, + start_row = 9 + }, { + end_col = 89, + end_row = 89, + hl_group = "RainbowDelimiterOrange", + start_col = 88, + start_row = 9 + }, { + end_col = 95, + end_row = 95, + hl_group = "RainbowDelimiterOrange", + start_col = 94, + start_row = 9 + }, { + end_col = 96, + end_row = 96, + hl_group = "RainbowDelimiterBlue", + start_col = 95, + start_row = 9 + }, { + end_col = 36, + end_row = 36, + hl_group = "RainbowDelimiterBlue", + start_col = 35, + start_row = 10 + }, { + end_col = 42, + end_row = 42, + hl_group = "RainbowDelimiterOrange", + start_col = 41, + start_row = 10 + }, { + end_col = 44, + end_row = 44, + hl_group = "RainbowDelimiterOrange", + start_col = 43, + start_row = 10 + }, { + end_col = 54, + end_row = 54, + hl_group = "RainbowDelimiterOrange", + start_col = 53, + start_row = 10 + }, { + end_col = 55, + end_row = 55, + hl_group = "RainbowDelimiterOrange", + start_col = 54, + start_row = 10 + }, { + end_col = 56, + end_row = 56, + hl_group = "RainbowDelimiterBlue", + start_col = 55, + start_row = 10 + }, { + end_col = 75, + end_row = 75, + hl_group = "RainbowDelimiterBlue", + start_col = 74, + start_row = 10 + }, { + end_col = 77, + end_row = 77, + hl_group = "RainbowDelimiterBlue", + start_col = 76, + start_row = 10 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterYellow", + start_col = 8, + start_row = 11 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterYellow", + start_col = 25, + start_row = 13 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterYellow", + start_col = 26, + start_row = 13 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 14 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterBlue", + start_col = 32, + start_row = 15 + }, { + end_col = 37, + end_row = 37, + hl_group = "RainbowDelimiterBlue", + start_col = 36, + start_row = 15 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterBlue", + start_col = 12, + start_row = 17 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterBlue", + start_col = 14, + start_row = 17 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterBlue", + start_col = 14, + start_row = 18 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterBlue", + start_col = 26, + start_row = 18 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterBlue", + start_col = 33, + start_row = 18 + }, { + end_col = 39, + end_row = 39, + hl_group = "RainbowDelimiterBlue", + start_col = 38, + start_row = 18 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterBlue", + start_col = 40, + start_row = 18 + }, { + end_col = 43, + end_row = 43, + hl_group = "RainbowDelimiterBlue", + start_col = 42, + start_row = 18 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterBlue", + start_col = 16, + start_row = 19 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterBlue", + start_col = 18, + start_row = 19 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterBlue", + start_col = 14, + start_row = 21 + }, { + end_col = 39, + end_row = 39, + hl_group = "RainbowDelimiterOrange", + start_col = 38, + start_row = 21 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterOrange", + start_col = 39, + start_row = 21 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterBlue", + start_col = 40, + start_row = 21 + }, { + end_col = 43, + end_row = 43, + hl_group = "RainbowDelimiterBlue", + start_col = 42, + start_row = 21 + }, { + end_col = 45, + end_row = 45, + hl_group = "RainbowDelimiterBlue", + start_col = 44, + start_row = 21 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 23 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterOrange", + start_col = 24, + start_row = 23 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterOrange", + start_col = 25, + start_row = 23 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterBlue", + start_col = 26, + start_row = 23 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterBlue", + start_col = 28, + start_row = 23 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterBlue", + start_col = 30, + start_row = 23 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterBlue", + start_col = 15, + start_row = 26 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterBlue", + start_col = 20, + start_row = 26 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterBlue", + start_col = 8, + start_row = 27 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterOrange", + start_col = 12, + start_row = 29 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterOrange", + start_col = 12, + start_row = 31 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterOrange", + start_col = 28, + start_row = 32 + }, { + end_col = 37, + end_row = 37, + hl_group = "RainbowDelimiterGreen", + start_col = 36, + start_row = 32 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterGreen", + start_col = 37, + start_row = 32 + }, { + end_col = 51, + end_row = 51, + hl_group = "RainbowDelimiterOrange", + start_col = 50, + start_row = 32 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterBlue", + start_col = 8, + start_row = 37 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterBlue", + start_col = 16, + start_row = 39 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterBlue", + start_col = 20, + start_row = 39 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterBlue", + start_col = 12, + start_row = 41 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 41 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterBlue", + start_col = 19, + start_row = 41 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterOrange", + start_col = 27, + start_row = 41 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterOrange", + start_col = 31, + start_row = 41 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterBlue", + start_col = 34, + start_row = 41 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterBlue", + start_col = 14, + start_row = 42 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterBlue", + start_col = 18, + start_row = 42 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterBlue", + start_col = 31, + start_row = 43 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterOrange", + start_col = 32, + start_row = 43 + }, { + end_col = 37, + end_row = 37, + hl_group = "RainbowDelimiterOrange", + start_col = 36, + start_row = 43 + }, { + end_col = 48, + end_row = 48, + hl_group = "RainbowDelimiterBlue", + start_col = 47, + start_row = 43 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterBlue", + start_col = 29, + start_row = 44 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterOrange", + start_col = 30, + start_row = 44 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterOrange", + start_col = 34, + start_row = 44 + }, { + end_col = 46, + end_row = 46, + hl_group = "RainbowDelimiterBlue", + start_col = 45, + start_row = 44 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterBlue", + start_col = 12, + start_row = 45 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterBlue", + start_col = 17, + start_row = 45 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterBlue", + start_col = 37, + start_row = 45 + }, { + end_col = 39, + end_row = 39, + hl_group = "RainbowDelimiterBlue", + start_col = 38, + start_row = 45 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterBlue", + start_col = 40, + start_row = 45 + }, { + end_col = 54, + end_row = 54, + hl_group = "RainbowDelimiterBlue", + start_col = 53, + start_row = 45 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 46 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 49 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 53 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 54 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/clojure/rainbow-delimiters/regular.clj.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/clojure/rainbow-delimiters/regular.clj.lua new file mode 100644 index 00000000..1219528f --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/clojure/rainbow-delimiters/regular.clj.lua @@ -0,0 +1,243 @@ +return { + clojure = { { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 0 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterYellow", + start_col = 21, + start_row = 0 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterYellow", + start_col = 32, + start_row = 0 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 1 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterBlue", + start_col = 4, + start_row = 3 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterOrange", + start_col = 6, + start_row = 3 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterOrange", + start_col = 18, + start_row = 3 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterBlue", + start_col = 19, + start_row = 3 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterBlue", + start_col = 3, + start_row = 4 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterOrange", + start_col = 4, + start_row = 4 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterGreen", + start_col = 5, + start_row = 4 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterGreen", + start_col = 6, + start_row = 4 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterGreen", + start_col = 9, + start_row = 4 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterViolet", + start_col = 10, + start_row = 4 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterViolet", + start_col = 11, + start_row = 4 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterGreen", + start_col = 12, + start_row = 4 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterOrange", + start_col = 13, + start_row = 4 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterOrange", + start_col = 17, + start_row = 4 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterGreen", + start_col = 21, + start_row = 4 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterGreen", + start_col = 22, + start_row = 4 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterOrange", + start_col = 23, + start_row = 4 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterOrange", + start_col = 27, + start_row = 4 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterGreen", + start_col = 28, + start_row = 4 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterGreen", + start_col = 29, + start_row = 4 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterOrange", + start_col = 34, + start_row = 4 + }, { + end_col = 39, + end_row = 39, + hl_group = "RainbowDelimiterOrange", + start_col = 38, + start_row = 4 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterGreen", + start_col = 39, + start_row = 4 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterViolet", + start_col = 40, + start_row = 4 + }, { + end_col = 42, + end_row = 42, + hl_group = "RainbowDelimiterViolet", + start_col = 41, + start_row = 4 + }, { + end_col = 43, + end_row = 43, + hl_group = "RainbowDelimiterGreen", + start_col = 42, + start_row = 4 + }, { + end_col = 44, + end_row = 44, + hl_group = "RainbowDelimiterOrange", + start_col = 43, + start_row = 4 + }, { + end_col = 48, + end_row = 48, + hl_group = "RainbowDelimiterOrange", + start_col = 47, + start_row = 4 + }, { + end_col = 49, + end_row = 49, + hl_group = "RainbowDelimiterGreen", + start_col = 48, + start_row = 4 + }, { + end_col = 50, + end_row = 50, + hl_group = "RainbowDelimiterGreen", + start_col = 49, + start_row = 4 + }, { + end_col = 51, + end_row = 51, + hl_group = "RainbowDelimiterOrange", + start_col = 50, + start_row = 4 + }, { + end_col = 52, + end_row = 52, + hl_group = "RainbowDelimiterBlue", + start_col = 51, + start_row = 4 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 3, + start_row = 5 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterRed", + start_col = 2, + start_row = 6 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 8 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterRed", + start_col = 16, + start_row = 8 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/commonlisp/rainbow-delimiters/regular.lisp.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/commonlisp/rainbow-delimiters/regular.lisp.lua new file mode 100644 index 00000000..b25f41d1 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/commonlisp/rainbow-delimiters/regular.lisp.lua @@ -0,0 +1,249 @@ +return { + commonlisp = { { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 0 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 0 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterYellow", + start_col = 11, + start_row = 0 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterYellow", + start_col = 15, + start_row = 0 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 2 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterBlue", + start_col = 6, + start_row = 2 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterBlue", + start_col = 14, + start_row = 2 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterBlue", + start_col = 4, + start_row = 4 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterOrange", + start_col = 9, + start_row = 4 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterOrange", + start_col = 16, + start_row = 4 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterOrange", + start_col = 9, + start_row = 5 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterOrange", + start_col = 16, + start_row = 5 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterBlue", + start_col = 17, + start_row = 5 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 18, + start_row = 5 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterRed", + start_col = 19, + start_row = 5 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 7 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterYellow", + start_col = 15, + start_row = 7 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterYellow", + start_col = 28, + start_row = 7 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 3, + start_row = 8 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterBlue", + start_col = 20, + start_row = 8 + }, { + end_col = 36, + end_row = 36, + hl_group = "RainbowDelimiterBlue", + start_col = 35, + start_row = 8 + }, { + end_col = 37, + end_row = 37, + hl_group = "RainbowDelimiterYellow", + start_col = 36, + start_row = 8 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterRed", + start_col = 37, + start_row = 8 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 11 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterYellow", + start_col = 9, + start_row = 12 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterYellow", + start_col = 29, + start_row = 12 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterRed", + start_col = 30, + start_row = 12 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterRed", + start_col = 1, + start_row = 14 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 14 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterBlue", + start_col = 3, + start_row = 14 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterBlue", + start_col = 9, + start_row = 14 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterYellow", + start_col = 10, + start_row = 14 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 11, + start_row = 14 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterRed", + start_col = 1, + start_row = 15 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 15 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterBlue", + start_col = 3, + start_row = 15 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterOrange", + start_col = 4, + start_row = 15 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterOrange", + start_col = 12, + start_row = 15 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 15 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterYellow", + start_col = 14, + start_row = 15 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterRed", + start_col = 15, + start_row = 15 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/cpp/rainbow-delimiters/regular.cpp.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/cpp/rainbow-delimiters/regular.cpp.lua new file mode 100644 index 00000000..cb5306bf --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/cpp/rainbow-delimiters/regular.cpp.lua @@ -0,0 +1,741 @@ +return { + cpp = { { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterRed", + start_col = 15, + start_row = 3 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 18, + start_row = 5 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterYellow", + start_col = 19, + start_row = 5 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterYellow", + start_col = 21, + start_row = 5 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 7 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 8 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterRed", + start_col = 7, + start_row = 11 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterRed", + start_col = 16, + start_row = 11 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterRed", + start_col = 15, + start_row = 14 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 18 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterRed", + start_col = 14, + start_row = 20 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 25 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterRed", + start_col = 7, + start_row = 28 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterRed", + start_col = 20, + start_row = 28 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterRed", + start_col = 22, + start_row = 28 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 29 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterYellow", + start_col = 7, + start_row = 29 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterYellow", + start_col = 9, + start_row = 29 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterBlue", + start_col = 5, + start_row = 30 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterBlue", + start_col = 7, + start_row = 30 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterBlue", + start_col = 9, + start_row = 30 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterOrange", + start_col = 6, + start_row = 31 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterOrange", + start_col = 8, + start_row = 31 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterOrange", + start_col = 10, + start_row = 31 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterGreen", + start_col = 7, + start_row = 32 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterGreen", + start_col = 9, + start_row = 32 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterGreen", + start_col = 11, + start_row = 32 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterGreen", + start_col = 4, + start_row = 34 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterOrange", + start_col = 3, + start_row = 35 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 36 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 37 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterYellow", + start_col = 7, + start_row = 39 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterYellow", + start_col = 9, + start_row = 39 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterYellow", + start_col = 11, + start_row = 39 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterBlue", + start_col = 8, + start_row = 40 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterBlue", + start_col = 10, + start_row = 40 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterBlue", + start_col = 12, + start_row = 40 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterOrange", + start_col = 9, + start_row = 41 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterOrange", + start_col = 11, + start_row = 41 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterOrange", + start_col = 13, + start_row = 41 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterOrange", + start_col = 3, + start_row = 43 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 44 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 45 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterYellow", + start_col = 5, + start_row = 47 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterYellow", + start_col = 27, + start_row = 47 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterYellow", + start_col = 29, + start_row = 47 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterBlue", + start_col = 6, + start_row = 48 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterBlue", + start_col = 28, + start_row = 48 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterBlue", + start_col = 30, + start_row = 48 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterOrange", + start_col = 7, + start_row = 49 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterOrange", + start_col = 29, + start_row = 49 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterOrange", + start_col = 31, + start_row = 49 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterOrange", + start_col = 3, + start_row = 51 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 52 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 53 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterYellow", + start_col = 11, + start_row = 55 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterYellow", + start_col = 24, + start_row = 55 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 56 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterRed", + start_col = 9, + start_row = 58 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterRed", + start_col = 20, + start_row = 58 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterRed", + start_col = 29, + start_row = 58 + }, { + end_col = 39, + end_row = 39, + hl_group = "RainbowDelimiterRed", + start_col = 38, + start_row = 58 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterRed", + start_col = 40, + start_row = 58 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterYellow", + start_col = 8, + start_row = 59 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterYellow", + start_col = 14, + start_row = 59 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 60 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterRed", + start_col = 15, + start_row = 62 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterRed", + start_col = 21, + start_row = 62 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterRed", + start_col = 23, + start_row = 62 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterRed", + start_col = 8, + start_row = 63 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterRed", + start_col = 14, + start_row = 63 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterRed", + start_col = 27, + start_row = 66 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterYellow", + start_col = 39, + start_row = 66 + }, { + end_col = 52, + end_row = 52, + hl_group = "RainbowDelimiterBlue", + start_col = 51, + start_row = 66 + }, { + end_col = 64, + end_row = 64, + hl_group = "RainbowDelimiterOrange", + start_col = 63, + start_row = 66 + }, { + end_col = 68, + end_row = 68, + hl_group = "RainbowDelimiterOrange", + start_col = 67, + start_row = 66 + }, { + end_col = 69, + end_row = 69, + hl_group = "RainbowDelimiterBlue", + start_col = 68, + start_row = 66 + }, { + end_col = 70, + end_row = 70, + hl_group = "RainbowDelimiterYellow", + start_col = 69, + start_row = 66 + }, { + end_col = 73, + end_row = 73, + hl_group = "RainbowDelimiterRed", + start_col = 72, + start_row = 66 + }, { + end_col = 75, + end_row = 75, + hl_group = "RainbowDelimiterRed", + start_col = 74, + start_row = 66 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 68 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterRed", + start_col = 8, + start_row = 70 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterYellow", + start_col = 29, + start_row = 70 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterYellow", + start_col = 30, + start_row = 70 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterRed", + start_col = 31, + start_row = 70 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterRed", + start_col = 33, + start_row = 70 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterBlue", + start_col = 8, + start_row = 71 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterBlue", + start_col = 8, + start_row = 71 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterYellow", + start_col = 11, + start_row = 71 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterBlue", + start_col = 11, + start_row = 71 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterYellow", + start_col = 8, + start_row = 72 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterYellow", + start_col = 10, + start_row = 72 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 18, + start_row = 73 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterYellow", + start_col = 23, + start_row = 73 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterYellow", + start_col = 7, + start_row = 74 + }, { + end_col = 39, + end_row = 39, + hl_group = "RainbowDelimiterBlue", + start_col = 38, + start_row = 74 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterOrange", + start_col = 39, + start_row = 74 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterGreen", + start_col = 40, + start_row = 74 + }, { + end_col = 42, + end_row = 42, + hl_group = "RainbowDelimiterViolet", + start_col = 41, + start_row = 74 + }, { + end_col = 44, + end_row = 44, + hl_group = "RainbowDelimiterViolet", + start_col = 43, + start_row = 74 + }, { + end_col = 45, + end_row = 45, + hl_group = "RainbowDelimiterGreen", + start_col = 44, + start_row = 74 + }, { + end_col = 46, + end_row = 46, + hl_group = "RainbowDelimiterOrange", + start_col = 45, + start_row = 74 + }, { + end_col = 47, + end_row = 47, + hl_group = "RainbowDelimiterBlue", + start_col = 46, + start_row = 74 + }, { + end_col = 59, + end_row = 59, + hl_group = "RainbowDelimiterYellow", + start_col = 58, + start_row = 74 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 75 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterYellow", + start_col = 13, + start_row = 75 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterBlue", + start_col = 17, + start_row = 75 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterBlue", + start_col = 17, + start_row = 75 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterYellow", + start_col = 21, + start_row = 75 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterBlue", + start_col = 21, + start_row = 75 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterYellow", + start_col = 17, + start_row = 76 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterBlue", + start_col = 25, + start_row = 76 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterOrange", + start_col = 33, + start_row = 76 + }, { + end_col = 42, + end_row = 42, + hl_group = "RainbowDelimiterGreen", + start_col = 41, + start_row = 76 + }, { + end_col = 50, + end_row = 50, + hl_group = "RainbowDelimiterViolet", + start_col = 49, + start_row = 76 + }, { + end_col = 58, + end_row = 58, + hl_group = "RainbowDelimiterCyan", + start_col = 57, + start_row = 76 + }, { + end_col = 60, + end_row = 60, + hl_group = "RainbowDelimiterCyan", + start_col = 59, + start_row = 76 + }, { + end_col = 61, + end_row = 61, + hl_group = "RainbowDelimiterViolet", + start_col = 60, + start_row = 76 + }, { + end_col = 62, + end_row = 62, + hl_group = "RainbowDelimiterGreen", + start_col = 61, + start_row = 76 + }, { + end_col = 63, + end_row = 63, + hl_group = "RainbowDelimiterOrange", + start_col = 62, + start_row = 76 + }, { + end_col = 64, + end_row = 64, + hl_group = "RainbowDelimiterBlue", + start_col = 63, + start_row = 76 + }, { + end_col = 65, + end_row = 65, + hl_group = "RainbowDelimiterYellow", + start_col = 64, + start_row = 76 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 78 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/css/rainbow-delimiters/regular.css.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/css/rainbow-delimiters/regular.css.lua new file mode 100644 index 00000000..14830887 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/css/rainbow-delimiters/regular.css.lua @@ -0,0 +1,135 @@ +return { + css = { { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterRed", + start_col = 6, + start_row = 0 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterYellow", + start_col = 8, + start_row = 1 + }, { + end_col = 36, + end_row = 36, + hl_group = "RainbowDelimiterYellow", + start_col = 35, + start_row = 1 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterYellow", + start_col = 37, + start_row = 1 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 6 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 7 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterRed", + start_col = 6, + start_row = 9 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 9 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterYellow", + start_col = 28, + start_row = 9 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterRed", + start_col = 29, + start_row = 9 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterRed", + start_col = 31, + start_row = 9 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 11 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterRed", + start_col = 5, + start_row = 13 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 15 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterRed", + start_col = 7, + start_row = 17 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 17 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 18, + start_row = 17 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterRed", + start_col = 19, + start_row = 17 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterRed", + start_col = 21, + start_row = 17 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterYellow", + start_col = 6, + start_row = 18 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 20 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 21 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/cuda/rainbow-delimiters/regular.cu.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/cuda/rainbow-delimiters/regular.cu.lua new file mode 100644 index 00000000..818c806c --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/cuda/rainbow-delimiters/regular.cu.lua @@ -0,0 +1,837 @@ +return { + cuda = { { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterRed", + start_col = 7, + start_row = 5 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterRed", + start_col = 16, + start_row = 5 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterRed", + start_col = 15, + start_row = 8 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 12 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterRed", + start_col = 14, + start_row = 14 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 19 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterRed", + start_col = 7, + start_row = 22 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterRed", + start_col = 20, + start_row = 22 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterRed", + start_col = 22, + start_row = 22 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 23 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterYellow", + start_col = 7, + start_row = 23 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterYellow", + start_col = 9, + start_row = 23 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterBlue", + start_col = 5, + start_row = 24 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterBlue", + start_col = 7, + start_row = 24 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterBlue", + start_col = 9, + start_row = 24 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterOrange", + start_col = 6, + start_row = 25 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterOrange", + start_col = 8, + start_row = 25 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterOrange", + start_col = 10, + start_row = 25 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterGreen", + start_col = 7, + start_row = 26 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterGreen", + start_col = 9, + start_row = 26 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterGreen", + start_col = 11, + start_row = 26 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterGreen", + start_col = 4, + start_row = 28 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterOrange", + start_col = 3, + start_row = 29 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 30 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 31 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterYellow", + start_col = 7, + start_row = 33 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterYellow", + start_col = 9, + start_row = 33 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterYellow", + start_col = 11, + start_row = 33 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterBlue", + start_col = 8, + start_row = 34 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterBlue", + start_col = 10, + start_row = 34 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterBlue", + start_col = 12, + start_row = 34 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterOrange", + start_col = 9, + start_row = 35 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterOrange", + start_col = 11, + start_row = 35 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterOrange", + start_col = 13, + start_row = 35 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterOrange", + start_col = 3, + start_row = 37 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 38 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 39 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterYellow", + start_col = 5, + start_row = 41 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterYellow", + start_col = 27, + start_row = 41 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterYellow", + start_col = 29, + start_row = 41 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterBlue", + start_col = 6, + start_row = 42 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterBlue", + start_col = 28, + start_row = 42 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterBlue", + start_col = 30, + start_row = 42 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterOrange", + start_col = 7, + start_row = 43 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterOrange", + start_col = 29, + start_row = 43 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterOrange", + start_col = 31, + start_row = 43 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterOrange", + start_col = 3, + start_row = 45 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 46 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 47 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterYellow", + start_col = 11, + start_row = 49 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterYellow", + start_col = 24, + start_row = 49 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 50 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterRed", + start_col = 9, + start_row = 52 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterRed", + start_col = 20, + start_row = 52 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterRed", + start_col = 29, + start_row = 52 + }, { + end_col = 39, + end_row = 39, + hl_group = "RainbowDelimiterRed", + start_col = 38, + start_row = 52 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterRed", + start_col = 40, + start_row = 52 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterYellow", + start_col = 8, + start_row = 53 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterYellow", + start_col = 14, + start_row = 53 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 54 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterRed", + start_col = 15, + start_row = 56 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterRed", + start_col = 21, + start_row = 56 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterRed", + start_col = 23, + start_row = 56 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterRed", + start_col = 8, + start_row = 57 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterRed", + start_col = 14, + start_row = 57 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterRed", + start_col = 27, + start_row = 60 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterYellow", + start_col = 39, + start_row = 60 + }, { + end_col = 52, + end_row = 52, + hl_group = "RainbowDelimiterBlue", + start_col = 51, + start_row = 60 + }, { + end_col = 64, + end_row = 64, + hl_group = "RainbowDelimiterOrange", + start_col = 63, + start_row = 60 + }, { + end_col = 68, + end_row = 68, + hl_group = "RainbowDelimiterOrange", + start_col = 67, + start_row = 60 + }, { + end_col = 69, + end_row = 69, + hl_group = "RainbowDelimiterBlue", + start_col = 68, + start_row = 60 + }, { + end_col = 70, + end_row = 70, + hl_group = "RainbowDelimiterYellow", + start_col = 69, + start_row = 60 + }, { + end_col = 73, + end_row = 73, + hl_group = "RainbowDelimiterRed", + start_col = 72, + start_row = 60 + }, { + end_col = 75, + end_row = 75, + hl_group = "RainbowDelimiterRed", + start_col = 74, + start_row = 60 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 62 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterRed", + start_col = 25, + start_row = 64 + }, { + end_col = 43, + end_row = 43, + hl_group = "RainbowDelimiterRed", + start_col = 42, + start_row = 64 + }, { + end_col = 45, + end_row = 45, + hl_group = "RainbowDelimiterRed", + start_col = 44, + start_row = 64 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterYellow", + start_col = 7, + start_row = 66 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterYellow", + start_col = 16, + start_row = 66 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 18, + start_row = 66 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterBlue", + start_col = 9, + start_row = 67 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterBlue", + start_col = 11, + start_row = 67 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 68 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 69 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterRed", + start_col = 16, + start_row = 71 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterRed", + start_col = 17, + start_row = 71 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterRed", + start_col = 19, + start_row = 71 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterYellow", + start_col = 11, + start_row = 73 + }, { + end_col = 37, + end_row = 37, + hl_group = "RainbowDelimiterYellow", + start_col = 36, + start_row = 73 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 10, + start_row = 74 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterYellow", + start_col = 21, + start_row = 74 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterYellow", + start_col = 24, + start_row = 74 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterYellow", + start_col = 34, + start_row = 74 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterYellow", + start_col = 9, + start_row = 75 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterYellow", + start_col = 15, + start_row = 75 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 76 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterRed", + start_col = 8, + start_row = 78 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterYellow", + start_col = 29, + start_row = 78 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterYellow", + start_col = 30, + start_row = 78 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterRed", + start_col = 31, + start_row = 78 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterRed", + start_col = 33, + start_row = 78 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterBlue", + start_col = 8, + start_row = 79 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterBlue", + start_col = 8, + start_row = 79 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterYellow", + start_col = 11, + start_row = 79 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterBlue", + start_col = 11, + start_row = 79 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterYellow", + start_col = 8, + start_row = 80 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterYellow", + start_col = 10, + start_row = 80 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 18, + start_row = 81 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterYellow", + start_col = 23, + start_row = 81 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterYellow", + start_col = 7, + start_row = 82 + }, { + end_col = 39, + end_row = 39, + hl_group = "RainbowDelimiterBlue", + start_col = 38, + start_row = 82 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterOrange", + start_col = 39, + start_row = 82 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterGreen", + start_col = 40, + start_row = 82 + }, { + end_col = 42, + end_row = 42, + hl_group = "RainbowDelimiterViolet", + start_col = 41, + start_row = 82 + }, { + end_col = 44, + end_row = 44, + hl_group = "RainbowDelimiterViolet", + start_col = 43, + start_row = 82 + }, { + end_col = 45, + end_row = 45, + hl_group = "RainbowDelimiterGreen", + start_col = 44, + start_row = 82 + }, { + end_col = 46, + end_row = 46, + hl_group = "RainbowDelimiterOrange", + start_col = 45, + start_row = 82 + }, { + end_col = 47, + end_row = 47, + hl_group = "RainbowDelimiterBlue", + start_col = 46, + start_row = 82 + }, { + end_col = 59, + end_row = 59, + hl_group = "RainbowDelimiterYellow", + start_col = 58, + start_row = 82 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 83 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterYellow", + start_col = 13, + start_row = 83 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterBlue", + start_col = 17, + start_row = 83 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterBlue", + start_col = 17, + start_row = 83 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterYellow", + start_col = 21, + start_row = 83 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterBlue", + start_col = 21, + start_row = 83 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterYellow", + start_col = 17, + start_row = 84 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterBlue", + start_col = 25, + start_row = 84 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterOrange", + start_col = 33, + start_row = 84 + }, { + end_col = 42, + end_row = 42, + hl_group = "RainbowDelimiterGreen", + start_col = 41, + start_row = 84 + }, { + end_col = 50, + end_row = 50, + hl_group = "RainbowDelimiterViolet", + start_col = 49, + start_row = 84 + }, { + end_col = 58, + end_row = 58, + hl_group = "RainbowDelimiterCyan", + start_col = 57, + start_row = 84 + }, { + end_col = 60, + end_row = 60, + hl_group = "RainbowDelimiterCyan", + start_col = 59, + start_row = 84 + }, { + end_col = 61, + end_row = 61, + hl_group = "RainbowDelimiterViolet", + start_col = 60, + start_row = 84 + }, { + end_col = 62, + end_row = 62, + hl_group = "RainbowDelimiterGreen", + start_col = 61, + start_row = 84 + }, { + end_col = 63, + end_row = 63, + hl_group = "RainbowDelimiterOrange", + start_col = 62, + start_row = 84 + }, { + end_col = 64, + end_row = 64, + hl_group = "RainbowDelimiterBlue", + start_col = 63, + start_row = 84 + }, { + end_col = 65, + end_row = 65, + hl_group = "RainbowDelimiterYellow", + start_col = 64, + start_row = 84 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 86 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/cue/rainbow-delimiters/regular.cue.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/cue/rainbow-delimiters/regular.cue.lua new file mode 100644 index 00000000..57c0f835 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/cue/rainbow-delimiters/regular.cue.lua @@ -0,0 +1,207 @@ +return { + cue = { { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterRed", + start_col = 7, + start_row = 2 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 4 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterRed", + start_col = 8, + start_row = 6 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterYellow", + start_col = 29, + start_row = 8 + }, { + end_col = 47, + end_row = 47, + hl_group = "RainbowDelimiterBlue", + start_col = 46, + start_row = 8 + }, { + end_col = 52, + end_row = 52, + hl_group = "RainbowDelimiterBlue", + start_col = 51, + start_row = 8 + }, { + end_col = 53, + end_row = 53, + hl_group = "RainbowDelimiterYellow", + start_col = 52, + start_row = 8 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 9 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterRed", + start_col = 15, + start_row = 11 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterRed", + start_col = 28, + start_row = 11 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterRed", + start_col = 9, + start_row = 15 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterRed", + start_col = 16, + start_row = 15 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterRed", + start_col = 20, + start_row = 15 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterRed", + start_col = 33, + start_row = 15 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterRed", + start_col = 7, + start_row = 17 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterRed", + start_col = 14, + start_row = 17 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterRed", + start_col = 17, + start_row = 17 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterRed", + start_col = 28, + start_row = 17 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterRed", + start_col = 7, + start_row = 18 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterYellow", + start_col = 6, + start_row = 19 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterYellow", + start_col = 7, + start_row = 19 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterYellow", + start_col = 6, + start_row = 20 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterYellow", + start_col = 7, + start_row = 20 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 21 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterRed", + start_col = 27, + start_row = 23 + }, { + end_col = 44, + end_row = 44, + hl_group = "RainbowDelimiterRed", + start_col = 43, + start_row = 23 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterRed", + start_col = 7, + start_row = 24 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterRed", + start_col = 13, + start_row = 24 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterRed", + start_col = 14, + start_row = 26 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterRed", + start_col = 19, + start_row = 26 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterRed", + start_col = 23, + start_row = 26 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterYellow", + start_col = 32, + start_row = 26 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterYellow", + start_col = 34, + start_row = 26 + }, { + end_col = 36, + end_row = 36, + hl_group = "RainbowDelimiterRed", + start_col = 35, + start_row = 26 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/dart/rainbow-delimiters/regular.dart.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/dart/rainbow-delimiters/regular.dart.lua new file mode 100644 index 00000000..0d8bdad1 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/dart/rainbow-delimiters/regular.dart.lua @@ -0,0 +1,315 @@ +return { + dart = { { + end_col = 45, + end_row = 45, + hl_group = "RainbowDelimiterRed", + start_col = 44, + start_row = 2 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 18, + start_row = 8 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterBlue", + start_col = 19, + start_row = 8 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 14 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 3, + start_row = 14 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterYellow", + start_col = 14, + start_row = 17 + }, { + end_col = 36, + end_row = 36, + hl_group = "RainbowDelimiterYellow", + start_col = 35, + start_row = 17 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterYellow", + start_col = 37, + start_row = 17 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterBlue", + start_col = 17, + start_row = 18 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterBlue", + start_col = 39, + start_row = 18 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterBlue", + start_col = 26, + start_row = 19 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterBlue", + start_col = 34, + start_row = 19 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterBlue", + start_col = 26, + start_row = 20 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterOrange", + start_col = 13, + start_row = 21 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterOrange", + start_col = 14, + start_row = 21 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterOrange", + start_col = 29, + start_row = 21 + }, { + end_col = 45, + end_row = 45, + hl_group = "RainbowDelimiterOrange", + start_col = 44, + start_row = 21 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterOrange", + start_col = 17, + start_row = 22 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterGreen", + start_col = 22, + start_row = 23 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterViolet", + start_col = 39, + start_row = 24 + }, { + end_col = 44, + end_row = 44, + hl_group = "RainbowDelimiterViolet", + start_col = 43, + start_row = 24 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterViolet", + start_col = 23, + start_row = 25 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterCyan", + start_col = 22, + start_row = 26 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterRed", + start_col = 28, + start_row = 27 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterYellow", + start_col = 28, + start_row = 28 + }, { + end_col = 36, + end_row = 36, + hl_group = "RainbowDelimiterBlue", + start_col = 35, + start_row = 29 + }, { + end_col = 55, + end_row = 55, + hl_group = "RainbowDelimiterBlue", + start_col = 54, + start_row = 29 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterYellow", + start_col = 16, + start_row = 30 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterRed", + start_col = 14, + start_row = 31 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterRed", + start_col = 21, + start_row = 32 + }, { + end_col = 46, + end_row = 46, + hl_group = "RainbowDelimiterYellow", + start_col = 45, + start_row = 33 + }, { + end_col = 50, + end_row = 50, + hl_group = "RainbowDelimiterYellow", + start_col = 49, + start_row = 33 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterYellow", + start_col = 29, + start_row = 34 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterBlue", + start_col = 28, + start_row = 35 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterOrange", + start_col = 24, + start_row = 36 + }, { + end_col = 67, + end_row = 67, + hl_group = "RainbowDelimiterGreen", + start_col = 66, + start_row = 38 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterGreen", + start_col = 22, + start_row = 41 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterOrange", + start_col = 20, + start_row = 42 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterOrange", + start_col = 34, + start_row = 43 + }, { + end_col = 45, + end_row = 45, + hl_group = "RainbowDelimiterOrange", + start_col = 44, + start_row = 43 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterOrange", + start_col = 24, + start_row = 44 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterOrange", + start_col = 33, + start_row = 44 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterBlue", + start_col = 18, + start_row = 45 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterYellow", + start_col = 16, + start_row = 46 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterRed", + start_col = 14, + start_row = 47 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterCyan", + start_col = 12, + start_row = 48 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterViolet", + start_col = 10, + start_row = 49 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterGreen", + start_col = 8, + start_row = 50 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterOrange", + start_col = 6, + start_row = 51 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterBlue", + start_col = 4, + start_row = 52 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 53 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 54 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/elixir/rainbow-delimiters/regular.exs.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/elixir/rainbow-delimiters/regular.exs.lua new file mode 100644 index 00000000..5260f4a5 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/elixir/rainbow-delimiters/regular.exs.lua @@ -0,0 +1,550 @@ +return { + elixir = { { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterRed", + start_col = 23, + start_row = 5 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterYellow", + start_col = 24, + start_row = 5 + }, { + end_col = 37, + end_row = 37, + hl_group = "RainbowDelimiterYellow", + start_col = 36, + start_row = 5 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterRed", + start_col = 37, + start_row = 5 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterRed", + start_col = 36, + start_row = 6 + }, { + end_col = 43, + end_row = 43, + hl_group = "RainbowDelimiterRed", + start_col = 42, + start_row = 6 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterRed", + start_col = 15, + start_row = 7 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterYellow", + start_col = 16, + start_row = 7 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterBlue", + start_col = 17, + start_row = 7 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterOrange", + start_col = 22, + start_row = 7 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterOrange", + start_col = 28, + start_row = 7 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterBlue", + start_col = 29, + start_row = 7 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterYellow", + start_col = 30, + start_row = 7 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterRed", + start_col = 31, + start_row = 7 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterRed", + start_col = 23, + start_row = 10 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterYellow", + start_col = 24, + start_row = 10 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterYellow", + start_col = 29, + start_row = 10 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterRed", + start_col = 30, + start_row = 10 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterRed", + start_col = 36, + start_row = 11 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterRed", + start_col = 39, + start_row = 11 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterRed", + start_col = 12, + start_row = 12 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterYellow", + start_col = 13, + start_row = 12 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterBlue", + start_col = 14, + start_row = 12 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterOrange", + start_col = 19, + start_row = 12 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterOrange", + start_col = 25, + start_row = 12 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterBlue", + start_col = 26, + start_row = 12 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterYellow", + start_col = 27, + start_row = 12 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterRed", + start_col = 28, + start_row = 12 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterRed", + start_col = 23, + start_row = 15 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterYellow", + start_col = 24, + start_row = 15 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterYellow", + start_col = 33, + start_row = 15 + }, { + end_col = 36, + end_row = 36, + hl_group = "RainbowDelimiterRed", + start_col = 35, + start_row = 15 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterRed", + start_col = 36, + start_row = 16 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterRed", + start_col = 39, + start_row = 16 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterRed", + start_col = 12, + start_row = 17 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterYellow", + start_col = 13, + start_row = 17 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterBlue", + start_col = 14, + start_row = 17 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterOrange", + start_col = 19, + start_row = 17 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterOrange", + start_col = 25, + start_row = 17 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterBlue", + start_col = 26, + start_row = 17 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterYellow", + start_col = 27, + start_row = 17 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterRed", + start_col = 28, + start_row = 17 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterRed", + start_col = 23, + start_row = 20 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterYellow", + start_col = 24, + start_row = 20 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterYellow", + start_col = 25, + start_row = 20 + }, { + end_col = 36, + end_row = 36, + hl_group = "RainbowDelimiterYellow", + start_col = 35, + start_row = 20 + }, { + end_col = 37, + end_row = 37, + hl_group = "RainbowDelimiterRed", + start_col = 36, + start_row = 20 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterRed", + start_col = 36, + start_row = 21 + }, { + end_col = 43, + end_row = 43, + hl_group = "RainbowDelimiterRed", + start_col = 42, + start_row = 21 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterRed", + start_col = 15, + start_row = 22 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterYellow", + start_col = 16, + start_row = 22 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterBlue", + start_col = 17, + start_row = 22 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterOrange", + start_col = 22, + start_row = 22 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterOrange", + start_col = 28, + start_row = 22 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterBlue", + start_col = 29, + start_row = 22 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterYellow", + start_col = 30, + start_row = 22 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterRed", + start_col = 31, + start_row = 22 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterRed", + start_col = 21, + start_row = 25 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterRed", + start_col = 28, + start_row = 25 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 11, + start_row = 26 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterYellow", + start_col = 15, + start_row = 26 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterBlue", + start_col = 19, + start_row = 26 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterOrange", + start_col = 23, + start_row = 26 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterOrange", + start_col = 25, + start_row = 26 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterBlue", + start_col = 26, + start_row = 26 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterYellow", + start_col = 27, + start_row = 26 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterRed", + start_col = 28, + start_row = 26 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterRed", + start_col = 15, + start_row = 31 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterYellow", + start_col = 16, + start_row = 31 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterBlue", + start_col = 26, + start_row = 31 + }, { + end_col = 37, + end_row = 37, + hl_group = "RainbowDelimiterOrange", + start_col = 36, + start_row = 31 + }, { + end_col = 47, + end_row = 47, + hl_group = "RainbowDelimiterGreen", + start_col = 46, + start_row = 31 + }, { + end_col = 48, + end_row = 48, + hl_group = "RainbowDelimiterGreen", + start_col = 47, + start_row = 31 + }, { + end_col = 49, + end_row = 49, + hl_group = "RainbowDelimiterOrange", + start_col = 48, + start_row = 31 + }, { + end_col = 50, + end_row = 50, + hl_group = "RainbowDelimiterBlue", + start_col = 49, + start_row = 31 + }, { + end_col = 51, + end_row = 51, + hl_group = "RainbowDelimiterYellow", + start_col = 50, + start_row = 31 + }, { + end_col = 52, + end_row = 52, + hl_group = "RainbowDelimiterRed", + start_col = 51, + start_row = 31 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterRed", + start_col = 15, + start_row = 34 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterYellow", + start_col = 16, + start_row = 34 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterYellow", + start_col = 17, + start_row = 34 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterBlue", + start_col = 31, + start_row = 34 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterBlue", + start_col = 32, + start_row = 34 + }, { + end_col = 47, + end_row = 47, + hl_group = "RainbowDelimiterOrange", + start_col = 46, + start_row = 34 + }, { + end_col = 48, + end_row = 48, + hl_group = "RainbowDelimiterOrange", + start_col = 47, + start_row = 34 + }, { + end_col = 62, + end_row = 62, + hl_group = "RainbowDelimiterGreen", + start_col = 61, + start_row = 34 + }, { + end_col = 63, + end_row = 63, + hl_group = "RainbowDelimiterGreen", + start_col = 62, + start_row = 34 + }, { + end_col = 64, + end_row = 64, + hl_group = "RainbowDelimiterGreen", + start_col = 63, + start_row = 34 + }, { + end_col = 65, + end_row = 65, + hl_group = "RainbowDelimiterOrange", + start_col = 64, + start_row = 34 + }, { + end_col = 66, + end_row = 66, + hl_group = "RainbowDelimiterBlue", + start_col = 65, + start_row = 34 + }, { + end_col = 67, + end_row = 67, + hl_group = "RainbowDelimiterYellow", + start_col = 66, + start_row = 34 + }, { + end_col = 68, + end_row = 68, + hl_group = "RainbowDelimiterRed", + start_col = 67, + start_row = 34 + } }, + markdown = {} +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/elm/rainbow-delimiters/Regular.elm.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/elm/rainbow-delimiters/Regular.elm.lua new file mode 100644 index 00000000..3c449161 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/elm/rainbow-delimiters/Regular.elm.lua @@ -0,0 +1,819 @@ +return { + elm = { { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterRed", + start_col = 24, + start_row = 0 + }, { + end_col = 36, + end_row = 36, + hl_group = "RainbowDelimiterYellow", + start_col = 35, + start_row = 0 + }, { + end_col = 39, + end_row = 39, + hl_group = "RainbowDelimiterYellow", + start_col = 38, + start_row = 0 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterRed", + start_col = 39, + start_row = 0 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterRed", + start_col = 24, + start_row = 2 + }, { + end_col = 36, + end_row = 36, + hl_group = "RainbowDelimiterYellow", + start_col = 35, + start_row = 2 + }, { + end_col = 39, + end_row = 39, + hl_group = "RainbowDelimiterYellow", + start_col = 38, + start_row = 2 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterRed", + start_col = 39, + start_row = 2 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterRed", + start_col = 27, + start_row = 3 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterYellow", + start_col = 28, + start_row = 3 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterYellow", + start_col = 32, + start_row = 3 + }, { + end_col = 36, + end_row = 36, + hl_group = "RainbowDelimiterYellow", + start_col = 35, + start_row = 3 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterYellow", + start_col = 39, + start_row = 3 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterRed", + start_col = 40, + start_row = 3 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterRed", + start_col = 4, + start_row = 11 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterYellow", + start_col = 10, + start_row = 11 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterBlue", + start_col = 22, + start_row = 11 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterOrange", + start_col = 29, + start_row = 11 + }, { + end_col = 50, + end_row = 50, + hl_group = "RainbowDelimiterOrange", + start_col = 49, + start_row = 11 + }, { + end_col = 51, + end_row = 51, + hl_group = "RainbowDelimiterBlue", + start_col = 50, + start_row = 11 + }, { + end_col = 53, + end_row = 53, + hl_group = "RainbowDelimiterYellow", + start_col = 52, + start_row = 11 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterYellow", + start_col = 10, + start_row = 12 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterBlue", + start_col = 17, + start_row = 12 + }, { + end_col = 37, + end_row = 37, + hl_group = "RainbowDelimiterBlue", + start_col = 36, + start_row = 12 + }, { + end_col = 39, + end_row = 39, + hl_group = "RainbowDelimiterYellow", + start_col = 38, + start_row = 12 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterYellow", + start_col = 10, + start_row = 13 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterBlue", + start_col = 16, + start_row = 13 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterBlue", + start_col = 29, + start_row = 13 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterYellow", + start_col = 31, + start_row = 13 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterRed", + start_col = 4, + start_row = 14 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterYellow", + start_col = 24, + start_row = 17 + }, { + end_col = 36, + end_row = 36, + hl_group = "RainbowDelimiterYellow", + start_col = 35, + start_row = 17 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterRed", + start_col = 40, + start_row = 17 + }, { + end_col = 49, + end_row = 49, + hl_group = "RainbowDelimiterYellow", + start_col = 48, + start_row = 17 + }, { + end_col = 60, + end_row = 60, + hl_group = "RainbowDelimiterYellow", + start_col = 59, + start_row = 17 + }, { + end_col = 61, + end_row = 61, + hl_group = "RainbowDelimiterRed", + start_col = 60, + start_row = 17 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterRed", + start_col = 33, + start_row = 22 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterYellow", + start_col = 39, + start_row = 22 + }, { + end_col = 52, + end_row = 52, + hl_group = "RainbowDelimiterBlue", + start_col = 51, + start_row = 22 + }, { + end_col = 66, + end_row = 66, + hl_group = "RainbowDelimiterBlue", + start_col = 65, + start_row = 22 + }, { + end_col = 68, + end_row = 68, + hl_group = "RainbowDelimiterYellow", + start_col = 67, + start_row = 22 + }, { + end_col = 69, + end_row = 69, + hl_group = "RainbowDelimiterRed", + start_col = 68, + start_row = 22 + }, { + end_col = 79, + end_row = 79, + hl_group = "RainbowDelimiterRed", + start_col = 78, + start_row = 22 + }, { + end_col = 93, + end_row = 93, + hl_group = "RainbowDelimiterRed", + start_col = 92, + start_row = 22 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterRed", + start_col = 19, + start_row = 24 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterYellow", + start_col = 21, + start_row = 24 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterYellow", + start_col = 34, + start_row = 24 + }, { + end_col = 49, + end_row = 49, + hl_group = "RainbowDelimiterYellow", + start_col = 48, + start_row = 24 + }, { + end_col = 51, + end_row = 51, + hl_group = "RainbowDelimiterBlue", + start_col = 50, + start_row = 24 + }, { + end_col = 58, + end_row = 58, + hl_group = "RainbowDelimiterBlue", + start_col = 57, + start_row = 24 + }, { + end_col = 63, + end_row = 63, + hl_group = "RainbowDelimiterBlue", + start_col = 62, + start_row = 24 + }, { + end_col = 70, + end_row = 70, + hl_group = "RainbowDelimiterBlue", + start_col = 69, + start_row = 24 + }, { + end_col = 71, + end_row = 71, + hl_group = "RainbowDelimiterYellow", + start_col = 70, + start_row = 24 + }, { + end_col = 80, + end_row = 80, + hl_group = "RainbowDelimiterRed", + start_col = 79, + start_row = 24 + }, { + end_col = 82, + end_row = 82, + hl_group = "RainbowDelimiterRed", + start_col = 81, + start_row = 24 + }, { + end_col = 99, + end_row = 99, + hl_group = "RainbowDelimiterRed", + start_col = 98, + start_row = 24 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterRed", + start_col = 19, + start_row = 27 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterRed", + start_col = 33, + start_row = 27 + }, { + end_col = 50, + end_row = 50, + hl_group = "RainbowDelimiterRed", + start_col = 49, + start_row = 27 + }, { + end_col = 62, + end_row = 62, + hl_group = "RainbowDelimiterYellow", + start_col = 61, + start_row = 27 + }, { + end_col = 72, + end_row = 72, + hl_group = "RainbowDelimiterYellow", + start_col = 71, + start_row = 27 + }, { + end_col = 73, + end_row = 73, + hl_group = "RainbowDelimiterRed", + start_col = 72, + start_row = 27 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterRed", + start_col = 17, + start_row = 28 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterRed", + start_col = 21, + start_row = 28 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterRed", + start_col = 23, + start_row = 28 + }, { + end_col = 36, + end_row = 36, + hl_group = "RainbowDelimiterYellow", + start_col = 35, + start_row = 28 + }, { + end_col = 48, + end_row = 48, + hl_group = "RainbowDelimiterBlue", + start_col = 47, + start_row = 28 + }, { + end_col = 49, + end_row = 49, + hl_group = "RainbowDelimiterOrange", + start_col = 48, + start_row = 28 + }, { + end_col = 53, + end_row = 53, + hl_group = "RainbowDelimiterOrange", + start_col = 52, + start_row = 28 + }, { + end_col = 59, + end_row = 59, + hl_group = "RainbowDelimiterBlue", + start_col = 58, + start_row = 28 + }, { + end_col = 60, + end_row = 60, + hl_group = "RainbowDelimiterYellow", + start_col = 59, + start_row = 28 + }, { + end_col = 61, + end_row = 61, + hl_group = "RainbowDelimiterRed", + start_col = 60, + start_row = 28 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterRed", + start_col = 4, + start_row = 29 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterYellow", + start_col = 9, + start_row = 29 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterYellow", + start_col = 15, + start_row = 29 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterRed", + start_col = 16, + start_row = 29 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterRed", + start_col = 20, + start_row = 29 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterYellow", + start_col = 25, + start_row = 29 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterBlue", + start_col = 30, + start_row = 29 + }, { + end_col = 39, + end_row = 39, + hl_group = "RainbowDelimiterBlue", + start_col = 38, + start_row = 29 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterYellow", + start_col = 39, + start_row = 29 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterRed", + start_col = 40, + start_row = 29 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterRed", + start_col = 39, + start_row = 32 + }, { + end_col = 46, + end_row = 46, + hl_group = "RainbowDelimiterYellow", + start_col = 45, + start_row = 32 + }, { + end_col = 75, + end_row = 75, + hl_group = "RainbowDelimiterYellow", + start_col = 74, + start_row = 32 + }, { + end_col = 76, + end_row = 76, + hl_group = "RainbowDelimiterRed", + start_col = 75, + start_row = 32 + }, { + end_col = 87, + end_row = 87, + hl_group = "RainbowDelimiterRed", + start_col = 86, + start_row = 32 + }, { + end_col = 93, + end_row = 93, + hl_group = "RainbowDelimiterYellow", + start_col = 92, + start_row = 32 + }, { + end_col = 99, + end_row = 99, + hl_group = "RainbowDelimiterBlue", + start_col = 98, + start_row = 32 + }, { + end_col = 128, + end_row = 128, + hl_group = "RainbowDelimiterBlue", + start_col = 127, + start_row = 32 + }, { + end_col = 129, + end_row = 129, + hl_group = "RainbowDelimiterYellow", + start_col = 128, + start_row = 32 + }, { + end_col = 130, + end_row = 130, + hl_group = "RainbowDelimiterRed", + start_col = 129, + start_row = 32 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterRed", + start_col = 9, + start_row = 34 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterRed", + start_col = 16, + start_row = 34 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterRed", + start_col = 8, + start_row = 35 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterYellow", + start_col = 10, + start_row = 35 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterBlue", + start_col = 12, + start_row = 35 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterOrange", + start_col = 14, + start_row = 35 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterOrange", + start_col = 21, + start_row = 35 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterBlue", + start_col = 23, + start_row = 35 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterYellow", + start_col = 25, + start_row = 35 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterRed", + start_col = 27, + start_row = 35 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterRed", + start_col = 17, + start_row = 36 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterRed", + start_col = 24, + start_row = 36 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterRed", + start_col = 16, + start_row = 37 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 18, + start_row = 37 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterBlue", + start_col = 23, + start_row = 37 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterOrange", + start_col = 30, + start_row = 37 + }, { + end_col = 39, + end_row = 39, + hl_group = "RainbowDelimiterOrange", + start_col = 38, + start_row = 37 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterBlue", + start_col = 40, + start_row = 37 + }, { + end_col = 43, + end_row = 43, + hl_group = "RainbowDelimiterYellow", + start_col = 42, + start_row = 37 + }, { + end_col = 46, + end_row = 46, + hl_group = "RainbowDelimiterYellow", + start_col = 45, + start_row = 37 + }, { + end_col = 51, + end_row = 51, + hl_group = "RainbowDelimiterBlue", + start_col = 50, + start_row = 37 + }, { + end_col = 55, + end_row = 55, + hl_group = "RainbowDelimiterBlue", + start_col = 54, + start_row = 37 + }, { + end_col = 57, + end_row = 57, + hl_group = "RainbowDelimiterYellow", + start_col = 56, + start_row = 37 + }, { + end_col = 59, + end_row = 59, + hl_group = "RainbowDelimiterRed", + start_col = 58, + start_row = 37 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterRed", + start_col = 24, + start_row = 39 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterYellow", + start_col = 26, + start_row = 39 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterBlue", + start_col = 28, + start_row = 39 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterOrange", + start_col = 34, + start_row = 39 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterGreen", + start_col = 39, + start_row = 39 + }, { + end_col = 47, + end_row = 47, + hl_group = "RainbowDelimiterViolet", + start_col = 46, + start_row = 39 + }, { + end_col = 54, + end_row = 54, + hl_group = "RainbowDelimiterViolet", + start_col = 53, + start_row = 39 + }, { + end_col = 56, + end_row = 56, + hl_group = "RainbowDelimiterGreen", + start_col = 55, + start_row = 39 + }, { + end_col = 58, + end_row = 58, + hl_group = "RainbowDelimiterOrange", + start_col = 57, + start_row = 39 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterOrange", + start_col = 34, + start_row = 40 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterGreen", + start_col = 39, + start_row = 40 + }, { + end_col = 49, + end_row = 49, + hl_group = "RainbowDelimiterGreen", + start_col = 48, + start_row = 40 + }, { + end_col = 51, + end_row = 51, + hl_group = "RainbowDelimiterOrange", + start_col = 50, + start_row = 40 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterOrange", + start_col = 34, + start_row = 41 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterGreen", + start_col = 40, + start_row = 41 + }, { + end_col = 54, + end_row = 54, + hl_group = "RainbowDelimiterGreen", + start_col = 53, + start_row = 41 + }, { + end_col = 56, + end_row = 56, + hl_group = "RainbowDelimiterOrange", + start_col = 55, + start_row = 41 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterBlue", + start_col = 28, + start_row = 42 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterYellow", + start_col = 26, + start_row = 43 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterRed", + start_col = 24, + start_row = 44 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/fennel/rainbow-delimiters/regular.fnl.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/fennel/rainbow-delimiters/regular.fnl.lua new file mode 100644 index 00000000..f0e211f7 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/fennel/rainbow-delimiters/regular.fnl.lua @@ -0,0 +1,1647 @@ +return { + fennel = { { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 0 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterYellow", + start_col = 7, + start_row = 0 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterYellow", + start_col = 22, + start_row = 0 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterRed", + start_col = 23, + start_row = 0 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 2 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 2 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterBlue", + start_col = 17, + start_row = 2 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterOrange", + start_col = 22, + start_row = 2 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterGreen", + start_col = 27, + start_row = 2 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterViolet", + start_col = 32, + start_row = 2 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterViolet", + start_col = 33, + start_row = 2 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterGreen", + start_col = 34, + start_row = 2 + }, { + end_col = 36, + end_row = 36, + hl_group = "RainbowDelimiterOrange", + start_col = 35, + start_row = 2 + }, { + end_col = 37, + end_row = 37, + hl_group = "RainbowDelimiterBlue", + start_col = 36, + start_row = 2 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterYellow", + start_col = 37, + start_row = 2 + }, { + end_col = 39, + end_row = 39, + hl_group = "RainbowDelimiterRed", + start_col = 38, + start_row = 2 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 4 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterYellow", + start_col = 5, + start_row = 4 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterBlue", + start_col = 22, + start_row = 4 + }, { + end_col = 36, + end_row = 36, + hl_group = "RainbowDelimiterBlue", + start_col = 35, + start_row = 4 + }, { + end_col = 37, + end_row = 37, + hl_group = "RainbowDelimiterYellow", + start_col = 36, + start_row = 4 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterRed", + start_col = 5, + start_row = 5 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 8 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterYellow", + start_col = 5, + start_row = 8 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterBlue", + start_col = 6, + start_row = 8 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterBlue", + start_col = 8, + start_row = 8 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterBlue", + start_col = 10, + start_row = 8 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterOrange", + start_col = 14, + start_row = 8 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterGreen", + start_col = 18, + start_row = 8 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterGreen", + start_col = 23, + start_row = 8 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterOrange", + start_col = 24, + start_row = 8 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterBlue", + start_col = 25, + start_row = 8 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterYellow", + start_col = 32, + start_row = 8 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 9 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterYellow", + start_col = 10, + start_row = 9 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 11, + start_row = 9 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 11 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 3, + start_row = 11 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterBlue", + start_col = 6, + start_row = 11 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterOrange", + start_col = 9, + start_row = 11 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterGreen", + start_col = 12, + start_row = 11 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterGreen", + start_col = 13, + start_row = 11 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterOrange", + start_col = 14, + start_row = 11 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterBlue", + start_col = 15, + start_row = 11 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterYellow", + start_col = 16, + start_row = 11 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterRed", + start_col = 17, + start_row = 11 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 14 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterRed", + start_col = 7, + start_row = 15 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 18 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterYellow", + start_col = 13, + start_row = 18 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterYellow", + start_col = 19, + start_row = 18 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 20 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterBlue", + start_col = 15, + start_row = 20 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterOrange", + start_col = 19, + start_row = 21 + }, { + end_col = 49, + end_row = 49, + hl_group = "RainbowDelimiterOrange", + start_col = 48, + start_row = 21 + }, { + end_col = 50, + end_row = 50, + hl_group = "RainbowDelimiterBlue", + start_col = 49, + start_row = 21 + }, { + end_col = 51, + end_row = 51, + hl_group = "RainbowDelimiterYellow", + start_col = 50, + start_row = 21 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 24 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterBlue", + start_col = 8, + start_row = 24 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterOrange", + start_col = 14, + start_row = 24 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterOrange", + start_col = 40, + start_row = 24 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterBlue", + start_col = 18, + start_row = 25 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterBlue", + start_col = 4, + start_row = 26 + }, { + end_col = 63, + end_row = 63, + hl_group = "RainbowDelimiterBlue", + start_col = 62, + start_row = 26 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterBlue", + start_col = 4, + start_row = 27 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterBlue", + start_col = 21, + start_row = 27 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterYellow", + start_col = 22, + start_row = 27 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 29 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterBlue", + start_col = 7, + start_row = 29 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterOrange", + start_col = 15, + start_row = 29 + }, { + end_col = 54, + end_row = 54, + hl_group = "RainbowDelimiterGreen", + start_col = 53, + start_row = 29 + }, { + end_col = 55, + end_row = 55, + hl_group = "RainbowDelimiterGreen", + start_col = 54, + start_row = 29 + }, { + end_col = 56, + end_row = 56, + hl_group = "RainbowDelimiterOrange", + start_col = 55, + start_row = 29 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterOrange", + start_col = 8, + start_row = 30 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterOrange", + start_col = 13, + start_row = 30 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterOrange", + start_col = 15, + start_row = 30 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterOrange", + start_col = 28, + start_row = 30 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterBlue", + start_col = 29, + start_row = 30 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterBlue", + start_col = 4, + start_row = 31 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterBlue", + start_col = 14, + start_row = 31 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterYellow", + start_col = 15, + start_row = 31 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterRed", + start_col = 16, + start_row = 31 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 33 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 33 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterYellow", + start_col = 20, + start_row = 33 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 35 + }, { + end_col = 53, + end_row = 53, + hl_group = "RainbowDelimiterYellow", + start_col = 52, + start_row = 37 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 38 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterBlue", + start_col = 12, + start_row = 38 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterBlue", + start_col = 19, + start_row = 38 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterYellow", + start_col = 20, + start_row = 38 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 39 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterBlue", + start_col = 12, + start_row = 39 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterOrange", + start_col = 16, + start_row = 39 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterOrange", + start_col = 31, + start_row = 39 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterBlue", + start_col = 32, + start_row = 39 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterYellow", + start_col = 33, + start_row = 39 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 40 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterBlue", + start_col = 8, + start_row = 40 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterOrange", + start_col = 11, + start_row = 40 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterOrange", + start_col = 20, + start_row = 40 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterOrange", + start_col = 22, + start_row = 40 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterGreen", + start_col = 30, + start_row = 40 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterGreen", + start_col = 34, + start_row = 40 + }, { + end_col = 36, + end_row = 36, + hl_group = "RainbowDelimiterOrange", + start_col = 35, + start_row = 40 + }, { + end_col = 37, + end_row = 37, + hl_group = "RainbowDelimiterBlue", + start_col = 36, + start_row = 40 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterBlue", + start_col = 4, + start_row = 41 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterOrange", + start_col = 7, + start_row = 43 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterGreen", + start_col = 13, + start_row = 43 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterViolet", + start_col = 18, + start_row = 43 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterViolet", + start_col = 33, + start_row = 43 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterViolet", + start_col = 18, + start_row = 44 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterCyan", + start_col = 28, + start_row = 44 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterCyan", + start_col = 39, + start_row = 44 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterViolet", + start_col = 40, + start_row = 44 + }, { + end_col = 42, + end_row = 42, + hl_group = "RainbowDelimiterGreen", + start_col = 41, + start_row = 44 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterGreen", + start_col = 9, + start_row = 45 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterViolet", + start_col = 20, + start_row = 45 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterCyan", + start_col = 33, + start_row = 45 + }, { + end_col = 46, + end_row = 46, + hl_group = "RainbowDelimiterCyan", + start_col = 45, + start_row = 45 + }, { + end_col = 47, + end_row = 47, + hl_group = "RainbowDelimiterViolet", + start_col = 46, + start_row = 45 + }, { + end_col = 48, + end_row = 48, + hl_group = "RainbowDelimiterGreen", + start_col = 47, + start_row = 45 + }, { + end_col = 49, + end_row = 49, + hl_group = "RainbowDelimiterOrange", + start_col = 48, + start_row = 45 + }, { + end_col = 50, + end_row = 50, + hl_group = "RainbowDelimiterBlue", + start_col = 49, + start_row = 45 + }, { + end_col = 51, + end_row = 51, + hl_group = "RainbowDelimiterYellow", + start_col = 50, + start_row = 45 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterRed", + start_col = 5, + start_row = 46 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 48 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterYellow", + start_col = 16, + start_row = 48 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 18, + start_row = 48 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 49 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterBlue", + start_col = 6, + start_row = 49 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterBlue", + start_col = 8, + start_row = 49 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterBlue", + start_col = 4, + start_row = 50 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterOrange", + start_col = 8, + start_row = 50 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterOrange", + start_col = 10, + start_row = 50 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterOrange", + start_col = 12, + start_row = 50 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterOrange", + start_col = 20, + start_row = 50 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterBlue", + start_col = 21, + start_row = 50 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterYellow", + start_col = 22, + start_row = 50 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterRed", + start_col = 23, + start_row = 50 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 52 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterYellow", + start_col = 16, + start_row = 52 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 18, + start_row = 52 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 3, + start_row = 53 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterBlue", + start_col = 7, + start_row = 53 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterBlue", + start_col = 9, + start_row = 53 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterBlue", + start_col = 6, + start_row = 54 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterOrange", + start_col = 10, + start_row = 54 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterOrange", + start_col = 12, + start_row = 54 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterOrange", + start_col = 14, + start_row = 54 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterOrange", + start_col = 22, + start_row = 54 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterBlue", + start_col = 23, + start_row = 54 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterYellow", + start_col = 24, + start_row = 54 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterRed", + start_col = 25, + start_row = 54 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 56 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterYellow", + start_col = 5, + start_row = 56 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterYellow", + start_col = 9, + start_row = 56 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 57 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterBlue", + start_col = 7, + start_row = 57 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterBlue", + start_col = 11, + start_row = 57 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterBlue", + start_col = 4, + start_row = 58 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterOrange", + start_col = 9, + start_row = 58 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterOrange", + start_col = 13, + start_row = 58 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterOrange", + start_col = 6, + start_row = 59 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterOrange", + start_col = 14, + start_row = 59 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterBlue", + start_col = 15, + start_row = 59 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterYellow", + start_col = 16, + start_row = 59 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterRed", + start_col = 17, + start_row = 59 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 61 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterYellow", + start_col = 5, + start_row = 61 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterBlue", + start_col = 8, + start_row = 61 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterBlue", + start_col = 18, + start_row = 61 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterYellow", + start_col = 19, + start_row = 61 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 62 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 62 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterRed", + start_col = 15, + start_row = 62 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 64 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterYellow", + start_col = 5, + start_row = 64 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterBlue", + start_col = 6, + start_row = 64 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterBlue", + start_col = 12, + start_row = 64 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterBlue", + start_col = 14, + start_row = 64 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterBlue", + start_col = 27, + start_row = 64 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterYellow", + start_col = 28, + start_row = 64 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 65 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterYellow", + start_col = 10, + start_row = 65 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 11, + start_row = 65 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 67 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterYellow", + start_col = 7, + start_row = 67 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterYellow", + start_col = 25, + start_row = 67 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 68 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterBlue", + start_col = 5, + start_row = 68 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterBlue", + start_col = 7, + start_row = 68 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterYellow", + start_col = 10, + start_row = 68 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 68 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterYellow", + start_col = 27, + start_row = 68 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterRed", + start_col = 13, + start_row = 70 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 72 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterYellow", + start_col = 6, + start_row = 72 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterBlue", + start_col = 17, + start_row = 72 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterOrange", + start_col = 24, + start_row = 72 + }, { + end_col = 37, + end_row = 37, + hl_group = "RainbowDelimiterOrange", + start_col = 36, + start_row = 72 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterBlue", + start_col = 37, + start_row = 72 + }, { + end_col = 39, + end_row = 39, + hl_group = "RainbowDelimiterYellow", + start_col = 38, + start_row = 72 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 73 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 18, + start_row = 73 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterRed", + start_col = 19, + start_row = 73 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 75 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterYellow", + start_col = 5, + start_row = 75 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 75 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 76 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterYellow", + start_col = 10, + start_row = 76 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 11, + start_row = 76 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 78 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterYellow", + start_col = 13, + start_row = 78 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterYellow", + start_col = 25, + start_row = 78 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterRed", + start_col = 26, + start_row = 78 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 80 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterYellow", + start_col = 9, + start_row = 80 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterBlue", + start_col = 14, + start_row = 80 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterBlue", + start_col = 29, + start_row = 80 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterYellow", + start_col = 30, + start_row = 80 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 81 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterYellow", + start_col = 16, + start_row = 81 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterRed", + start_col = 17, + start_row = 81 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 83 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterYellow", + start_col = 10, + start_row = 83 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterBlue", + start_col = 15, + start_row = 83 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterBlue", + start_col = 30, + start_row = 83 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterYellow", + start_col = 31, + start_row = 83 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 84 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterYellow", + start_col = 8, + start_row = 84 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterRed", + start_col = 9, + start_row = 84 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 86 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterYellow", + start_col = 10, + start_row = 86 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterYellow", + start_col = 19, + start_row = 86 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 87 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterBlue", + start_col = 6, + start_row = 87 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterBlue", + start_col = 12, + start_row = 87 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterBlue", + start_col = 14, + start_row = 87 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterBlue", + start_col = 20, + start_row = 87 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterYellow", + start_col = 21, + start_row = 87 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterRed", + start_col = 22, + start_row = 87 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 89 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 89 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterBlue", + start_col = 23, + start_row = 89 + }, { + end_col = 39, + end_row = 39, + hl_group = "RainbowDelimiterBlue", + start_col = 38, + start_row = 89 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterYellow", + start_col = 39, + start_row = 89 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 90 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterYellow", + start_col = 10, + start_row = 90 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 11, + start_row = 90 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 92 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterYellow", + start_col = 13, + start_row = 92 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterYellow", + start_col = 23, + start_row = 92 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterYellow", + start_col = 25, + start_row = 92 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterYellow", + start_col = 31, + start_row = 92 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterRed", + start_col = 32, + start_row = 92 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 94 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 94 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterBlue", + start_col = 15, + start_row = 94 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterBlue", + start_col = 25, + start_row = 94 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterBlue", + start_col = 27, + start_row = 94 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterBlue", + start_col = 33, + start_row = 94 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterYellow", + start_col = 34, + start_row = 94 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterRed", + start_col = 37, + start_row = 94 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 95 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 95 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterBlue", + start_col = 9, + start_row = 95 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterOrange", + start_col = 22, + start_row = 95 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterOrange", + start_col = 32, + start_row = 95 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterOrange", + start_col = 34, + start_row = 95 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterOrange", + start_col = 40, + start_row = 95 + }, { + end_col = 42, + end_row = 42, + hl_group = "RainbowDelimiterBlue", + start_col = 41, + start_row = 95 + }, { + end_col = 43, + end_row = 43, + hl_group = "RainbowDelimiterYellow", + start_col = 42, + start_row = 95 + }, { + end_col = 46, + end_row = 46, + hl_group = "RainbowDelimiterRed", + start_col = 45, + start_row = 95 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/fish/rainbow-delimiters/regular.fish.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/fish/rainbow-delimiters/regular.fish.lua new file mode 100644 index 00000000..9fb16e2e --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/fish/rainbow-delimiters/regular.fish.lua @@ -0,0 +1,51 @@ +return { + fish = { { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterRed", + start_col = 28, + start_row = 0 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterRed", + start_col = 40, + start_row = 0 + }, { + end_col = 43, + end_row = 43, + hl_group = "RainbowDelimiterRed", + start_col = 42, + start_row = 0 + }, { + end_col = 52, + end_row = 52, + hl_group = "RainbowDelimiterRed", + start_col = 51, + start_row = 0 + }, { + end_col = 39, + end_row = 39, + hl_group = "RainbowDelimiterRed", + start_col = 38, + start_row = 2 + }, { + end_col = 44, + end_row = 44, + hl_group = "RainbowDelimiterRed", + start_col = 43, + start_row = 2 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterRed", + start_col = 16, + start_row = 4 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterRed", + start_col = 19, + start_row = 4 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/go/rainbow-delimiters/regular.go.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/go/rainbow-delimiters/regular.go.lua new file mode 100644 index 00000000..8a22b58a --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/go/rainbow-delimiters/regular.go.lua @@ -0,0 +1,964 @@ +return { + go = { { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterRed", + start_col = 7, + start_row = 2 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 6 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterRed", + start_col = 6, + start_row = 8 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 10 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterRed", + start_col = 17, + start_row = 12 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 17 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterRed", + start_col = 5, + start_row = 19 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterRed", + start_col = 12, + start_row = 19 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterRed", + start_col = 20, + start_row = 19 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterRed", + start_col = 21, + start_row = 19 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterRed", + start_col = 30, + start_row = 19 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterYellow", + start_col = 19, + start_row = 20 + }, { + end_col = 87, + end_row = 87, + hl_group = "RainbowDelimiterYellow", + start_col = 86, + start_row = 20 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 21 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterRed", + start_col = 16, + start_row = 23 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterRed", + start_col = 17, + start_row = 23 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterRed", + start_col = 5, + start_row = 25 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterRed", + start_col = 18, + start_row = 25 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterRed", + start_col = 23, + start_row = 25 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterRed", + start_col = 24, + start_row = 25 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterRed", + start_col = 40, + start_row = 25 + }, { + end_col = 53, + end_row = 53, + hl_group = "RainbowDelimiterYellow", + start_col = 52, + start_row = 25 + }, { + end_col = 55, + end_row = 55, + hl_group = "RainbowDelimiterYellow", + start_col = 54, + start_row = 25 + }, { + end_col = 57, + end_row = 57, + hl_group = "RainbowDelimiterRed", + start_col = 56, + start_row = 25 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterRed", + start_col = 5, + start_row = 26 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterRed", + start_col = 18, + start_row = 26 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterRed", + start_col = 24, + start_row = 26 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterRed", + start_col = 33, + start_row = 26 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterRed", + start_col = 40, + start_row = 26 + }, { + end_col = 44, + end_row = 44, + hl_group = "RainbowDelimiterYellow", + start_col = 43, + start_row = 26 + }, { + end_col = 46, + end_row = 46, + hl_group = "RainbowDelimiterYellow", + start_col = 45, + start_row = 26 + }, { + end_col = 50, + end_row = 50, + hl_group = "RainbowDelimiterYellow", + start_col = 49, + start_row = 26 + }, { + end_col = 52, + end_row = 52, + hl_group = "RainbowDelimiterYellow", + start_col = 51, + start_row = 26 + }, { + end_col = 57, + end_row = 57, + hl_group = "RainbowDelimiterYellow", + start_col = 56, + start_row = 26 + }, { + end_col = 59, + end_row = 59, + hl_group = "RainbowDelimiterYellow", + start_col = 58, + start_row = 26 + }, { + end_col = 63, + end_row = 63, + hl_group = "RainbowDelimiterYellow", + start_col = 62, + start_row = 26 + }, { + end_col = 65, + end_row = 65, + hl_group = "RainbowDelimiterYellow", + start_col = 64, + start_row = 26 + }, { + end_col = 67, + end_row = 67, + hl_group = "RainbowDelimiterRed", + start_col = 66, + start_row = 26 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterRed", + start_col = 5, + start_row = 27 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterRed", + start_col = 18, + start_row = 27 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterRed", + start_col = 24, + start_row = 27 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterRed", + start_col = 33, + start_row = 27 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterRed", + start_col = 40, + start_row = 27 + }, { + end_col = 51, + end_row = 51, + hl_group = "RainbowDelimiterYellow", + start_col = 50, + start_row = 27 + }, { + end_col = 53, + end_row = 53, + hl_group = "RainbowDelimiterYellow", + start_col = 52, + start_row = 27 + }, { + end_col = 67, + end_row = 67, + hl_group = "RainbowDelimiterYellow", + start_col = 66, + start_row = 27 + }, { + end_col = 69, + end_row = 69, + hl_group = "RainbowDelimiterYellow", + start_col = 68, + start_row = 27 + }, { + end_col = 80, + end_row = 80, + hl_group = "RainbowDelimiterRed", + start_col = 79, + start_row = 27 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterRed", + start_col = 14, + start_row = 29 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterYellow", + start_col = 26, + start_row = 29 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterYellow", + start_col = 27, + start_row = 29 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterRed", + start_col = 28, + start_row = 29 + }, { + end_col = 36, + end_row = 36, + hl_group = "RainbowDelimiterRed", + start_col = 35, + start_row = 29 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterYellow", + start_col = 22, + start_row = 30 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterBlue", + start_col = 12, + start_row = 32 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterOrange", + start_col = 34, + start_row = 32 + }, { + end_col = 43, + end_row = 43, + hl_group = "RainbowDelimiterOrange", + start_col = 42, + start_row = 32 + }, { + end_col = 44, + end_row = 44, + hl_group = "RainbowDelimiterBlue", + start_col = 43, + start_row = 32 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterBlue", + start_col = 12, + start_row = 35 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterBlue", + start_col = 37, + start_row = 35 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 37 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 38 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterRed", + start_col = 10, + start_row = 40 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterRed", + start_col = 34, + start_row = 40 + }, { + end_col = 36, + end_row = 36, + hl_group = "RainbowDelimiterRed", + start_col = 35, + start_row = 40 + }, { + end_col = 47, + end_row = 47, + hl_group = "RainbowDelimiterRed", + start_col = 46, + start_row = 40 + }, { + end_col = 51, + end_row = 51, + hl_group = "RainbowDelimiterRed", + start_col = 50, + start_row = 40 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterYellow", + start_col = 13, + start_row = 41 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterBlue", + start_col = 14, + start_row = 41 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterOrange", + start_col = 15, + start_row = 41 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterOrange", + start_col = 18, + start_row = 41 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterBlue", + start_col = 19, + start_row = 41 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterYellow", + start_col = 20, + start_row = 41 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 42 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterRed", + start_col = 9, + start_row = 44 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterRed", + start_col = 10, + start_row = 44 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterRed", + start_col = 12, + start_row = 44 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterYellow", + start_col = 28, + start_row = 45 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterYellow", + start_col = 32, + start_row = 45 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterYellow", + start_col = 10, + start_row = 47 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterYellow", + start_col = 11, + start_row = 47 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterYellow", + start_col = 16, + start_row = 47 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 48 + }, { + end_col = 43, + end_row = 43, + hl_group = "RainbowDelimiterBlue", + start_col = 42, + start_row = 48 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 49 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterBlue", + start_col = 30, + start_row = 49 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 50 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterBlue", + start_col = 34, + start_row = 50 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 51 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 53 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterBlue", + start_col = 16, + start_row = 53 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterOrange", + start_col = 22, + start_row = 53 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterOrange", + start_col = 25, + start_row = 53 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterBlue", + start_col = 26, + start_row = 53 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterYellow", + start_col = 27, + start_row = 53 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterYellow", + start_col = 14, + start_row = 54 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterYellow", + start_col = 16, + start_row = 54 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterYellow", + start_col = 23, + start_row = 54 + }, { + end_col = 43, + end_row = 43, + hl_group = "RainbowDelimiterYellow", + start_col = 42, + start_row = 54 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterYellow", + start_col = 14, + start_row = 56 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterYellow", + start_col = 21, + start_row = 56 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterYellow", + start_col = 29, + start_row = 56 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 59 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 59 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterBlue", + start_col = 24, + start_row = 60 + }, { + end_col = 56, + end_row = 56, + hl_group = "RainbowDelimiterBlue", + start_col = 55, + start_row = 60 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterBlue", + start_col = 24, + start_row = 61 + }, { + end_col = 51, + end_row = 51, + hl_group = "RainbowDelimiterBlue", + start_col = 50, + start_row = 61 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 62 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterYellow", + start_col = 5, + start_row = 64 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterBlue", + start_col = 15, + start_row = 65 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterBlue", + start_col = 16, + start_row = 65 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 66 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterYellow", + start_col = 5, + start_row = 69 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterBlue", + start_col = 6, + start_row = 70 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterOrange", + start_col = 7, + start_row = 71 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterGreen", + start_col = 8, + start_row = 72 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterViolet", + start_col = 9, + start_row = 73 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterCyan", + start_col = 15, + start_row = 74 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterRed", + start_col = 26, + start_row = 74 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterRed", + start_col = 32, + start_row = 74 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterCyan", + start_col = 33, + start_row = 74 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterCyan", + start_col = 33, + start_row = 75 + }, { + end_col = 37, + end_row = 37, + hl_group = "RainbowDelimiterRed", + start_col = 36, + start_row = 76 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterYellow", + start_col = 29, + start_row = 80 + }, { + end_col = 49, + end_row = 49, + hl_group = "RainbowDelimiterYellow", + start_col = 48, + start_row = 80 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterRed", + start_col = 7, + start_row = 81 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterCyan", + start_col = 6, + start_row = 82 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterViolet", + start_col = 5, + start_row = 85 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterGreen", + start_col = 4, + start_row = 86 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterOrange", + start_col = 3, + start_row = 87 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 88 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 89 + }, { + end_col = 36, + end_row = 36, + hl_group = "RainbowDelimiterYellow", + start_col = 35, + start_row = 91 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterBlue", + start_col = 18, + start_row = 92 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterOrange", + start_col = 19, + start_row = 93 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterGreen", + start_col = 20, + start_row = 94 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterViolet", + start_col = 21, + start_row = 95 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterCyan", + start_col = 18, + start_row = 96 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterCyan", + start_col = 29, + start_row = 96 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterCyan", + start_col = 31, + start_row = 96 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterRed", + start_col = 18, + start_row = 97 + }, { + end_col = 42, + end_row = 42, + hl_group = "RainbowDelimiterRed", + start_col = 41, + start_row = 97 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterRed", + start_col = 27, + start_row = 98 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterRed", + start_col = 37, + start_row = 98 + }, { + end_col = 44, + end_row = 44, + hl_group = "RainbowDelimiterRed", + start_col = 43, + start_row = 98 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterYellow", + start_col = 19, + start_row = 99 + }, { + end_col = 109, + end_row = 109, + hl_group = "RainbowDelimiterBlue", + start_col = 108, + start_row = 99 + }, { + end_col = 117, + end_row = 117, + hl_group = "RainbowDelimiterBlue", + start_col = 116, + start_row = 99 + }, { + end_col = 118, + end_row = 118, + hl_group = "RainbowDelimiterBlue", + start_col = 117, + start_row = 99 + }, { + end_col = 140, + end_row = 140, + hl_group = "RainbowDelimiterBlue", + start_col = 139, + start_row = 99 + }, { + end_col = 141, + end_row = 141, + hl_group = "RainbowDelimiterYellow", + start_col = 140, + start_row = 99 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterRed", + start_col = 7, + start_row = 100 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterCyan", + start_col = 6, + start_row = 101 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterViolet", + start_col = 5, + start_row = 102 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterGreen", + start_col = 4, + start_row = 103 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterOrange", + start_col = 3, + start_row = 104 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 105 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 106 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 107 + } }, + regex = {} +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/haskell/rainbow-delimiters/regular.hs.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/haskell/rainbow-delimiters/regular.hs.lua new file mode 100644 index 00000000..a8098632 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/haskell/rainbow-delimiters/regular.hs.lua @@ -0,0 +1,315 @@ +return { + haskell = { { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterRed", + start_col = 4, + start_row = 3 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterYellow", + start_col = 20, + start_row = 3 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterYellow", + start_col = 23, + start_row = 3 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterRed", + start_col = 4, + start_row = 9 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterRed", + start_col = 25, + start_row = 11 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterRed", + start_col = 34, + start_row = 11 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterRed", + start_col = 20, + start_row = 12 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterYellow", + start_col = 21, + start_row = 12 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterYellow", + start_col = 25, + start_row = 12 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterRed", + start_col = 26, + start_row = 12 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterRed", + start_col = 4, + start_row = 16 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterYellow", + start_col = 22, + start_row = 17 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterBlue", + start_col = 29, + start_row = 17 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterBlue", + start_col = 30, + start_row = 17 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterYellow", + start_col = 31, + start_row = 17 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterRed", + start_col = 4, + start_row = 18 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterRed", + start_col = 13, + start_row = 19 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterRed", + start_col = 22, + start_row = 19 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterRed", + start_col = 22, + start_row = 22 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterRed", + start_col = 25, + start_row = 22 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterRed", + start_col = 27, + start_row = 25 + }, { + end_col = 43, + end_row = 43, + hl_group = "RainbowDelimiterRed", + start_col = 42, + start_row = 25 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterRed", + start_col = 25, + start_row = 28 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterRed", + start_col = 33, + start_row = 28 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 11, + start_row = 29 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterYellow", + start_col = 17, + start_row = 29 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterYellow", + start_col = 24, + start_row = 29 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterRed", + start_col = 25, + start_row = 29 + }, { + end_col = 44, + end_row = 44, + hl_group = "RainbowDelimiterRed", + start_col = 43, + start_row = 29 + }, { + end_col = 47, + end_row = 47, + hl_group = "RainbowDelimiterRed", + start_col = 46, + start_row = 29 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterRed", + start_col = 31, + start_row = 30 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterRed", + start_col = 32, + start_row = 30 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 11, + start_row = 31 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterRed", + start_col = 18, + start_row = 31 + }, { + end_col = 37, + end_row = 37, + hl_group = "RainbowDelimiterRed", + start_col = 36, + start_row = 31 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterRed", + start_col = 39, + start_row = 31 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterRed", + start_col = 29, + start_row = 33 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterRed", + start_col = 32, + start_row = 33 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterRed", + start_col = 26, + start_row = 37 + }, { + end_col = 48, + end_row = 48, + hl_group = "RainbowDelimiterRed", + start_col = 47, + start_row = 37 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterRed", + start_col = 10, + start_row = 39 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterRed", + start_col = 15, + start_row = 39 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterRed", + start_col = 7, + start_row = 40 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterRed", + start_col = 15, + start_row = 40 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterRed", + start_col = 25, + start_row = 40 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterRed", + start_col = 33, + start_row = 40 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterRed", + start_col = 10, + start_row = 43 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterRed", + start_col = 25, + start_row = 43 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterRed", + start_col = 7, + start_row = 44 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterRed", + start_col = 12, + start_row = 44 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterRed", + start_col = 22, + start_row = 44 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterRed", + start_col = 29, + start_row = 44 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/hcl/rainbow-delimiters/basic.tf.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/hcl/rainbow-delimiters/basic.tf.lua new file mode 100644 index 00000000..06db3306 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/hcl/rainbow-delimiters/basic.tf.lua @@ -0,0 +1,307 @@ +return { + hcl = { { 72, 0, 10, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterRed" + } }, { 74, 1, 21, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterYellow" + } }, { 76, 2, 16, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterBlue" + } }, { 75, 5, 4, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterBlue" + } }, { 73, 6, 2, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow" + } }, { 71, 7, 0, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed" + } }, { 68, 9, 49, { + end_col = 50, + end_row = 50, + hl_group = "RainbowDelimiterRed" + } }, { 70, 12, 11, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterYellow" + } }, { 69, 16, 2, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow" + } }, { 67, 17, 0, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed" + } }, { 62, 19, 53, { + end_col = 54, + end_row = 54, + hl_group = "RainbowDelimiterRed" + } }, { 66, 22, 14, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterYellow" + } }, { 65, 22, 39, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterYellow" + } }, { 64, 23, 14, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterYellow" + } }, { 63, 23, 39, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterYellow" + } }, { 61, 24, 0, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed" + } }, { 54, 26, 41, { + end_col = 42, + end_row = 42, + hl_group = "RainbowDelimiterRed" + } }, { 58, 27, 19, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterYellow" + } }, { 60, 27, 20, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterBlue" + } }, { 59, 27, 36, { + end_col = 37, + end_row = 37, + hl_group = "RainbowDelimiterBlue" + } }, { 57, 27, 37, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterYellow" + } }, { 56, 29, 14, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterYellow" + } }, { 55, 29, 39, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterYellow" + } }, { 53, 30, 0, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed" + } }, { 44, 32, 40, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterRed" + } }, { 52, 33, 10, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterYellow" + } }, { 51, 33, 14, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterYellow" + } }, { 46, 34, 10, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterYellow" + } }, { 48, 34, 11, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterBlue" + } }, { 50, 34, 13, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterOrange" + } }, { 49, 34, 15, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterOrange" + } }, { 47, 34, 18, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterBlue" + } }, { 45, 34, 21, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterYellow" + } }, { 43, 35, 0, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed" + } }, { 32, 37, 37, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterRed" + } }, { 40, 38, 9, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterYellow" + } }, { 42, 38, 23, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterBlue" + } }, { 41, 38, 37, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterBlue" + } }, { 39, 38, 51, { + end_col = 52, + end_row = 52, + hl_group = "RainbowDelimiterYellow" + } }, { 34, 39, 9, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterYellow" + } }, { 38, 39, 28, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterBlue" + } }, { 37, 39, 31, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterBlue" + } }, { 36, 39, 33, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterBlue" + } }, { 35, 39, 36, { + end_col = 37, + end_row = 37, + hl_group = "RainbowDelimiterBlue" + } }, { 33, 39, 39, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterYellow" + } }, { 31, 40, 0, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed" + } }, { 16, 42, 21, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterRed" + } }, { 18, 45, 13, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterYellow" + } }, { 28, 47, 23, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterBlue" + } }, { 30, 47, 34, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterOrange" + } }, { 29, 47, 52, { + end_col = 53, + end_row = 53, + hl_group = "RainbowDelimiterOrange" + } }, { 27, 47, 53, { + end_col = 54, + end_row = 54, + hl_group = "RainbowDelimiterBlue" + } }, { 26, 48, 28, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterBlue" + } }, { 25, 48, 49, { + end_col = 50, + end_row = 50, + hl_group = "RainbowDelimiterBlue" + } }, { 24, 48, 50, { + end_col = 52, + end_row = 52, + hl_group = "RainbowDelimiterBlue" + } }, { 23, 48, 60, { + end_col = 61, + end_row = 61, + hl_group = "RainbowDelimiterBlue" + } }, { 22, 48, 61, { + end_col = 63, + end_row = 63, + hl_group = "RainbowDelimiterBlue" + } }, { 21, 48, 69, { + end_col = 70, + end_row = 70, + hl_group = "RainbowDelimiterBlue" + } }, { 20, 48, 77, { + end_col = 79, + end_row = 79, + hl_group = "RainbowDelimiterBlue" + } }, { 19, 48, 86, { + end_col = 87, + end_row = 87, + hl_group = "RainbowDelimiterBlue" + } }, { 17, 49, 2, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow" + } }, { 15, 50, 0, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed" + } }, { 8, 52, 6, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterRed" + } }, { 14, 54, 2, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow" + } }, { 13, 54, 50, { + end_col = 51, + end_row = 51, + hl_group = "RainbowDelimiterYellow" + } }, { 12, 55, 9, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterYellow" + } }, { 11, 55, 13, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterYellow" + } }, { 10, 56, 2, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow" + } }, { 9, 56, 12, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow" + } }, { 7, 58, 0, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed" + } }, { 2, 60, 36, { + end_col = 37, + end_row = 37, + hl_group = "RainbowDelimiterRed" + } }, { 4, 66, 13, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterYellow" + } }, { 6, 67, 32, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterBlue" + } }, { 5, 67, 34, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterBlue" + } }, { 3, 68, 2, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow" + } }, { 1, 69, 0, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed" + } } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/html/rainbow-delimiters/regular.html.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/html/rainbow-delimiters/regular.html.lua new file mode 100644 index 00000000..29b527ed --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/html/rainbow-delimiters/regular.html.lua @@ -0,0 +1,641 @@ +return { + css = { { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterRed", + start_col = 8, + start_row = 9 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterRed", + start_col = 3, + start_row = 11 + } }, + html = { { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 2 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterRed", + start_col = 1, + start_row = 2 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterRed", + start_col = 15, + start_row = 2 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 3 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 3 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterYellow", + start_col = 6, + start_row = 3 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 4 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterBlue", + start_col = 3, + start_row = 4 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterBlue", + start_col = 23, + start_row = 4 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 5 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterBlue", + start_col = 3, + start_row = 5 + }, { + end_col = 53, + end_row = 53, + hl_group = "RainbowDelimiterBlue", + start_col = 52, + start_row = 5 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 6 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterBlue", + start_col = 3, + start_row = 6 + }, { + end_col = 70, + end_row = 70, + hl_group = "RainbowDelimiterBlue", + start_col = 69, + start_row = 6 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 7 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterBlue", + start_col = 3, + start_row = 7 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterBlue", + start_col = 8, + start_row = 7 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterBlue", + start_col = 18, + start_row = 7 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterBlue", + start_col = 20, + start_row = 7 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterBlue", + start_col = 25, + start_row = 7 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 8 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterBlue", + start_col = 3, + start_row = 8 + }, { + end_col = 37, + end_row = 37, + hl_group = "RainbowDelimiterBlue", + start_col = 36, + start_row = 8 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 12 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterBlue", + start_col = 4, + start_row = 12 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterBlue", + start_col = 9, + start_row = 12 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 13 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterBlue", + start_col = 3, + start_row = 13 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterBlue", + start_col = 9, + start_row = 13 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 15 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterBlue", + start_col = 4, + start_row = 15 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterBlue", + start_col = 10, + start_row = 15 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 16 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterYellow", + start_col = 3, + start_row = 16 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterYellow", + start_col = 7, + start_row = 16 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 17 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 17 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterYellow", + start_col = 6, + start_row = 17 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 18 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterBlue", + start_col = 3, + start_row = 18 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterBlue", + start_col = 4, + start_row = 18 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterOrange", + start_col = 14, + start_row = 19 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterOrange", + start_col = 15, + start_row = 19 + }, { + end_col = 44, + end_row = 44, + hl_group = "RainbowDelimiterOrange", + start_col = 43, + start_row = 19 + }, { + end_col = 58, + end_row = 58, + hl_group = "RainbowDelimiterOrange", + start_col = 56, + start_row = 19 + }, { + end_col = 59, + end_row = 59, + hl_group = "RainbowDelimiterOrange", + start_col = 58, + start_row = 19 + }, { + end_col = 60, + end_row = 60, + hl_group = "RainbowDelimiterOrange", + start_col = 59, + start_row = 19 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 20 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterBlue", + start_col = 4, + start_row = 20 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterBlue", + start_col = 5, + start_row = 20 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 21 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterBlue", + start_col = 3, + start_row = 21 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterBlue", + start_col = 6, + start_row = 21 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 22 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterBlue", + start_col = 3, + start_row = 22 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterBlue", + start_col = 4, + start_row = 22 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterOrange", + start_col = 14, + start_row = 23 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterOrange", + start_col = 15, + start_row = 23 + }, { + end_col = 44, + end_row = 44, + hl_group = "RainbowDelimiterOrange", + start_col = 43, + start_row = 23 + }, { + end_col = 52, + end_row = 52, + hl_group = "RainbowDelimiterGreen", + start_col = 51, + start_row = 23 + }, { + end_col = 54, + end_row = 54, + hl_group = "RainbowDelimiterGreen", + start_col = 52, + start_row = 23 + }, { + end_col = 56, + end_row = 56, + hl_group = "RainbowDelimiterGreen", + start_col = 54, + start_row = 23 + }, { + end_col = 62, + end_row = 62, + hl_group = "RainbowDelimiterOrange", + start_col = 60, + start_row = 23 + }, { + end_col = 63, + end_row = 63, + hl_group = "RainbowDelimiterOrange", + start_col = 62, + start_row = 23 + }, { + end_col = 64, + end_row = 64, + hl_group = "RainbowDelimiterOrange", + start_col = 63, + start_row = 23 + }, { + end_col = 70, + end_row = 70, + hl_group = "RainbowDelimiterOrange", + start_col = 69, + start_row = 23 + }, { + end_col = 72, + end_row = 72, + hl_group = "RainbowDelimiterOrange", + start_col = 70, + start_row = 23 + }, { + end_col = 73, + end_row = 73, + hl_group = "RainbowDelimiterOrange", + start_col = 72, + start_row = 23 + }, { + end_col = 80, + end_row = 80, + hl_group = "RainbowDelimiterOrange", + start_col = 79, + start_row = 23 + }, { + end_col = 82, + end_row = 82, + hl_group = "RainbowDelimiterOrange", + start_col = 80, + start_row = 23 + }, { + end_col = 84, + end_row = 84, + hl_group = "RainbowDelimiterOrange", + start_col = 82, + start_row = 23 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 24 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterBlue", + start_col = 4, + start_row = 24 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterBlue", + start_col = 5, + start_row = 24 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 25 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterBlue", + start_col = 3, + start_row = 25 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterBlue", + start_col = 5, + start_row = 25 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 26 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterBlue", + start_col = 3, + start_row = 26 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterBlue", + start_col = 6, + start_row = 26 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterOrange", + start_col = 3, + start_row = 27 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterOrange", + start_col = 4, + start_row = 27 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterOrange", + start_col = 5, + start_row = 27 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterGreen", + start_col = 10, + start_row = 27 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterGreen", + start_col = 11, + start_row = 27 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterGreen", + start_col = 15, + start_row = 27 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterGreen", + start_col = 19, + start_row = 27 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterGreen", + start_col = 21, + start_row = 27 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterGreen", + start_col = 25, + start_row = 27 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterOrange", + start_col = 27, + start_row = 27 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterOrange", + start_col = 29, + start_row = 27 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterOrange", + start_col = 30, + start_row = 27 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 28 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterBlue", + start_col = 4, + start_row = 28 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterBlue", + start_col = 7, + start_row = 28 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 29 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterYellow", + start_col = 3, + start_row = 29 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterYellow", + start_col = 7, + start_row = 29 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 30 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterRed", + start_col = 2, + start_row = 30 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterRed", + start_col = 6, + start_row = 30 + } }, + javascript = { { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterRed", + start_col = 14, + start_row = 14 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterRed", + start_col = 30, + start_row = 14 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/htmldjango/rainbow-delimiters/regular.html.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/htmldjango/rainbow-delimiters/regular.html.lua new file mode 100644 index 00000000..39e84fb4 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/htmldjango/rainbow-delimiters/regular.html.lua @@ -0,0 +1,274 @@ +return { + html = { { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 7 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterRed", + start_col = 1, + start_row = 7 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterRed", + start_col = 3, + start_row = 7 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 9 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 3, + start_row = 9 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterYellow", + start_col = 5, + start_row = 9 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 14 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 14 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterYellow", + start_col = 6, + start_row = 14 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 16 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterRed", + start_col = 2, + start_row = 16 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterRed", + start_col = 4, + start_row = 16 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 18 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterRed", + start_col = 1, + start_row = 18 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterRed", + start_col = 4, + start_row = 18 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 19 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 19 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 19 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterYellow", + start_col = 15, + start_row = 19 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 17, + start_row = 19 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterYellow", + start_col = 19, + start_row = 19 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 20 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 20 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 3, + start_row = 20 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterBlue", + start_col = 15, + start_row = 21 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterBlue", + start_col = 16, + start_row = 21 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterBlue", + start_col = 18, + start_row = 21 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterOrange", + start_col = 19, + start_row = 21 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterOrange", + start_col = 20, + start_row = 21 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterOrange", + start_col = 26, + start_row = 21 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterOrange", + start_col = 32, + start_row = 21 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterOrange", + start_col = 34, + start_row = 21 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterOrange", + start_col = 40, + start_row = 21 + }, { + end_col = 43, + end_row = 43, + hl_group = "RainbowDelimiterBlue", + start_col = 41, + start_row = 21 + }, { + end_col = 45, + end_row = 45, + hl_group = "RainbowDelimiterBlue", + start_col = 43, + start_row = 21 + }, { + end_col = 46, + end_row = 46, + hl_group = "RainbowDelimiterBlue", + start_col = 45, + start_row = 21 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 22 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 3, + start_row = 22 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 22 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 23 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 23 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterYellow", + start_col = 5, + start_row = 23 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 24 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterRed", + start_col = 2, + start_row = 24 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterRed", + start_col = 5, + start_row = 24 + } }, + htmldjango = {} +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/janet_simple/rainbow-delimiters/regular.janet.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/janet_simple/rainbow-delimiters/regular.janet.lua new file mode 100644 index 00000000..b4a87cfb --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/janet_simple/rainbow-delimiters/regular.janet.lua @@ -0,0 +1,1635 @@ +return { + janet_simple = { { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 0 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterRed", + start_col = 16, + start_row = 4 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 6 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterRed", + start_col = 20, + start_row = 10 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 12 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 13 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterBlue", + start_col = 19, + start_row = 13 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterBlue", + start_col = 33, + start_row = 13 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterBlue", + start_col = 10, + start_row = 14 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterBlue", + start_col = 25, + start_row = 14 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 15 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 18 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterBlue", + start_col = 19, + start_row = 18 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterBlue", + start_col = 25, + start_row = 18 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterBlue", + start_col = 10, + start_row = 19 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterBlue", + start_col = 23, + start_row = 20 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 21 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 24 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterBlue", + start_col = 19, + start_row = 24 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterBlue", + start_col = 29, + start_row = 24 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterBlue", + start_col = 10, + start_row = 25 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterBlue", + start_col = 27, + start_row = 25 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 26 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 29 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterBlue", + start_col = 19, + start_row = 29 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterBlue", + start_col = 27, + start_row = 29 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterBlue", + start_col = 10, + start_row = 30 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterBlue", + start_col = 24, + start_row = 31 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 32 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 35 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterBlue", + start_col = 19, + start_row = 35 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterBlue", + start_col = 39, + start_row = 35 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterBlue", + start_col = 10, + start_row = 36 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterBlue", + start_col = 31, + start_row = 37 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 38 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 41 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterBlue", + start_col = 19, + start_row = 41 + }, { + end_col = 54, + end_row = 54, + hl_group = "RainbowDelimiterBlue", + start_col = 53, + start_row = 41 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterBlue", + start_col = 10, + start_row = 42 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterBlue", + start_col = 29, + start_row = 42 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 43 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 46 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterBlue", + start_col = 19, + start_row = 46 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterBlue", + start_col = 25, + start_row = 46 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterBlue", + start_col = 10, + start_row = 47 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterBlue", + start_col = 25, + start_row = 49 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 50 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 53 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterBlue", + start_col = 19, + start_row = 53 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterBlue", + start_col = 32, + start_row = 53 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterBlue", + start_col = 10, + start_row = 54 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterBlue", + start_col = 26, + start_row = 71 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 72 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 75 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterBlue", + start_col = 19, + start_row = 75 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterBlue", + start_col = 34, + start_row = 75 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterBlue", + start_col = 10, + start_row = 76 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterBlue", + start_col = 24, + start_row = 76 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 77 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 80 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterBlue", + start_col = 19, + start_row = 80 + }, { + end_col = 44, + end_row = 44, + hl_group = "RainbowDelimiterBlue", + start_col = 43, + start_row = 80 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterBlue", + start_col = 10, + start_row = 81 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterBlue", + start_col = 24, + start_row = 81 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 82 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterRed", + start_col = 13, + start_row = 82 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterRed", + start_col = 1, + start_row = 84 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 3, + start_row = 85 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterYellow", + start_col = 15, + start_row = 85 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 3, + start_row = 88 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterYellow", + start_col = 16, + start_row = 89 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 3, + start_row = 92 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterYellow", + start_col = 19, + start_row = 93 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 3, + start_row = 96 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterBlue", + start_col = 11, + start_row = 96 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterOrange", + start_col = 17, + start_row = 96 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterOrange", + start_col = 33, + start_row = 96 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterBlue", + start_col = 34, + start_row = 96 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterBlue", + start_col = 11, + start_row = 97 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterBlue", + start_col = 23, + start_row = 99 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterYellow", + start_col = 24, + start_row = 99 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 3, + start_row = 102 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 103 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterOrange", + start_col = 18, + start_row = 103 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterGreen", + start_col = 26, + start_row = 103 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterGreen", + start_col = 37, + start_row = 103 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterOrange", + start_col = 40, + start_row = 103 + }, { + end_col = 42, + end_row = 42, + hl_group = "RainbowDelimiterBlue", + start_col = 41, + start_row = 103 + }, { + end_col = 43, + end_row = 43, + hl_group = "RainbowDelimiterYellow", + start_col = 42, + start_row = 103 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 3, + start_row = 106 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterYellow", + start_col = 19, + start_row = 108 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 3, + start_row = 111 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterYellow", + start_col = 19, + start_row = 115 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 3, + start_row = 118 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 119 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterBlue", + start_col = 27, + start_row = 119 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 18, + start_row = 120 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 3, + start_row = 123 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 124 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterBlue", + start_col = 27, + start_row = 124 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 18, + start_row = 125 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 3, + start_row = 128 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 129 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterBlue", + start_col = 27, + start_row = 129 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 18, + start_row = 130 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 3, + start_row = 133 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 134 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterBlue", + start_col = 27, + start_row = 134 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 18, + start_row = 135 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 3, + start_row = 138 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 139 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterBlue", + start_col = 27, + start_row = 139 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 18, + start_row = 140 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 3, + start_row = 143 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 18, + start_row = 150 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 3, + start_row = 153 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 18, + start_row = 158 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 3, + start_row = 161 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterBlue", + start_col = 9, + start_row = 161 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterOrange", + start_col = 11, + start_row = 162 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterGreen", + start_col = 20, + start_row = 162 + }, { + end_col = 37, + end_row = 37, + hl_group = "RainbowDelimiterGreen", + start_col = 36, + start_row = 162 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterOrange", + start_col = 37, + start_row = 162 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterBlue", + start_col = 23, + start_row = 163 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterYellow", + start_col = 24, + start_row = 163 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 3, + start_row = 166 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterBlue", + start_col = 11, + start_row = 166 + }, { + end_col = 44, + end_row = 44, + hl_group = "RainbowDelimiterBlue", + start_col = 43, + start_row = 166 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterBlue", + start_col = 11, + start_row = 167 + }, { + end_col = 36, + end_row = 36, + hl_group = "RainbowDelimiterBlue", + start_col = 35, + start_row = 167 + }, { + end_col = 37, + end_row = 37, + hl_group = "RainbowDelimiterYellow", + start_col = 36, + start_row = 167 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 3, + start_row = 170 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 170 + }, { + end_col = 42, + end_row = 42, + hl_group = "RainbowDelimiterBlue", + start_col = 41, + start_row = 170 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 171 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterBlue", + start_col = 28, + start_row = 171 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterYellow", + start_col = 29, + start_row = 171 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 3, + start_row = 174 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 175 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterOrange", + start_col = 18, + start_row = 175 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterGreen", + start_col = 26, + start_row = 176 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterGreen", + start_col = 40, + start_row = 176 + }, { + end_col = 42, + end_row = 42, + hl_group = "RainbowDelimiterOrange", + start_col = 41, + start_row = 176 + }, { + end_col = 43, + end_row = 43, + hl_group = "RainbowDelimiterBlue", + start_col = 42, + start_row = 176 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterYellow", + start_col = 17, + start_row = 177 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 3, + start_row = 180 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 181 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterOrange", + start_col = 21, + start_row = 181 + }, { + end_col = 43, + end_row = 43, + hl_group = "RainbowDelimiterOrange", + start_col = 42, + start_row = 181 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterOrange", + start_col = 21, + start_row = 182 + }, { + end_col = 36, + end_row = 36, + hl_group = "RainbowDelimiterGreen", + start_col = 35, + start_row = 182 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterGreen", + start_col = 40, + start_row = 182 + }, { + end_col = 42, + end_row = 42, + hl_group = "RainbowDelimiterOrange", + start_col = 41, + start_row = 182 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterOrange", + start_col = 21, + start_row = 183 + }, { + end_col = 36, + end_row = 36, + hl_group = "RainbowDelimiterGreen", + start_col = 35, + start_row = 183 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterGreen", + start_col = 40, + start_row = 183 + }, { + end_col = 42, + end_row = 42, + hl_group = "RainbowDelimiterOrange", + start_col = 41, + start_row = 183 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterOrange", + start_col = 21, + start_row = 184 + }, { + end_col = 36, + end_row = 36, + hl_group = "RainbowDelimiterGreen", + start_col = 35, + start_row = 184 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterGreen", + start_col = 40, + start_row = 184 + }, { + end_col = 42, + end_row = 42, + hl_group = "RainbowDelimiterOrange", + start_col = 41, + start_row = 184 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterOrange", + start_col = 21, + start_row = 185 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterGreen", + start_col = 28, + start_row = 185 + }, { + end_col = 51, + end_row = 51, + hl_group = "RainbowDelimiterGreen", + start_col = 50, + start_row = 185 + }, { + end_col = 52, + end_row = 52, + hl_group = "RainbowDelimiterOrange", + start_col = 51, + start_row = 185 + }, { + end_col = 53, + end_row = 53, + hl_group = "RainbowDelimiterBlue", + start_col = 52, + start_row = 185 + }, { + end_col = 54, + end_row = 54, + hl_group = "RainbowDelimiterYellow", + start_col = 53, + start_row = 185 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 3, + start_row = 188 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 189 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterOrange", + start_col = 18, + start_row = 189 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterGreen", + start_col = 26, + start_row = 190 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterGreen", + start_col = 40, + start_row = 190 + }, { + end_col = 42, + end_row = 42, + hl_group = "RainbowDelimiterOrange", + start_col = 41, + start_row = 190 + }, { + end_col = 43, + end_row = 43, + hl_group = "RainbowDelimiterBlue", + start_col = 42, + start_row = 190 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterYellow", + start_col = 17, + start_row = 191 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 3, + start_row = 196 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterBlue", + start_col = 10, + start_row = 196 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterOrange", + start_col = 16, + start_row = 196 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterGreen", + start_col = 26, + start_row = 197 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterViolet", + start_col = 31, + start_row = 197 + }, { + end_col = 48, + end_row = 48, + hl_group = "RainbowDelimiterViolet", + start_col = 47, + start_row = 197 + }, { + end_col = 49, + end_row = 49, + hl_group = "RainbowDelimiterGreen", + start_col = 48, + start_row = 197 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterOrange", + start_col = 32, + start_row = 198 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterBlue", + start_col = 33, + start_row = 198 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterBlue", + start_col = 10, + start_row = 199 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterBlue", + start_col = 28, + start_row = 199 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterBlue", + start_col = 11, + start_row = 200 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterBlue", + start_col = 20, + start_row = 200 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterBlue", + start_col = 11, + start_row = 201 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterOrange", + start_col = 16, + start_row = 201 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterGreen", + start_col = 26, + start_row = 201 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterViolet", + start_col = 31, + start_row = 201 + }, { + end_col = 44, + end_row = 44, + hl_group = "RainbowDelimiterViolet", + start_col = 43, + start_row = 201 + }, { + end_col = 45, + end_row = 45, + hl_group = "RainbowDelimiterGreen", + start_col = 44, + start_row = 201 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterGreen", + start_col = 26, + start_row = 202 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterGreen", + start_col = 37, + start_row = 202 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterGreen", + start_col = 26, + start_row = 203 + }, { + end_col = 36, + end_row = 36, + hl_group = "RainbowDelimiterViolet", + start_col = 35, + start_row = 203 + }, { + end_col = 49, + end_row = 49, + hl_group = "RainbowDelimiterViolet", + start_col = 48, + start_row = 203 + }, { + end_col = 50, + end_row = 50, + hl_group = "RainbowDelimiterGreen", + start_col = 49, + start_row = 203 + }, { + end_col = 51, + end_row = 51, + hl_group = "RainbowDelimiterOrange", + start_col = 50, + start_row = 203 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterBlue", + start_col = 18, + start_row = 204 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterYellow", + start_col = 19, + start_row = 204 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 3, + start_row = 207 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterYellow", + start_col = 24, + start_row = 208 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 3, + start_row = 211 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 212 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterBlue", + start_col = 28, + start_row = 212 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterYellow", + start_col = 29, + start_row = 212 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterYellow", + start_col = 11, + start_row = 214 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterYellow", + start_col = 27, + start_row = 214 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 3, + start_row = 217 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 218 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterBlue", + start_col = 24, + start_row = 218 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 219 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterOrange", + start_col = 21, + start_row = 220 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterGreen", + start_col = 28, + start_row = 220 + }, { + end_col = 50, + end_row = 50, + hl_group = "RainbowDelimiterGreen", + start_col = 49, + start_row = 220 + }, { + end_col = 51, + end_row = 51, + hl_group = "RainbowDelimiterOrange", + start_col = 50, + start_row = 220 + }, { + end_col = 52, + end_row = 52, + hl_group = "RainbowDelimiterBlue", + start_col = 51, + start_row = 220 + }, { + end_col = 53, + end_row = 53, + hl_group = "RainbowDelimiterYellow", + start_col = 52, + start_row = 220 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 3, + start_row = 223 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 224 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterBlue", + start_col = 24, + start_row = 224 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 225 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterOrange", + start_col = 21, + start_row = 226 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterGreen", + start_col = 28, + start_row = 226 + }, { + end_col = 50, + end_row = 50, + hl_group = "RainbowDelimiterGreen", + start_col = 49, + start_row = 226 + }, { + end_col = 51, + end_row = 51, + hl_group = "RainbowDelimiterOrange", + start_col = 50, + start_row = 226 + }, { + end_col = 52, + end_row = 52, + hl_group = "RainbowDelimiterBlue", + start_col = 51, + start_row = 226 + }, { + end_col = 53, + end_row = 53, + hl_group = "RainbowDelimiterYellow", + start_col = 52, + start_row = 226 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 3, + start_row = 229 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 230 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterBlue", + start_col = 24, + start_row = 230 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 231 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterOrange", + start_col = 21, + start_row = 232 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterGreen", + start_col = 28, + start_row = 232 + }, { + end_col = 50, + end_row = 50, + hl_group = "RainbowDelimiterGreen", + start_col = 49, + start_row = 232 + }, { + end_col = 51, + end_row = 51, + hl_group = "RainbowDelimiterOrange", + start_col = 50, + start_row = 232 + }, { + end_col = 52, + end_row = 52, + hl_group = "RainbowDelimiterBlue", + start_col = 51, + start_row = 232 + }, { + end_col = 53, + end_row = 53, + hl_group = "RainbowDelimiterYellow", + start_col = 52, + start_row = 232 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 3, + start_row = 235 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 236 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterBlue", + start_col = 24, + start_row = 236 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 237 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterOrange", + start_col = 21, + start_row = 238 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterGreen", + start_col = 28, + start_row = 238 + }, { + end_col = 50, + end_row = 50, + hl_group = "RainbowDelimiterGreen", + start_col = 49, + start_row = 238 + }, { + end_col = 51, + end_row = 51, + hl_group = "RainbowDelimiterOrange", + start_col = 50, + start_row = 238 + }, { + end_col = 52, + end_row = 52, + hl_group = "RainbowDelimiterBlue", + start_col = 51, + start_row = 238 + }, { + end_col = 53, + end_row = 53, + hl_group = "RainbowDelimiterYellow", + start_col = 52, + start_row = 238 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 3, + start_row = 240 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 241 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterBlue", + start_col = 24, + start_row = 241 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 242 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterOrange", + start_col = 21, + start_row = 243 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterGreen", + start_col = 28, + start_row = 243 + }, { + end_col = 50, + end_row = 50, + hl_group = "RainbowDelimiterGreen", + start_col = 49, + start_row = 243 + }, { + end_col = 51, + end_row = 51, + hl_group = "RainbowDelimiterOrange", + start_col = 50, + start_row = 243 + }, { + end_col = 52, + end_row = 52, + hl_group = "RainbowDelimiterBlue", + start_col = 51, + start_row = 243 + }, { + end_col = 53, + end_row = 53, + hl_group = "RainbowDelimiterYellow", + start_col = 52, + start_row = 243 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 3, + start_row = 246 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 247 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterBlue", + start_col = 24, + start_row = 247 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 248 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterOrange", + start_col = 21, + start_row = 249 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterGreen", + start_col = 28, + start_row = 249 + }, { + end_col = 50, + end_row = 50, + hl_group = "RainbowDelimiterGreen", + start_col = 49, + start_row = 249 + }, { + end_col = 51, + end_row = 51, + hl_group = "RainbowDelimiterOrange", + start_col = 50, + start_row = 249 + }, { + end_col = 52, + end_row = 52, + hl_group = "RainbowDelimiterBlue", + start_col = 51, + start_row = 249 + }, { + end_col = 53, + end_row = 53, + hl_group = "RainbowDelimiterYellow", + start_col = 52, + start_row = 249 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterRed", + start_col = 3, + start_row = 250 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/java/rainbow-delimiters/HelloWorld.java.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/java/rainbow-delimiters/HelloWorld.java.lua new file mode 100644 index 00000000..de392ed9 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/java/rainbow-delimiters/HelloWorld.java.lua @@ -0,0 +1,615 @@ +return { + java = { { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterRed", + start_col = 7, + start_row = 0 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterRed", + start_col = 25, + start_row = 0 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterRed", + start_col = 24, + start_row = 1 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 18, + start_row = 3 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterYellow", + start_col = 19, + start_row = 3 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterYellow", + start_col = 21, + start_row = 3 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 4 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterYellow", + start_col = 24, + start_row = 7 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterBlue", + start_col = 31, + start_row = 7 + }, { + end_col = 39, + end_row = 39, + hl_group = "RainbowDelimiterYellow", + start_col = 38, + start_row = 7 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterYellow", + start_col = 40, + start_row = 7 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterBlue", + start_col = 20, + start_row = 8 + }, { + end_col = 37, + end_row = 37, + hl_group = "RainbowDelimiterBlue", + start_col = 36, + start_row = 8 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterBlue", + start_col = 20, + start_row = 9 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterOrange", + start_col = 25, + start_row = 9 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterOrange", + start_col = 27, + start_row = 9 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterBlue", + start_col = 28, + start_row = 9 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 10 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterYellow", + start_col = 29, + start_row = 12 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterBlue", + start_col = 34, + start_row = 12 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterOrange", + start_col = 39, + start_row = 12 + }, { + end_col = 45, + end_row = 45, + hl_group = "RainbowDelimiterGreen", + start_col = 44, + start_row = 12 + }, { + end_col = 47, + end_row = 47, + hl_group = "RainbowDelimiterGreen", + start_col = 46, + start_row = 12 + }, { + end_col = 48, + end_row = 48, + hl_group = "RainbowDelimiterOrange", + start_col = 47, + start_row = 12 + }, { + end_col = 49, + end_row = 49, + hl_group = "RainbowDelimiterBlue", + start_col = 48, + start_row = 12 + }, { + end_col = 52, + end_row = 52, + hl_group = "RainbowDelimiterYellow", + start_col = 51, + start_row = 12 + }, { + end_col = 54, + end_row = 54, + hl_group = "RainbowDelimiterYellow", + start_col = 53, + start_row = 12 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterBlue", + start_col = 8, + start_row = 14 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterBlue", + start_col = 19, + start_row = 14 + }, { + end_col = 51, + end_row = 51, + hl_group = "RainbowDelimiterBlue", + start_col = 50, + start_row = 14 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterBlue", + start_col = 9, + start_row = 16 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterBlue", + start_col = 39, + start_row = 16 + }, { + end_col = 42, + end_row = 42, + hl_group = "RainbowDelimiterBlue", + start_col = 41, + start_row = 16 + }, { + end_col = 44, + end_row = 44, + hl_group = "RainbowDelimiterBlue", + start_col = 42, + start_row = 16 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterBlue", + start_col = 6, + start_row = 19 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterBlue", + start_col = 22, + start_row = 19 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterBlue", + start_col = 24, + start_row = 19 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterOrange", + start_col = 26, + start_row = 20 + }, { + end_col = 46, + end_row = 46, + hl_group = "RainbowDelimiterOrange", + start_col = 45, + start_row = 20 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterOrange", + start_col = 21, + start_row = 21 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterOrange", + start_col = 25, + start_row = 21 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 22 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterBlue", + start_col = 6, + start_row = 25 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterBlue", + start_col = 28, + start_row = 25 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterBlue", + start_col = 30, + start_row = 25 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterOrange", + start_col = 19, + start_row = 26 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterOrange", + start_col = 21, + start_row = 26 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 27 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterBlue", + start_col = 5, + start_row = 30 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterBlue", + start_col = 11, + start_row = 30 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 30 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterOrange", + start_col = 21, + start_row = 31 + }, { + end_col = 46, + end_row = 46, + hl_group = "RainbowDelimiterOrange", + start_col = 45, + start_row = 31 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 32 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterBlue", + start_col = 6, + start_row = 35 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterOrange", + start_col = 19, + start_row = 37 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterGreen", + start_col = 20, + start_row = 37 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterViolet", + start_col = 21, + start_row = 37 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterViolet", + start_col = 25, + start_row = 37 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterGreen", + start_col = 26, + start_row = 37 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterOrange", + start_col = 27, + start_row = 37 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 38 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterBlue", + start_col = 9, + start_row = 38 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterBlue", + start_col = 31, + start_row = 38 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterBlue", + start_col = 33, + start_row = 38 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterOrange", + start_col = 19, + start_row = 39 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterOrange", + start_col = 21, + start_row = 39 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 40 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterBlue", + start_col = 6, + start_row = 44 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterBlue", + start_col = 19, + start_row = 44 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterBlue", + start_col = 21, + start_row = 44 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterOrange", + start_col = 7, + start_row = 45 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterOrange", + start_col = 24, + start_row = 45 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterOrange", + start_col = 26, + start_row = 45 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterGreen", + start_col = 8, + start_row = 46 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterGreen", + start_col = 25, + start_row = 46 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterGreen", + start_col = 27, + start_row = 46 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterViolet", + start_col = 22, + start_row = 47 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterViolet", + start_col = 34, + start_row = 47 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterGreen", + start_col = 4, + start_row = 48 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterOrange", + start_col = 3, + start_row = 49 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 50 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterBlue", + start_col = 6, + start_row = 53 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterOrange", + start_col = 37, + start_row = 53 + }, { + end_col = 45, + end_row = 45, + hl_group = "RainbowDelimiterOrange", + start_col = 44, + start_row = 53 + }, { + end_col = 43, + end_row = 43, + hl_group = "RainbowDelimiterOrange", + start_col = 42, + start_row = 54 + }, { + end_col = 46, + end_row = 46, + hl_group = "RainbowDelimiterOrange", + start_col = 45, + start_row = 54 + }, { + end_col = 47, + end_row = 47, + hl_group = "RainbowDelimiterBlue", + start_col = 46, + start_row = 54 + }, { + end_col = 49, + end_row = 49, + hl_group = "RainbowDelimiterBlue", + start_col = 48, + start_row = 54 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterOrange", + start_col = 11, + start_row = 55 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterOrange", + start_col = 12, + start_row = 55 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 56 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterBlue", + start_col = 10, + start_row = 56 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterBlue", + start_col = 24, + start_row = 56 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterBlue", + start_col = 26, + start_row = 56 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterOrange", + start_col = 21, + start_row = 57 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterOrange", + start_col = 23, + start_row = 57 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 58 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterBlue", + start_col = 10, + start_row = 61 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterBlue", + start_col = 14, + start_row = 61 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 62 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 63 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/java/rainbow-delimiters/LambdaTest.java.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/java/rainbow-delimiters/LambdaTest.java.lua new file mode 100644 index 00000000..1bb3ab02 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/java/rainbow-delimiters/LambdaTest.java.lua @@ -0,0 +1,51 @@ +return { + java = { { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterRed", + start_col = 17, + start_row = 0 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterYellow", + start_col = 15, + start_row = 1 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterYellow", + start_col = 16, + start_row = 1 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 18, + start_row = 1 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 4 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterBlue", + start_col = 12, + start_row = 4 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 5 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 6 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/javascript/rainbow-delimiters-react/regular.js.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/javascript/rainbow-delimiters-react/regular.js.lua new file mode 100644 index 00000000..43427219 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/javascript/rainbow-delimiters-react/regular.js.lua @@ -0,0 +1,507 @@ +return { + javascript = { { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterRed", + start_col = 7, + start_row = 1 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterRed", + start_col = 18, + start_row = 1 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 11, + start_row = 5 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterYellow", + start_col = 20, + start_row = 5 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterYellow", + start_col = 25, + start_row = 5 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterRed", + start_col = 27, + start_row = 5 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterRed", + start_col = 12, + start_row = 8 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterRed", + start_col = 17, + start_row = 8 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterRed", + start_col = 19, + start_row = 8 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterYellow", + start_col = 14, + start_row = 9 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterYellow", + start_col = 21, + start_row = 9 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterYellow", + start_col = 23, + start_row = 9 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterBlue", + start_col = 5, + start_row = 10 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterBlue", + start_col = 12, + start_row = 10 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterBlue", + start_col = 14, + start_row = 10 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 12 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 13 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterBlue", + start_col = 28, + start_row = 13 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 14 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 15 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterYellow", + start_col = 17, + start_row = 15 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 16 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterRed", + start_col = 16, + start_row = 19 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterRed", + start_col = 17, + start_row = 19 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterRed", + start_col = 19, + start_row = 19 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterYellow", + start_col = 5, + start_row = 20 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterYellow", + start_col = 28, + start_row = 20 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterYellow", + start_col = 30, + start_row = 20 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 22 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 24 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterYellow", + start_col = 13, + start_row = 24 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterYellow", + start_col = 5, + start_row = 25 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterYellow", + start_col = 25, + start_row = 25 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterYellow", + start_col = 27, + start_row = 25 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 26 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterBlue", + start_col = 21, + start_row = 26 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 27 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 28 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterRed", + start_col = 17, + start_row = 31 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterRed", + start_col = 22, + start_row = 31 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterRed", + start_col = 18, + start_row = 34 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 35 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterBlue", + start_col = 5, + start_row = 36 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterOrange", + start_col = 6, + start_row = 37 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterOrange", + start_col = 7, + start_row = 37 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 38 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterBlue", + start_col = 4, + start_row = 39 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterOrange", + start_col = 5, + start_row = 39 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterOrange", + start_col = 13, + start_row = 39 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterBlue", + start_col = 14, + start_row = 39 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 40 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 41 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterRed", + start_col = 29, + start_row = 44 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterYellow", + start_col = 30, + start_row = 44 + }, { + end_col = 39, + end_row = 39, + hl_group = "RainbowDelimiterYellow", + start_col = 38, + start_row = 44 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterRed", + start_col = 39, + start_row = 44 + }, { + end_col = 45, + end_row = 45, + hl_group = "RainbowDelimiterRed", + start_col = 44, + start_row = 44 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterYellow", + start_col = 8, + start_row = 45 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterYellow", + start_col = 9, + start_row = 45 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 46 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterRed", + start_col = 15, + start_row = 49 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterRed", + start_col = 17, + start_row = 49 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 11, + start_row = 50 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 18, + start_row = 50 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterBlue", + start_col = 25, + start_row = 50 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterOrange", + start_col = 32, + start_row = 50 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterOrange", + start_col = 34, + start_row = 50 + }, { + end_col = 36, + end_row = 36, + hl_group = "RainbowDelimiterBlue", + start_col = 35, + start_row = 50 + }, { + end_col = 37, + end_row = 37, + hl_group = "RainbowDelimiterYellow", + start_col = 36, + start_row = 50 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterRed", + start_col = 37, + start_row = 50 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterRed", + start_col = 6, + start_row = 53 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 11, + start_row = 53 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 11, + start_row = 56 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterYellow", + start_col = 16, + start_row = 56 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterBlue", + start_col = 21, + start_row = 56 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterBlue", + start_col = 27, + start_row = 56 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterYellow", + start_col = 28, + start_row = 56 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterRed", + start_col = 29, + start_row = 56 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterRed", + start_col = 6, + start_row = 60 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterRed", + start_col = 8, + start_row = 60 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterRed", + start_col = 10, + start_row = 60 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 63 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterRed", + start_col = 7, + start_row = 66 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterRed", + start_col = 16, + start_row = 66 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/javascript/rainbow-delimiters/regular.js.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/javascript/rainbow-delimiters/regular.js.lua new file mode 100644 index 00000000..43427219 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/javascript/rainbow-delimiters/regular.js.lua @@ -0,0 +1,507 @@ +return { + javascript = { { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterRed", + start_col = 7, + start_row = 1 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterRed", + start_col = 18, + start_row = 1 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 11, + start_row = 5 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterYellow", + start_col = 20, + start_row = 5 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterYellow", + start_col = 25, + start_row = 5 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterRed", + start_col = 27, + start_row = 5 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterRed", + start_col = 12, + start_row = 8 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterRed", + start_col = 17, + start_row = 8 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterRed", + start_col = 19, + start_row = 8 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterYellow", + start_col = 14, + start_row = 9 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterYellow", + start_col = 21, + start_row = 9 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterYellow", + start_col = 23, + start_row = 9 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterBlue", + start_col = 5, + start_row = 10 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterBlue", + start_col = 12, + start_row = 10 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterBlue", + start_col = 14, + start_row = 10 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 12 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 13 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterBlue", + start_col = 28, + start_row = 13 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 14 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 15 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterYellow", + start_col = 17, + start_row = 15 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 16 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterRed", + start_col = 16, + start_row = 19 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterRed", + start_col = 17, + start_row = 19 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterRed", + start_col = 19, + start_row = 19 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterYellow", + start_col = 5, + start_row = 20 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterYellow", + start_col = 28, + start_row = 20 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterYellow", + start_col = 30, + start_row = 20 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 22 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 24 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterYellow", + start_col = 13, + start_row = 24 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterYellow", + start_col = 5, + start_row = 25 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterYellow", + start_col = 25, + start_row = 25 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterYellow", + start_col = 27, + start_row = 25 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 26 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterBlue", + start_col = 21, + start_row = 26 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 27 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 28 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterRed", + start_col = 17, + start_row = 31 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterRed", + start_col = 22, + start_row = 31 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterRed", + start_col = 18, + start_row = 34 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 35 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterBlue", + start_col = 5, + start_row = 36 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterOrange", + start_col = 6, + start_row = 37 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterOrange", + start_col = 7, + start_row = 37 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 38 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterBlue", + start_col = 4, + start_row = 39 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterOrange", + start_col = 5, + start_row = 39 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterOrange", + start_col = 13, + start_row = 39 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterBlue", + start_col = 14, + start_row = 39 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 40 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 41 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterRed", + start_col = 29, + start_row = 44 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterYellow", + start_col = 30, + start_row = 44 + }, { + end_col = 39, + end_row = 39, + hl_group = "RainbowDelimiterYellow", + start_col = 38, + start_row = 44 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterRed", + start_col = 39, + start_row = 44 + }, { + end_col = 45, + end_row = 45, + hl_group = "RainbowDelimiterRed", + start_col = 44, + start_row = 44 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterYellow", + start_col = 8, + start_row = 45 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterYellow", + start_col = 9, + start_row = 45 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 46 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterRed", + start_col = 15, + start_row = 49 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterRed", + start_col = 17, + start_row = 49 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 11, + start_row = 50 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 18, + start_row = 50 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterBlue", + start_col = 25, + start_row = 50 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterOrange", + start_col = 32, + start_row = 50 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterOrange", + start_col = 34, + start_row = 50 + }, { + end_col = 36, + end_row = 36, + hl_group = "RainbowDelimiterBlue", + start_col = 35, + start_row = 50 + }, { + end_col = 37, + end_row = 37, + hl_group = "RainbowDelimiterYellow", + start_col = 36, + start_row = 50 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterRed", + start_col = 37, + start_row = 50 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterRed", + start_col = 6, + start_row = 53 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 11, + start_row = 53 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 11, + start_row = 56 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterYellow", + start_col = 16, + start_row = 56 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterBlue", + start_col = 21, + start_row = 56 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterBlue", + start_col = 27, + start_row = 56 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterYellow", + start_col = 28, + start_row = 56 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterRed", + start_col = 29, + start_row = 56 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterRed", + start_col = 6, + start_row = 60 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterRed", + start_col = 8, + start_row = 60 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterRed", + start_col = 10, + start_row = 60 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 63 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterRed", + start_col = 7, + start_row = 66 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterRed", + start_col = 16, + start_row = 66 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/javascript/rainbow-tags-react/regular.js.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/javascript/rainbow-tags-react/regular.js.lua new file mode 100644 index 00000000..49dab29b --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/javascript/rainbow-tags-react/regular.js.lua @@ -0,0 +1,3 @@ +return { + javascript = {} +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/json/rainbow-delimiters/regular.json.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/json/rainbow-delimiters/regular.json.lua new file mode 100644 index 00000000..1f180760 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/json/rainbow-delimiters/regular.json.lua @@ -0,0 +1,63 @@ +return { + json = { { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 0 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterYellow", + start_col = 8, + start_row = 2 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterBlue", + start_col = 9, + start_row = 3 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterOrange", + start_col = 3, + start_row = 4 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterGreen", + start_col = 4, + start_row = 5 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterGreen", + start_col = 5, + start_row = 5 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterOrange", + start_col = 3, + start_row = 6 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 7 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 8 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 9 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/json5/rainbow-delimiters/regular.json5.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/json5/rainbow-delimiters/regular.json5.lua new file mode 100644 index 00000000..a2bdf3fb --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/json5/rainbow-delimiters/regular.json5.lua @@ -0,0 +1,99 @@ +return { + json5 = { { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 0 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterYellow", + start_col = 10, + start_row = 7 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterBlue", + start_col = 14, + start_row = 7 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterOrange", + start_col = 18, + start_row = 7 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterGreen", + start_col = 22, + start_row = 7 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterGreen", + start_col = 23, + start_row = 7 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterOrange", + start_col = 24, + start_row = 7 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterBlue", + start_col = 25, + start_row = 7 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterYellow", + start_col = 26, + start_row = 7 + }, { + end_col = 39, + end_row = 39, + hl_group = "RainbowDelimiterYellow", + start_col = 38, + start_row = 10 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterBlue", + start_col = 39, + start_row = 10 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterOrange", + start_col = 40, + start_row = 10 + }, { + end_col = 51, + end_row = 51, + hl_group = "RainbowDelimiterOrange", + start_col = 50, + start_row = 10 + }, { + end_col = 52, + end_row = 52, + hl_group = "RainbowDelimiterBlue", + start_col = 51, + start_row = 10 + }, { + end_col = 53, + end_row = 53, + hl_group = "RainbowDelimiterYellow", + start_col = 52, + start_row = 10 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 12 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/jsonc/rainbow-delimiters/regular.jsonc.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/jsonc/rainbow-delimiters/regular.jsonc.lua new file mode 100644 index 00000000..8ba07c27 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/jsonc/rainbow-delimiters/regular.jsonc.lua @@ -0,0 +1,63 @@ +return { + jsonc = { { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 1 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterYellow", + start_col = 8, + start_row = 5 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterBlue", + start_col = 9, + start_row = 6 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterOrange", + start_col = 3, + start_row = 7 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterGreen", + start_col = 4, + start_row = 8 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterGreen", + start_col = 5, + start_row = 8 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterOrange", + start_col = 3, + start_row = 9 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 10 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 11 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 12 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/jsonnet/rainbow-delimiters/arithmetic.jsonnet.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/jsonnet/rainbow-delimiters/arithmetic.jsonnet.lua new file mode 100644 index 00000000..c7ef67f0 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/jsonnet/rainbow-delimiters/arithmetic.jsonnet.lua @@ -0,0 +1,195 @@ +return { + jsonnet = { { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 0 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterYellow", + start_col = 16, + start_row = 1 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterYellow", + start_col = 24, + start_row = 1 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterYellow", + start_col = 28, + start_row = 1 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterYellow", + start_col = 30, + start_row = 1 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterYellow", + start_col = 13, + start_row = 4 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterBlue", + start_col = 14, + start_row = 4 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterBlue", + start_col = 15, + start_row = 4 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterBlue", + start_col = 18, + start_row = 4 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterBlue", + start_col = 29, + start_row = 4 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterYellow", + start_col = 30, + start_row = 4 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterYellow", + start_col = 16, + start_row = 5 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterBlue", + start_col = 17, + start_row = 5 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterBlue", + start_col = 18, + start_row = 5 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterBlue", + start_col = 21, + start_row = 5 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterBlue", + start_col = 28, + start_row = 5 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterYellow", + start_col = 29, + start_row = 5 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterYellow", + start_col = 19, + start_row = 6 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterYellow", + start_col = 25, + start_row = 6 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterYellow", + start_col = 7, + start_row = 12 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterYellow", + start_col = 13, + start_row = 12 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 18, + start_row = 12 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterYellow", + start_col = 25, + start_row = 12 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterYellow", + start_col = 7, + start_row = 14 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterYellow", + start_col = 20, + start_row = 14 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterYellow", + start_col = 24, + start_row = 14 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterYellow", + start_col = 37, + start_row = 14 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterYellow", + start_col = 23, + start_row = 16 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterYellow", + start_col = 32, + start_row = 16 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterYellow", + start_col = 10, + start_row = 23 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterYellow", + start_col = 29, + start_row = 23 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 33 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/jsonnet/rainbow-delimiters/cocktail-comprehensions.jsonnet.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/jsonnet/rainbow-delimiters/cocktail-comprehensions.jsonnet.lua new file mode 100644 index 00000000..cf0129cf --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/jsonnet/rainbow-delimiters/cocktail-comprehensions.jsonnet.lua @@ -0,0 +1,183 @@ +return { + jsonnet = { { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 0 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterYellow", + start_col = 13, + start_row = 1 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterBlue", + start_col = 19, + start_row = 2 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterOrange", + start_col = 19, + start_row = 6 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterGreen", + start_col = 8, + start_row = 7 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterGreen", + start_col = 33, + start_row = 7 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterGreen", + start_col = 20, + start_row = 8 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterGreen", + start_col = 8, + start_row = 12 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterOrange", + start_col = 6, + start_row = 13 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterBlue", + start_col = 4, + start_row = 16 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 17 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterYellow", + start_col = 6, + start_row = 17 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterBlue", + start_col = 4, + start_row = 18 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterBlue", + start_col = 28, + start_row = 18 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterBlue", + start_col = 31, + start_row = 18 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterOrange", + start_col = 19, + start_row = 19 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterGreen", + start_col = 8, + start_row = 20 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterGreen", + start_col = 34, + start_row = 20 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterGreen", + start_col = 8, + start_row = 21 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterGreen", + start_col = 33, + start_row = 21 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterOrange", + start_col = 6, + start_row = 22 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterBlue", + start_col = 4, + start_row = 24 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterBlue", + start_col = 14, + start_row = 25 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterOrange", + start_col = 6, + start_row = 26 + }, { + end_col = 44, + end_row = 44, + hl_group = "RainbowDelimiterOrange", + start_col = 43, + start_row = 26 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterOrange", + start_col = 6, + start_row = 27 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterOrange", + start_col = 40, + start_row = 27 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterBlue", + start_col = 4, + start_row = 28 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 29 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 30 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/jsonnet/rainbow-delimiters/computed-fields.jsonnet.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/jsonnet/rainbow-delimiters/computed-fields.jsonnet.lua new file mode 100644 index 00000000..a7885ed4 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/jsonnet/rainbow-delimiters/computed-fields.jsonnet.lua @@ -0,0 +1,123 @@ +return { + jsonnet = { { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterRed", + start_col = 15, + start_row = 0 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterRed", + start_col = 22, + start_row = 0 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterRed", + start_col = 26, + start_row = 0 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterYellow", + start_col = 15, + start_row = 1 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterBlue", + start_col = 4, + start_row = 2 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterBlue", + start_col = 37, + start_row = 2 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterBlue", + start_col = 4, + start_row = 3 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterBlue", + start_col = 27, + start_row = 3 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterBlue", + start_col = 4, + start_row = 4 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterBlue", + start_col = 32, + start_row = 4 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 5 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 6 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterYellow", + start_col = 27, + start_row = 6 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 7 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 8 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterYellow", + start_col = 22, + start_row = 9 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterYellow", + start_col = 27, + start_row = 9 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterYellow", + start_col = 33, + start_row = 10 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterYellow", + start_col = 39, + start_row = 10 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 11 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/jsonnet/rainbow-delimiters/function.jsonnet.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/jsonnet/rainbow-delimiters/function.jsonnet.lua new file mode 100644 index 00000000..bdf2d68e --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/jsonnet/rainbow-delimiters/function.jsonnet.lua @@ -0,0 +1,243 @@ +return { + jsonnet = { { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterRed", + start_col = 17, + start_row = 2 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterRed", + start_col = 25, + start_row = 2 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterRed", + start_col = 24, + start_row = 5 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterRed", + start_col = 26, + start_row = 5 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterRed", + start_col = 2, + start_row = 9 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterRed", + start_col = 17, + start_row = 9 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterRed", + start_col = 15, + start_row = 11 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterYellow", + start_col = 11, + start_row = 13 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterYellow", + start_col = 13, + start_row = 13 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 14 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 16 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterBlue", + start_col = 4, + start_row = 19 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterOrange", + start_col = 13, + start_row = 19 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterOrange", + start_col = 15, + start_row = 19 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterBlue", + start_col = 22, + start_row = 19 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterYellow", + start_col = 23, + start_row = 19 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterYellow", + start_col = 25, + start_row = 19 + }, { + end_col = 46, + end_row = 46, + hl_group = "RainbowDelimiterYellow", + start_col = 45, + start_row = 21 + }, { + end_col = 48, + end_row = 48, + hl_group = "RainbowDelimiterYellow", + start_col = 47, + start_row = 21 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterYellow", + start_col = 19, + start_row = 25 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterYellow", + start_col = 21, + start_row = 25 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterYellow", + start_col = 27, + start_row = 29 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterYellow", + start_col = 31, + start_row = 29 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterYellow", + start_col = 28, + start_row = 31 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterYellow", + start_col = 37, + start_row = 31 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterYellow", + start_col = 32, + start_row = 35 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterYellow", + start_col = 34, + start_row = 35 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 38 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterBlue", + start_col = 27, + start_row = 38 + }, { + end_col = 43, + end_row = 43, + hl_group = "RainbowDelimiterBlue", + start_col = 42, + start_row = 38 + }, { + end_col = 44, + end_row = 44, + hl_group = "RainbowDelimiterYellow", + start_col = 43, + start_row = 38 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterYellow", + start_col = 7, + start_row = 39 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterBlue", + start_col = 14, + start_row = 40 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterBlue", + start_col = 22, + start_row = 40 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterBlue", + start_col = 14, + start_row = 41 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterOrange", + start_col = 15, + start_row = 41 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterOrange", + start_col = 23, + start_row = 41 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterBlue", + start_col = 24, + start_row = 41 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 42 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 43 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/julia/rainbow-delimiters/regular.jl.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/julia/rainbow-delimiters/regular.jl.lua new file mode 100644 index 00000000..09270305 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/julia/rainbow-delimiters/regular.jl.lua @@ -0,0 +1,135 @@ +return { + julia = { { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterRed", + start_col = 10, + start_row = 0 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterRed", + start_col = 14, + start_row = 0 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterRed", + start_col = 15, + start_row = 0 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterYellow", + start_col = 16, + start_row = 0 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterYellow", + start_col = 33, + start_row = 0 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterRed", + start_col = 34, + start_row = 0 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterRed", + start_col = 4, + start_row = 1 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 4 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterRed", + start_col = 1, + start_row = 6 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterRed", + start_col = 3, + start_row = 6 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterRed", + start_col = 10, + start_row = 6 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterYellow", + start_col = 11, + start_row = 6 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterYellow", + start_col = 15, + start_row = 6 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterYellow", + start_col = 17, + start_row = 6 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterYellow", + start_col = 21, + start_row = 6 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterRed", + start_col = 22, + start_row = 6 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterRed", + start_col = 4, + start_row = 7 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterYellow", + start_col = 6, + start_row = 7 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterYellow", + start_col = 8, + start_row = 7 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterRed", + start_col = 21, + start_row = 7 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterRed", + start_col = 4, + start_row = 8 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterRed", + start_col = 9, + start_row = 8 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/kotlin/rainbow-delimiters/Test.kt.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/kotlin/rainbow-delimiters/Test.kt.lua new file mode 100644 index 00000000..38001a42 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/kotlin/rainbow-delimiters/Test.kt.lua @@ -0,0 +1,963 @@ +return { + kotlin = { { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterRed", + start_col = 12, + start_row = 1 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterRed", + start_col = 14, + start_row = 1 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterRed", + start_col = 15, + start_row = 1 + }, { + end_col = 81, + end_row = 81, + hl_group = "RainbowDelimiterRed", + start_col = 80, + start_row = 1 + }, { + end_col = 83, + end_row = 83, + hl_group = "RainbowDelimiterRed", + start_col = 82, + start_row = 1 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterYellow", + start_col = 15, + start_row = 3 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterYellow", + start_col = 28, + start_row = 3 + }, { + end_col = 37, + end_row = 37, + hl_group = "RainbowDelimiterYellow", + start_col = 36, + start_row = 3 + }, { + end_col = 45, + end_row = 45, + hl_group = "RainbowDelimiterYellow", + start_col = 44, + start_row = 3 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterYellow", + start_col = 16, + start_row = 5 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterBlue", + start_col = 22, + start_row = 6 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterBlue", + start_col = 8, + start_row = 7 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 8 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterYellow", + start_col = 15, + start_row = 11 + }, { + end_col = 53, + end_row = 53, + hl_group = "RainbowDelimiterYellow", + start_col = 52, + start_row = 11 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterYellow", + start_col = 13, + start_row = 15 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterYellow", + start_col = 14, + start_row = 15 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterYellow", + start_col = 16, + start_row = 15 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterBlue", + start_col = 15, + start_row = 16 + }, { + end_col = 67, + end_row = 67, + hl_group = "RainbowDelimiterBlue", + start_col = 66, + start_row = 16 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 17 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 18 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterRed", + start_col = 18, + start_row = 21 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterRed", + start_col = 19, + start_row = 21 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterRed", + start_col = 22, + start_row = 24 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterRed", + start_col = 29, + start_row = 24 + }, { + end_col = 37, + end_row = 37, + hl_group = "RainbowDelimiterRed", + start_col = 36, + start_row = 24 + }, { + end_col = 53, + end_row = 53, + hl_group = "RainbowDelimiterYellow", + start_col = 52, + start_row = 25 + }, { + end_col = 59, + end_row = 59, + hl_group = "RainbowDelimiterYellow", + start_col = 58, + start_row = 25 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 26 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterRed", + start_col = 8, + start_row = 29 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterRed", + start_col = 9, + start_row = 29 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 11, + start_row = 29 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterYellow", + start_col = 23, + start_row = 30 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterBlue", + start_col = 27, + start_row = 30 + }, { + end_col = 43, + end_row = 43, + hl_group = "RainbowDelimiterBlue", + start_col = 42, + start_row = 30 + }, { + end_col = 44, + end_row = 44, + hl_group = "RainbowDelimiterYellow", + start_col = 43, + start_row = 30 + }, { + end_col = 45, + end_row = 45, + hl_group = "RainbowDelimiterYellow", + start_col = 44, + start_row = 30 + }, { + end_col = 67, + end_row = 67, + hl_group = "RainbowDelimiterBlue", + start_col = 66, + start_row = 30 + }, { + end_col = 68, + end_row = 68, + hl_group = "RainbowDelimiterBlue", + start_col = 67, + start_row = 30 + }, { + end_col = 69, + end_row = 69, + hl_group = "RainbowDelimiterYellow", + start_col = 68, + start_row = 30 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterYellow", + start_col = 16, + start_row = 31 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterYellow", + start_col = 17, + start_row = 31 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterYellow", + start_col = 11, + start_row = 34 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterBlue", + start_col = 25, + start_row = 34 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterBlue", + start_col = 26, + start_row = 34 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterYellow", + start_col = 27, + start_row = 34 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterYellow", + start_col = 25, + start_row = 38 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterBlue", + start_col = 15, + start_row = 39 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterBlue", + start_col = 33, + start_row = 39 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 40 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterYellow", + start_col = 11, + start_row = 40 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterBlue", + start_col = 15, + start_row = 41 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterBlue", + start_col = 32, + start_row = 41 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 42 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterYellow", + start_col = 8, + start_row = 45 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 18, + start_row = 45 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterYellow", + start_col = 20, + start_row = 45 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterBlue", + start_col = 15, + start_row = 46 + }, { + end_col = 58, + end_row = 58, + hl_group = "RainbowDelimiterOrange", + start_col = 57, + start_row = 46 + }, { + end_col = 60, + end_row = 60, + hl_group = "RainbowDelimiterOrange", + start_col = 59, + start_row = 46 + }, { + end_col = 63, + end_row = 63, + hl_group = "RainbowDelimiterBlue", + start_col = 62, + start_row = 46 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 47 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterYellow", + start_col = 19, + start_row = 50 + }, { + end_col = 49, + end_row = 49, + hl_group = "RainbowDelimiterYellow", + start_col = 48, + start_row = 50 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterYellow", + start_col = 8, + start_row = 51 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterBlue", + start_col = 9, + start_row = 51 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterBlue", + start_col = 20, + start_row = 51 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterYellow", + start_col = 28, + start_row = 51 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterYellow", + start_col = 30, + start_row = 51 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterBlue", + start_col = 15, + start_row = 52 + }, { + end_col = 43, + end_row = 43, + hl_group = "RainbowDelimiterBlue", + start_col = 42, + start_row = 52 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 53 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterYellow", + start_col = 24, + start_row = 56 + }, { + end_col = 39, + end_row = 39, + hl_group = "RainbowDelimiterYellow", + start_col = 38, + start_row = 56 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterYellow", + start_col = 30, + start_row = 57 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterYellow", + start_col = 39, + start_row = 57 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterYellow", + start_col = 11, + start_row = 58 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterYellow", + start_col = 39, + start_row = 58 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 59 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterRed", + start_col = 17, + start_row = 61 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterRed", + start_col = 25, + start_row = 61 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterRed", + start_col = 13, + start_row = 62 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterYellow", + start_col = 11, + start_row = 63 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterYellow", + start_col = 16, + start_row = 63 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 64 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterRed", + start_col = 20, + start_row = 66 + }, { + end_col = 66, + end_row = 66, + hl_group = "RainbowDelimiterRed", + start_col = 65, + start_row = 66 + }, { + end_col = 73, + end_row = 73, + hl_group = "RainbowDelimiterRed", + start_col = 72, + start_row = 66 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterYellow", + start_col = 20, + start_row = 67 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterYellow", + start_col = 25, + start_row = 67 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 68 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterRed", + start_col = 26, + start_row = 70 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterRed", + start_col = 31, + start_row = 70 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterRed", + start_col = 33, + start_row = 70 + }, { + end_col = 50, + end_row = 50, + hl_group = "RainbowDelimiterRed", + start_col = 49, + start_row = 70 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterRed", + start_col = 7, + start_row = 71 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterRed", + start_col = 19, + start_row = 71 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterRed", + start_col = 18, + start_row = 74 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterRed", + start_col = 33, + start_row = 74 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterRed", + start_col = 40, + start_row = 74 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 76 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterRed", + start_col = 7, + start_row = 78 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterYellow", + start_col = 28, + start_row = 78 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterYellow", + start_col = 33, + start_row = 78 + }, { + end_col = 37, + end_row = 37, + hl_group = "RainbowDelimiterRed", + start_col = 36, + start_row = 78 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterRed", + start_col = 5, + start_row = 81 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterRed", + start_col = 7, + start_row = 81 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterRed", + start_col = 9, + start_row = 81 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterYellow", + start_col = 16, + start_row = 82 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterYellow", + start_col = 25, + start_row = 82 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterYellow", + start_col = 16, + start_row = 83 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterYellow", + start_col = 25, + start_row = 83 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterYellow", + start_col = 19, + start_row = 84 + }, { + end_col = 43, + end_row = 43, + hl_group = "RainbowDelimiterYellow", + start_col = 42, + start_row = 84 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 85 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterRed", + start_col = 5, + start_row = 87 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterYellow", + start_col = 19, + start_row = 88 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterYellow", + start_col = 23, + start_row = 88 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterYellow", + start_col = 17, + start_row = 89 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterYellow", + start_col = 23, + start_row = 89 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 90 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterRed", + start_col = 18, + start_row = 95 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterRed", + start_col = 23, + start_row = 95 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterRed", + start_col = 25, + start_row = 95 + }, { + end_col = 36, + end_row = 36, + hl_group = "RainbowDelimiterYellow", + start_col = 35, + start_row = 95 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterYellow", + start_col = 40, + start_row = 95 + }, { + end_col = 43, + end_row = 43, + hl_group = "RainbowDelimiterRed", + start_col = 42, + start_row = 95 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterRed", + start_col = 4, + start_row = 98 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterRed", + start_col = 24, + start_row = 98 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterRed", + start_col = 26, + start_row = 98 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterYellow", + start_col = 8, + start_row = 99 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterBlue", + start_col = 20, + start_row = 99 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterBlue", + start_col = 22, + start_row = 99 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterYellow", + start_col = 31, + start_row = 99 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterYellow", + start_col = 33, + start_row = 99 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterBlue", + start_col = 14, + start_row = 100 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterBlue", + start_col = 16, + start_row = 100 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterBlue", + start_col = 17, + start_row = 100 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterBlue", + start_col = 19, + start_row = 100 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 101 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterYellow", + start_col = 10, + start_row = 102 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterBlue", + start_col = 17, + start_row = 102 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterBlue", + start_col = 19, + start_row = 102 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterBlue", + start_col = 20, + start_row = 102 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterBlue", + start_col = 22, + start_row = 102 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterYellow", + start_col = 23, + start_row = 102 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 103 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterRed", + start_col = 4, + start_row = 106 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterRed", + start_col = 18, + start_row = 106 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterRed", + start_col = 20, + start_row = 106 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterYellow", + start_col = 8, + start_row = 107 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterYellow", + start_col = 19, + start_row = 107 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterYellow", + start_col = 21, + start_row = 107 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 108 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterBlue", + start_col = 21, + start_row = 108 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 109 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterYellow", + start_col = 11, + start_row = 110 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 110 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 111 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/latex/rainbow-blocks/regular.tex.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/latex/rainbow-blocks/regular.tex.lua new file mode 100644 index 00000000..3694e0a1 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/latex/rainbow-blocks/regular.tex.lua @@ -0,0 +1,27 @@ +return { + latex = { { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 5 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 22 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 25 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 28 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/latex/rainbow-delimiters/regular.tex.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/latex/rainbow-delimiters/regular.tex.lua new file mode 100644 index 00000000..d377a938 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/latex/rainbow-delimiters/regular.tex.lua @@ -0,0 +1,219 @@ +return { + latex = { { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterRed", + start_col = 6, + start_row = 3 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterRed", + start_col = 13, + start_row = 3 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterRed", + start_col = 6, + start_row = 5 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterRed", + start_col = 15, + start_row = 5 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterRed", + start_col = 8, + start_row = 7 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterRed", + start_col = 9, + start_row = 7 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterRed", + start_col = 10, + start_row = 8 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 11, + start_row = 8 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterRed", + start_col = 39, + start_row = 14 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterRed", + start_col = 40, + start_row = 14 + }, { + end_col = 39, + end_row = 39, + hl_group = "RainbowDelimiterRed", + start_col = 38, + start_row = 17 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterRed", + start_col = 39, + start_row = 17 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterRed", + start_col = 8, + start_row = 22 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterRed", + start_col = 14, + start_row = 22 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterRed", + start_col = 14, + start_row = 24 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterRed", + start_col = 19, + start_row = 24 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterRed", + start_col = 20, + start_row = 24 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterYellow", + start_col = 26, + start_row = 24 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterBlue", + start_col = 34, + start_row = 24 + }, { + end_col = 39, + end_row = 39, + hl_group = "RainbowDelimiterBlue", + start_col = 38, + start_row = 24 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterBlue", + start_col = 39, + start_row = 24 + }, { + end_col = 44, + end_row = 44, + hl_group = "RainbowDelimiterBlue", + start_col = 43, + start_row = 24 + }, { + end_col = 45, + end_row = 45, + hl_group = "RainbowDelimiterYellow", + start_col = 44, + start_row = 24 + }, { + end_col = 46, + end_row = 46, + hl_group = "RainbowDelimiterRed", + start_col = 45, + start_row = 24 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterRed", + start_col = 6, + start_row = 25 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterRed", + start_col = 12, + start_row = 25 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterRed", + start_col = 18, + start_row = 27 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterYellow", + start_col = 27, + start_row = 27 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterBlue", + start_col = 31, + start_row = 27 + }, { + end_col = 37, + end_row = 37, + hl_group = "RainbowDelimiterBlue", + start_col = 36, + start_row = 27 + }, { + end_col = 59, + end_row = 59, + hl_group = "RainbowDelimiterBlue", + start_col = 58, + start_row = 27 + }, { + end_col = 76, + end_row = 76, + hl_group = "RainbowDelimiterBlue", + start_col = 75, + start_row = 27 + }, { + end_col = 77, + end_row = 77, + hl_group = "RainbowDelimiterYellow", + start_col = 76, + start_row = 27 + }, { + end_col = 78, + end_row = 78, + hl_group = "RainbowDelimiterRed", + start_col = 77, + start_row = 27 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterRed", + start_col = 4, + start_row = 28 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterRed", + start_col = 13, + start_row = 28 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/lua/rainbow-blocks/regular.lua.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/lua/rainbow-blocks/regular.lua.lua new file mode 100644 index 00000000..62600676 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/lua/rainbow-blocks/regular.lua.lua @@ -0,0 +1,508 @@ +return { + lua = { { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterRed", + start_col = 6, + start_row = 2 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterYellow", + start_col = 17, + start_row = 2 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterYellow", + start_col = 22, + start_row = 2 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterYellow", + start_col = 7, + start_row = 3 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterBlue", + start_col = 18, + start_row = 3 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterBlue", + start_col = 25, + start_row = 3 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 5 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterYellow", + start_col = 10, + start_row = 6 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterYellow", + start_col = 15, + start_row = 6 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 7 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 9 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterYellow", + start_col = 23, + start_row = 9 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterYellow", + start_col = 24, + start_row = 9 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 11 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 13 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 8, + start_row = 13 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 15 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterRed", + start_col = 13, + start_row = 15 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 17 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterRed", + start_col = 13, + start_row = 17 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 19 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 21 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 23 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterRed", + start_col = 12, + start_row = 23 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 25 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 27 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 29 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 31 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 33 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 35 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterRed", + start_col = 9, + start_row = 35 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 18, + start_row = 35 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterBlue", + start_col = 19, + start_row = 35 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterBlue", + start_col = 33, + start_row = 35 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterYellow", + start_col = 34, + start_row = 35 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterRed", + start_col = 36, + start_row = 35 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterYellow", + start_col = 6, + start_row = 36 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterBlue", + start_col = 20, + start_row = 36 + }, { + end_col = 37, + end_row = 37, + hl_group = "RainbowDelimiterBlue", + start_col = 36, + start_row = 36 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterYellow", + start_col = 37, + start_row = 36 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 37 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 39 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterRed", + start_col = 16, + start_row = 39 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterYellow", + start_col = 6, + start_row = 40 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterBlue", + start_col = 20, + start_row = 40 + }, { + end_col = 36, + end_row = 36, + hl_group = "RainbowDelimiterBlue", + start_col = 35, + start_row = 40 + }, { + end_col = 37, + end_row = 37, + hl_group = "RainbowDelimiterYellow", + start_col = 36, + start_row = 40 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 41 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterRed", + start_col = 5, + start_row = 43 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterYellow", + start_col = 8, + start_row = 43 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterYellow", + start_col = 17, + start_row = 43 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterRed", + start_col = 18, + start_row = 43 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterRed", + start_col = 5, + start_row = 44 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterYellow", + start_col = 6, + start_row = 44 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterBlue", + start_col = 7, + start_row = 44 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterOrange", + start_col = 8, + start_row = 44 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterGreen", + start_col = 9, + start_row = 44 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterGreen", + start_col = 25, + start_row = 44 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterOrange", + start_col = 26, + start_row = 44 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterBlue", + start_col = 27, + start_row = 44 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterYellow", + start_col = 28, + start_row = 44 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterRed", + start_col = 29, + start_row = 44 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterRed", + start_col = 6, + start_row = 46 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 47 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 48 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 50 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 51 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 52 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterRed", + start_col = 12, + start_row = 54 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterRed", + start_col = 14, + start_row = 54 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterRed", + start_col = 5, + start_row = 56 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterYellow", + start_col = 9, + start_row = 56 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 56 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterOrange", + start_col = 17, + start_row = 56 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterOrange", + start_col = 19, + start_row = 56 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterBlue", + start_col = 20, + start_row = 56 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterYellow", + start_col = 21, + start_row = 56 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterRed", + start_col = 22, + start_row = 56 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterRed", + start_col = 12, + start_row = 63 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 64 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterYellow", + start_col = 16, + start_row = 64 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterYellow", + start_col = 20, + start_row = 64 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterYellow", + start_col = 21, + start_row = 64 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 65 + } }, + vim = {} +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/lua/rainbow-delimiters/regular.lua.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/lua/rainbow-delimiters/regular.lua.lua new file mode 100644 index 00000000..00415330 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/lua/rainbow-delimiters/regular.lua.lua @@ -0,0 +1,412 @@ +return { + lua = { { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterRed", + start_col = 17, + start_row = 2 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterRed", + start_col = 22, + start_row = 2 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterRed", + start_col = 18, + start_row = 3 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterRed", + start_col = 25, + start_row = 3 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterRed", + start_col = 10, + start_row = 6 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterRed", + start_col = 15, + start_row = 6 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterRed", + start_col = 23, + start_row = 9 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterRed", + start_col = 24, + start_row = 9 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterRed", + start_col = 18, + start_row = 35 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterYellow", + start_col = 19, + start_row = 35 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterYellow", + start_col = 33, + start_row = 35 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterRed", + start_col = 34, + start_row = 35 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterRed", + start_col = 6, + start_row = 36 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterYellow", + start_col = 20, + start_row = 36 + }, { + end_col = 37, + end_row = 37, + hl_group = "RainbowDelimiterYellow", + start_col = 36, + start_row = 36 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterRed", + start_col = 37, + start_row = 36 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterRed", + start_col = 6, + start_row = 40 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterYellow", + start_col = 20, + start_row = 40 + }, { + end_col = 36, + end_row = 36, + hl_group = "RainbowDelimiterYellow", + start_col = 35, + start_row = 40 + }, { + end_col = 37, + end_row = 37, + hl_group = "RainbowDelimiterRed", + start_col = 36, + start_row = 40 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterRed", + start_col = 5, + start_row = 43 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterYellow", + start_col = 8, + start_row = 43 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterYellow", + start_col = 17, + start_row = 43 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterRed", + start_col = 18, + start_row = 43 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterRed", + start_col = 5, + start_row = 44 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterYellow", + start_col = 6, + start_row = 44 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterBlue", + start_col = 7, + start_row = 44 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterOrange", + start_col = 8, + start_row = 44 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterGreen", + start_col = 9, + start_row = 44 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterGreen", + start_col = 25, + start_row = 44 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterOrange", + start_col = 26, + start_row = 44 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterBlue", + start_col = 27, + start_row = 44 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterYellow", + start_col = 28, + start_row = 44 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterRed", + start_col = 29, + start_row = 44 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterRed", + start_col = 6, + start_row = 46 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 47 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 48 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 50 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 51 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 52 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterRed", + start_col = 12, + start_row = 54 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterRed", + start_col = 14, + start_row = 54 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterRed", + start_col = 5, + start_row = 56 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterYellow", + start_col = 9, + start_row = 56 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 56 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterOrange", + start_col = 17, + start_row = 56 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterOrange", + start_col = 19, + start_row = 56 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterBlue", + start_col = 20, + start_row = 56 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterYellow", + start_col = 21, + start_row = 56 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterRed", + start_col = 22, + start_row = 56 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterRed", + start_col = 12, + start_row = 63 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 64 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterYellow", + start_col = 16, + start_row = 64 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterYellow", + start_col = 20, + start_row = 64 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterYellow", + start_col = 21, + start_row = 64 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 65 + } }, + vim = { { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterRed", + start_col = 7, + start_row = 60 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterYellow", + start_col = 9, + start_row = 60 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterBlue", + start_col = 11, + start_row = 60 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterOrange", + start_col = 13, + start_row = 60 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterGreen", + start_col = 15, + start_row = 60 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterViolet", + start_col = 17, + start_row = 60 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterViolet", + start_col = 18, + start_row = 60 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterGreen", + start_col = 19, + start_row = 60 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterOrange", + start_col = 20, + start_row = 60 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterBlue", + start_col = 21, + start_row = 60 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterYellow", + start_col = 22, + start_row = 60 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterRed", + start_col = 23, + start_row = 60 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/luadoc/rainbow-delimiters/regular.lua.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/luadoc/rainbow-delimiters/regular.lua.lua new file mode 100644 index 00000000..5a01f497 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/luadoc/rainbow-delimiters/regular.lua.lua @@ -0,0 +1,363 @@ +return { + luadoc = { { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterRed", + start_col = 12, + start_row = 0 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterYellow", + start_col = 16, + start_row = 0 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterBlue", + start_col = 20, + start_row = 0 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterBlue", + start_col = 21, + start_row = 0 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterYellow", + start_col = 31, + start_row = 0 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterYellow", + start_col = 40, + start_row = 0 + }, { + end_col = 48, + end_row = 48, + hl_group = "RainbowDelimiterBlue", + start_col = 47, + start_row = 0 + }, { + end_col = 49, + end_row = 49, + hl_group = "RainbowDelimiterBlue", + start_col = 48, + start_row = 0 + }, { + end_col = 50, + end_row = 50, + hl_group = "RainbowDelimiterYellow", + start_col = 49, + start_row = 0 + }, { + end_col = 51, + end_row = 51, + hl_group = "RainbowDelimiterRed", + start_col = 50, + start_row = 0 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterRed", + start_col = 9, + start_row = 2 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterYellow", + start_col = 17, + start_row = 2 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterBlue", + start_col = 25, + start_row = 2 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterOrange", + start_col = 27, + start_row = 2 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterOrange", + start_col = 34, + start_row = 2 + }, { + end_col = 43, + end_row = 43, + hl_group = "RainbowDelimiterOrange", + start_col = 42, + start_row = 2 + }, { + end_col = 68, + end_row = 68, + hl_group = "RainbowDelimiterOrange", + start_col = 67, + start_row = 2 + }, { + end_col = 70, + end_row = 70, + hl_group = "RainbowDelimiterBlue", + start_col = 69, + start_row = 2 + }, { + end_col = 73, + end_row = 73, + hl_group = "RainbowDelimiterBlue", + start_col = 72, + start_row = 2 + }, { + end_col = 81, + end_row = 81, + hl_group = "RainbowDelimiterBlue", + start_col = 80, + start_row = 2 + }, { + end_col = 92, + end_row = 92, + hl_group = "RainbowDelimiterYellow", + start_col = 91, + start_row = 2 + }, { + end_col = 94, + end_row = 94, + hl_group = "RainbowDelimiterRed", + start_col = 93, + start_row = 2 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterRed", + start_col = 14, + start_row = 4 + }, { + end_col = 39, + end_row = 39, + hl_group = "RainbowDelimiterYellow", + start_col = 38, + start_row = 4 + }, { + end_col = 53, + end_row = 53, + hl_group = "RainbowDelimiterBlue", + start_col = 52, + start_row = 4 + }, { + end_col = 69, + end_row = 69, + hl_group = "RainbowDelimiterBlue", + start_col = 68, + start_row = 4 + }, { + end_col = 70, + end_row = 70, + hl_group = "RainbowDelimiterYellow", + start_col = 69, + start_row = 4 + }, { + end_col = 71, + end_row = 71, + hl_group = "RainbowDelimiterRed", + start_col = 70, + start_row = 4 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterRed", + start_col = 12, + start_row = 8 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterYellow", + start_col = 13, + start_row = 8 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterBlue", + start_col = 14, + start_row = 8 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterBlue", + start_col = 22, + start_row = 8 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterYellow", + start_col = 23, + start_row = 8 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterRed", + start_col = 24, + start_row = 8 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterRed", + start_col = 30, + start_row = 9 + }, { + end_col = 64, + end_row = 64, + hl_group = "RainbowDelimiterRed", + start_col = 63, + start_row = 9 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterRed", + start_col = 10, + start_row = 10 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterRed", + start_col = 17, + start_row = 10 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterRed", + start_col = 15, + start_row = 12 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterRed", + start_col = 16, + start_row = 12 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterRed", + start_col = 15, + start_row = 15 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterRed", + start_col = 26, + start_row = 15 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterRed", + start_col = 29, + start_row = 15 + }, { + end_col = 47, + end_row = 47, + hl_group = "RainbowDelimiterRed", + start_col = 46, + start_row = 15 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterRed", + start_col = 25, + start_row = 24 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterRed", + start_col = 26, + start_row = 24 + }, { + end_col = 46, + end_row = 46, + hl_group = "RainbowDelimiterRed", + start_col = 45, + start_row = 24 + }, { + end_col = 47, + end_row = 47, + hl_group = "RainbowDelimiterRed", + start_col = 46, + start_row = 24 + }, { + end_col = 57, + end_row = 57, + hl_group = "RainbowDelimiterRed", + start_col = 56, + start_row = 24 + }, { + end_col = 58, + end_row = 58, + hl_group = "RainbowDelimiterRed", + start_col = 57, + start_row = 24 + }, { + end_col = 79, + end_row = 79, + hl_group = "RainbowDelimiterRed", + start_col = 78, + start_row = 24 + }, { + end_col = 80, + end_row = 80, + hl_group = "RainbowDelimiterRed", + start_col = 79, + start_row = 24 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterRed", + start_col = 16, + start_row = 26 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterRed", + start_col = 17, + start_row = 26 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterRed", + start_col = 28, + start_row = 26 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterRed", + start_col = 29, + start_row = 26 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterYellow", + start_col = 9, + start_row = 28 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterYellow", + start_col = 27, + start_row = 28 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterRed", + start_col = 28, + start_row = 28 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterRed", + start_col = 29, + start_row = 28 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/make/rainbow-delimiters/makefile.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/make/rainbow-delimiters/makefile.lua new file mode 100644 index 00000000..3dfe36af --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/make/rainbow-delimiters/makefile.lua @@ -0,0 +1,64 @@ +return { + bash = { { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterRed", + start_col = 4, + start_row = 12 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterRed", + start_col = 22, + start_row = 12 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterRed", + start_col = 4, + start_row = 17 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterRed", + start_col = 23, + start_row = 17 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterRed", + start_col = 1, + start_row = 22 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterYellow", + start_col = 15, + start_row = 22 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterBlue", + start_col = 28, + start_row = 22 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterBlue", + start_col = 40, + start_row = 22 + }, { + end_col = 42, + end_row = 42, + hl_group = "RainbowDelimiterYellow", + start_col = 41, + start_row = 22 + }, { + end_col = 43, + end_row = 43, + hl_group = "RainbowDelimiterRed", + start_col = 42, + start_row = 22 + } }, + make = {} +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/markdown/rainbow-delimiters/extra.md.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/markdown/rainbow-delimiters/extra.md.lua new file mode 100644 index 00000000..a41c7349 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/markdown/rainbow-delimiters/extra.md.lua @@ -0,0 +1,4 @@ +return { + markdown = {}, + markdown_inline = {} +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/markdown/rainbow-delimiters/regular.md.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/markdown/rainbow-delimiters/regular.md.lua new file mode 100644 index 00000000..e1bd0f7b --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/markdown/rainbow-delimiters/regular.md.lua @@ -0,0 +1,582 @@ +return { + lua = { { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterRed", + start_col = 17, + start_row = 22 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterRed", + start_col = 22, + start_row = 22 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterRed", + start_col = 20, + start_row = 23 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterRed", + start_col = 27, + start_row = 23 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterRed", + start_col = 12, + start_row = 26 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterRed", + start_col = 17, + start_row = 26 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterRed", + start_col = 5, + start_row = 29 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterYellow", + start_col = 8, + start_row = 29 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterYellow", + start_col = 17, + start_row = 29 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterRed", + start_col = 18, + start_row = 29 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterRed", + start_col = 5, + start_row = 30 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterYellow", + start_col = 6, + start_row = 30 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterBlue", + start_col = 7, + start_row = 30 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterOrange", + start_col = 8, + start_row = 30 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterGreen", + start_col = 9, + start_row = 30 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterGreen", + start_col = 25, + start_row = 30 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterOrange", + start_col = 26, + start_row = 30 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterBlue", + start_col = 27, + start_row = 30 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterYellow", + start_col = 28, + start_row = 30 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterRed", + start_col = 29, + start_row = 30 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterRed", + start_col = 6, + start_row = 32 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 3, + start_row = 33 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterBlue", + start_col = 4, + start_row = 34 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterBlue", + start_col = 4, + start_row = 36 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 3, + start_row = 37 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 38 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterRed", + start_col = 12, + start_row = 40 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterRed", + start_col = 14, + start_row = 40 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterRed", + start_col = 5, + start_row = 42 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterYellow", + start_col = 9, + start_row = 42 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 42 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterOrange", + start_col = 17, + start_row = 42 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterOrange", + start_col = 19, + start_row = 42 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterBlue", + start_col = 20, + start_row = 42 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterYellow", + start_col = 21, + start_row = 42 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterRed", + start_col = 22, + start_row = 42 + } }, + markdown = {}, + markdown_inline = {}, + vim = { { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterRed", + start_col = 9, + start_row = 46 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterYellow", + start_col = 11, + start_row = 46 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 46 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterOrange", + start_col = 15, + start_row = 46 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterGreen", + start_col = 17, + start_row = 46 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterViolet", + start_col = 19, + start_row = 46 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterViolet", + start_col = 20, + start_row = 46 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterGreen", + start_col = 21, + start_row = 46 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterOrange", + start_col = 22, + start_row = 46 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterBlue", + start_col = 23, + start_row = 46 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterYellow", + start_col = 24, + start_row = 46 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterRed", + start_col = 25, + start_row = 46 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterRed", + start_col = 15, + start_row = 49 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterYellow", + start_col = 17, + start_row = 49 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterBlue", + start_col = 19, + start_row = 49 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterOrange", + start_col = 21, + start_row = 49 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterOrange", + start_col = 22, + start_row = 49 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterBlue", + start_col = 23, + start_row = 49 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterYellow", + start_col = 24, + start_row = 49 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterRed", + start_col = 25, + start_row = 49 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterRed", + start_col = 16, + start_row = 57 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterYellow", + start_col = 17, + start_row = 57 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterBlue", + start_col = 18, + start_row = 57 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterBlue", + start_col = 20, + start_row = 57 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterYellow", + start_col = 21, + start_row = 57 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterRed", + start_col = 22, + start_row = 57 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterRed", + start_col = 16, + start_row = 58 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterRed", + start_col = 7, + start_row = 59 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterYellow", + start_col = 9, + start_row = 59 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterYellow", + start_col = 8, + start_row = 60 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterBlue", + start_col = 10, + start_row = 60 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterBlue", + start_col = 9, + start_row = 61 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterBlue", + start_col = 5, + start_row = 62 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 63 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterRed", + start_col = 2, + start_row = 64 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 11, + start_row = 66 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterYellow", + start_col = 16, + start_row = 66 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterBlue", + start_col = 21, + start_row = 66 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterBlue", + start_col = 27, + start_row = 66 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterYellow", + start_col = 28, + start_row = 66 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterRed", + start_col = 29, + start_row = 66 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 11, + start_row = 67 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterYellow", + start_col = 13, + start_row = 67 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterYellow", + start_col = 15, + start_row = 67 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterRed", + start_col = 16, + start_row = 67 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 11, + start_row = 68 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 68 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterBlue", + start_col = 14, + start_row = 68 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterYellow", + start_col = 16, + start_row = 68 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterRed", + start_col = 18, + start_row = 68 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 18, + start_row = 68 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 11, + start_row = 69 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 69 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterOrange", + start_col = 14, + start_row = 69 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterBlue", + start_col = 18, + start_row = 69 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterBlue", + start_col = 18, + start_row = 69 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterYellow", + start_col = 20, + start_row = 69 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterBlue", + start_col = 20, + start_row = 69 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterRed", + start_col = 24, + start_row = 69 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterRed", + start_col = 26, + start_row = 69 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/nim/rainbow-delimiters/regular.nim.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/nim/rainbow-delimiters/regular.nim.lua new file mode 100644 index 00000000..f91f85cd --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/nim/rainbow-delimiters/regular.nim.lua @@ -0,0 +1,747 @@ +return { + nim = { { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterRed", + start_col = 6, + start_row = 1 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterYellow", + start_col = 13, + start_row = 1 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterYellow", + start_col = 17, + start_row = 1 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterRed", + start_col = 18, + start_row = 1 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterRed", + start_col = 19, + start_row = 1 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterYellow", + start_col = 26, + start_row = 1 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterBlue", + start_col = 30, + start_row = 1 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterBlue", + start_col = 34, + start_row = 1 + }, { + end_col = 36, + end_row = 36, + hl_group = "RainbowDelimiterYellow", + start_col = 35, + start_row = 1 + }, { + end_col = 37, + end_row = 37, + hl_group = "RainbowDelimiterRed", + start_col = 36, + start_row = 1 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterRed", + start_col = 6, + start_row = 6 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterYellow", + start_col = 7, + start_row = 6 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterBlue", + start_col = 8, + start_row = 6 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterBlue", + start_col = 10, + start_row = 6 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 6 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterBlue", + start_col = 15, + start_row = 6 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterYellow", + start_col = 16, + start_row = 6 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterYellow", + start_col = 19, + start_row = 6 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterBlue", + start_col = 20, + start_row = 6 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterBlue", + start_col = 22, + start_row = 6 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterBlue", + start_col = 25, + start_row = 6 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterBlue", + start_col = 27, + start_row = 6 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterYellow", + start_col = 28, + start_row = 6 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterRed", + start_col = 29, + start_row = 6 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterRed", + start_col = 2, + start_row = 8 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 3, + start_row = 8 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterBlue", + start_col = 4, + start_row = 8 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterBlue", + start_col = 6, + start_row = 8 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterBlue", + start_col = 9, + start_row = 8 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterBlue", + start_col = 11, + start_row = 8 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 8 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterYellow", + start_col = 15, + start_row = 8 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterBlue", + start_col = 16, + start_row = 8 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterBlue", + start_col = 18, + start_row = 8 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterBlue", + start_col = 21, + start_row = 8 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterBlue", + start_col = 23, + start_row = 8 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterYellow", + start_col = 24, + start_row = 8 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterRed", + start_col = 25, + start_row = 8 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterRed", + start_col = 29, + start_row = 8 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterYellow", + start_col = 30, + start_row = 8 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterBlue", + start_col = 31, + start_row = 8 + }, { + end_col = 36, + end_row = 36, + hl_group = "RainbowDelimiterBlue", + start_col = 35, + start_row = 8 + }, { + end_col = 39, + end_row = 39, + hl_group = "RainbowDelimiterBlue", + start_col = 38, + start_row = 8 + }, { + end_col = 43, + end_row = 43, + hl_group = "RainbowDelimiterBlue", + start_col = 42, + start_row = 8 + }, { + end_col = 44, + end_row = 44, + hl_group = "RainbowDelimiterYellow", + start_col = 43, + start_row = 8 + }, { + end_col = 47, + end_row = 47, + hl_group = "RainbowDelimiterYellow", + start_col = 46, + start_row = 8 + }, { + end_col = 48, + end_row = 48, + hl_group = "RainbowDelimiterBlue", + start_col = 47, + start_row = 8 + }, { + end_col = 52, + end_row = 52, + hl_group = "RainbowDelimiterBlue", + start_col = 51, + start_row = 8 + }, { + end_col = 55, + end_row = 55, + hl_group = "RainbowDelimiterBlue", + start_col = 54, + start_row = 8 + }, { + end_col = 59, + end_row = 59, + hl_group = "RainbowDelimiterBlue", + start_col = 58, + start_row = 8 + }, { + end_col = 60, + end_row = 60, + hl_group = "RainbowDelimiterYellow", + start_col = 59, + start_row = 8 + }, { + end_col = 61, + end_row = 61, + hl_group = "RainbowDelimiterRed", + start_col = 60, + start_row = 8 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterRed", + start_col = 6, + start_row = 10 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterRed", + start_col = 10, + start_row = 10 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterRed", + start_col = 6, + start_row = 12 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterYellow", + start_col = 10, + start_row = 12 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterBlue", + start_col = 14, + start_row = 12 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterBlue", + start_col = 15, + start_row = 12 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterBlue", + start_col = 17, + start_row = 12 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterBlue", + start_col = 23, + start_row = 12 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterBlue", + start_col = 24, + start_row = 12 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterBlue", + start_col = 26, + start_row = 12 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterYellow", + start_col = 27, + start_row = 12 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterYellow", + start_col = 33, + start_row = 12 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterBlue", + start_col = 37, + start_row = 12 + }, { + end_col = 39, + end_row = 39, + hl_group = "RainbowDelimiterBlue", + start_col = 38, + start_row = 12 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterBlue", + start_col = 40, + start_row = 12 + }, { + end_col = 47, + end_row = 47, + hl_group = "RainbowDelimiterBlue", + start_col = 46, + start_row = 12 + }, { + end_col = 48, + end_row = 48, + hl_group = "RainbowDelimiterBlue", + start_col = 47, + start_row = 12 + }, { + end_col = 50, + end_row = 50, + hl_group = "RainbowDelimiterBlue", + start_col = 49, + start_row = 12 + }, { + end_col = 51, + end_row = 51, + hl_group = "RainbowDelimiterYellow", + start_col = 50, + start_row = 12 + }, { + end_col = 52, + end_row = 52, + hl_group = "RainbowDelimiterRed", + start_col = 51, + start_row = 12 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterRed", + start_col = 6, + start_row = 14 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterYellow", + start_col = 7, + start_row = 14 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterBlue", + start_col = 8, + start_row = 14 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterBlue", + start_col = 5, + start_row = 17 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterYellow", + start_col = 6, + start_row = 17 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterRed", + start_col = 7, + start_row = 17 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterRed", + start_col = 7, + start_row = 19 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterYellow", + start_col = 11, + start_row = 19 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterYellow", + start_col = 15, + start_row = 19 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterRed", + start_col = 16, + start_row = 19 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterRed", + start_col = 17, + start_row = 19 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterYellow", + start_col = 19, + start_row = 19 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterBlue", + start_col = 21, + start_row = 19 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterOrange", + start_col = 23, + start_row = 19 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterGreen", + start_col = 27, + start_row = 19 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterGreen", + start_col = 31, + start_row = 19 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterOrange", + start_col = 32, + start_row = 19 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterOrange", + start_col = 33, + start_row = 19 + }, { + end_col = 36, + end_row = 36, + hl_group = "RainbowDelimiterGreen", + start_col = 35, + start_row = 19 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterViolet", + start_col = 37, + start_row = 19 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterViolet", + start_col = 39, + start_row = 19 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterGreen", + start_col = 40, + start_row = 19 + }, { + end_col = 42, + end_row = 42, + hl_group = "RainbowDelimiterOrange", + start_col = 41, + start_row = 19 + }, { + end_col = 43, + end_row = 43, + hl_group = "RainbowDelimiterBlue", + start_col = 42, + start_row = 19 + }, { + end_col = 44, + end_row = 44, + hl_group = "RainbowDelimiterYellow", + start_col = 43, + start_row = 19 + }, { + end_col = 45, + end_row = 45, + hl_group = "RainbowDelimiterRed", + start_col = 44, + start_row = 19 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterRed", + start_col = 4, + start_row = 22 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterYellow", + start_col = 10, + start_row = 22 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterBlue", + start_col = 17, + start_row = 22 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterBlue", + start_col = 21, + start_row = 22 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterYellow", + start_col = 24, + start_row = 22 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterRed", + start_col = 25, + start_row = 22 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterRed", + start_col = 26, + start_row = 22 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterYellow", + start_col = 28, + start_row = 22 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterBlue", + start_col = 32, + start_row = 22 + }, { + end_col = 37, + end_row = 37, + hl_group = "RainbowDelimiterBlue", + start_col = 36, + start_row = 22 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterYellow", + start_col = 37, + start_row = 22 + }, { + end_col = 39, + end_row = 39, + hl_group = "RainbowDelimiterYellow", + start_col = 38, + start_row = 22 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterBlue", + start_col = 40, + start_row = 22 + }, { + end_col = 43, + end_row = 43, + hl_group = "RainbowDelimiterOrange", + start_col = 42, + start_row = 22 + }, { + end_col = 45, + end_row = 45, + hl_group = "RainbowDelimiterOrange", + start_col = 44, + start_row = 22 + }, { + end_col = 46, + end_row = 46, + hl_group = "RainbowDelimiterBlue", + start_col = 45, + start_row = 22 + }, { + end_col = 47, + end_row = 47, + hl_group = "RainbowDelimiterYellow", + start_col = 46, + start_row = 22 + }, { + end_col = 48, + end_row = 48, + hl_group = "RainbowDelimiterRed", + start_col = 47, + start_row = 22 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterRed", + start_col = 10, + start_row = 25 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterBlue", + start_col = 11, + start_row = 25 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterBlue", + start_col = 17, + start_row = 25 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 18, + start_row = 25 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterYellow", + start_col = 20, + start_row = 25 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterRed", + start_col = 21, + start_row = 25 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterRed", + start_col = 22, + start_row = 25 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterRed", + start_col = 33, + start_row = 25 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/nix/rainbow-delimiters/regular.nix.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/nix/rainbow-delimiters/regular.nix.lua new file mode 100644 index 00000000..89090a9b --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/nix/rainbow-delimiters/regular.nix.lua @@ -0,0 +1,220 @@ +return { + bash = {}, + nix = { { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 0 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterYellow", + start_col = 11, + start_row = 3 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterBlue", + start_col = 23, + start_row = 6 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterBlue", + start_col = 4, + start_row = 8 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 11 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 13 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 19 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterYellow", + start_col = 23, + start_row = 20 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 22 + }, { + end_col = 49, + end_row = 49, + hl_group = "RainbowDelimiterYellow", + start_col = 48, + start_row = 24 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterBlue", + start_col = 14, + start_row = 25 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterBlue", + start_col = 22, + start_row = 25 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterBlue", + start_col = 36, + start_row = 26 + }, { + end_col = 45, + end_row = 45, + hl_group = "RainbowDelimiterBlue", + start_col = 44, + start_row = 26 + }, { + end_col = 42, + end_row = 42, + hl_group = "RainbowDelimiterBlue", + start_col = 40, + start_row = 28 + }, { + end_col = 49, + end_row = 49, + hl_group = "RainbowDelimiterBlue", + start_col = 48, + start_row = 28 + }, { + end_col = 55, + end_row = 55, + hl_group = "RainbowDelimiterBlue", + start_col = 54, + start_row = 28 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterOrange", + start_col = 16, + start_row = 30 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterOrange", + start_col = 8, + start_row = 33 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterOrange", + start_col = 19, + start_row = 34 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterGreen", + start_col = 32, + start_row = 35 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterGreen", + start_col = 10, + start_row = 37 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterOrange", + start_col = 8, + start_row = 38 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterBlue", + start_col = 6, + start_row = 39 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterBlue", + start_col = 7, + start_row = 40 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterOrange", + start_col = 17, + start_row = 41 + }, { + end_col = 47, + end_row = 47, + hl_group = "RainbowDelimiterGreen", + start_col = 46, + start_row = 42 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterGreen", + start_col = 8, + start_row = 46 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterOrange", + start_col = 6, + start_row = 48 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterOrange", + start_col = 17, + start_row = 49 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterOrange", + start_col = 6, + start_row = 50 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterOrange", + start_col = 15, + start_row = 51 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterOrange", + start_col = 6, + start_row = 53 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterBlue", + start_col = 4, + start_row = 54 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterYellow", + start_col = 5, + start_row = 54 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 55 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/perl/rainbow-delimiters/regular.pl.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/perl/rainbow-delimiters/regular.pl.lua new file mode 100644 index 00000000..34afe5cb --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/perl/rainbow-delimiters/regular.pl.lua @@ -0,0 +1,3 @@ +return { + perl = {} +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/php/rainbow-delimiters/regular.php.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/php/rainbow-delimiters/regular.php.lua new file mode 100644 index 00000000..ed46b041 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/php/rainbow-delimiters/regular.php.lua @@ -0,0 +1,231 @@ +return { + php = { { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterRed", + start_col = 7, + start_row = 2 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterYellow", + start_col = 8, + start_row = 2 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 2 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterBlue", + start_col = 20, + start_row = 2 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterYellow", + start_col = 21, + start_row = 2 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterRed", + start_col = 26, + start_row = 2 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterRed", + start_col = 8, + start_row = 5 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 5 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterYellow", + start_col = 21, + start_row = 5 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterRed", + start_col = 22, + start_row = 5 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterRed", + start_col = 12, + start_row = 8 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterYellow", + start_col = 33, + start_row = 11 + }, { + end_col = 39, + end_row = 39, + hl_group = "RainbowDelimiterYellow", + start_col = 38, + start_row = 11 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterYellow", + start_col = 29, + start_row = 14 + }, { + end_col = 37, + end_row = 37, + hl_group = "RainbowDelimiterYellow", + start_col = 36, + start_row = 14 + }, { + end_col = 39, + end_row = 39, + hl_group = "RainbowDelimiterYellow", + start_col = 38, + start_row = 14 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterBlue", + start_col = 15, + start_row = 16 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterOrange", + start_col = 22, + start_row = 16 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterGreen", + start_col = 26, + start_row = 16 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterGreen", + start_col = 34, + start_row = 16 + }, { + end_col = 36, + end_row = 36, + hl_group = "RainbowDelimiterOrange", + start_col = 35, + start_row = 16 + }, { + end_col = 37, + end_row = 37, + hl_group = "RainbowDelimiterBlue", + start_col = 36, + start_row = 16 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterBlue", + start_col = 15, + start_row = 17 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterBlue", + start_col = 23, + start_row = 17 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterBlue", + start_col = 17, + start_row = 20 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterOrange", + start_col = 22, + start_row = 20 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterOrange", + start_col = 24, + start_row = 20 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterBlue", + start_col = 25, + start_row = 20 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterBlue", + start_col = 11, + start_row = 23 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterBlue", + start_col = 20, + start_row = 23 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterBlue", + start_col = 22, + start_row = 23 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterOrange", + start_col = 15, + start_row = 24 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterOrange", + start_col = 24, + start_row = 24 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterOrange", + start_col = 26, + start_row = 24 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterOrange", + start_col = 12, + start_row = 26 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterBlue", + start_col = 8, + start_row = 27 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 29 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 31 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/python/rainbow-delimiters/regular.py.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/python/rainbow-delimiters/regular.py.lua new file mode 100644 index 00000000..bbe1a6c1 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/python/rainbow-delimiters/regular.py.lua @@ -0,0 +1,747 @@ +return { + python = { { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterRed", + start_col = 19, + start_row = 3 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 6 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterRed", + start_col = 12, + start_row = 9 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterYellow", + start_col = 22, + start_row = 9 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterBlue", + start_col = 27, + start_row = 9 + }, { + end_col = 37, + end_row = 37, + hl_group = "RainbowDelimiterBlue", + start_col = 36, + start_row = 9 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterYellow", + start_col = 37, + start_row = 9 + }, { + end_col = 39, + end_row = 39, + hl_group = "RainbowDelimiterRed", + start_col = 38, + start_row = 9 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterRed", + start_col = 10, + start_row = 17 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterYellow", + start_col = 11, + start_row = 17 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterBlue", + start_col = 12, + start_row = 17 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterBlue", + start_col = 28, + start_row = 17 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterYellow", + start_col = 29, + start_row = 17 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterRed", + start_col = 30, + start_row = 17 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterRed", + start_col = 10, + start_row = 18 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterYellow", + start_col = 16, + start_row = 18 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterBlue", + start_col = 22, + start_row = 18 + }, { + end_col = 43, + end_row = 43, + hl_group = "RainbowDelimiterBlue", + start_col = 42, + start_row = 18 + }, { + end_col = 44, + end_row = 44, + hl_group = "RainbowDelimiterYellow", + start_col = 43, + start_row = 18 + }, { + end_col = 45, + end_row = 45, + hl_group = "RainbowDelimiterRed", + start_col = 44, + start_row = 18 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterRed", + start_col = 9, + start_row = 19 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterYellow", + start_col = 10, + start_row = 19 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterBlue", + start_col = 11, + start_row = 19 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterOrange", + start_col = 12, + start_row = 19 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterOrange", + start_col = 27, + start_row = 19 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterBlue", + start_col = 28, + start_row = 19 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterYellow", + start_col = 29, + start_row = 19 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterRed", + start_col = 30, + start_row = 19 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 11, + start_row = 20 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 20 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 20 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterOrange", + start_col = 14, + start_row = 20 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterOrange", + start_col = 29, + start_row = 20 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterBlue", + start_col = 31, + start_row = 20 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterYellow", + start_col = 33, + start_row = 20 + }, { + end_col = 36, + end_row = 36, + hl_group = "RainbowDelimiterRed", + start_col = 35, + start_row = 20 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterRed", + start_col = 12, + start_row = 22 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterYellow", + start_col = 24, + start_row = 22 + }, { + end_col = 42, + end_row = 42, + hl_group = "RainbowDelimiterBlue", + start_col = 41, + start_row = 22 + }, { + end_col = 44, + end_row = 44, + hl_group = "RainbowDelimiterBlue", + start_col = 43, + start_row = 22 + }, { + end_col = 45, + end_row = 45, + hl_group = "RainbowDelimiterYellow", + start_col = 44, + start_row = 22 + }, { + end_col = 60, + end_row = 60, + hl_group = "RainbowDelimiterRed", + start_col = 59, + start_row = 22 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterRed", + start_col = 12, + start_row = 23 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterYellow", + start_col = 30, + start_row = 23 + }, { + end_col = 49, + end_row = 49, + hl_group = "RainbowDelimiterBlue", + start_col = 48, + start_row = 23 + }, { + end_col = 58, + end_row = 58, + hl_group = "RainbowDelimiterBlue", + start_col = 57, + start_row = 23 + }, { + end_col = 65, + end_row = 65, + hl_group = "RainbowDelimiterBlue", + start_col = 64, + start_row = 23 + }, { + end_col = 66, + end_row = 66, + hl_group = "RainbowDelimiterBlue", + start_col = 65, + start_row = 23 + }, { + end_col = 67, + end_row = 67, + hl_group = "RainbowDelimiterYellow", + start_col = 66, + start_row = 23 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterRed", + start_col = 24, + start_row = 24 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 11, + start_row = 25 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterYellow", + start_col = 23, + start_row = 25 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterBlue", + start_col = 40, + start_row = 25 + }, { + end_col = 43, + end_row = 43, + hl_group = "RainbowDelimiterBlue", + start_col = 42, + start_row = 25 + }, { + end_col = 44, + end_row = 44, + hl_group = "RainbowDelimiterYellow", + start_col = 43, + start_row = 25 + }, { + end_col = 59, + end_row = 59, + hl_group = "RainbowDelimiterRed", + start_col = 58, + start_row = 25 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 11, + start_row = 26 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterYellow", + start_col = 23, + start_row = 26 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterBlue", + start_col = 40, + start_row = 26 + }, { + end_col = 43, + end_row = 43, + hl_group = "RainbowDelimiterBlue", + start_col = 42, + start_row = 26 + }, { + end_col = 44, + end_row = 44, + hl_group = "RainbowDelimiterYellow", + start_col = 43, + start_row = 26 + }, { + end_col = 59, + end_row = 59, + hl_group = "RainbowDelimiterRed", + start_col = 58, + start_row = 26 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterRed", + start_col = 9, + start_row = 29 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterYellow", + start_col = 15, + start_row = 29 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterBlue", + start_col = 21, + start_row = 29 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterBlue", + start_col = 34, + start_row = 29 + }, { + end_col = 36, + end_row = 36, + hl_group = "RainbowDelimiterYellow", + start_col = 35, + start_row = 29 + }, { + end_col = 37, + end_row = 37, + hl_group = "RainbowDelimiterRed", + start_col = 36, + start_row = 29 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterRed", + start_col = 13, + start_row = 30 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterRed", + start_col = 21, + start_row = 30 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterRed", + start_col = 9, + start_row = 31 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterYellow", + start_col = 10, + start_row = 31 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterBlue", + start_col = 11, + start_row = 31 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterBlue", + start_col = 19, + start_row = 31 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterYellow", + start_col = 20, + start_row = 31 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterRed", + start_col = 21, + start_row = 31 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterRed", + start_col = 13, + start_row = 32 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterRed", + start_col = 21, + start_row = 32 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterRed", + start_col = 9, + start_row = 33 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterYellow", + start_col = 10, + start_row = 33 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterBlue", + start_col = 11, + start_row = 33 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterBlue", + start_col = 19, + start_row = 33 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterYellow", + start_col = 20, + start_row = 33 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterRed", + start_col = 21, + start_row = 33 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterRed", + start_col = 13, + start_row = 34 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterRed", + start_col = 21, + start_row = 34 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterRed", + start_col = 7, + start_row = 36 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterRed", + start_col = 9, + start_row = 36 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 38 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterRed", + start_col = 4, + start_row = 38 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterRed", + start_col = 8, + start_row = 38 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterRed", + start_col = 12, + start_row = 38 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 39 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterRed", + start_col = 4, + start_row = 39 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterRed", + start_col = 8, + start_row = 39 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterRed", + start_col = 12, + start_row = 39 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterRed", + start_col = 5, + start_row = 41 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterYellow", + start_col = 10, + start_row = 41 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterBlue", + start_col = 15, + start_row = 41 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterOrange", + start_col = 20, + start_row = 41 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterOrange", + start_col = 22, + start_row = 41 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterBlue", + start_col = 23, + start_row = 41 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterYellow", + start_col = 24, + start_row = 41 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterRed", + start_col = 25, + start_row = 41 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterRed", + start_col = 5, + start_row = 44 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterYellow", + start_col = 10, + start_row = 44 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterBlue", + start_col = 11, + start_row = 44 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterOrange", + start_col = 12, + start_row = 44 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterGreen", + start_col = 13, + start_row = 44 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterGreen", + start_col = 15, + start_row = 44 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterOrange", + start_col = 16, + start_row = 44 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterBlue", + start_col = 17, + start_row = 44 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 18, + start_row = 44 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterRed", + start_col = 19, + start_row = 44 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterRed", + start_col = 5, + start_row = 45 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterYellow", + start_col = 9, + start_row = 45 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterYellow", + start_col = 17, + start_row = 45 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterRed", + start_col = 18, + start_row = 45 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterRed", + start_col = 5, + start_row = 48 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterYellow", + start_col = 30, + start_row = 48 + }, { + end_col = 36, + end_row = 36, + hl_group = "RainbowDelimiterBlue", + start_col = 35, + start_row = 48 + }, { + end_col = 42, + end_row = 42, + hl_group = "RainbowDelimiterBlue", + start_col = 41, + start_row = 48 + }, { + end_col = 43, + end_row = 43, + hl_group = "RainbowDelimiterYellow", + start_col = 42, + start_row = 48 + }, { + end_col = 45, + end_row = 45, + hl_group = "RainbowDelimiterRed", + start_col = 44, + start_row = 48 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/query/rainbow-blocks/regular.scm.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/query/rainbow-blocks/regular.scm.lua new file mode 100644 index 00000000..27e83f23 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/query/rainbow-blocks/regular.scm.lua @@ -0,0 +1,141 @@ +return { + query = { { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 0 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterRed", + start_col = 1, + start_row = 0 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterYellow", + start_col = 5, + start_row = 0 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterYellow", + start_col = 6, + start_row = 0 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterBlue", + start_col = 10, + start_row = 0 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 11, + start_row = 0 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterBlue", + start_col = 14, + start_row = 0 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterYellow", + start_col = 15, + start_row = 0 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterRed", + start_col = 21, + start_row = 0 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 2 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterYellow", + start_col = 5, + start_row = 2 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterBlue", + start_col = 10, + start_row = 2 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterBlue", + start_col = 14, + start_row = 2 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterYellow", + start_col = 15, + start_row = 2 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterRed", + start_col = 21, + start_row = 2 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 4 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterRed", + start_col = 1, + start_row = 4 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterYellow", + start_col = 5, + start_row = 4 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterBlue", + start_col = 10, + start_row = 4 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 11, + start_row = 4 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterBlue", + start_col = 14, + start_row = 4 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterYellow", + start_col = 15, + start_row = 4 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterRed", + start_col = 21, + start_row = 4 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/query/rainbow-delimiters/regular.scm.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/query/rainbow-delimiters/regular.scm.lua new file mode 100644 index 00000000..6e4f053e --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/query/rainbow-delimiters/regular.scm.lua @@ -0,0 +1,111 @@ +return { + query = { { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 0 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterYellow", + start_col = 5, + start_row = 0 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterBlue", + start_col = 10, + start_row = 0 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterBlue", + start_col = 14, + start_row = 0 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterYellow", + start_col = 15, + start_row = 0 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterRed", + start_col = 21, + start_row = 0 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 2 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterYellow", + start_col = 5, + start_row = 2 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterBlue", + start_col = 10, + start_row = 2 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterBlue", + start_col = 14, + start_row = 2 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterYellow", + start_col = 15, + start_row = 2 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterRed", + start_col = 21, + start_row = 2 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 4 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterYellow", + start_col = 5, + start_row = 4 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterBlue", + start_col = 10, + start_row = 4 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterBlue", + start_col = 14, + start_row = 4 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterYellow", + start_col = 15, + start_row = 4 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterRed", + start_col = 21, + start_row = 4 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/r/rainbow-delimiters/regular.r.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/r/rainbow-delimiters/regular.r.lua new file mode 100644 index 00000000..c1e432c7 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/r/rainbow-delimiters/regular.r.lua @@ -0,0 +1,339 @@ +return { + r = { { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterRed", + start_col = 16, + start_row = 1 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterYellow", + start_col = 24, + start_row = 1 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterYellow", + start_col = 33, + start_row = 1 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterRed", + start_col = 34, + start_row = 1 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterRed", + start_col = 6, + start_row = 4 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterYellow", + start_col = 13, + start_row = 4 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterYellow", + start_col = 19, + start_row = 4 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterRed", + start_col = 23, + start_row = 4 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterRed", + start_col = 3, + start_row = 8 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 11, + start_row = 8 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterRed", + start_col = 13, + start_row = 8 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterYellow", + start_col = 9, + start_row = 9 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterBlue", + start_col = 15, + start_row = 9 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterBlue", + start_col = 40, + start_row = 9 + }, { + end_col = 42, + end_row = 42, + hl_group = "RainbowDelimiterYellow", + start_col = 41, + start_row = 9 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterYellow", + start_col = 7, + start_row = 10 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterYellow", + start_col = 16, + start_row = 10 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 18, + start_row = 10 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 11 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterOrange", + start_col = 19, + start_row = 11 + }, { + end_col = 43, + end_row = 43, + hl_group = "RainbowDelimiterOrange", + start_col = 42, + start_row = 11 + }, { + end_col = 44, + end_row = 44, + hl_group = "RainbowDelimiterBlue", + start_col = 43, + start_row = 11 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 12 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 13 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterRed", + start_col = 18, + start_row = 15 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterRed", + start_col = 22, + start_row = 15 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterRed", + start_col = 24, + start_row = 15 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterYellow", + start_col = 8, + start_row = 16 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterYellow", + start_col = 17, + start_row = 16 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterYellow", + start_col = 19, + start_row = 16 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterBlue", + start_col = 11, + start_row = 17 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 17 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 18 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterYellow", + start_col = 10, + start_row = 20 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterYellow", + start_col = 15, + start_row = 20 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterYellow", + start_col = 17, + start_row = 20 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 22 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterYellow", + start_col = 15, + start_row = 25 + }, { + end_col = 59, + end_row = 59, + hl_group = "RainbowDelimiterYellow", + start_col = 58, + start_row = 25 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterYellow", + start_col = 7, + start_row = 27 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterYellow", + start_col = 15, + start_row = 27 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterYellow", + start_col = 17, + start_row = 27 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterBlue", + start_col = 14, + start_row = 28 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterBlue", + start_col = 25, + start_row = 28 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 29 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterYellow", + start_col = 14, + start_row = 29 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterYellow", + start_col = 22, + start_row = 29 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterYellow", + start_col = 24, + start_row = 29 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterBlue", + start_col = 14, + start_row = 30 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterBlue", + start_col = 25, + start_row = 30 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 31 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterYellow", + start_col = 11, + start_row = 31 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterBlue", + start_col = 14, + start_row = 32 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterBlue", + start_col = 21, + start_row = 32 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 33 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 34 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/racket/rainbow-delimiters/regular.rkt.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/racket/rainbow-delimiters/regular.rkt.lua new file mode 100644 index 00000000..9c3cedff --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/racket/rainbow-delimiters/regular.rkt.lua @@ -0,0 +1,1089 @@ +return { + racket = { { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 2 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterYellow", + start_col = 8, + start_row = 2 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterYellow", + start_col = 16, + start_row = 2 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 4 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterBlue", + start_col = 6, + start_row = 4 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterBlue", + start_col = 14, + start_row = 4 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterBlue", + start_col = 4, + start_row = 6 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterOrange", + start_col = 9, + start_row = 6 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterOrange", + start_col = 16, + start_row = 6 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterOrange", + start_col = 9, + start_row = 7 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterOrange", + start_col = 16, + start_row = 7 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterBlue", + start_col = 17, + start_row = 7 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 18, + start_row = 7 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterRed", + start_col = 19, + start_row = 7 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 9 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 10 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterBlue", + start_col = 19, + start_row = 10 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterBlue", + start_col = 20, + start_row = 10 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterBlue", + start_col = 8, + start_row = 11 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterOrange", + start_col = 9, + start_row = 11 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterOrange", + start_col = 19, + start_row = 11 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterOrange", + start_col = 10, + start_row = 12 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterGreen", + start_col = 27, + start_row = 12 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterGreen", + start_col = 40, + start_row = 12 + }, { + end_col = 42, + end_row = 42, + hl_group = "RainbowDelimiterOrange", + start_col = 41, + start_row = 12 + }, { + end_col = 43, + end_row = 43, + hl_group = "RainbowDelimiterBlue", + start_col = 42, + start_row = 12 + }, { + end_col = 44, + end_row = 44, + hl_group = "RainbowDelimiterYellow", + start_col = 43, + start_row = 12 + }, { + end_col = 45, + end_row = 45, + hl_group = "RainbowDelimiterRed", + start_col = 44, + start_row = 12 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 14 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterYellow", + start_col = 5, + start_row = 14 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterBlue", + start_col = 10, + start_row = 14 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterBlue", + start_col = 16, + start_row = 14 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterYellow", + start_col = 17, + start_row = 14 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterRed", + start_col = 18, + start_row = 14 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterRed", + start_col = 1, + start_row = 16 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 16 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterBlue", + start_col = 3, + start_row = 16 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterBlue", + start_col = 6, + start_row = 16 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterBlue", + start_col = 9, + start_row = 16 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterYellow", + start_col = 10, + start_row = 16 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 11, + start_row = 16 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterRed", + start_col = 1, + start_row = 17 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 17 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterBlue", + start_col = 3, + start_row = 17 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterOrange", + start_col = 4, + start_row = 17 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterOrange", + start_col = 9, + start_row = 17 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterOrange", + start_col = 12, + start_row = 17 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 17 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterYellow", + start_col = 14, + start_row = 17 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterRed", + start_col = 15, + start_row = 17 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterRed", + start_col = 1, + start_row = 19 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 19 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterBlue", + start_col = 3, + start_row = 19 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterBlue", + start_col = 6, + start_row = 19 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterBlue", + start_col = 9, + start_row = 19 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterYellow", + start_col = 10, + start_row = 19 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 11, + start_row = 19 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterRed", + start_col = 1, + start_row = 20 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 20 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterBlue", + start_col = 3, + start_row = 20 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterBlue", + start_col = 8, + start_row = 20 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterBlue", + start_col = 11, + start_row = 20 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 20 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterRed", + start_col = 13, + start_row = 20 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterRed", + start_col = 1, + start_row = 22 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 22 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterBlue", + start_col = 3, + start_row = 22 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterBlue", + start_col = 6, + start_row = 22 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterBlue", + start_col = 9, + start_row = 22 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterYellow", + start_col = 10, + start_row = 22 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 11, + start_row = 22 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterRed", + start_col = 1, + start_row = 24 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 24 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterBlue", + start_col = 3, + start_row = 24 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterBlue", + start_col = 6, + start_row = 24 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterBlue", + start_col = 9, + start_row = 24 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterYellow", + start_col = 10, + start_row = 24 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 11, + start_row = 24 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterRed", + start_col = 1, + start_row = 25 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 25 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterBlue", + start_col = 3, + start_row = 25 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterBlue", + start_col = 8, + start_row = 25 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterBlue", + start_col = 11, + start_row = 25 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 25 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterRed", + start_col = 13, + start_row = 25 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterRed", + start_col = 1, + start_row = 28 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 3, + start_row = 28 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterBlue", + start_col = 5, + start_row = 28 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterBlue", + start_col = 7, + start_row = 28 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterYellow", + start_col = 8, + start_row = 28 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterRed", + start_col = 9, + start_row = 28 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterRed", + start_col = 1, + start_row = 29 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 3, + start_row = 29 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterBlue", + start_col = 5, + start_row = 29 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterBlue", + start_col = 7, + start_row = 29 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterYellow", + start_col = 8, + start_row = 29 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterRed", + start_col = 9, + start_row = 29 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterRed", + start_col = 1, + start_row = 30 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 3, + start_row = 30 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterBlue", + start_col = 5, + start_row = 30 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterBlue", + start_col = 7, + start_row = 30 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterYellow", + start_col = 8, + start_row = 30 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterRed", + start_col = 9, + start_row = 30 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterRed", + start_col = 3, + start_row = 34 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterYellow", + start_col = 7, + start_row = 34 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterBlue", + start_col = 11, + start_row = 34 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 34 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterYellow", + start_col = 14, + start_row = 34 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterRed", + start_col = 15, + start_row = 34 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterRed", + start_col = 3, + start_row = 35 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterYellow", + start_col = 7, + start_row = 35 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterBlue", + start_col = 11, + start_row = 35 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 35 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterYellow", + start_col = 14, + start_row = 35 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterRed", + start_col = 15, + start_row = 35 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterRed", + start_col = 3, + start_row = 36 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterYellow", + start_col = 7, + start_row = 36 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterBlue", + start_col = 11, + start_row = 36 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 36 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterYellow", + start_col = 14, + start_row = 36 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterRed", + start_col = 15, + start_row = 36 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterRed", + start_col = 3, + start_row = 38 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterYellow", + start_col = 7, + start_row = 38 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterBlue", + start_col = 11, + start_row = 38 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 38 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterYellow", + start_col = 14, + start_row = 38 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterRed", + start_col = 15, + start_row = 38 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterRed", + start_col = 3, + start_row = 39 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterYellow", + start_col = 7, + start_row = 39 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterBlue", + start_col = 11, + start_row = 39 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 39 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterYellow", + start_col = 14, + start_row = 39 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterRed", + start_col = 15, + start_row = 39 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterRed", + start_col = 3, + start_row = 40 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterYellow", + start_col = 7, + start_row = 40 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterBlue", + start_col = 11, + start_row = 40 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 40 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterYellow", + start_col = 14, + start_row = 40 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterRed", + start_col = 15, + start_row = 40 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterRed", + start_col = 3, + start_row = 44 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterYellow", + start_col = 7, + start_row = 44 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterBlue", + start_col = 11, + start_row = 44 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 44 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterYellow", + start_col = 14, + start_row = 44 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterRed", + start_col = 15, + start_row = 44 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterRed", + start_col = 3, + start_row = 45 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterYellow", + start_col = 7, + start_row = 45 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterBlue", + start_col = 11, + start_row = 45 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 45 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterYellow", + start_col = 14, + start_row = 45 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterRed", + start_col = 15, + start_row = 45 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterRed", + start_col = 3, + start_row = 46 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterYellow", + start_col = 7, + start_row = 46 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterBlue", + start_col = 11, + start_row = 46 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 46 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterYellow", + start_col = 14, + start_row = 46 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterRed", + start_col = 15, + start_row = 46 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterRed", + start_col = 3, + start_row = 48 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterYellow", + start_col = 7, + start_row = 48 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterBlue", + start_col = 11, + start_row = 48 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 48 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterYellow", + start_col = 14, + start_row = 48 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterRed", + start_col = 15, + start_row = 48 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterRed", + start_col = 3, + start_row = 49 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterYellow", + start_col = 7, + start_row = 49 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterBlue", + start_col = 11, + start_row = 49 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 49 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterYellow", + start_col = 14, + start_row = 49 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterRed", + start_col = 15, + start_row = 49 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterRed", + start_col = 3, + start_row = 50 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterYellow", + start_col = 7, + start_row = 50 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterBlue", + start_col = 11, + start_row = 50 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 50 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterYellow", + start_col = 14, + start_row = 50 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterRed", + start_col = 15, + start_row = 50 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 54 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterYellow", + start_col = 23, + start_row = 54 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterYellow", + start_col = 28, + start_row = 54 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterRed", + start_col = 39, + start_row = 54 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterRed", + start_col = 3, + start_row = 55 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterRed", + start_col = 20, + start_row = 55 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/rasi/rainbow-delimiters/regular.rasi.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/rasi/rainbow-delimiters/regular.rasi.lua new file mode 100644 index 00000000..e9a18d0b --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/rasi/rainbow-delimiters/regular.rasi.lua @@ -0,0 +1,189 @@ +return { + rasi = { { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterRed", + start_col = 2, + start_row = 2 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterYellow", + start_col = 23, + start_row = 3 + }, { + end_col = 39, + end_row = 39, + hl_group = "RainbowDelimiterYellow", + start_col = 38, + start_row = 3 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterYellow", + start_col = 23, + start_row = 4 + }, { + end_col = 59, + end_row = 59, + hl_group = "RainbowDelimiterYellow", + start_col = 58, + start_row = 4 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 18, + start_row = 5 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterYellow", + start_col = 37, + start_row = 5 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterYellow", + start_col = 19, + start_row = 6 + }, { + end_col = 36, + end_row = 36, + hl_group = "RainbowDelimiterBlue", + start_col = 35, + start_row = 6 + }, { + end_col = 45, + end_row = 45, + hl_group = "RainbowDelimiterBlue", + start_col = 44, + start_row = 6 + }, { + end_col = 46, + end_row = 46, + hl_group = "RainbowDelimiterYellow", + start_col = 45, + start_row = 6 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterYellow", + start_col = 19, + start_row = 7 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterYellow", + start_col = 29, + start_row = 7 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterYellow", + start_col = 20, + start_row = 8 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterYellow", + start_col = 34, + start_row = 8 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 10 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterRed", + start_col = 7, + start_row = 12 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterYellow", + start_col = 20, + start_row = 12 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterYellow", + start_col = 21, + start_row = 12 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterYellow", + start_col = 39, + start_row = 12 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterRed", + start_col = 40, + start_row = 12 + }, { + end_col = 43, + end_row = 43, + hl_group = "RainbowDelimiterRed", + start_col = 42, + start_row = 12 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterYellow", + start_col = 13, + start_row = 13 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterYellow", + start_col = 27, + start_row = 13 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 14 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterRed", + start_col = 8, + start_row = 16 + }, { + end_col = 36, + end_row = 36, + hl_group = "RainbowDelimiterYellow", + start_col = 35, + start_row = 17 + }, { + end_col = 72, + end_row = 72, + hl_group = "RainbowDelimiterYellow", + start_col = 71, + start_row = 17 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 18 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterYellow", + start_col = 31, + start_row = 18 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 19 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/regex/rainbow-delimiters/regular.txt.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/regex/rainbow-delimiters/regular.txt.lua new file mode 100644 index 00000000..d9ac628a --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/regex/rainbow-delimiters/regular.txt.lua @@ -0,0 +1,255 @@ +return { + regex = { { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterRed", + start_col = 1, + start_row = 0 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 3, + start_row = 0 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterBlue", + start_col = 5, + start_row = 0 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterBlue", + start_col = 7, + start_row = 0 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterYellow", + start_col = 8, + start_row = 0 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterRed", + start_col = 9, + start_row = 0 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterRed", + start_col = 1, + start_row = 1 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 3, + start_row = 1 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterBlue", + start_col = 5, + start_row = 1 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterBlue", + start_col = 7, + start_row = 1 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterYellow", + start_col = 9, + start_row = 1 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterRed", + start_col = 10, + start_row = 1 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterRed", + start_col = 1, + start_row = 2 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 3, + start_row = 2 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterBlue", + start_col = 5, + start_row = 2 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterBlue", + start_col = 9, + start_row = 2 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterYellow", + start_col = 10, + start_row = 2 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 11, + start_row = 2 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterRed", + start_col = 1, + start_row = 3 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 3, + start_row = 3 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterBlue", + start_col = 5, + start_row = 3 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterBlue", + start_col = 10, + start_row = 3 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterYellow", + start_col = 11, + start_row = 3 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterRed", + start_col = 12, + start_row = 3 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterRed", + start_col = 1, + start_row = 4 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 3, + start_row = 4 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterBlue", + start_col = 5, + start_row = 4 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterBlue", + start_col = 7, + start_row = 4 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterYellow", + start_col = 8, + start_row = 4 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterRed", + start_col = 9, + start_row = 4 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterRed", + start_col = 1, + start_row = 5 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 3, + start_row = 5 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterBlue", + start_col = 5, + start_row = 5 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterBlue", + start_col = 9, + start_row = 5 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterYellow", + start_col = 10, + start_row = 5 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 11, + start_row = 5 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterRed", + start_col = 1, + start_row = 6 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 3, + start_row = 6 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterBlue", + start_col = 5, + start_row = 6 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterBlue", + start_col = 9, + start_row = 6 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterYellow", + start_col = 10, + start_row = 6 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 11, + start_row = 6 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/rst/rainbow-delimiters/regular.rst.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/rst/rainbow-delimiters/regular.rst.lua new file mode 100644 index 00000000..02dd7dc7 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/rst/rainbow-delimiters/regular.rst.lua @@ -0,0 +1,533 @@ +return { + lua = { { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterRed", + start_col = 20, + start_row = 29 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterRed", + start_col = 25, + start_row = 29 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterRed", + start_col = 21, + start_row = 30 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterRed", + start_col = 28, + start_row = 30 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterRed", + start_col = 13, + start_row = 33 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterRed", + start_col = 18, + start_row = 33 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterRed", + start_col = 8, + start_row = 36 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterYellow", + start_col = 11, + start_row = 36 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterYellow", + start_col = 20, + start_row = 36 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterRed", + start_col = 21, + start_row = 36 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterRed", + start_col = 8, + start_row = 37 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterYellow", + start_col = 9, + start_row = 37 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterBlue", + start_col = 10, + start_row = 37 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterOrange", + start_col = 11, + start_row = 37 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterGreen", + start_col = 12, + start_row = 37 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterGreen", + start_col = 28, + start_row = 37 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterOrange", + start_col = 29, + start_row = 37 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterBlue", + start_col = 30, + start_row = 37 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterYellow", + start_col = 31, + start_row = 37 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterRed", + start_col = 32, + start_row = 37 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterRed", + start_col = 9, + start_row = 39 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 40 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterBlue", + start_col = 5, + start_row = 41 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterBlue", + start_col = 5, + start_row = 43 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 44 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterRed", + start_col = 3, + start_row = 45 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterRed", + start_col = 15, + start_row = 47 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterRed", + start_col = 17, + start_row = 47 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterRed", + start_col = 8, + start_row = 49 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 49 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterBlue", + start_col = 16, + start_row = 49 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterOrange", + start_col = 20, + start_row = 49 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterOrange", + start_col = 22, + start_row = 49 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterBlue", + start_col = 23, + start_row = 49 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterYellow", + start_col = 24, + start_row = 49 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterRed", + start_col = 25, + start_row = 49 + } }, + rst = {}, + vim = { { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterRed", + start_col = 10, + start_row = 53 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 53 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterBlue", + start_col = 14, + start_row = 53 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterOrange", + start_col = 16, + start_row = 53 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterGreen", + start_col = 18, + start_row = 53 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterViolet", + start_col = 20, + start_row = 53 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterViolet", + start_col = 21, + start_row = 53 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterGreen", + start_col = 22, + start_row = 53 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterOrange", + start_col = 23, + start_row = 53 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterBlue", + start_col = 24, + start_row = 53 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterYellow", + start_col = 25, + start_row = 53 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterRed", + start_col = 26, + start_row = 53 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterRed", + start_col = 19, + start_row = 60 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterYellow", + start_col = 20, + start_row = 60 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterBlue", + start_col = 21, + start_row = 60 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterBlue", + start_col = 23, + start_row = 60 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterYellow", + start_col = 24, + start_row = 60 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterRed", + start_col = 25, + start_row = 60 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterRed", + start_col = 19, + start_row = 61 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterRed", + start_col = 8, + start_row = 62 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterYellow", + start_col = 10, + start_row = 62 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterYellow", + start_col = 9, + start_row = 63 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterBlue", + start_col = 11, + start_row = 63 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterBlue", + start_col = 10, + start_row = 64 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterBlue", + start_col = 6, + start_row = 65 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterYellow", + start_col = 5, + start_row = 66 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterRed", + start_col = 5, + start_row = 67 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterRed", + start_col = 14, + start_row = 69 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterYellow", + start_col = 19, + start_row = 69 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterBlue", + start_col = 24, + start_row = 69 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterBlue", + start_col = 30, + start_row = 69 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterYellow", + start_col = 31, + start_row = 69 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterRed", + start_col = 32, + start_row = 69 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterRed", + start_col = 14, + start_row = 70 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterYellow", + start_col = 16, + start_row = 70 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 18, + start_row = 70 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterRed", + start_col = 19, + start_row = 70 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterRed", + start_col = 14, + start_row = 71 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterYellow", + start_col = 15, + start_row = 71 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterBlue", + start_col = 17, + start_row = 71 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterYellow", + start_col = 19, + start_row = 71 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterRed", + start_col = 21, + start_row = 71 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterYellow", + start_col = 21, + start_row = 71 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterRed", + start_col = 14, + start_row = 72 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterYellow", + start_col = 15, + start_row = 72 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterOrange", + start_col = 17, + start_row = 72 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterBlue", + start_col = 21, + start_row = 72 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterBlue", + start_col = 21, + start_row = 72 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterYellow", + start_col = 23, + start_row = 72 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterBlue", + start_col = 23, + start_row = 72 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterRed", + start_col = 27, + start_row = 72 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterRed", + start_col = 29, + start_row = 72 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/ruby/rainbow-delimiters/regular.rb.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/ruby/rainbow-delimiters/regular.rb.lua new file mode 100644 index 00000000..89158bd4 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/ruby/rainbow-delimiters/regular.rb.lua @@ -0,0 +1,243 @@ +return { + ruby = { { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 11, + start_row = 2 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 2 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 2 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterBlue", + start_col = 31, + start_row = 2 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterYellow", + start_col = 32, + start_row = 2 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterRed", + start_col = 33, + start_row = 2 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterRed", + start_col = 9, + start_row = 3 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 18, + start_row = 3 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterBlue", + start_col = 27, + start_row = 3 + }, { + end_col = 53, + end_row = 53, + hl_group = "RainbowDelimiterBlue", + start_col = 52, + start_row = 3 + }, { + end_col = 55, + end_row = 55, + hl_group = "RainbowDelimiterYellow", + start_col = 54, + start_row = 3 + }, { + end_col = 57, + end_row = 57, + hl_group = "RainbowDelimiterRed", + start_col = 56, + start_row = 3 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterRed", + start_col = 19, + start_row = 6 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterYellow", + start_col = 20, + start_row = 6 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterBlue", + start_col = 21, + start_row = 6 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterOrange", + start_col = 22, + start_row = 6 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterGreen", + start_col = 23, + start_row = 6 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterGreen", + start_col = 33, + start_row = 6 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterOrange", + start_col = 34, + start_row = 6 + }, { + end_col = 36, + end_row = 36, + hl_group = "RainbowDelimiterBlue", + start_col = 35, + start_row = 6 + }, { + end_col = 42, + end_row = 42, + hl_group = "RainbowDelimiterYellow", + start_col = 41, + start_row = 6 + }, { + end_col = 48, + end_row = 48, + hl_group = "RainbowDelimiterRed", + start_col = 47, + start_row = 6 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 13 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 13 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 3, + start_row = 13 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterYellow", + start_col = 6, + start_row = 13 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterYellow", + start_col = 8, + start_row = 13 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterYellow", + start_col = 11, + start_row = 13 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterYellow", + start_col = 13, + start_row = 13 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterRed", + start_col = 14, + start_row = 13 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterRed", + start_col = 21, + start_row = 13 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterYellow", + start_col = 23, + start_row = 13 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterYellow", + start_col = 28, + start_row = 13 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterYellow", + start_col = 28, + start_row = 13 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterYellow", + start_col = 40, + start_row = 13 + }, { + end_col = 43, + end_row = 43, + hl_group = "RainbowDelimiterBlue", + start_col = 42, + start_row = 13 + }, { + end_col = 47, + end_row = 47, + hl_group = "RainbowDelimiterBlue", + start_col = 46, + start_row = 13 + }, { + end_col = 47, + end_row = 47, + hl_group = "RainbowDelimiterBlue", + start_col = 46, + start_row = 13 + }, { + end_col = 58, + end_row = 58, + hl_group = "RainbowDelimiterYellow", + start_col = 57, + start_row = 13 + }, { + end_col = 60, + end_row = 60, + hl_group = "RainbowDelimiterRed", + start_col = 59, + start_row = 13 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/rust/rainbow-delimiters/regular.rs.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/rust/rainbow-delimiters/regular.rs.lua new file mode 100644 index 00000000..3c4a1cb9 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/rust/rainbow-delimiters/regular.rs.lua @@ -0,0 +1,1539 @@ +return { + rust = { { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterRed", + start_col = 2, + start_row = 0 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterRed", + start_col = 21, + start_row = 0 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterRed", + start_col = 20, + start_row = 1 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 4 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterRed", + start_col = 13, + start_row = 6 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 8 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 11, + start_row = 10 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterYellow", + start_col = 19, + start_row = 11 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterYellow", + start_col = 20, + start_row = 11 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 12 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterRed", + start_col = 16, + start_row = 14 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 17 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterRed", + start_col = 1, + start_row = 19 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterYellow", + start_col = 8, + start_row = 19 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterYellow", + start_col = 23, + start_row = 19 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterRed", + start_col = 24, + start_row = 19 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterRed", + start_col = 18, + start_row = 20 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterRed", + start_col = 22, + start_row = 20 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterRed", + start_col = 1, + start_row = 22 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterYellow", + start_col = 10, + start_row = 22 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterBlue", + start_col = 14, + start_row = 22 + }, { + end_col = 62, + end_row = 62, + hl_group = "RainbowDelimiterBlue", + start_col = 61, + start_row = 22 + }, { + end_col = 71, + end_row = 71, + hl_group = "RainbowDelimiterBlue", + start_col = 70, + start_row = 22 + }, { + end_col = 79, + end_row = 79, + hl_group = "RainbowDelimiterBlue", + start_col = 78, + start_row = 22 + }, { + end_col = 80, + end_row = 80, + hl_group = "RainbowDelimiterYellow", + start_col = 79, + start_row = 22 + }, { + end_col = 81, + end_row = 81, + hl_group = "RainbowDelimiterRed", + start_col = 80, + start_row = 22 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterRed", + start_col = 14, + start_row = 23 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterYellow", + start_col = 16, + start_row = 24 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterYellow", + start_col = 20, + start_row = 24 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterYellow", + start_col = 27, + start_row = 25 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterYellow", + start_col = 39, + start_row = 25 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 18, + start_row = 26 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterYellow", + start_col = 31, + start_row = 26 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterYellow", + start_col = 24, + start_row = 27 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterYellow", + start_col = 39, + start_row = 27 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 28 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterRed", + start_col = 18, + start_row = 30 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterRed", + start_col = 29, + start_row = 30 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterRed", + start_col = 30, + start_row = 30 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterRed", + start_col = 31, + start_row = 30 + }, { + end_col = 43, + end_row = 43, + hl_group = "RainbowDelimiterRed", + start_col = 42, + start_row = 30 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterYellow", + start_col = 23, + start_row = 31 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterYellow", + start_col = 25, + start_row = 31 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterYellow", + start_col = 26, + start_row = 31 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterYellow", + start_col = 27, + start_row = 31 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 32 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterRed", + start_col = 13, + start_row = 34 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterRed", + start_col = 28, + start_row = 34 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterRed", + start_col = 37, + start_row = 34 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 36 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterRed", + start_col = 14, + start_row = 38 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 18, + start_row = 38 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterYellow", + start_col = 27, + start_row = 38 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterRed", + start_col = 28, + start_row = 38 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterRed", + start_col = 37, + start_row = 38 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterYellow", + start_col = 8, + start_row = 39 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterYellow", + start_col = 13, + start_row = 39 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 42 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterRed", + start_col = 29, + start_row = 44 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 45 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterBlue", + start_col = 6, + start_row = 45 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterBlue", + start_col = 7, + start_row = 45 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterBlue", + start_col = 17, + start_row = 45 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterYellow", + start_col = 21, + start_row = 45 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterYellow", + start_col = 26, + start_row = 45 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterBlue", + start_col = 8, + start_row = 46 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterOrange", + start_col = 39, + start_row = 47 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterOrange", + start_col = 40, + start_row = 47 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterOrange", + start_col = 12, + start_row = 48 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterOrange", + start_col = 13, + start_row = 48 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterGreen", + start_col = 29, + start_row = 49 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterGreen", + start_col = 32, + start_row = 49 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterOrange", + start_col = 12, + start_row = 50 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterBlue", + start_col = 8, + start_row = 52 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 53 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 54 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterRed", + start_col = 3, + start_row = 56 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterRed", + start_col = 9, + start_row = 56 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterRed", + start_col = 26, + start_row = 59 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterYellow", + start_col = 27, + start_row = 59 + }, { + end_col = 46, + end_row = 46, + hl_group = "RainbowDelimiterYellow", + start_col = 45, + start_row = 59 + }, { + end_col = 47, + end_row = 47, + hl_group = "RainbowDelimiterRed", + start_col = 46, + start_row = 59 + }, { + end_col = 52, + end_row = 52, + hl_group = "RainbowDelimiterRed", + start_col = 51, + start_row = 59 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 60 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterYellow", + start_col = 21, + start_row = 60 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 61 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterYellow", + start_col = 21, + start_row = 61 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 62 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterRed", + start_col = 7, + start_row = 64 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterRed", + start_col = 8, + start_row = 64 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterRed", + start_col = 10, + start_row = 64 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterYellow", + start_col = 23, + start_row = 65 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterBlue", + start_col = 27, + start_row = 65 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterOrange", + start_col = 31, + start_row = 65 + }, { + end_col = 36, + end_row = 36, + hl_group = "RainbowDelimiterGreen", + start_col = 35, + start_row = 65 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterViolet", + start_col = 39, + start_row = 65 + }, { + end_col = 44, + end_row = 44, + hl_group = "RainbowDelimiterCyan", + start_col = 43, + start_row = 65 + }, { + end_col = 47, + end_row = 47, + hl_group = "RainbowDelimiterCyan", + start_col = 46, + start_row = 65 + }, { + end_col = 48, + end_row = 48, + hl_group = "RainbowDelimiterViolet", + start_col = 47, + start_row = 65 + }, { + end_col = 49, + end_row = 49, + hl_group = "RainbowDelimiterGreen", + start_col = 48, + start_row = 65 + }, { + end_col = 50, + end_row = 50, + hl_group = "RainbowDelimiterOrange", + start_col = 49, + start_row = 65 + }, { + end_col = 51, + end_row = 51, + hl_group = "RainbowDelimiterBlue", + start_col = 50, + start_row = 65 + }, { + end_col = 52, + end_row = 52, + hl_group = "RainbowDelimiterYellow", + start_col = 51, + start_row = 65 + }, { + end_col = 61, + end_row = 61, + hl_group = "RainbowDelimiterYellow", + start_col = 60, + start_row = 65 + }, { + end_col = 63, + end_row = 63, + hl_group = "RainbowDelimiterYellow", + start_col = 62, + start_row = 65 + }, { + end_col = 69, + end_row = 69, + hl_group = "RainbowDelimiterYellow", + start_col = 68, + start_row = 65 + }, { + end_col = 70, + end_row = 70, + hl_group = "RainbowDelimiterYellow", + start_col = 69, + start_row = 65 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterYellow", + start_col = 22, + start_row = 66 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterBlue", + start_col = 23, + start_row = 66 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterOrange", + start_col = 24, + start_row = 66 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterOrange", + start_col = 29, + start_row = 66 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterBlue", + start_col = 33, + start_row = 66 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterYellow", + start_col = 37, + start_row = 66 + }, { + end_col = 36, + end_row = 36, + hl_group = "RainbowDelimiterYellow", + start_col = 35, + start_row = 67 + }, { + end_col = 47, + end_row = 47, + hl_group = "RainbowDelimiterYellow", + start_col = 46, + start_row = 67 + }, { + end_col = 43, + end_row = 43, + hl_group = "RainbowDelimiterYellow", + start_col = 42, + start_row = 69 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterBlue", + start_col = 21, + start_row = 71 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterBlue", + start_col = 32, + start_row = 71 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 72 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterYellow", + start_col = 34, + start_row = 74 + }, { + end_col = 37, + end_row = 37, + hl_group = "RainbowDelimiterYellow", + start_col = 36, + start_row = 74 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterYellow", + start_col = 23, + start_row = 75 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterBlue", + start_col = 8, + start_row = 76 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterOrange", + start_col = 9, + start_row = 76 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterOrange", + start_col = 20, + start_row = 76 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterOrange", + start_col = 23, + start_row = 76 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterOrange", + start_col = 34, + start_row = 76 + }, { + end_col = 36, + end_row = 36, + hl_group = "RainbowDelimiterBlue", + start_col = 35, + start_row = 76 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterBlue", + start_col = 8, + start_row = 77 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterOrange", + start_col = 9, + start_row = 77 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterOrange", + start_col = 23, + start_row = 77 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterOrange", + start_col = 26, + start_row = 77 + }, { + end_col = 42, + end_row = 42, + hl_group = "RainbowDelimiterOrange", + start_col = 41, + start_row = 77 + }, { + end_col = 43, + end_row = 43, + hl_group = "RainbowDelimiterBlue", + start_col = 42, + start_row = 77 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 78 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterYellow", + start_col = 20, + start_row = 80 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterBlue", + start_col = 30, + start_row = 81 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterBlue", + start_col = 32, + start_row = 81 + }, { + end_col = 42, + end_row = 42, + hl_group = "RainbowDelimiterBlue", + start_col = 41, + start_row = 82 + }, { + end_col = 54, + end_row = 54, + hl_group = "RainbowDelimiterOrange", + start_col = 53, + start_row = 82 + }, { + end_col = 56, + end_row = 56, + hl_group = "RainbowDelimiterOrange", + start_col = 55, + start_row = 82 + }, { + end_col = 57, + end_row = 57, + hl_group = "RainbowDelimiterBlue", + start_col = 56, + start_row = 82 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterBlue", + start_col = 32, + start_row = 83 + }, { + end_col = 44, + end_row = 44, + hl_group = "RainbowDelimiterBlue", + start_col = 43, + start_row = 83 + }, { + end_col = 39, + end_row = 39, + hl_group = "RainbowDelimiterBlue", + start_col = 38, + start_row = 84 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterOrange", + start_col = 25, + start_row = 85 + }, { + end_col = 37, + end_row = 37, + hl_group = "RainbowDelimiterOrange", + start_col = 36, + start_row = 85 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterBlue", + start_col = 8, + start_row = 86 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 87 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 18, + start_row = 89 + }, { + end_col = 39, + end_row = 39, + hl_group = "RainbowDelimiterYellow", + start_col = 38, + start_row = 92 + }, { + end_col = 39, + end_row = 39, + hl_group = "RainbowDelimiterYellow", + start_col = 38, + start_row = 92 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterYellow", + start_col = 40, + start_row = 92 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterBlue", + start_col = 29, + start_row = 93 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterBlue", + start_col = 30, + start_row = 93 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterBlue", + start_col = 30, + start_row = 93 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterBlue", + start_col = 32, + start_row = 93 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterBlue", + start_col = 33, + start_row = 93 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterBlue", + start_col = 22, + start_row = 94 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterBlue", + start_col = 23, + start_row = 94 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 95 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterYellow", + start_col = 28, + start_row = 97 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterYellow", + start_col = 32, + start_row = 97 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterYellow", + start_col = 29, + start_row = 99 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterYellow", + start_col = 33, + start_row = 99 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterYellow", + start_col = 23, + start_row = 101 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterBlue", + start_col = 24, + start_row = 101 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterOrange", + start_col = 25, + start_row = 101 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterOrange", + start_col = 31, + start_row = 101 + }, { + end_col = 37, + end_row = 37, + hl_group = "RainbowDelimiterBlue", + start_col = 36, + start_row = 101 + }, { + end_col = 51, + end_row = 51, + hl_group = "RainbowDelimiterYellow", + start_col = 50, + start_row = 101 + }, { + end_col = 56, + end_row = 56, + hl_group = "RainbowDelimiterYellow", + start_col = 55, + start_row = 101 + }, { + end_col = 69, + end_row = 69, + hl_group = "RainbowDelimiterYellow", + start_col = 68, + start_row = 101 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterYellow", + start_col = 31, + start_row = 105 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterBlue", + start_col = 32, + start_row = 106 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterOrange", + start_col = 17, + start_row = 107 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterOrange", + start_col = 18, + start_row = 107 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterBlue", + start_col = 8, + start_row = 108 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 109 + }, { + end_col = 39, + end_row = 39, + hl_group = "RainbowDelimiterYellow", + start_col = 38, + start_row = 111 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterYellow", + start_col = 40, + start_row = 111 + }, { + end_col = 43, + end_row = 43, + hl_group = "RainbowDelimiterYellow", + start_col = 42, + start_row = 111 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterBlue", + start_col = 30, + start_row = 112 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterBlue", + start_col = 32, + start_row = 112 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterBlue", + start_col = 37, + start_row = 112 + }, { + end_col = 39, + end_row = 39, + hl_group = "RainbowDelimiterBlue", + start_col = 38, + start_row = 112 + }, { + end_col = 42, + end_row = 42, + hl_group = "RainbowDelimiterBlue", + start_col = 41, + start_row = 113 + }, { + end_col = 54, + end_row = 54, + hl_group = "RainbowDelimiterOrange", + start_col = 53, + start_row = 113 + }, { + end_col = 56, + end_row = 56, + hl_group = "RainbowDelimiterOrange", + start_col = 55, + start_row = 113 + }, { + end_col = 57, + end_row = 57, + hl_group = "RainbowDelimiterBlue", + start_col = 56, + start_row = 113 + }, { + end_col = 62, + end_row = 62, + hl_group = "RainbowDelimiterBlue", + start_col = 61, + start_row = 113 + }, { + end_col = 63, + end_row = 63, + hl_group = "RainbowDelimiterBlue", + start_col = 62, + start_row = 113 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterBlue", + start_col = 32, + start_row = 114 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterBlue", + start_col = 40, + start_row = 114 + }, { + end_col = 46, + end_row = 46, + hl_group = "RainbowDelimiterBlue", + start_col = 45, + start_row = 114 + }, { + end_col = 47, + end_row = 47, + hl_group = "RainbowDelimiterBlue", + start_col = 46, + start_row = 114 + }, { + end_col = 39, + end_row = 39, + hl_group = "RainbowDelimiterBlue", + start_col = 38, + start_row = 115 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterOrange", + start_col = 25, + start_row = 116 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterOrange", + start_col = 33, + start_row = 116 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterBlue", + start_col = 8, + start_row = 117 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 117 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterBlue", + start_col = 14, + start_row = 117 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 118 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterYellow", + start_col = 16, + start_row = 120 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterYellow", + start_col = 27, + start_row = 120 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterYellow", + start_col = 34, + start_row = 122 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterBlue", + start_col = 8, + start_row = 123 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterBlue", + start_col = 19, + start_row = 123 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterBlue", + start_col = 24, + start_row = 123 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterBlue", + start_col = 25, + start_row = 123 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 124 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterYellow", + start_col = 27, + start_row = 126 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterBlue", + start_col = 32, + start_row = 126 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterOrange", + start_col = 37, + start_row = 126 + }, { + end_col = 43, + end_row = 43, + hl_group = "RainbowDelimiterGreen", + start_col = 42, + start_row = 126 + }, { + end_col = 48, + end_row = 48, + hl_group = "RainbowDelimiterViolet", + start_col = 47, + start_row = 126 + }, { + end_col = 50, + end_row = 50, + hl_group = "RainbowDelimiterViolet", + start_col = 49, + start_row = 126 + }, { + end_col = 51, + end_row = 51, + hl_group = "RainbowDelimiterGreen", + start_col = 50, + start_row = 126 + }, { + end_col = 52, + end_row = 52, + hl_group = "RainbowDelimiterOrange", + start_col = 51, + start_row = 126 + }, { + end_col = 53, + end_row = 53, + hl_group = "RainbowDelimiterBlue", + start_col = 52, + start_row = 126 + }, { + end_col = 54, + end_row = 54, + hl_group = "RainbowDelimiterYellow", + start_col = 53, + start_row = 126 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterYellow", + start_col = 14, + start_row = 128 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterYellow", + start_col = 19, + start_row = 128 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterYellow", + start_col = 20, + start_row = 130 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterYellow", + start_col = 29, + start_row = 130 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterYellow", + start_col = 33, + start_row = 130 + }, { + end_col = 39, + end_row = 39, + hl_group = "RainbowDelimiterYellow", + start_col = 38, + start_row = 130 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterYellow", + start_col = 15, + start_row = 131 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterYellow", + start_col = 26, + start_row = 131 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 133 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterBlue", + start_col = 24, + start_row = 133 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterBlue", + start_col = 27, + start_row = 133 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterYellow", + start_col = 28, + start_row = 133 + }, { + end_col = 36, + end_row = 36, + hl_group = "RainbowDelimiterYellow", + start_col = 35, + start_row = 133 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterYellow", + start_col = 39, + start_row = 133 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 134 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterRed", + start_col = 13, + start_row = 136 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterYellow", + start_col = 13, + start_row = 137 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterBlue", + start_col = 17, + start_row = 138 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterOrange", + start_col = 21, + start_row = 139 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterGreen", + start_col = 25, + start_row = 140 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterGreen", + start_col = 30, + start_row = 140 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterOrange", + start_col = 12, + start_row = 142 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterBlue", + start_col = 8, + start_row = 144 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 146 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 148 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterRed", + start_col = 12, + start_row = 150 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterYellow", + start_col = 20, + start_row = 151 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterBlue", + start_col = 24, + start_row = 152 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterOrange", + start_col = 28, + start_row = 153 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterGreen", + start_col = 32, + start_row = 154 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterGreen", + start_col = 16, + start_row = 157 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterOrange", + start_col = 12, + start_row = 160 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterBlue", + start_col = 8, + start_row = 164 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 168 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 172 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/scheme/rainbow-delimiters/regular.scm.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/scheme/rainbow-delimiters/regular.scm.lua new file mode 100644 index 00000000..47d0ebb0 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/scheme/rainbow-delimiters/regular.scm.lua @@ -0,0 +1,339 @@ +return { + scheme = { { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 0 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterYellow", + start_col = 8, + start_row = 0 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterYellow", + start_col = 16, + start_row = 0 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 2 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterBlue", + start_col = 6, + start_row = 2 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterBlue", + start_col = 14, + start_row = 2 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterBlue", + start_col = 4, + start_row = 4 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterOrange", + start_col = 9, + start_row = 4 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterOrange", + start_col = 16, + start_row = 4 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterOrange", + start_col = 9, + start_row = 5 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterOrange", + start_col = 16, + start_row = 5 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterBlue", + start_col = 17, + start_row = 5 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 18, + start_row = 5 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterRed", + start_col = 19, + start_row = 5 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 8 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterYellow", + start_col = 8, + start_row = 8 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterYellow", + start_col = 17, + start_row = 8 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 10 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterBlue", + start_col = 6, + start_row = 10 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterBlue", + start_col = 12, + start_row = 10 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterBlue", + start_col = 4, + start_row = 12 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterOrange", + start_col = 9, + start_row = 12 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterOrange", + start_col = 17, + start_row = 12 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterOrange", + start_col = 9, + start_row = 13 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterOrange", + start_col = 16, + start_row = 13 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterBlue", + start_col = 17, + start_row = 13 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 18, + start_row = 13 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterRed", + start_col = 19, + start_row = 13 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 15 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 16 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterBlue", + start_col = 19, + start_row = 16 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterBlue", + start_col = 20, + start_row = 16 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterBlue", + start_col = 8, + start_row = 17 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterOrange", + start_col = 9, + start_row = 17 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterOrange", + start_col = 19, + start_row = 17 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterOrange", + start_col = 10, + start_row = 18 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterGreen", + start_col = 27, + start_row = 18 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterGreen", + start_col = 40, + start_row = 18 + }, { + end_col = 42, + end_row = 42, + hl_group = "RainbowDelimiterOrange", + start_col = 41, + start_row = 18 + }, { + end_col = 43, + end_row = 43, + hl_group = "RainbowDelimiterBlue", + start_col = 42, + start_row = 18 + }, { + end_col = 44, + end_row = 44, + hl_group = "RainbowDelimiterYellow", + start_col = 43, + start_row = 18 + }, { + end_col = 45, + end_row = 45, + hl_group = "RainbowDelimiterRed", + start_col = 44, + start_row = 18 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterRed", + start_col = 1, + start_row = 20 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 20 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterBlue", + start_col = 3, + start_row = 20 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterBlue", + start_col = 9, + start_row = 20 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterYellow", + start_col = 10, + start_row = 20 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 11, + start_row = 20 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterRed", + start_col = 1, + start_row = 21 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 21 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterBlue", + start_col = 3, + start_row = 21 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterOrange", + start_col = 4, + start_row = 21 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterOrange", + start_col = 12, + start_row = 21 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 21 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterYellow", + start_col = 14, + start_row = 21 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterRed", + start_col = 15, + start_row = 21 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/scss/rainbow-delimiters/regular.scss.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/scss/rainbow-delimiters/regular.scss.lua new file mode 100644 index 00000000..2dae872e --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/scss/rainbow-delimiters/regular.scss.lua @@ -0,0 +1,75 @@ +return { + scss = { { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterRed", + start_col = 12, + start_row = 0 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterRed", + start_col = 31, + start_row = 0 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterRed", + start_col = 33, + start_row = 0 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterYellow", + start_col = 23, + start_row = 2 + }, { + end_col = 46, + end_row = 46, + hl_group = "RainbowDelimiterBlue", + start_col = 45, + start_row = 2 + }, { + end_col = 57, + end_row = 57, + hl_group = "RainbowDelimiterBlue", + start_col = 56, + start_row = 2 + }, { + end_col = 58, + end_row = 58, + hl_group = "RainbowDelimiterYellow", + start_col = 57, + start_row = 2 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 4 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 9 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterYellow", + start_col = 11, + start_row = 11 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 17 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 18 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/sql/rainbow-delimiters/regular.sql.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/sql/rainbow-delimiters/regular.sql.lua new file mode 100644 index 00000000..3d399dd1 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/sql/rainbow-delimiters/regular.sql.lua @@ -0,0 +1,483 @@ +return { + sql = { { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterRed", + start_col = 7, + start_row = 0 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 0 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterBlue", + start_col = 17, + start_row = 0 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterOrange", + start_col = 22, + start_row = 0 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterGreen", + start_col = 27, + start_row = 0 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterViolet", + start_col = 32, + start_row = 0 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterCyan", + start_col = 37, + start_row = 0 + }, { + end_col = 43, + end_row = 43, + hl_group = "RainbowDelimiterRed", + start_col = 42, + start_row = 0 + }, { + end_col = 48, + end_row = 48, + hl_group = "RainbowDelimiterYellow", + start_col = 47, + start_row = 0 + }, { + end_col = 49, + end_row = 49, + hl_group = "RainbowDelimiterBlue", + start_col = 48, + start_row = 0 + }, { + end_col = 49, + end_row = 49, + hl_group = "RainbowDelimiterOrange", + start_col = 48, + start_row = 0 + }, { + end_col = 51, + end_row = 51, + hl_group = "RainbowDelimiterGreen", + start_col = 50, + start_row = 0 + }, { + end_col = 55, + end_row = 55, + hl_group = "RainbowDelimiterOrange", + start_col = 54, + start_row = 0 + }, { + end_col = 57, + end_row = 57, + hl_group = "RainbowDelimiterBlue", + start_col = 56, + start_row = 0 + }, { + end_col = 57, + end_row = 57, + hl_group = "RainbowDelimiterOrange", + start_col = 56, + start_row = 0 + }, { + end_col = 58, + end_row = 58, + hl_group = "RainbowDelimiterYellow", + start_col = 57, + start_row = 0 + }, { + end_col = 59, + end_row = 59, + hl_group = "RainbowDelimiterRed", + start_col = 58, + start_row = 0 + }, { + end_col = 60, + end_row = 60, + hl_group = "RainbowDelimiterCyan", + start_col = 59, + start_row = 0 + }, { + end_col = 61, + end_row = 61, + hl_group = "RainbowDelimiterViolet", + start_col = 60, + start_row = 0 + }, { + end_col = 62, + end_row = 62, + hl_group = "RainbowDelimiterGreen", + start_col = 61, + start_row = 0 + }, { + end_col = 63, + end_row = 63, + hl_group = "RainbowDelimiterOrange", + start_col = 62, + start_row = 0 + }, { + end_col = 64, + end_row = 64, + hl_group = "RainbowDelimiterBlue", + start_col = 63, + start_row = 0 + }, { + end_col = 65, + end_row = 65, + hl_group = "RainbowDelimiterYellow", + start_col = 64, + start_row = 0 + }, { + end_col = 66, + end_row = 66, + hl_group = "RainbowDelimiterRed", + start_col = 65, + start_row = 0 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterRed", + start_col = 4, + start_row = 3 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterYellow", + start_col = 9, + start_row = 3 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterBlue", + start_col = 10, + start_row = 3 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterBlue", + start_col = 12, + start_row = 3 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 3 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterGreen", + start_col = 13, + start_row = 3 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterViolet", + start_col = 14, + start_row = 3 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterViolet", + start_col = 14, + start_row = 3 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterCyan", + start_col = 15, + start_row = 3 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterCyan", + start_col = 16, + start_row = 3 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterGreen", + start_col = 17, + start_row = 3 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterViolet", + start_col = 17, + start_row = 3 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterBlue", + start_col = 18, + start_row = 3 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterOrange", + start_col = 18, + start_row = 3 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterYellow", + start_col = 23, + start_row = 3 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterRed", + start_col = 24, + start_row = 3 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterRed", + start_col = 4, + start_row = 4 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterYellow", + start_col = 5, + start_row = 4 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterYellow", + start_col = 6, + start_row = 4 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterRed", + start_col = 7, + start_row = 4 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterRed", + start_col = 7, + start_row = 7 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterRed", + start_col = 29, + start_row = 7 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterRed", + start_col = 5, + start_row = 9 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterYellow", + start_col = 11, + start_row = 13 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterYellow", + start_col = 29, + start_row = 13 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 18 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterRed", + start_col = 22, + start_row = 19 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterYellow", + start_col = 27, + start_row = 19 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterYellow", + start_col = 33, + start_row = 19 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterRed", + start_col = 34, + start_row = 19 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterRed", + start_col = 40, + start_row = 19 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterYellow", + start_col = 40, + start_row = 19 + }, { + end_col = 46, + end_row = 46, + hl_group = "RainbowDelimiterOrange", + start_col = 45, + start_row = 19 + }, { + end_col = 52, + end_row = 52, + hl_group = "RainbowDelimiterOrange", + start_col = 51, + start_row = 19 + }, { + end_col = 53, + end_row = 53, + hl_group = "RainbowDelimiterBlue", + start_col = 52, + start_row = 19 + }, { + end_col = 57, + end_row = 57, + hl_group = "RainbowDelimiterYellow", + start_col = 56, + start_row = 19 + }, { + end_col = 62, + end_row = 62, + hl_group = "RainbowDelimiterBlue", + start_col = 61, + start_row = 19 + }, { + end_col = 71, + end_row = 71, + hl_group = "RainbowDelimiterOrange", + start_col = 70, + start_row = 19 + }, { + end_col = 73, + end_row = 73, + hl_group = "RainbowDelimiterOrange", + start_col = 72, + start_row = 19 + }, { + end_col = 74, + end_row = 74, + hl_group = "RainbowDelimiterBlue", + start_col = 73, + start_row = 19 + }, { + end_col = 75, + end_row = 75, + hl_group = "RainbowDelimiterRed", + start_col = 74, + start_row = 19 + }, { + end_col = 75, + end_row = 75, + hl_group = "RainbowDelimiterYellow", + start_col = 74, + start_row = 19 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterRed", + start_col = 24, + start_row = 20 + }, { + end_col = 36, + end_row = 36, + hl_group = "RainbowDelimiterRed", + start_col = 35, + start_row = 20 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterRed", + start_col = 6, + start_row = 26 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterBlue", + start_col = 24, + start_row = 28 + }, { + end_col = 54, + end_row = 54, + hl_group = "RainbowDelimiterBlue", + start_col = 53, + start_row = 28 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterYellow", + start_col = 0, + start_row = 29 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterRed", + start_col = 1, + start_row = 31 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterYellow", + start_col = 22, + start_row = 31 + }, { + end_col = 39, + end_row = 39, + hl_group = "RainbowDelimiterYellow", + start_col = 38, + start_row = 31 + }, { + end_col = 66, + end_row = 66, + hl_group = "RainbowDelimiterRed", + start_col = 65, + start_row = 31 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterRed", + start_col = 30, + start_row = 33 + }, { + end_col = 37, + end_row = 37, + hl_group = "RainbowDelimiterRed", + start_col = 36, + start_row = 33 + }, { + end_col = 45, + end_row = 45, + hl_group = "RainbowDelimiterRed", + start_col = 44, + start_row = 33 + }, { + end_col = 50, + end_row = 50, + hl_group = "RainbowDelimiterRed", + start_col = 49, + start_row = 33 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/starlark/rainbow-delimiters/regular.star.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/starlark/rainbow-delimiters/regular.star.lua new file mode 100644 index 00000000..7bae34d3 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/starlark/rainbow-delimiters/regular.star.lua @@ -0,0 +1,3 @@ +return { + starlark = {} +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/svelte/rainbow-delimiters/regular.svelte.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/svelte/rainbow-delimiters/regular.svelte.lua new file mode 100644 index 00000000..6460ddbb --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/svelte/rainbow-delimiters/regular.svelte.lua @@ -0,0 +1,474 @@ +return { + css = { { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterRed", + start_col = 3, + start_row = 7 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterRed", + start_col = 1, + start_row = 9 + } }, + javascript = {}, + svelte = { { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 0 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterRed", + start_col = 1, + start_row = 0 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterRed", + start_col = 17, + start_row = 0 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 4 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterRed", + start_col = 2, + start_row = 4 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterRed", + start_col = 8, + start_row = 4 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 6 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterRed", + start_col = 1, + start_row = 6 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterRed", + start_col = 6, + start_row = 6 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 10 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterRed", + start_col = 2, + start_row = 10 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterRed", + start_col = 7, + start_row = 10 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 12 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 1, + start_row = 12 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterRed", + start_col = 12, + start_row = 12 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 13 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 13 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterYellow", + start_col = 7, + start_row = 13 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 17, + start_row = 13 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterYellow", + start_col = 19, + start_row = 13 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterYellow", + start_col = 24, + start_row = 13 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 14 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 14 + }, { + end_col = 50, + end_row = 50, + hl_group = "RainbowDelimiterYellow", + start_col = 48, + start_row = 14 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 15 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterRed", + start_col = 2, + start_row = 15 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterRed", + start_col = 13, + start_row = 15 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 17 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterRed", + start_col = 1, + start_row = 17 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterRed", + start_col = 3, + start_row = 17 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterRed", + start_col = 26, + start_row = 17 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterRed", + start_col = 28, + start_row = 17 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterRed", + start_col = 30, + start_row = 17 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 19 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterRed", + start_col = 1, + start_row = 19 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterRed", + start_col = 40, + start_row = 19 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 20 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 20 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 3, + start_row = 20 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterYellow", + start_col = 23, + start_row = 20 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterYellow", + start_col = 25, + start_row = 20 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterYellow", + start_col = 26, + start_row = 20 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 21 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 21 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 21 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 22 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 22 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 22 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 24 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterBlue", + start_col = 3, + start_row = 24 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterBlue", + start_col = 24, + start_row = 24 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterBlue", + start_col = 30, + start_row = 24 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterBlue", + start_col = 32, + start_row = 24 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterBlue", + start_col = 34, + start_row = 24 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 26 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 3, + start_row = 26 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterYellow", + start_col = 5, + start_row = 26 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 28 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 28 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 3, + start_row = 28 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterYellow", + start_col = 14, + start_row = 28 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterYellow", + start_col = 16, + start_row = 28 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterYellow", + start_col = 17, + start_row = 28 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 30 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterRed", + start_col = 2, + start_row = 30 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterRed", + start_col = 6, + start_row = 30 + } }, + typescript = { { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterRed", + start_col = 8, + start_row = 1 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterRed", + start_col = 14, + start_row = 1 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterRed", + start_col = 4, + start_row = 3 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterYellow", + start_col = 5, + start_row = 3 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterBlue", + start_col = 9, + start_row = 3 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterOrange", + start_col = 13, + start_row = 3 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterOrange", + start_col = 20, + start_row = 3 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterBlue", + start_col = 21, + start_row = 3 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterYellow", + start_col = 22, + start_row = 3 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterRed", + start_col = 23, + start_row = 3 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/teal/rainbow-delimiters/regular.tl.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/teal/rainbow-delimiters/regular.tl.lua new file mode 100644 index 00000000..523011c9 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/teal/rainbow-delimiters/regular.tl.lua @@ -0,0 +1,267 @@ +return { + teal = { { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterRed", + start_col = 18, + start_row = 2 + }, { + end_col = 42, + end_row = 42, + hl_group = "RainbowDelimiterRed", + start_col = 41, + start_row = 2 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 11, + start_row = 6 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterRed", + start_col = 32, + start_row = 6 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterRed", + start_col = 18, + start_row = 31 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterYellow", + start_col = 19, + start_row = 31 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterYellow", + start_col = 33, + start_row = 31 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterRed", + start_col = 34, + start_row = 31 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterRed", + start_col = 6, + start_row = 32 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterYellow", + start_col = 20, + start_row = 32 + }, { + end_col = 37, + end_row = 37, + hl_group = "RainbowDelimiterYellow", + start_col = 36, + start_row = 32 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterRed", + start_col = 37, + start_row = 32 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterRed", + start_col = 6, + start_row = 36 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterYellow", + start_col = 20, + start_row = 36 + }, { + end_col = 36, + end_row = 36, + hl_group = "RainbowDelimiterYellow", + start_col = 35, + start_row = 36 + }, { + end_col = 37, + end_row = 37, + hl_group = "RainbowDelimiterRed", + start_col = 36, + start_row = 36 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterRed", + start_col = 5, + start_row = 39 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterYellow", + start_col = 8, + start_row = 39 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterYellow", + start_col = 17, + start_row = 39 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterRed", + start_col = 18, + start_row = 39 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterRed", + start_col = 5, + start_row = 40 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterRed", + start_col = 29, + start_row = 40 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterRed", + start_col = 6, + start_row = 42 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 43 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 44 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 46 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 47 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 48 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterRed", + start_col = 12, + start_row = 50 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterRed", + start_col = 14, + start_row = 50 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterRed", + start_col = 5, + start_row = 52 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterYellow", + start_col = 9, + start_row = 52 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 52 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterOrange", + start_col = 17, + start_row = 52 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterOrange", + start_col = 19, + start_row = 52 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterBlue", + start_col = 20, + start_row = 52 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterYellow", + start_col = 21, + start_row = 52 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterRed", + start_col = 22, + start_row = 52 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterRed", + start_col = 12, + start_row = 59 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 60 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterYellow", + start_col = 16, + start_row = 60 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterYellow", + start_col = 20, + start_row = 60 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterYellow", + start_col = 21, + start_row = 60 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 61 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/templ/rainbow-delimiters/regular.templ.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/templ/rainbow-delimiters/regular.templ.lua new file mode 100644 index 00000000..20da883c --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/templ/rainbow-delimiters/regular.templ.lua @@ -0,0 +1,5 @@ +return { + css = {}, + javascript = {}, + templ = {} +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/terraform/rainbow-delimiters/basic.tf.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/terraform/rainbow-delimiters/basic.tf.lua new file mode 100644 index 00000000..fbced149 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/terraform/rainbow-delimiters/basic.tf.lua @@ -0,0 +1,3 @@ +return { + terraform = {} +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/toml/rainbow-delimiters/regular.toml.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/toml/rainbow-delimiters/regular.toml.lua new file mode 100644 index 00000000..4a46bf52 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/toml/rainbow-delimiters/regular.toml.lua @@ -0,0 +1,123 @@ +return { + toml = { { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 0 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterRed", + start_col = 6, + start_row = 0 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 1 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterRed", + start_col = 10, + start_row = 1 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterRed", + start_col = 15, + start_row = 2 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterRed", + start_col = 31, + start_row = 2 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterRed", + start_col = 15, + start_row = 4 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterRed", + start_col = 32, + start_row = 4 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterRed", + start_col = 17, + start_row = 6 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 7 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterYellow", + start_col = 30, + start_row = 7 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 8 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterYellow", + start_col = 28, + start_row = 8 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 9 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 11 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterRed", + start_col = 17, + start_row = 11 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 14 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterRed", + start_col = 19, + start_row = 14 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 17 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterRed", + start_col = 17, + start_row = 17 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/tsx/rainbow-delimiters/regular.tsx.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/tsx/rainbow-delimiters/regular.tsx.lua new file mode 100644 index 00000000..f4c5b0fc --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/tsx/rainbow-delimiters/regular.tsx.lua @@ -0,0 +1,1221 @@ +return { + tsx = { { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterRed", + start_col = 12, + start_row = 1 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterRed", + start_col = 33, + start_row = 1 + }, { + end_col = 44, + end_row = 44, + hl_group = "RainbowDelimiterRed", + start_col = 43, + start_row = 1 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterYellow", + start_col = 14, + start_row = 2 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterYellow", + start_col = 37, + start_row = 2 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterYellow", + start_col = 39, + start_row = 2 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterBlue", + start_col = 5, + start_row = 3 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterBlue", + start_col = 12, + start_row = 3 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterBlue", + start_col = 14, + start_row = 3 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 5 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 6 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterBlue", + start_col = 28, + start_row = 6 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 7 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 8 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterYellow", + start_col = 17, + start_row = 8 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 9 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 11, + start_row = 12 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterRed", + start_col = 13, + start_row = 12 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterRed", + start_col = 14, + start_row = 12 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterRed", + start_col = 19, + start_row = 12 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterRed", + start_col = 24, + start_row = 12 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 14 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterRed", + start_col = 13, + start_row = 17 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 22 + }, { + end_col = 55, + end_row = 55, + hl_group = "RainbowDelimiterYellow", + start_col = 54, + start_row = 22 + }, { + end_col = 57, + end_row = 57, + hl_group = "RainbowDelimiterYellow", + start_col = 56, + start_row = 22 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 26 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterYellow", + start_col = 9, + start_row = 28 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterYellow", + start_col = 10, + start_row = 28 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterYellow", + start_col = 20, + start_row = 28 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterBlue", + start_col = 10, + start_row = 29 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterBlue", + start_col = 21, + start_row = 29 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterBlue", + start_col = 24, + start_row = 29 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterBlue", + start_col = 34, + start_row = 29 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterBlue", + start_col = 38, + start_row = 29 + }, { + end_col = 52, + end_row = 52, + hl_group = "RainbowDelimiterBlue", + start_col = 51, + start_row = 29 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 30 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 31 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 11, + start_row = 35 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterYellow", + start_col = 20, + start_row = 35 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterYellow", + start_col = 25, + start_row = 35 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterRed", + start_col = 27, + start_row = 35 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterRed", + start_col = 18, + start_row = 38 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 39 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterBlue", + start_col = 5, + start_row = 40 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterOrange", + start_col = 6, + start_row = 41 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterOrange", + start_col = 7, + start_row = 41 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 42 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 43 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 44 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterRed", + start_col = 15, + start_row = 47 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterRed", + start_col = 17, + start_row = 47 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 11, + start_row = 48 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 18, + start_row = 48 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterBlue", + start_col = 25, + start_row = 48 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterOrange", + start_col = 32, + start_row = 48 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterOrange", + start_col = 34, + start_row = 48 + }, { + end_col = 36, + end_row = 36, + hl_group = "RainbowDelimiterBlue", + start_col = 35, + start_row = 48 + }, { + end_col = 37, + end_row = 37, + hl_group = "RainbowDelimiterYellow", + start_col = 36, + start_row = 48 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterRed", + start_col = 37, + start_row = 48 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 11, + start_row = 51 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterYellow", + start_col = 16, + start_row = 51 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterBlue", + start_col = 21, + start_row = 51 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterOrange", + start_col = 26, + start_row = 51 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterGreen", + start_col = 31, + start_row = 51 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterGreen", + start_col = 37, + start_row = 51 + }, { + end_col = 39, + end_row = 39, + hl_group = "RainbowDelimiterOrange", + start_col = 38, + start_row = 51 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterBlue", + start_col = 39, + start_row = 51 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterYellow", + start_col = 40, + start_row = 51 + }, { + end_col = 42, + end_row = 42, + hl_group = "RainbowDelimiterRed", + start_col = 41, + start_row = 51 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterRed", + start_col = 14, + start_row = 54 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterRed", + start_col = 15, + start_row = 54 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterRed", + start_col = 17, + start_row = 54 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 55 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterYellow", + start_col = 28, + start_row = 55 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 56 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterRed", + start_col = 12, + start_row = 58 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterRed", + start_col = 13, + start_row = 58 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterRed", + start_col = 15, + start_row = 58 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterYellow", + start_col = 8, + start_row = 59 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 60 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterBlue", + start_col = 3, + start_row = 60 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterOrange", + start_col = 13, + start_row = 60 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterGreen", + start_col = 14, + start_row = 60 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterGreen", + start_col = 32, + start_row = 60 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterOrange", + start_col = 33, + start_row = 60 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterBlue", + start_col = 34, + start_row = 60 + }, { + end_col = 0, + end_row = 0, + hl_group = "RainbowDelimiterOrange", + start_col = 35, + start_row = 60 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterOrange", + start_col = 0, + start_row = 61 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterOrange", + start_col = 4, + start_row = 61 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterOrange", + start_col = 5, + start_row = 61 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterGreen", + start_col = 15, + start_row = 62 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterGreen", + start_col = 16, + start_row = 62 + }, { + end_col = 45, + end_row = 45, + hl_group = "RainbowDelimiterGreen", + start_col = 44, + start_row = 62 + }, { + end_col = 59, + end_row = 59, + hl_group = "RainbowDelimiterGreen", + start_col = 57, + start_row = 62 + }, { + end_col = 60, + end_row = 60, + hl_group = "RainbowDelimiterGreen", + start_col = 59, + start_row = 62 + }, { + end_col = 61, + end_row = 61, + hl_group = "RainbowDelimiterGreen", + start_col = 60, + start_row = 62 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterOrange", + start_col = 3, + start_row = 63 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterOrange", + start_col = 5, + start_row = 63 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterOrange", + start_col = 6, + start_row = 63 + }, { + end_col = 0, + end_row = 0, + hl_group = "RainbowDelimiterOrange", + start_col = 7, + start_row = 63 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterOrange", + start_col = 0, + start_row = 64 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterOrange", + start_col = 4, + start_row = 64 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterOrange", + start_col = 5, + start_row = 64 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterGreen", + start_col = 15, + start_row = 65 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterGreen", + start_col = 16, + start_row = 65 + }, { + end_col = 45, + end_row = 45, + hl_group = "RainbowDelimiterGreen", + start_col = 44, + start_row = 65 + }, { + end_col = 53, + end_row = 53, + hl_group = "RainbowDelimiterViolet", + start_col = 52, + start_row = 65 + }, { + end_col = 55, + end_row = 55, + hl_group = "RainbowDelimiterViolet", + start_col = 53, + start_row = 65 + }, { + end_col = 57, + end_row = 57, + hl_group = "RainbowDelimiterViolet", + start_col = 55, + start_row = 65 + }, { + end_col = 63, + end_row = 63, + hl_group = "RainbowDelimiterGreen", + start_col = 61, + start_row = 65 + }, { + end_col = 64, + end_row = 64, + hl_group = "RainbowDelimiterGreen", + start_col = 63, + start_row = 65 + }, { + end_col = 65, + end_row = 65, + hl_group = "RainbowDelimiterGreen", + start_col = 64, + start_row = 65 + }, { + end_col = 71, + end_row = 71, + hl_group = "RainbowDelimiterGreen", + start_col = 70, + start_row = 65 + }, { + end_col = 73, + end_row = 73, + hl_group = "RainbowDelimiterGreen", + start_col = 71, + start_row = 65 + }, { + end_col = 75, + end_row = 75, + hl_group = "RainbowDelimiterGreen", + start_col = 73, + start_row = 65 + }, { + end_col = 82, + end_row = 82, + hl_group = "RainbowDelimiterGreen", + start_col = 81, + start_row = 65 + }, { + end_col = 84, + end_row = 84, + hl_group = "RainbowDelimiterGreen", + start_col = 82, + start_row = 65 + }, { + end_col = 86, + end_row = 86, + hl_group = "RainbowDelimiterGreen", + start_col = 84, + start_row = 65 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterOrange", + start_col = 3, + start_row = 66 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterOrange", + start_col = 5, + start_row = 66 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterOrange", + start_col = 6, + start_row = 66 + }, { + end_col = 0, + end_row = 0, + hl_group = "RainbowDelimiterOrange", + start_col = 7, + start_row = 66 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterOrange", + start_col = 0, + start_row = 67 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterOrange", + start_col = 4, + start_row = 67 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterGreen", + start_col = 19, + start_row = 67 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterGreen", + start_col = 25, + start_row = 67 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterOrange", + start_col = 26, + start_row = 67 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterOrange", + start_col = 36, + start_row = 67 + }, { + end_col = 44, + end_row = 44, + hl_group = "RainbowDelimiterOrange", + start_col = 38, + start_row = 67 + }, { + end_col = 45, + end_row = 45, + hl_group = "RainbowDelimiterOrange", + start_col = 44, + start_row = 67 + }, { + end_col = 0, + end_row = 0, + hl_group = "RainbowDelimiterOrange", + start_col = 45, + start_row = 67 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterOrange", + start_col = 0, + start_row = 68 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterOrange", + start_col = 4, + start_row = 68 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterOrange", + start_col = 25, + start_row = 68 + }, { + end_col = 0, + end_row = 0, + hl_group = "RainbowDelimiterGreen", + start_col = 26, + start_row = 68 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterGreen", + start_col = 0, + start_row = 69 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterViolet", + start_col = 17, + start_row = 69 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterViolet", + start_col = 18, + start_row = 69 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterViolet", + start_col = 23, + start_row = 69 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterCyan", + start_col = 24, + start_row = 69 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterCyan", + start_col = 26, + start_row = 69 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterCyan", + start_col = 31, + start_row = 69 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterCyan", + start_col = 32, + start_row = 69 + }, { + end_col = 36, + end_row = 36, + hl_group = "RainbowDelimiterCyan", + start_col = 35, + start_row = 69 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterCyan", + start_col = 36, + start_row = 69 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterCyan", + start_col = 38, + start_row = 69 + }, { + end_col = 42, + end_row = 42, + hl_group = "RainbowDelimiterCyan", + start_col = 41, + start_row = 69 + }, { + end_col = 43, + end_row = 43, + hl_group = "RainbowDelimiterViolet", + start_col = 42, + start_row = 69 + }, { + end_col = 44, + end_row = 44, + hl_group = "RainbowDelimiterGreen", + start_col = 43, + start_row = 69 + }, { + end_col = 0, + end_row = 0, + hl_group = "RainbowDelimiterOrange", + start_col = 44, + start_row = 69 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterOrange", + start_col = 0, + start_row = 70 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterOrange", + start_col = 5, + start_row = 70 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterOrange", + start_col = 26, + start_row = 70 + }, { + end_col = 0, + end_row = 0, + hl_group = "RainbowDelimiterOrange", + start_col = 27, + start_row = 70 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterOrange", + start_col = 0, + start_row = 71 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterOrange", + start_col = 4, + start_row = 71 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterOrange", + start_col = 26, + start_row = 71 + }, { + end_col = 0, + end_row = 0, + hl_group = "RainbowDelimiterGreen", + start_col = 27, + start_row = 71 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterGreen", + start_col = 0, + start_row = 72 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterViolet", + start_col = 17, + start_row = 72 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterViolet", + start_col = 18, + start_row = 72 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterViolet", + start_col = 23, + start_row = 72 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterCyan", + start_col = 24, + start_row = 72 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterCyan", + start_col = 26, + start_row = 72 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterCyan", + start_col = 31, + start_row = 72 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterCyan", + start_col = 32, + start_row = 72 + }, { + end_col = 36, + end_row = 36, + hl_group = "RainbowDelimiterCyan", + start_col = 35, + start_row = 72 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterCyan", + start_col = 36, + start_row = 72 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterCyan", + start_col = 38, + start_row = 72 + }, { + end_col = 42, + end_row = 42, + hl_group = "RainbowDelimiterCyan", + start_col = 41, + start_row = 72 + }, { + end_col = 43, + end_row = 43, + hl_group = "RainbowDelimiterViolet", + start_col = 42, + start_row = 72 + }, { + end_col = 44, + end_row = 44, + hl_group = "RainbowDelimiterGreen", + start_col = 43, + start_row = 72 + }, { + end_col = 0, + end_row = 0, + hl_group = "RainbowDelimiterOrange", + start_col = 44, + start_row = 72 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterOrange", + start_col = 0, + start_row = 73 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterOrange", + start_col = 5, + start_row = 73 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterOrange", + start_col = 27, + start_row = 73 + }, { + end_col = 0, + end_row = 0, + hl_group = "RainbowDelimiterOrange", + start_col = 28, + start_row = 73 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterOrange", + start_col = 0, + start_row = 74 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterOrange", + start_col = 4, + start_row = 74 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterGreen", + start_col = 32, + start_row = 74 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterGreen", + start_col = 37, + start_row = 74 + }, { + end_col = 44, + end_row = 44, + hl_group = "RainbowDelimiterGreen", + start_col = 43, + start_row = 74 + }, { + end_col = 45, + end_row = 45, + hl_group = "RainbowDelimiterViolet", + start_col = 44, + start_row = 74 + }, { + end_col = 53, + end_row = 53, + hl_group = "RainbowDelimiterViolet", + start_col = 52, + start_row = 74 + }, { + end_col = 54, + end_row = 54, + hl_group = "RainbowDelimiterGreen", + start_col = 53, + start_row = 74 + }, { + end_col = 57, + end_row = 57, + hl_group = "RainbowDelimiterOrange", + start_col = 55, + start_row = 74 + }, { + end_col = 0, + end_row = 0, + hl_group = "RainbowDelimiterOrange", + start_col = 57, + start_row = 74 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterOrange", + start_col = 0, + start_row = 75 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterOrange", + start_col = 4, + start_row = 75 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterGreen", + start_col = 25, + start_row = 75 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterGreen", + start_col = 30, + start_row = 75 + }, { + end_col = 37, + end_row = 37, + hl_group = "RainbowDelimiterGreen", + start_col = 36, + start_row = 75 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterViolet", + start_col = 37, + start_row = 75 + }, { + end_col = 46, + end_row = 46, + hl_group = "RainbowDelimiterViolet", + start_col = 45, + start_row = 75 + }, { + end_col = 47, + end_row = 47, + hl_group = "RainbowDelimiterGreen", + start_col = 46, + start_row = 75 + }, { + end_col = 50, + end_row = 50, + hl_group = "RainbowDelimiterOrange", + start_col = 48, + start_row = 75 + }, { + end_col = 0, + end_row = 0, + hl_group = "RainbowDelimiterBlue", + start_col = 50, + start_row = 75 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterBlue", + start_col = 0, + start_row = 76 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterBlue", + start_col = 4, + start_row = 76 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterBlue", + start_col = 7, + start_row = 76 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 77 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 78 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/tsx/rainbow-parens/regular.tsx.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/tsx/rainbow-parens/regular.tsx.lua new file mode 100644 index 00000000..7fdee59c --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/tsx/rainbow-parens/regular.tsx.lua @@ -0,0 +1,603 @@ +return { + tsx = { { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterRed", + start_col = 12, + start_row = 1 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterRed", + start_col = 33, + start_row = 1 + }, { + end_col = 44, + end_row = 44, + hl_group = "RainbowDelimiterRed", + start_col = 43, + start_row = 1 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterYellow", + start_col = 14, + start_row = 2 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterYellow", + start_col = 37, + start_row = 2 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterYellow", + start_col = 39, + start_row = 2 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterBlue", + start_col = 5, + start_row = 3 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterBlue", + start_col = 12, + start_row = 3 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterBlue", + start_col = 14, + start_row = 3 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 5 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 6 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterBlue", + start_col = 28, + start_row = 6 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 7 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 8 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterYellow", + start_col = 17, + start_row = 8 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 9 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 11, + start_row = 12 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterRed", + start_col = 13, + start_row = 12 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterRed", + start_col = 14, + start_row = 12 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterRed", + start_col = 19, + start_row = 12 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterRed", + start_col = 24, + start_row = 12 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 14 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterRed", + start_col = 13, + start_row = 17 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 22 + }, { + end_col = 55, + end_row = 55, + hl_group = "RainbowDelimiterYellow", + start_col = 54, + start_row = 22 + }, { + end_col = 57, + end_row = 57, + hl_group = "RainbowDelimiterYellow", + start_col = 56, + start_row = 22 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 26 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterYellow", + start_col = 9, + start_row = 28 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterYellow", + start_col = 10, + start_row = 28 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterYellow", + start_col = 20, + start_row = 28 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterBlue", + start_col = 10, + start_row = 29 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterBlue", + start_col = 21, + start_row = 29 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterBlue", + start_col = 24, + start_row = 29 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterBlue", + start_col = 34, + start_row = 29 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterBlue", + start_col = 38, + start_row = 29 + }, { + end_col = 52, + end_row = 52, + hl_group = "RainbowDelimiterBlue", + start_col = 51, + start_row = 29 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 30 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 31 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 11, + start_row = 35 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterYellow", + start_col = 20, + start_row = 35 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterYellow", + start_col = 25, + start_row = 35 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterRed", + start_col = 27, + start_row = 35 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterRed", + start_col = 18, + start_row = 38 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 39 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterBlue", + start_col = 5, + start_row = 40 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterOrange", + start_col = 6, + start_row = 41 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterOrange", + start_col = 7, + start_row = 41 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 42 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 43 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 44 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterRed", + start_col = 15, + start_row = 47 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterRed", + start_col = 17, + start_row = 47 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 11, + start_row = 48 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 18, + start_row = 48 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterBlue", + start_col = 25, + start_row = 48 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterOrange", + start_col = 32, + start_row = 48 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterOrange", + start_col = 34, + start_row = 48 + }, { + end_col = 36, + end_row = 36, + hl_group = "RainbowDelimiterBlue", + start_col = 35, + start_row = 48 + }, { + end_col = 37, + end_row = 37, + hl_group = "RainbowDelimiterYellow", + start_col = 36, + start_row = 48 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterRed", + start_col = 37, + start_row = 48 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 11, + start_row = 51 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterYellow", + start_col = 16, + start_row = 51 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterBlue", + start_col = 21, + start_row = 51 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterOrange", + start_col = 26, + start_row = 51 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterGreen", + start_col = 31, + start_row = 51 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterGreen", + start_col = 37, + start_row = 51 + }, { + end_col = 39, + end_row = 39, + hl_group = "RainbowDelimiterOrange", + start_col = 38, + start_row = 51 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterBlue", + start_col = 39, + start_row = 51 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterYellow", + start_col = 40, + start_row = 51 + }, { + end_col = 42, + end_row = 42, + hl_group = "RainbowDelimiterRed", + start_col = 41, + start_row = 51 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterRed", + start_col = 14, + start_row = 54 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterRed", + start_col = 15, + start_row = 54 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterRed", + start_col = 17, + start_row = 54 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 55 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterYellow", + start_col = 28, + start_row = 55 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 56 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterRed", + start_col = 12, + start_row = 58 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterRed", + start_col = 13, + start_row = 58 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterRed", + start_col = 15, + start_row = 58 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterYellow", + start_col = 8, + start_row = 59 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterBlue", + start_col = 14, + start_row = 60 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterBlue", + start_col = 32, + start_row = 60 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterBlue", + start_col = 17, + start_row = 69 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterBlue", + start_col = 18, + start_row = 69 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterBlue", + start_col = 23, + start_row = 69 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterOrange", + start_col = 24, + start_row = 69 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterOrange", + start_col = 26, + start_row = 69 + }, { + end_col = 43, + end_row = 43, + hl_group = "RainbowDelimiterBlue", + start_col = 42, + start_row = 69 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterBlue", + start_col = 17, + start_row = 72 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterBlue", + start_col = 18, + start_row = 72 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterBlue", + start_col = 23, + start_row = 72 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterOrange", + start_col = 24, + start_row = 72 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterOrange", + start_col = 26, + start_row = 72 + }, { + end_col = 43, + end_row = 43, + hl_group = "RainbowDelimiterBlue", + start_col = 42, + start_row = 72 + }, { + end_col = 45, + end_row = 45, + hl_group = "RainbowDelimiterBlue", + start_col = 44, + start_row = 74 + }, { + end_col = 53, + end_row = 53, + hl_group = "RainbowDelimiterBlue", + start_col = 52, + start_row = 74 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterBlue", + start_col = 37, + start_row = 75 + }, { + end_col = 46, + end_row = 46, + hl_group = "RainbowDelimiterBlue", + start_col = 45, + start_row = 75 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 77 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 78 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/tsx/rainbow-tags-react/regular.tsx.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/tsx/rainbow-tags-react/regular.tsx.lua new file mode 100644 index 00000000..e0286dde --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/tsx/rainbow-tags-react/regular.tsx.lua @@ -0,0 +1,513 @@ +return { + tsx = { { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterRed", + start_col = 2, + start_row = 60 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterRed", + start_col = 3, + start_row = 60 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterRed", + start_col = 34, + start_row = 60 + }, { + end_col = 0, + end_row = 0, + hl_group = "RainbowDelimiterYellow", + start_col = 35, + start_row = 60 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 0, + start_row = 61 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 61 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterYellow", + start_col = 5, + start_row = 61 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterBlue", + start_col = 15, + start_row = 62 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterBlue", + start_col = 16, + start_row = 62 + }, { + end_col = 45, + end_row = 45, + hl_group = "RainbowDelimiterBlue", + start_col = 44, + start_row = 62 + }, { + end_col = 59, + end_row = 59, + hl_group = "RainbowDelimiterBlue", + start_col = 57, + start_row = 62 + }, { + end_col = 60, + end_row = 60, + hl_group = "RainbowDelimiterBlue", + start_col = 59, + start_row = 62 + }, { + end_col = 61, + end_row = 61, + hl_group = "RainbowDelimiterBlue", + start_col = 60, + start_row = 62 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 3, + start_row = 63 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterYellow", + start_col = 5, + start_row = 63 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterYellow", + start_col = 6, + start_row = 63 + }, { + end_col = 0, + end_row = 0, + hl_group = "RainbowDelimiterYellow", + start_col = 7, + start_row = 63 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 0, + start_row = 64 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 64 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterYellow", + start_col = 5, + start_row = 64 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterBlue", + start_col = 15, + start_row = 65 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterBlue", + start_col = 16, + start_row = 65 + }, { + end_col = 45, + end_row = 45, + hl_group = "RainbowDelimiterBlue", + start_col = 44, + start_row = 65 + }, { + end_col = 53, + end_row = 53, + hl_group = "RainbowDelimiterOrange", + start_col = 52, + start_row = 65 + }, { + end_col = 55, + end_row = 55, + hl_group = "RainbowDelimiterOrange", + start_col = 53, + start_row = 65 + }, { + end_col = 57, + end_row = 57, + hl_group = "RainbowDelimiterOrange", + start_col = 55, + start_row = 65 + }, { + end_col = 63, + end_row = 63, + hl_group = "RainbowDelimiterBlue", + start_col = 61, + start_row = 65 + }, { + end_col = 64, + end_row = 64, + hl_group = "RainbowDelimiterBlue", + start_col = 63, + start_row = 65 + }, { + end_col = 65, + end_row = 65, + hl_group = "RainbowDelimiterBlue", + start_col = 64, + start_row = 65 + }, { + end_col = 71, + end_row = 71, + hl_group = "RainbowDelimiterBlue", + start_col = 70, + start_row = 65 + }, { + end_col = 73, + end_row = 73, + hl_group = "RainbowDelimiterBlue", + start_col = 71, + start_row = 65 + }, { + end_col = 75, + end_row = 75, + hl_group = "RainbowDelimiterBlue", + start_col = 73, + start_row = 65 + }, { + end_col = 82, + end_row = 82, + hl_group = "RainbowDelimiterBlue", + start_col = 81, + start_row = 65 + }, { + end_col = 84, + end_row = 84, + hl_group = "RainbowDelimiterBlue", + start_col = 82, + start_row = 65 + }, { + end_col = 86, + end_row = 86, + hl_group = "RainbowDelimiterBlue", + start_col = 84, + start_row = 65 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 3, + start_row = 66 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterYellow", + start_col = 5, + start_row = 66 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterYellow", + start_col = 6, + start_row = 66 + }, { + end_col = 0, + end_row = 0, + hl_group = "RainbowDelimiterYellow", + start_col = 7, + start_row = 66 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 0, + start_row = 67 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 67 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterYellow", + start_col = 26, + start_row = 67 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterYellow", + start_col = 36, + start_row = 67 + }, { + end_col = 44, + end_row = 44, + hl_group = "RainbowDelimiterYellow", + start_col = 38, + start_row = 67 + }, { + end_col = 45, + end_row = 45, + hl_group = "RainbowDelimiterYellow", + start_col = 44, + start_row = 67 + }, { + end_col = 0, + end_row = 0, + hl_group = "RainbowDelimiterYellow", + start_col = 45, + start_row = 67 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 0, + start_row = 68 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 68 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterYellow", + start_col = 25, + start_row = 68 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterBlue", + start_col = 31, + start_row = 69 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterBlue", + start_col = 32, + start_row = 69 + }, { + end_col = 36, + end_row = 36, + hl_group = "RainbowDelimiterBlue", + start_col = 35, + start_row = 69 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterBlue", + start_col = 36, + start_row = 69 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterBlue", + start_col = 38, + start_row = 69 + }, { + end_col = 42, + end_row = 42, + hl_group = "RainbowDelimiterBlue", + start_col = 41, + start_row = 69 + }, { + end_col = 0, + end_row = 0, + hl_group = "RainbowDelimiterYellow", + start_col = 44, + start_row = 69 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 0, + start_row = 70 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterYellow", + start_col = 5, + start_row = 70 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterYellow", + start_col = 26, + start_row = 70 + }, { + end_col = 0, + end_row = 0, + hl_group = "RainbowDelimiterYellow", + start_col = 27, + start_row = 70 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 0, + start_row = 71 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 71 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterYellow", + start_col = 26, + start_row = 71 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterBlue", + start_col = 31, + start_row = 72 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterBlue", + start_col = 32, + start_row = 72 + }, { + end_col = 36, + end_row = 36, + hl_group = "RainbowDelimiterBlue", + start_col = 35, + start_row = 72 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterBlue", + start_col = 36, + start_row = 72 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterBlue", + start_col = 38, + start_row = 72 + }, { + end_col = 42, + end_row = 42, + hl_group = "RainbowDelimiterBlue", + start_col = 41, + start_row = 72 + }, { + end_col = 0, + end_row = 0, + hl_group = "RainbowDelimiterYellow", + start_col = 44, + start_row = 72 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 0, + start_row = 73 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterYellow", + start_col = 5, + start_row = 73 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterYellow", + start_col = 27, + start_row = 73 + }, { + end_col = 0, + end_row = 0, + hl_group = "RainbowDelimiterYellow", + start_col = 28, + start_row = 73 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 0, + start_row = 74 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 74 + }, { + end_col = 57, + end_row = 57, + hl_group = "RainbowDelimiterYellow", + start_col = 55, + start_row = 74 + }, { + end_col = 0, + end_row = 0, + hl_group = "RainbowDelimiterYellow", + start_col = 57, + start_row = 74 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterYellow", + start_col = 0, + start_row = 75 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 75 + }, { + end_col = 50, + end_row = 50, + hl_group = "RainbowDelimiterYellow", + start_col = 48, + start_row = 75 + }, { + end_col = 0, + end_row = 0, + hl_group = "RainbowDelimiterRed", + start_col = 50, + start_row = 75 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 76 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterRed", + start_col = 4, + start_row = 76 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterRed", + start_col = 7, + start_row = 76 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/typescript/rainbow-delimiters/regular.d.ts.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/typescript/rainbow-delimiters/regular.d.ts.lua new file mode 100644 index 00000000..be0d9846 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/typescript/rainbow-delimiters/regular.d.ts.lua @@ -0,0 +1,27 @@ +return { + typescript = { { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterRed", + start_col = 30, + start_row = 1 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterYellow", + start_col = 7, + start_row = 2 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterYellow", + start_col = 28, + start_row = 2 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 3 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/typescript/rainbow-delimiters/regular.ts.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/typescript/rainbow-delimiters/regular.ts.lua new file mode 100644 index 00000000..e3d790c2 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/typescript/rainbow-delimiters/regular.ts.lua @@ -0,0 +1,555 @@ +return { + typescript = { { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterRed", + start_col = 12, + start_row = 1 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterRed", + start_col = 33, + start_row = 1 + }, { + end_col = 44, + end_row = 44, + hl_group = "RainbowDelimiterRed", + start_col = 43, + start_row = 1 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterYellow", + start_col = 14, + start_row = 2 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterYellow", + start_col = 37, + start_row = 2 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterYellow", + start_col = 39, + start_row = 2 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterBlue", + start_col = 5, + start_row = 3 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterBlue", + start_col = 12, + start_row = 3 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterBlue", + start_col = 14, + start_row = 3 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 5 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 6 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterBlue", + start_col = 28, + start_row = 6 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 7 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 8 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterYellow", + start_col = 17, + start_row = 8 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 9 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 11, + start_row = 12 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterRed", + start_col = 13, + start_row = 12 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterRed", + start_col = 14, + start_row = 12 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterRed", + start_col = 19, + start_row = 12 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterRed", + start_col = 24, + start_row = 12 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 14 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterRed", + start_col = 13, + start_row = 17 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterYellow", + start_col = 15, + start_row = 22 + }, { + end_col = 58, + end_row = 58, + hl_group = "RainbowDelimiterYellow", + start_col = 57, + start_row = 22 + }, { + end_col = 60, + end_row = 60, + hl_group = "RainbowDelimiterYellow", + start_col = 59, + start_row = 22 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 26 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 28 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterYellow", + start_col = 13, + start_row = 28 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterYellow", + start_col = 23, + start_row = 28 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterBlue", + start_col = 16, + start_row = 29 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterBlue", + start_col = 27, + start_row = 29 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterBlue", + start_col = 30, + start_row = 29 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterBlue", + start_col = 40, + start_row = 29 + }, { + end_col = 46, + end_row = 46, + hl_group = "RainbowDelimiterBlue", + start_col = 44, + start_row = 29 + }, { + end_col = 58, + end_row = 58, + hl_group = "RainbowDelimiterBlue", + start_col = 57, + start_row = 29 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 30 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterYellow", + start_col = 16, + start_row = 32 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterYellow", + start_col = 17, + start_row = 32 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterYellow", + start_col = 27, + start_row = 32 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterBlue", + start_col = 33, + start_row = 32 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterOrange", + start_col = 40, + start_row = 32 + }, { + end_col = 56, + end_row = 56, + hl_group = "RainbowDelimiterOrange", + start_col = 55, + start_row = 32 + }, { + end_col = 57, + end_row = 57, + hl_group = "RainbowDelimiterBlue", + start_col = 56, + start_row = 32 + }, { + end_col = 58, + end_row = 58, + hl_group = "RainbowDelimiterYellow", + start_col = 57, + start_row = 32 + }, { + end_col = 60, + end_row = 60, + hl_group = "RainbowDelimiterYellow", + start_col = 59, + start_row = 32 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterBlue", + start_col = 15, + start_row = 33 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterBlue", + start_col = 16, + start_row = 33 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 34 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 35 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterRed", + start_col = 18, + start_row = 37 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 18, + start_row = 38 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterYellow", + start_col = 25, + start_row = 38 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 39 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterRed", + start_col = 7, + start_row = 41 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 43 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 11, + start_row = 47 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterYellow", + start_col = 20, + start_row = 47 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterYellow", + start_col = 25, + start_row = 47 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterRed", + start_col = 27, + start_row = 47 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterRed", + start_col = 18, + start_row = 50 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 51 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterBlue", + start_col = 5, + start_row = 52 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterOrange", + start_col = 6, + start_row = 53 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterOrange", + start_col = 7, + start_row = 53 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 54 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 55 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 56 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterRed", + start_col = 15, + start_row = 59 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterRed", + start_col = 17, + start_row = 59 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 11, + start_row = 60 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 18, + start_row = 60 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterBlue", + start_col = 25, + start_row = 60 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterOrange", + start_col = 32, + start_row = 60 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterOrange", + start_col = 34, + start_row = 60 + }, { + end_col = 36, + end_row = 36, + hl_group = "RainbowDelimiterBlue", + start_col = 35, + start_row = 60 + }, { + end_col = 37, + end_row = 37, + hl_group = "RainbowDelimiterYellow", + start_col = 36, + start_row = 60 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterRed", + start_col = 37, + start_row = 60 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterRed", + start_col = 6, + start_row = 64 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterRed", + start_col = 8, + start_row = 64 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterRed", + start_col = 10, + start_row = 64 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 67 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 11, + start_row = 70 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterYellow", + start_col = 16, + start_row = 70 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterBlue", + start_col = 21, + start_row = 70 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterOrange", + start_col = 26, + start_row = 70 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterGreen", + start_col = 31, + start_row = 70 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterGreen", + start_col = 37, + start_row = 70 + }, { + end_col = 39, + end_row = 39, + hl_group = "RainbowDelimiterOrange", + start_col = 38, + start_row = 70 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterBlue", + start_col = 39, + start_row = 70 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterYellow", + start_col = 40, + start_row = 70 + }, { + end_col = 42, + end_row = 42, + hl_group = "RainbowDelimiterRed", + start_col = 41, + start_row = 70 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/typst/rainbow-delimiters/regular.typ.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/typst/rainbow-delimiters/regular.typ.lua new file mode 100644 index 00000000..bece2dd6 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/typst/rainbow-delimiters/regular.typ.lua @@ -0,0 +1,243 @@ +return { + typst = { { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterRed", + start_col = 13, + start_row = 0 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterRed", + start_col = 17, + start_row = 0 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterRed", + start_col = 21, + start_row = 0 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterYellow", + start_col = 10, + start_row = 1 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterBlue", + start_col = 32, + start_row = 1 + }, { + end_col = 48, + end_row = 48, + hl_group = "RainbowDelimiterBlue", + start_col = 47, + start_row = 1 + }, { + end_col = 49, + end_row = 49, + hl_group = "RainbowDelimiterYellow", + start_col = 48, + start_row = 1 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterYellow", + start_col = 13, + start_row = 2 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterYellow", + start_col = 30, + start_row = 2 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterYellow", + start_col = 9, + start_row = 3 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterYellow", + start_col = 40, + start_row = 3 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterYellow", + start_col = 22, + start_row = 5 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 6 + }, { + end_col = 39, + end_row = 39, + hl_group = "RainbowDelimiterBlue", + start_col = 38, + start_row = 6 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 8 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 11 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 11, + start_row = 20 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterYellow", + start_col = 28, + start_row = 20 + }, { + end_col = 44, + end_row = 44, + hl_group = "RainbowDelimiterBlue", + start_col = 43, + start_row = 20 + }, { + end_col = 72, + end_row = 72, + hl_group = "RainbowDelimiterBlue", + start_col = 71, + start_row = 20 + }, { + end_col = 73, + end_row = 73, + hl_group = "RainbowDelimiterYellow", + start_col = 72, + start_row = 20 + }, { + end_col = 74, + end_row = 74, + hl_group = "RainbowDelimiterRed", + start_col = 73, + start_row = 20 + }, { + end_col = 37, + end_row = 37, + hl_group = "RainbowDelimiterRed", + start_col = 36, + start_row = 22 + }, { + end_col = 48, + end_row = 48, + hl_group = "RainbowDelimiterRed", + start_col = 47, + start_row = 22 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 23 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterYellow", + start_col = 6, + start_row = 23 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterBlue", + start_col = 9, + start_row = 23 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterBlue", + start_col = 12, + start_row = 23 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterBlue", + start_col = 15, + start_row = 23 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterOrange", + start_col = 21, + start_row = 23 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterOrange", + start_col = 23, + start_row = 23 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterBlue", + start_col = 24, + start_row = 23 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterYellow", + start_col = 25, + start_row = 23 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterRed", + start_col = 27, + start_row = 23 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterRed", + start_col = 17, + start_row = 25 + }, { + end_col = 54, + end_row = 54, + hl_group = "RainbowDelimiterYellow", + start_col = 53, + start_row = 25 + }, { + end_col = 63, + end_row = 63, + hl_group = "RainbowDelimiterBlue", + start_col = 62, + start_row = 25 + }, { + end_col = 70, + end_row = 70, + hl_group = "RainbowDelimiterBlue", + start_col = 69, + start_row = 25 + }, { + end_col = 71, + end_row = 71, + hl_group = "RainbowDelimiterYellow", + start_col = 70, + start_row = 25 + }, { + end_col = 72, + end_row = 72, + hl_group = "RainbowDelimiterRed", + start_col = 71, + start_row = 25 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/verilog/rainbow-blocks/regular.v.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/verilog/rainbow-blocks/regular.v.lua new file mode 100644 index 00000000..8b9fed07 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/verilog/rainbow-blocks/regular.v.lua @@ -0,0 +1,411 @@ +return { + verilog = { { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterRed", + start_col = 13, + start_row = 5 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 7 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterRed", + start_col = 2, + start_row = 7 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterYellow", + start_col = 13, + start_row = 8 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 18, + start_row = 8 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterYellow", + start_col = 13, + start_row = 9 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 18, + start_row = 9 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterYellow", + start_col = 14, + start_row = 11 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterYellow", + start_col = 19, + start_row = 11 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 12 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterRed", + start_col = 9, + start_row = 13 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterRed", + start_col = 14, + start_row = 13 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterRed", + start_col = 15, + start_row = 13 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterRed", + start_col = 19, + start_row = 13 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterRed", + start_col = 14, + start_row = 15 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterYellow", + start_col = 11, + start_row = 16 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterYellow", + start_col = 17, + start_row = 16 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterYellow", + start_col = 19, + start_row = 16 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterYellow", + start_col = 8, + start_row = 18 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterYellow", + start_col = 20, + start_row = 18 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterBlue", + start_col = 21, + start_row = 18 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterBlue", + start_col = 28, + start_row = 18 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterBlue", + start_col = 33, + start_row = 18 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterBlue", + start_col = 40, + start_row = 18 + }, { + end_col = 42, + end_row = 42, + hl_group = "RainbowDelimiterYellow", + start_col = 41, + start_row = 18 + }, { + end_col = 48, + end_row = 48, + hl_group = "RainbowDelimiterYellow", + start_col = 43, + start_row = 18 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterBlue", + start_col = 15, + start_row = 21 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterBlue", + start_col = 26, + start_row = 21 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterBlue", + start_col = 28, + start_row = 21 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterOrange", + start_col = 27, + start_row = 23 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterOrange", + start_col = 29, + start_row = 23 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterBlue", + start_col = 12, + start_row = 24 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterYellow", + start_col = 8, + start_row = 25 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterRed", + start_col = 4, + start_row = 26 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterRed", + start_col = 14, + start_row = 29 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 31 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterRed", + start_col = 2, + start_row = 31 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterYellow", + start_col = 13, + start_row = 32 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 18, + start_row = 32 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterYellow", + start_col = 13, + start_row = 33 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 18, + start_row = 33 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterYellow", + start_col = 14, + start_row = 35 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterYellow", + start_col = 19, + start_row = 35 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 36 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterRed", + start_col = 9, + start_row = 37 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterRed", + start_col = 14, + start_row = 37 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterRed", + start_col = 15, + start_row = 37 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterRed", + start_col = 19, + start_row = 37 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterRed", + start_col = 14, + start_row = 39 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterYellow", + start_col = 11, + start_row = 40 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterYellow", + start_col = 17, + start_row = 40 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterYellow", + start_col = 19, + start_row = 40 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterYellow", + start_col = 8, + start_row = 42 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterYellow", + start_col = 20, + start_row = 42 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterBlue", + start_col = 21, + start_row = 42 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterBlue", + start_col = 28, + start_row = 42 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterBlue", + start_col = 33, + start_row = 42 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterBlue", + start_col = 40, + start_row = 42 + }, { + end_col = 42, + end_row = 42, + hl_group = "RainbowDelimiterYellow", + start_col = 41, + start_row = 42 + }, { + end_col = 48, + end_row = 48, + hl_group = "RainbowDelimiterYellow", + start_col = 43, + start_row = 42 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterBlue", + start_col = 15, + start_row = 45 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterBlue", + start_col = 26, + start_row = 45 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterBlue", + start_col = 28, + start_row = 45 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterOrange", + start_col = 27, + start_row = 47 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterOrange", + start_col = 29, + start_row = 47 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterBlue", + start_col = 12, + start_row = 48 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterYellow", + start_col = 8, + start_row = 49 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterRed", + start_col = 4, + start_row = 50 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/verilog/rainbow-blocks/systemverilog.sv.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/verilog/rainbow-blocks/systemverilog.sv.lua new file mode 100644 index 00000000..3941af59 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/verilog/rainbow-blocks/systemverilog.sv.lua @@ -0,0 +1 @@ +return {} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/verilog/rainbow-blocks/verilog.v.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/verilog/rainbow-blocks/verilog.v.lua new file mode 100644 index 00000000..3941af59 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/verilog/rainbow-blocks/verilog.v.lua @@ -0,0 +1 @@ +return {} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/verilog/rainbow-delimiters/regular.v.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/verilog/rainbow-delimiters/regular.v.lua new file mode 100644 index 00000000..d9792e69 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/verilog/rainbow-delimiters/regular.v.lua @@ -0,0 +1,315 @@ +return { + verilog = { { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterRed", + start_col = 13, + start_row = 5 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 7 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterRed", + start_col = 2, + start_row = 7 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterYellow", + start_col = 13, + start_row = 8 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 18, + start_row = 8 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterYellow", + start_col = 13, + start_row = 9 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 18, + start_row = 9 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterYellow", + start_col = 14, + start_row = 11 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterYellow", + start_col = 19, + start_row = 11 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 12 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterRed", + start_col = 9, + start_row = 13 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterRed", + start_col = 14, + start_row = 13 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterRed", + start_col = 15, + start_row = 13 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterRed", + start_col = 19, + start_row = 13 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 11, + start_row = 16 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterRed", + start_col = 17, + start_row = 16 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterRed", + start_col = 20, + start_row = 18 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterYellow", + start_col = 21, + start_row = 18 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterYellow", + start_col = 28, + start_row = 18 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterYellow", + start_col = 33, + start_row = 18 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterYellow", + start_col = 40, + start_row = 18 + }, { + end_col = 42, + end_row = 42, + hl_group = "RainbowDelimiterRed", + start_col = 41, + start_row = 18 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterRed", + start_col = 15, + start_row = 21 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterRed", + start_col = 26, + start_row = 21 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterRed", + start_col = 27, + start_row = 23 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterRed", + start_col = 29, + start_row = 23 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterRed", + start_col = 14, + start_row = 29 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 31 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterRed", + start_col = 2, + start_row = 31 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterYellow", + start_col = 13, + start_row = 32 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 18, + start_row = 32 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterYellow", + start_col = 13, + start_row = 33 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 18, + start_row = 33 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterYellow", + start_col = 14, + start_row = 35 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterYellow", + start_col = 19, + start_row = 35 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 36 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterRed", + start_col = 9, + start_row = 37 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterRed", + start_col = 14, + start_row = 37 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterRed", + start_col = 15, + start_row = 37 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterRed", + start_col = 19, + start_row = 37 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 11, + start_row = 40 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterRed", + start_col = 17, + start_row = 40 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterRed", + start_col = 20, + start_row = 42 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterYellow", + start_col = 21, + start_row = 42 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterYellow", + start_col = 28, + start_row = 42 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterYellow", + start_col = 33, + start_row = 42 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterYellow", + start_col = 40, + start_row = 42 + }, { + end_col = 42, + end_row = 42, + hl_group = "RainbowDelimiterRed", + start_col = 41, + start_row = 42 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterRed", + start_col = 15, + start_row = 45 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterRed", + start_col = 26, + start_row = 45 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterRed", + start_col = 27, + start_row = 47 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterRed", + start_col = 29, + start_row = 47 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/verilog/rainbow-delimiters/systemverilog.sv.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/verilog/rainbow-delimiters/systemverilog.sv.lua new file mode 100644 index 00000000..3941af59 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/verilog/rainbow-delimiters/systemverilog.sv.lua @@ -0,0 +1 @@ +return {} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/verilog/rainbow-delimiters/verilog.v.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/verilog/rainbow-delimiters/verilog.v.lua new file mode 100644 index 00000000..3941af59 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/verilog/rainbow-delimiters/verilog.v.lua @@ -0,0 +1 @@ +return {} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/vim/rainbow-delimiters/regular.vim.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/vim/rainbow-delimiters/regular.vim.lua new file mode 100644 index 00000000..38cd7690 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/vim/rainbow-delimiters/regular.vim.lua @@ -0,0 +1,243 @@ +return { + vim = { { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterRed", + start_col = 16, + start_row = 0 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterYellow", + start_col = 17, + start_row = 0 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterBlue", + start_col = 18, + start_row = 0 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterBlue", + start_col = 20, + start_row = 0 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterYellow", + start_col = 21, + start_row = 0 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterRed", + start_col = 22, + start_row = 0 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterRed", + start_col = 16, + start_row = 1 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterRed", + start_col = 5, + start_row = 2 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterYellow", + start_col = 7, + start_row = 2 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterYellow", + start_col = 6, + start_row = 3 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterBlue", + start_col = 8, + start_row = 3 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterBlue", + start_col = 7, + start_row = 4 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterBlue", + start_col = 3, + start_row = 5 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 6 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterRed", + start_col = 2, + start_row = 7 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 11, + start_row = 9 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterYellow", + start_col = 16, + start_row = 9 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterBlue", + start_col = 21, + start_row = 9 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterBlue", + start_col = 27, + start_row = 9 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterYellow", + start_col = 28, + start_row = 9 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterRed", + start_col = 29, + start_row = 9 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 11, + start_row = 10 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterYellow", + start_col = 13, + start_row = 10 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterYellow", + start_col = 15, + start_row = 10 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterRed", + start_col = 16, + start_row = 10 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 11, + start_row = 11 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 11 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterBlue", + start_col = 14, + start_row = 11 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterYellow", + start_col = 16, + start_row = 11 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterRed", + start_col = 18, + start_row = 11 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 18, + start_row = 11 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 11, + start_row = 12 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 12 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterOrange", + start_col = 14, + start_row = 12 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterBlue", + start_col = 18, + start_row = 12 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterBlue", + start_col = 18, + start_row = 12 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterYellow", + start_col = 20, + start_row = 12 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterBlue", + start_col = 20, + start_row = 12 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterRed", + start_col = 24, + start_row = 12 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterRed", + start_col = 26, + start_row = 12 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/vue/rainbow-delimiters/pug-template.vue.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/vue/rainbow-delimiters/pug-template.vue.lua new file mode 100644 index 00000000..845483c0 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/vue/rainbow-delimiters/pug-template.vue.lua @@ -0,0 +1,100 @@ +return { + typescript = { { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterRed", + start_col = 9, + start_row = 5 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterRed", + start_col = 16, + start_row = 5 + }, { + end_col = 53, + end_row = 53, + hl_group = "RainbowDelimiterRed", + start_col = 52, + start_row = 8 + }, { + end_col = 60, + end_row = 60, + hl_group = "RainbowDelimiterRed", + start_col = 59, + start_row = 8 + } }, + vue = { { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 2 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterRed", + start_col = 1, + start_row = 2 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterRed", + start_col = 20, + start_row = 2 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 4 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterYellow", + start_col = 15, + start_row = 4 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 5 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterYellow", + start_col = 18, + start_row = 5 + }, { + end_col = 49, + end_row = 49, + hl_group = "RainbowDelimiterYellow", + start_col = 47, + start_row = 8 + }, { + end_col = 63, + end_row = 63, + hl_group = "RainbowDelimiterYellow", + start_col = 61, + start_row = 8 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 9 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterRed", + start_col = 2, + start_row = 9 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterRed", + start_col = 10, + start_row = 9 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/vue/rainbow-delimiters/regular.vue.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/vue/rainbow-delimiters/regular.vue.lua new file mode 100644 index 00000000..72ac6cfe --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/vue/rainbow-delimiters/regular.vue.lua @@ -0,0 +1,522 @@ +return { + css = { { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterRed", + start_col = 5, + start_row = 30 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 32 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterRed", + start_col = 7, + start_row = 33 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 33 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 18, + start_row = 33 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterRed", + start_col = 19, + start_row = 33 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterRed", + start_col = 21, + start_row = 33 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterYellow", + start_col = 6, + start_row = 34 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 36 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 37 + } }, + javascript = { { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 11, + start_row = 18 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterYellow", + start_col = 20, + start_row = 18 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterYellow", + start_col = 25, + start_row = 18 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterRed", + start_col = 27, + start_row = 18 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterRed", + start_col = 18, + start_row = 20 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 21 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterBlue", + start_col = 5, + start_row = 22 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterOrange", + start_col = 6, + start_row = 23 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterOrange", + start_col = 7, + start_row = 23 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 24 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 25 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 26 + } }, + typescript = { { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterRed", + start_col = 6, + start_row = 4 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterRed", + start_col = 13, + start_row = 4 + }, { + end_col = 51, + end_row = 51, + hl_group = "RainbowDelimiterRed", + start_col = 50, + start_row = 7 + }, { + end_col = 58, + end_row = 58, + hl_group = "RainbowDelimiterRed", + start_col = 57, + start_row = 7 + } }, + vue = { { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 2 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterRed", + start_col = 1, + start_row = 2 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterRed", + start_col = 9, + start_row = 2 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 3 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 3 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 4 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterYellow", + start_col = 15, + start_row = 4 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 5 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 5 + }, { + end_col = 44, + end_row = 44, + hl_group = "RainbowDelimiterYellow", + start_col = 43, + start_row = 5 + }, { + end_col = 54, + end_row = 54, + hl_group = "RainbowDelimiterYellow", + start_col = 52, + start_row = 5 + }, { + end_col = 62, + end_row = 62, + hl_group = "RainbowDelimiterYellow", + start_col = 54, + start_row = 5 + }, { + end_col = 63, + end_row = 63, + hl_group = "RainbowDelimiterYellow", + start_col = 62, + start_row = 5 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 6 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 6 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 18, + start_row = 6 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 7 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterBlue", + start_col = 3, + start_row = 7 + }, { + end_col = 45, + end_row = 45, + hl_group = "RainbowDelimiterBlue", + start_col = 44, + start_row = 7 + }, { + end_col = 47, + end_row = 47, + hl_group = "RainbowDelimiterOrange", + start_col = 45, + start_row = 7 + }, { + end_col = 61, + end_row = 61, + hl_group = "RainbowDelimiterOrange", + start_col = 59, + start_row = 7 + }, { + end_col = 63, + end_row = 63, + hl_group = "RainbowDelimiterBlue", + start_col = 61, + start_row = 7 + }, { + end_col = 71, + end_row = 71, + hl_group = "RainbowDelimiterBlue", + start_col = 63, + start_row = 7 + }, { + end_col = 72, + end_row = 72, + hl_group = "RainbowDelimiterBlue", + start_col = 71, + start_row = 7 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 8 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterBlue", + start_col = 3, + start_row = 8 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterBlue", + start_col = 6, + start_row = 8 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterOrange", + start_col = 3, + start_row = 9 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterOrange", + start_col = 4, + start_row = 9 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterOrange", + start_col = 5, + start_row = 9 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterGreen", + start_col = 11, + start_row = 9 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterGreen", + start_col = 12, + start_row = 9 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterGreen", + start_col = 14, + start_row = 9 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterOrange", + start_col = 21, + start_row = 9 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterOrange", + start_col = 23, + start_row = 9 + }, { + end_col = 25, + end_row = 25, + hl_group = "RainbowDelimiterOrange", + start_col = 24, + start_row = 9 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterOrange", + start_col = 3, + start_row = 10 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterOrange", + start_col = 4, + start_row = 10 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterOrange", + start_col = 6, + start_row = 10 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 11 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterBlue", + start_col = 4, + start_row = 11 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterBlue", + start_col = 7, + start_row = 11 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 12 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterYellow", + start_col = 3, + start_row = 12 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterYellow", + start_col = 11, + start_row = 12 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 13 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterRed", + start_col = 2, + start_row = 13 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterRed", + start_col = 10, + start_row = 13 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 15 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterRed", + start_col = 1, + start_row = 15 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterRed", + start_col = 13, + start_row = 15 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 27 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterRed", + start_col = 2, + start_row = 27 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterRed", + start_col = 8, + start_row = 27 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 29 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterRed", + start_col = 1, + start_row = 29 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterRed", + start_col = 6, + start_row = 29 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 38 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterRed", + start_col = 2, + start_row = 38 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterRed", + start_col = 7, + start_row = 38 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/vue/rainbow-delimiters/scss-style.vue.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/vue/rainbow-delimiters/scss-style.vue.lua new file mode 100644 index 00000000..853ecd72 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/vue/rainbow-delimiters/scss-style.vue.lua @@ -0,0 +1,112 @@ +return { + scss = { { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterRed", + start_col = 5, + start_row = 3 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterYellow", + start_col = 7, + start_row = 6 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 9 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 10 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterRed", + start_col = 7, + start_row = 12 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 12 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 18, + start_row = 12 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterRed", + start_col = 19, + start_row = 12 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterRed", + start_col = 21, + start_row = 12 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterYellow", + start_col = 6, + start_row = 13 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 15 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 16 + } }, + vue = { { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 2 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterRed", + start_col = 1, + start_row = 2 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterRed", + start_col = 25, + start_row = 2 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 17 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterRed", + start_col = 2, + start_row = 17 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterRed", + start_col = 7, + start_row = 17 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/vue/rainbow-delimiters/typescript-script.vue.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/vue/rainbow-delimiters/typescript-script.vue.lua new file mode 100644 index 00000000..267f2e6f --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/vue/rainbow-delimiters/typescript-script.vue.lua @@ -0,0 +1,136 @@ +return { + typescript = { { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterRed", + start_col = 12, + start_row = 4 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterRed", + start_col = 33, + start_row = 4 + }, { + end_col = 44, + end_row = 44, + hl_group = "RainbowDelimiterRed", + start_col = 43, + start_row = 4 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterYellow", + start_col = 14, + start_row = 5 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterYellow", + start_col = 37, + start_row = 5 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterYellow", + start_col = 39, + start_row = 5 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterBlue", + start_col = 5, + start_row = 6 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterBlue", + start_col = 12, + start_row = 6 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterBlue", + start_col = 14, + start_row = 6 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 8 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 9 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterBlue", + start_col = 28, + start_row = 9 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 10 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 11 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterYellow", + start_col = 17, + start_row = 11 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 12 + } }, + vue = { { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 2 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterRed", + start_col = 1, + start_row = 2 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterRed", + start_col = 23, + start_row = 2 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 13 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterRed", + start_col = 2, + start_row = 13 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterRed", + start_col = 8, + start_row = 13 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/wgsl/rainbow-delimiters/regular.wgsl.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/wgsl/rainbow-delimiters/regular.wgsl.lua new file mode 100644 index 00000000..597594cb --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/wgsl/rainbow-delimiters/regular.wgsl.lua @@ -0,0 +1,543 @@ +return { + wgsl = { { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterRed", + start_col = 6, + start_row = 0 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterRed", + start_col = 8, + start_row = 0 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterRed", + start_col = 8, + start_row = 1 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterRed", + start_col = 10, + start_row = 1 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterRed", + start_col = 3, + start_row = 2 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterRed", + start_col = 17, + start_row = 2 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterRed", + start_col = 33, + start_row = 2 + }, { + end_col = 42, + end_row = 42, + hl_group = "RainbowDelimiterRed", + start_col = 41, + start_row = 2 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterRed", + start_col = 6, + start_row = 4 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterRed", + start_col = 8, + start_row = 4 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterRed", + start_col = 8, + start_row = 5 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterRed", + start_col = 10, + start_row = 5 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterRed", + start_col = 3, + start_row = 6 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 11, + start_row = 6 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterRed", + start_col = 27, + start_row = 6 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterYellow", + start_col = 32, + start_row = 6 + }, { + end_col = 37, + end_row = 37, + hl_group = "RainbowDelimiterYellow", + start_col = 36, + start_row = 6 + }, { + end_col = 43, + end_row = 43, + hl_group = "RainbowDelimiterRed", + start_col = 42, + start_row = 6 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterRed", + start_col = 6, + start_row = 8 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterRed", + start_col = 8, + start_row = 8 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterRed", + start_col = 8, + start_row = 9 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterRed", + start_col = 10, + start_row = 9 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterRed", + start_col = 3, + start_row = 10 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterRed", + start_col = 23, + start_row = 10 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterRed", + start_col = 39, + start_row = 10 + }, { + end_col = 45, + end_row = 45, + hl_group = "RainbowDelimiterYellow", + start_col = 44, + start_row = 10 + }, { + end_col = 49, + end_row = 49, + hl_group = "RainbowDelimiterYellow", + start_col = 48, + start_row = 10 + }, { + end_col = 55, + end_row = 55, + hl_group = "RainbowDelimiterRed", + start_col = 54, + start_row = 10 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterRed", + start_col = 16, + start_row = 12 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 17 + }, { + end_col = 39, + end_row = 39, + hl_group = "RainbowDelimiterRed", + start_col = 38, + start_row = 19 + }, { + end_col = 55, + end_row = 55, + hl_group = "RainbowDelimiterRed", + start_col = 54, + start_row = 19 + }, { + end_col = 64, + end_row = 64, + hl_group = "RainbowDelimiterRed", + start_col = 63, + start_row = 19 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterYellow", + start_col = 25, + start_row = 20 + }, { + end_col = 42, + end_row = 42, + hl_group = "RainbowDelimiterYellow", + start_col = 41, + start_row = 20 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterYellow", + start_col = 14, + start_row = 21 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterBlue", + start_col = 20, + start_row = 21 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterBlue", + start_col = 28, + start_row = 21 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterYellow", + start_col = 29, + start_row = 21 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterYellow", + start_col = 11, + start_row = 22 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterYellow", + start_col = 15, + start_row = 22 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterYellow", + start_col = 19, + start_row = 22 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterBlue", + start_col = 27, + start_row = 22 + }, { + end_col = 47, + end_row = 47, + hl_group = "RainbowDelimiterOrange", + start_col = 46, + start_row = 22 + }, { + end_col = 58, + end_row = 58, + hl_group = "RainbowDelimiterOrange", + start_col = 57, + start_row = 22 + }, { + end_col = 64, + end_row = 64, + hl_group = "RainbowDelimiterBlue", + start_col = 63, + start_row = 22 + }, { + end_col = 65, + end_row = 65, + hl_group = "RainbowDelimiterYellow", + start_col = 64, + start_row = 22 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 23 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterRed", + start_col = 21, + start_row = 25 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterYellow", + start_col = 40, + start_row = 25 + }, { + end_col = 55, + end_row = 55, + hl_group = "RainbowDelimiterYellow", + start_col = 54, + start_row = 25 + }, { + end_col = 56, + end_row = 56, + hl_group = "RainbowDelimiterRed", + start_col = 55, + start_row = 25 + }, { + end_col = 58, + end_row = 58, + hl_group = "RainbowDelimiterRed", + start_col = 57, + start_row = 25 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterYellow", + start_col = 9, + start_row = 27 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterBlue", + start_col = 11, + start_row = 28 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterBlue", + start_col = 21, + start_row = 28 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterBlue", + start_col = 29, + start_row = 28 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterBlue", + start_col = 8, + start_row = 30 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterBlue", + start_col = 15, + start_row = 30 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterBlue", + start_col = 8, + start_row = 33 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 34 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 35 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterYellow", + start_col = 15, + start_row = 38 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 18, + start_row = 38 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterRed", + start_col = 7, + start_row = 39 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 40 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterYellow", + start_col = 33, + start_row = 40 + }, { + end_col = 51, + end_row = 51, + hl_group = "RainbowDelimiterYellow", + start_col = 50, + start_row = 40 + }, { + end_col = 55, + end_row = 55, + hl_group = "RainbowDelimiterYellow", + start_col = 54, + start_row = 40 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 41 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterRed", + start_col = 2, + start_row = 41 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterYellow", + start_col = 7, + start_row = 44 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterYellow", + start_col = 25, + start_row = 44 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterYellow", + start_col = 27, + start_row = 44 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterYellow", + start_col = 37, + start_row = 44 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterYellow", + start_col = 19, + start_row = 45 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterYellow", + start_col = 31, + start_row = 45 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterYellow", + start_col = 8, + start_row = 49 + }, { + end_col = 44, + end_row = 44, + hl_group = "RainbowDelimiterYellow", + start_col = 43, + start_row = 49 + }, { + end_col = 46, + end_row = 46, + hl_group = "RainbowDelimiterYellow", + start_col = 45, + start_row = 49 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterBlue", + start_col = 11, + start_row = 50 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterBlue", + start_col = 21, + start_row = 50 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterBlue", + start_col = 23, + start_row = 50 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterBlue", + start_col = 33, + start_row = 50 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterBlue", + start_col = 23, + start_row = 52 + }, { + end_col = 27, + end_row = 27, + hl_group = "RainbowDelimiterBlue", + start_col = 26, + start_row = 52 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterBlue", + start_col = 15, + start_row = 54 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterBlue", + start_col = 18, + start_row = 54 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 55 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 56 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/xml/rainbow-delimiters/regular.xml.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/xml/rainbow-delimiters/regular.xml.lua new file mode 100644 index 00000000..7c35786a --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/xml/rainbow-delimiters/regular.xml.lua @@ -0,0 +1,453 @@ +return { + xml = { { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 3 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterRed", + start_col = 1, + start_row = 3 + }, { + end_col = 57, + end_row = 57, + hl_group = "RainbowDelimiterRed", + start_col = 56, + start_row = 3 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 4 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 4 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterYellow", + start_col = 6, + start_row = 4 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 5 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterBlue", + start_col = 3, + start_row = 5 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterBlue", + start_col = 8, + start_row = 5 + }, { + end_col = 54, + end_row = 54, + hl_group = "RainbowDelimiterBlue", + start_col = 52, + start_row = 5 + }, { + end_col = 59, + end_row = 59, + hl_group = "RainbowDelimiterBlue", + start_col = 54, + start_row = 5 + }, { + end_col = 60, + end_row = 60, + hl_group = "RainbowDelimiterBlue", + start_col = 59, + start_row = 5 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 6 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterBlue", + start_col = 3, + start_row = 6 + }, { + end_col = 82, + end_row = 82, + hl_group = "RainbowDelimiterBlue", + start_col = 80, + start_row = 6 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 7 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterYellow", + start_col = 3, + start_row = 7 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterYellow", + start_col = 7, + start_row = 7 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 8 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterYellow", + start_col = 2, + start_row = 8 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterYellow", + start_col = 6, + start_row = 8 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 9 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterBlue", + start_col = 3, + start_row = 9 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterBlue", + start_col = 5, + start_row = 9 + }, { + end_col = 51, + end_row = 51, + hl_group = "RainbowDelimiterBlue", + start_col = 49, + start_row = 9 + }, { + end_col = 53, + end_row = 53, + hl_group = "RainbowDelimiterBlue", + start_col = 51, + start_row = 9 + }, { + end_col = 54, + end_row = 54, + hl_group = "RainbowDelimiterBlue", + start_col = 53, + start_row = 9 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 10 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterBlue", + start_col = 3, + start_row = 10 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterBlue", + start_col = 4, + start_row = 10 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterOrange", + start_col = 3, + start_row = 12 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterOrange", + start_col = 4, + start_row = 12 + }, { + end_col = 52, + end_row = 52, + hl_group = "RainbowDelimiterOrange", + start_col = 51, + start_row = 12 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterGreen", + start_col = 4, + start_row = 13 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterGreen", + start_col = 5, + start_row = 13 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterGreen", + start_col = 7, + start_row = 13 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterGreen", + start_col = 27, + start_row = 13 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterGreen", + start_col = 29, + start_row = 13 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterGreen", + start_col = 31, + start_row = 13 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterGreen", + start_col = 4, + start_row = 14 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterGreen", + start_col = 5, + start_row = 14 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterGreen", + start_col = 7, + start_row = 14 + }, { + end_col = 43, + end_row = 43, + hl_group = "RainbowDelimiterGreen", + start_col = 41, + start_row = 14 + }, { + end_col = 45, + end_row = 45, + hl_group = "RainbowDelimiterGreen", + start_col = 43, + start_row = 14 + }, { + end_col = 46, + end_row = 46, + hl_group = "RainbowDelimiterGreen", + start_col = 45, + start_row = 14 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterGreen", + start_col = 4, + start_row = 15 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterGreen", + start_col = 5, + start_row = 15 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterGreen", + start_col = 9, + start_row = 15 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterViolet", + start_col = 5, + start_row = 16 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterViolet", + start_col = 6, + start_row = 16 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterViolet", + start_col = 8, + start_row = 16 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterViolet", + start_col = 10, + start_row = 16 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterViolet", + start_col = 12, + start_row = 16 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterViolet", + start_col = 14, + start_row = 16 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterViolet", + start_col = 5, + start_row = 17 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterViolet", + start_col = 6, + start_row = 17 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterViolet", + start_col = 8, + start_row = 17 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterViolet", + start_col = 10, + start_row = 17 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterViolet", + start_col = 12, + start_row = 17 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterViolet", + start_col = 14, + start_row = 17 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterGreen", + start_col = 4, + start_row = 18 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterGreen", + start_col = 6, + start_row = 18 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterGreen", + start_col = 10, + start_row = 18 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterOrange", + start_col = 3, + start_row = 19 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterOrange", + start_col = 5, + start_row = 19 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterOrange", + start_col = 9, + start_row = 19 + }, { + end_col = 4, + end_row = 4, + hl_group = "RainbowDelimiterBlue", + start_col = 2, + start_row = 21 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterBlue", + start_col = 4, + start_row = 21 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterBlue", + start_col = 5, + start_row = 21 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterYellow", + start_col = 1, + start_row = 22 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterYellow", + start_col = 3, + start_row = 22 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterYellow", + start_col = 7, + start_row = 22 + }, { + end_col = 2, + end_row = 2, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 23 + }, { + end_col = 6, + end_row = 6, + hl_group = "RainbowDelimiterRed", + start_col = 2, + start_row = 23 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterRed", + start_col = 6, + start_row = 23 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/yaml/rainbow-delimiters/regular.yaml.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/yaml/rainbow-delimiters/regular.yaml.lua new file mode 100644 index 00000000..3c37f998 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/yaml/rainbow-delimiters/regular.yaml.lua @@ -0,0 +1,195 @@ +return { + yaml = { { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterRed", + start_col = 2, + start_row = 1 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterYellow", + start_col = 11, + start_row = 3 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 4 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterOrange", + start_col = 8, + start_row = 5 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterGreen", + start_col = 10, + start_row = 6 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterViolet", + start_col = 11, + start_row = 6 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterCyan", + start_col = 12, + start_row = 6 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterCyan", + start_col = 28, + start_row = 6 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterViolet", + start_col = 29, + start_row = 6 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterGreen", + start_col = 30, + start_row = 6 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterOrange", + start_col = 8, + start_row = 7 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterBlue", + start_col = 6, + start_row = 8 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 9 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterYellow", + start_col = 11, + start_row = 10 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 11 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterOrange", + start_col = 15, + start_row = 12 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterGreen", + start_col = 17, + start_row = 13 + }, { + end_col = 11, + end_row = 11, + hl_group = "RainbowDelimiterGreen", + start_col = 10, + start_row = 15 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterOrange", + start_col = 8, + start_row = 16 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterBlue", + start_col = 6, + start_row = 17 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 18 + }, { + end_col = 3, + end_row = 3, + hl_group = "RainbowDelimiterRed", + start_col = 2, + start_row = 19 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterRed", + start_col = 4, + start_row = 22 + }, { + end_col = 45, + end_row = 45, + hl_group = "RainbowDelimiterRed", + start_col = 44, + start_row = 22 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterRed", + start_col = 4, + start_row = 23 + }, { + end_col = 45, + end_row = 45, + hl_group = "RainbowDelimiterRed", + start_col = 44, + start_row = 23 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterRed", + start_col = 4, + start_row = 24 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterYellow", + start_col = 12, + start_row = 24 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterBlue", + start_col = 20, + start_row = 24 + }, { + end_col = 61, + end_row = 61, + hl_group = "RainbowDelimiterBlue", + start_col = 60, + start_row = 24 + }, { + end_col = 63, + end_row = 63, + hl_group = "RainbowDelimiterYellow", + start_col = 62, + start_row = 24 + }, { + end_col = 65, + end_row = 65, + hl_group = "RainbowDelimiterRed", + start_col = 64, + start_row = 24 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/zig/rainbow-delimiters/regular.zig.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/zig/rainbow-delimiters/regular.zig.lua new file mode 100644 index 00000000..ed3ef055 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/highlight/spec/zig/rainbow-delimiters/regular.zig.lua @@ -0,0 +1,801 @@ +return { + zig = { { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterRed", + start_col = 19, + start_row = 0 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterRed", + start_col = 25, + start_row = 0 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterRed", + start_col = 20, + start_row = 2 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterRed", + start_col = 21, + start_row = 2 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterRed", + start_col = 20, + start_row = 4 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 7 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterYellow", + start_col = 23, + start_row = 9 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterYellow", + start_col = 28, + start_row = 9 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterRed", + start_col = 30, + start_row = 9 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 12 + }, { + end_col = 10, + end_row = 10, + hl_group = "RainbowDelimiterRed", + start_col = 9, + start_row = 14 + }, { + end_col = 44, + end_row = 44, + hl_group = "RainbowDelimiterYellow", + start_col = 43, + start_row = 15 + }, { + end_col = 53, + end_row = 53, + hl_group = "RainbowDelimiterYellow", + start_col = 52, + start_row = 15 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterYellow", + start_col = 21, + start_row = 17 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterBlue", + start_col = 30, + start_row = 17 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterBlue", + start_col = 34, + start_row = 17 + }, { + end_col = 40, + end_row = 40, + hl_group = "RainbowDelimiterYellow", + start_col = 39, + start_row = 17 + }, { + end_col = 42, + end_row = 42, + hl_group = "RainbowDelimiterYellow", + start_col = 41, + start_row = 17 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterBlue", + start_col = 25, + start_row = 18 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterBlue", + start_col = 29, + start_row = 18 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterBlue", + start_col = 25, + start_row = 19 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterBlue", + start_col = 29, + start_row = 19 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 21 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 24 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterRed", + start_col = 11, + start_row = 26 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterRed", + start_col = 12, + start_row = 26 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterRed", + start_col = 20, + start_row = 26 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterYellow", + start_col = 29, + start_row = 27 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterYellow", + start_col = 30, + start_row = 27 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterYellow", + start_col = 31, + start_row = 27 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterYellow", + start_col = 34, + start_row = 27 + }, { + end_col = 36, + end_row = 36, + hl_group = "RainbowDelimiterYellow", + start_col = 35, + start_row = 27 + }, { + end_col = 38, + end_row = 38, + hl_group = "RainbowDelimiterYellow", + start_col = 37, + start_row = 27 + }, { + end_col = 39, + end_row = 39, + hl_group = "RainbowDelimiterYellow", + start_col = 38, + start_row = 27 + }, { + end_col = 43, + end_row = 43, + hl_group = "RainbowDelimiterBlue", + start_col = 42, + start_row = 27 + }, { + end_col = 58, + end_row = 58, + hl_group = "RainbowDelimiterBlue", + start_col = 57, + start_row = 27 + }, { + end_col = 59, + end_row = 59, + hl_group = "RainbowDelimiterYellow", + start_col = 58, + start_row = 27 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 18, + start_row = 30 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterYellow", + start_col = 20, + start_row = 30 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterYellow", + start_col = 23, + start_row = 30 + }, { + end_col = 50, + end_row = 50, + hl_group = "RainbowDelimiterYellow", + start_col = 49, + start_row = 30 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterYellow", + start_col = 19, + start_row = 32 + }, { + end_col = 75, + end_row = 75, + hl_group = "RainbowDelimiterBlue", + start_col = 74, + start_row = 32 + }, { + end_col = 92, + end_row = 92, + hl_group = "RainbowDelimiterOrange", + start_col = 91, + start_row = 32 + }, { + end_col = 94, + end_row = 94, + hl_group = "RainbowDelimiterOrange", + start_col = 93, + start_row = 32 + }, { + end_col = 97, + end_row = 97, + hl_group = "RainbowDelimiterOrange", + start_col = 96, + start_row = 32 + }, { + end_col = 104, + end_row = 104, + hl_group = "RainbowDelimiterGreen", + start_col = 103, + start_row = 32 + }, { + end_col = 106, + end_row = 106, + hl_group = "RainbowDelimiterGreen", + start_col = 105, + start_row = 32 + }, { + end_col = 108, + end_row = 108, + hl_group = "RainbowDelimiterOrange", + start_col = 107, + start_row = 32 + }, { + end_col = 110, + end_row = 110, + hl_group = "RainbowDelimiterBlue", + start_col = 109, + start_row = 32 + }, { + end_col = 111, + end_row = 111, + hl_group = "RainbowDelimiterYellow", + start_col = 110, + start_row = 32 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterYellow", + start_col = 29, + start_row = 37 + }, { + end_col = 36, + end_row = 36, + hl_group = "RainbowDelimiterBlue", + start_col = 35, + start_row = 38 + }, { + end_col = 37, + end_row = 37, + hl_group = "RainbowDelimiterBlue", + start_col = 36, + start_row = 38 + }, { + end_col = 45, + end_row = 45, + hl_group = "RainbowDelimiterBlue", + start_col = 44, + start_row = 38 + }, { + end_col = 46, + end_row = 46, + hl_group = "RainbowDelimiterBlue", + start_col = 45, + start_row = 38 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 39 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterYellow", + start_col = 34, + start_row = 40 + }, { + end_col = 47, + end_row = 47, + hl_group = "RainbowDelimiterYellow", + start_col = 46, + start_row = 40 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterYellow", + start_col = 28, + start_row = 41 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterYellow", + start_col = 29, + start_row = 41 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterYellow", + start_col = 11, + start_row = 43 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterYellow", + start_col = 13, + start_row = 43 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterYellow", + start_col = 15, + start_row = 43 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterBlue", + start_col = 13, + start_row = 45 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterOrange", + start_col = 28, + start_row = 46 + }, { + end_col = 75, + end_row = 75, + hl_group = "RainbowDelimiterGreen", + start_col = 74, + start_row = 46 + }, { + end_col = 76, + end_row = 76, + hl_group = "RainbowDelimiterGreen", + start_col = 75, + start_row = 46 + }, { + end_col = 77, + end_row = 77, + hl_group = "RainbowDelimiterOrange", + start_col = 76, + start_row = 46 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterBlue", + start_col = 8, + start_row = 47 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 48 + }, { + end_col = 8, + end_row = 8, + hl_group = "RainbowDelimiterYellow", + start_col = 7, + start_row = 50 + }, { + end_col = 14, + end_row = 14, + hl_group = "RainbowDelimiterYellow", + start_col = 13, + start_row = 50 + }, { + end_col = 16, + end_row = 16, + hl_group = "RainbowDelimiterYellow", + start_col = 15, + start_row = 50 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterBlue", + start_col = 8, + start_row = 53 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterOrange", + start_col = 25, + start_row = 54 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterGreen", + start_col = 18, + start_row = 55 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterGreen", + start_col = 20, + start_row = 55 + }, { + end_col = 30, + end_row = 30, + hl_group = "RainbowDelimiterGreen", + start_col = 29, + start_row = 55 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterGreen", + start_col = 31, + start_row = 55 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterGreen", + start_col = 18, + start_row = 56 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterGreen", + start_col = 20, + start_row = 56 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterGreen", + start_col = 28, + start_row = 56 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterGreen", + start_col = 30, + start_row = 56 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterOrange", + start_col = 12, + start_row = 58 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterBlue", + start_col = 8, + start_row = 59 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 60 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterYellow", + start_col = 14, + start_row = 60 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterYellow", + start_col = 19, + start_row = 60 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterYellow", + start_col = 21, + start_row = 60 + }, { + end_col = 13, + end_row = 13, + hl_group = "RainbowDelimiterBlue", + start_col = 12, + start_row = 61 + }, { + end_col = 26, + end_row = 26, + hl_group = "RainbowDelimiterBlue", + start_col = 25, + start_row = 61 + }, { + end_col = 28, + end_row = 28, + hl_group = "RainbowDelimiterBlue", + start_col = 27, + start_row = 61 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterBlue", + start_col = 32, + start_row = 61 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterBlue", + start_col = 32, + start_row = 61 + }, { + end_col = 35, + end_row = 35, + hl_group = "RainbowDelimiterBlue", + start_col = 34, + start_row = 61 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterBlue", + start_col = 8, + start_row = 64 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 65 + }, { + end_col = 12, + end_row = 12, + hl_group = "RainbowDelimiterYellow", + start_col = 11, + start_row = 65 + }, { + end_col = 15, + end_row = 15, + hl_group = "RainbowDelimiterBlue", + start_col = 14, + start_row = 66 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterBlue", + start_col = 20, + start_row = 66 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterBlue", + start_col = 22, + start_row = 66 + }, { + end_col = 9, + end_row = 9, + hl_group = "RainbowDelimiterBlue", + start_col = 8, + start_row = 68 + }, { + end_col = 5, + end_row = 5, + hl_group = "RainbowDelimiterYellow", + start_col = 4, + start_row = 69 + }, { + end_col = 17, + end_row = 17, + hl_group = "RainbowDelimiterYellow", + start_col = 16, + start_row = 71 + }, { + end_col = 18, + end_row = 18, + hl_group = "RainbowDelimiterYellow", + start_col = 17, + start_row = 71 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 72 + }, { + end_col = 24, + end_row = 24, + hl_group = "RainbowDelimiterRed", + start_col = 23, + start_row = 74 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterRed", + start_col = 32, + start_row = 74 + }, { + end_col = 7, + end_row = 7, + hl_group = "RainbowDelimiterRed", + start_col = 6, + start_row = 76 + }, { + end_col = 19, + end_row = 19, + hl_group = "RainbowDelimiterYellow", + start_col = 18, + start_row = 76 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterYellow", + start_col = 19, + start_row = 76 + }, { + end_col = 21, + end_row = 21, + hl_group = "RainbowDelimiterRed", + start_col = 20, + start_row = 76 + }, { + end_col = 31, + end_row = 31, + hl_group = "RainbowDelimiterRed", + start_col = 30, + start_row = 76 + }, { + end_col = 34, + end_row = 34, + hl_group = "RainbowDelimiterRed", + start_col = 33, + start_row = 76 + }, { + end_col = 41, + end_row = 41, + hl_group = "RainbowDelimiterRed", + start_col = 40, + start_row = 76 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 78 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterRed", + start_col = 19, + start_row = 80 + }, { + end_col = 29, + end_row = 29, + hl_group = "RainbowDelimiterYellow", + start_col = 28, + start_row = 81 + }, { + end_col = 33, + end_row = 33, + hl_group = "RainbowDelimiterYellow", + start_col = 32, + start_row = 81 + }, { + end_col = 39, + end_row = 39, + hl_group = "RainbowDelimiterYellow", + start_col = 38, + start_row = 81 + }, { + end_col = 61, + end_row = 61, + hl_group = "RainbowDelimiterYellow", + start_col = 60, + start_row = 81 + }, { + end_col = 22, + end_row = 22, + hl_group = "RainbowDelimiterYellow", + start_col = 21, + start_row = 82 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterYellow", + start_col = 22, + start_row = 82 + }, { + end_col = 20, + end_row = 20, + hl_group = "RainbowDelimiterYellow", + start_col = 19, + start_row = 83 + }, { + end_col = 23, + end_row = 23, + hl_group = "RainbowDelimiterYellow", + start_col = 22, + start_row = 83 + }, { + end_col = 32, + end_row = 32, + hl_group = "RainbowDelimiterYellow", + start_col = 31, + start_row = 84 + }, { + end_col = 36, + end_row = 36, + hl_group = "RainbowDelimiterBlue", + start_col = 35, + start_row = 84 + }, { + end_col = 44, + end_row = 44, + hl_group = "RainbowDelimiterBlue", + start_col = 43, + start_row = 84 + }, { + end_col = 55, + end_row = 55, + hl_group = "RainbowDelimiterBlue", + start_col = 54, + start_row = 84 + }, { + end_col = 56, + end_row = 56, + hl_group = "RainbowDelimiterBlue", + start_col = 55, + start_row = 84 + }, { + end_col = 57, + end_row = 57, + hl_group = "RainbowDelimiterYellow", + start_col = 56, + start_row = 84 + }, { + end_col = 1, + end_row = 1, + hl_group = "RainbowDelimiterRed", + start_col = 0, + start_row = 85 + } } +} \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/ada/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/ada/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/ada/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/agda/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/agda/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/agda/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/angular/folds.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/angular/folds.scm new file mode 100644 index 00000000..1f2129cf --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/angular/folds.scm @@ -0,0 +1 @@ +; inherits: html diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/angular/indents.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/angular/indents.scm new file mode 100644 index 00000000..2f46aa5b --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/angular/indents.scm @@ -0,0 +1,16 @@ +; inherits: html_tags + +[ + (statement_block) + (switch_statement) +] @indent.begin + +(statement_block + "{" @indent.branch) + +(statement_block + "}" @indent.end) + +"}" @indent.branch + +"}" @indent.end diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/angular/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/angular/injections.scm new file mode 100644 index 00000000..448e9427 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/angular/injections.scm @@ -0,0 +1 @@ +; inherits: html_tags diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/angular/locals.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/angular/locals.scm new file mode 100644 index 00000000..1f2129cf --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/angular/locals.scm @@ -0,0 +1 @@ +; inherits: html diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/apex/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/apex/injections.scm new file mode 100644 index 00000000..3cd6aac8 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/apex/injections.scm @@ -0,0 +1,5 @@ +([ + (line_comment) + (block_comment) +] @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/asm/highlights.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/asm/highlights.scm new file mode 100644 index 00000000..eccf9c99 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/asm/highlights.scm @@ -0,0 +1,66 @@ +; General +(label + [ + (ident) + (word) + ] @label) + +(reg) @variable.builtin + +(meta + kind: (_) @function.builtin) + +(instruction + kind: (_) @function.builtin) + +(const + name: (word) @constant) + +; Comments +[ + (line_comment) + (block_comment) +] @comment @spell + +; Literals +(int) @number + +(float) @number.float + +(string) @string + +; Keywords +[ + "byte" + "word" + "dword" + "qword" + "ptr" + "rel" + "label" + "const" +] @keyword + +; Operators & Punctuation +[ + "+" + "-" + "*" + "/" + "%" + "|" + "^" + "&" +] @operator + +[ + "(" + ")" + "[" + "]" +] @punctuation.bracket + +[ + "," + ":" +] @punctuation.delimiter diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/asm/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/asm/injections.scm new file mode 100644 index 00000000..3cd6aac8 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/asm/injections.scm @@ -0,0 +1,5 @@ +([ + (line_comment) + (block_comment) +] @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/beancount/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/beancount/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/beancount/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/bibtex/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/bibtex/injections.scm new file mode 100644 index 00000000..98ad387d --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/bibtex/injections.scm @@ -0,0 +1,2 @@ +((junk) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/blueprint/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/blueprint/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/blueprint/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/bp/folds.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/bp/folds.scm new file mode 100644 index 00000000..c40ea3df --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/bp/folds.scm @@ -0,0 +1,6 @@ +[ + (list_expression) + (map_expression) + (module) + (select_expression) +] @fold diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/bp/highlights.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/bp/highlights.scm new file mode 100644 index 00000000..5f94f4c1 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/bp/highlights.scm @@ -0,0 +1,56 @@ +(comment) @comment @spell + +(operator) @operator + +(integer_literal + "-" @operator) + +[ + "," + ":" +] @punctuation.delimiter + +[ + "(" + ")" + "[" + "]" + "{" + "}" +] @punctuation.bracket + +(boolean_literal) @boolean + +(integer_literal) @number + +[ + (raw_string_literal) + (interpreted_string_literal) +] @string + +(escape_sequence) @string.escape + +(identifier) @variable + +(module + type: (identifier) @function.call) + +(module + (property + field: (identifier) @variable.parameter)) + +[ + (unset) + (default) + (any) +] @variable.builtin + +(condition + name: (identifier) @function.builtin) + +(map_expression + (property + field: (identifier) @property)) + +(select_expression + "select" @keyword.conditional) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/bp/indents.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/bp/indents.scm new file mode 100644 index 00000000..8cf8adc8 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/bp/indents.scm @@ -0,0 +1,38 @@ +(list_expression) @indent.begin + +(list_expression + "]" @indent.branch) + +(map_expression) @indent.begin + +(map_expression + "}" @indent.branch) + +(select_expression) @indent.begin + +(select_expression + ")" @indent.branch) + +(select_value) @indent.begin + +(select_value + ")" @indent.branch) + +(select_pattern + "(" @indent.begin) + +(select_pattern + ")" @indent.branch) + +(select_cases) @indent.begin + +(select_cases + "}" @indent.branch) + +(module) @indent.begin + +(module + ")" @indent.branch) + +(module + "}" @indent.branch) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/bp/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/bp/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/bp/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/bp/locals.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/bp/locals.scm new file mode 100644 index 00000000..c8a5a171 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/bp/locals.scm @@ -0,0 +1,15 @@ +(module + (property + field: (identifier) @local.definition.parameter)) + +(map_expression + (property + field: (identifier) @local.definition.field)) + +(assignment + left: (identifier) @local.definition.var) + +(pattern_binding + binding: (identifier) @local.definition.var) + +(identifier) @local.reference diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/cmake/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/cmake/injections.scm new file mode 100644 index 00000000..eb8e2150 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/cmake/injections.scm @@ -0,0 +1,5 @@ +([ + (bracket_comment) + (line_comment) +] @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/commonlisp/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/commonlisp/injections.scm new file mode 100644 index 00000000..dc898205 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/commonlisp/injections.scm @@ -0,0 +1,5 @@ +([ + (comment) + (block_comment) +] @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/cooklang/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/cooklang/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/cooklang/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/corn/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/corn/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/corn/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/d/locals.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/d/locals.scm new file mode 100644 index 00000000..1d7d617d --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/d/locals.scm @@ -0,0 +1,79 @@ +; Scopes +[ + (source_file) + (block_statement) + (aggregate_body) +] @local.scope + +; References +(identifier) @local.reference + +; Definitions +(module_def + (module_declaration + (module_fqn) @local.definition.namespace) + (#set! "definition.namespace.scope" "global")) + +(enum_declaration + (enum_member + . + (identifier) @local.definition.enum)) + +(class_declaration + (class) + . + (identifier) @local.definition.type) + +(struct_declaration + (struct) + . + (identifier) @local.definition.type) + +(union_declaration + (union) + . + (identifier) @local.definition.type) + +(enum_declaration + (enum) + . + (identifier) @local.definition.type) + +(alias_declaration + (alias_initializer + . + (identifier) @local.definition.type)) + +(constructor + (this) @local.definition.method) + +(destructor + (this) @local.definition.method) + +(postblit + (this) @local.definition.method) + +(aggregate_body + (function_declaration + (identifier) @local.definition.method)) + +(manifest_declarator + . + (identifier) @local.definition.constant) + +(anonymous_enum_declaration + (enum_member + . + (identifier) @local.definition.constant)) + +(variable_declaration + (declarator + (identifier) @local.definition.var)) + +(aggregate_body + (variable_declaration + (declarator + (identifier) @local.definition.field))) + +(function_declaration + (identifier) @local.definition.function) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/diff/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/diff/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/diff/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/disassembly/highlights.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/disassembly/highlights.scm new file mode 100644 index 00000000..b1ece9ab --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/disassembly/highlights.scm @@ -0,0 +1,30 @@ +(byte) @constant + +[ + (address) + (hexadecimal) + (integer) +] @number + +(identifier) @variable + +(bad_instruction) @comment.warning + +(code_location + (identifier) @function.call) + +(comment) @comment + +(instruction) @function + +(memory_dump) @string + +[ + "<" + ">" +] @punctuation.special + +[ + "+" + ":" +] @punctuation.delimiter diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/disassembly/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/disassembly/injections.scm new file mode 100644 index 00000000..9fb52daf --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/disassembly/injections.scm @@ -0,0 +1,6 @@ +; TODO: https://github.com/nvim-treesitter/nvim-treesitter/pull/5548#issuecomment-1773707396 +; +; To be added once a compatible Assembly parser is merged into nvim-treesitter +; +; ((instruction) @injection.content +; (#set! injection.language "asm")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/djot/folds.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/djot/folds.scm new file mode 100644 index 00000000..94f3724e --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/djot/folds.scm @@ -0,0 +1,7 @@ +[ + (section) + (code_block) + (raw_block) + (list) + (div) +] @fold diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/djot/highlights.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/djot/highlights.scm new file mode 100644 index 00000000..e788891e --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/djot/highlights.scm @@ -0,0 +1,396 @@ +(heading1) @markup.heading.1 + +(heading2) @markup.heading.2 + +(heading3) @markup.heading.3 + +(heading4) @markup.heading.4 + +(heading5) @markup.heading.5 + +(heading6) @markup.heading.6 + +(thematic_break) @string.special + +[ + (div_marker_begin) + (div_marker_end) +] @punctuation.delimiter + +([ + (code_block) + (raw_block) + (frontmatter) +] @markup.raw.block + (#set! "priority" 90)) + +; Remove @markup.raw for code with a language spec +(code_block + . + (code_block_marker_begin) + (language) + (code) @none + (#set! "priority" 90)) + +[ + (code_block_marker_begin) + (code_block_marker_end) + (raw_block_marker_begin) + (raw_block_marker_end) +] @punctuation.delimiter + +(language) @attribute + +(inline_attribute + _ @conceal + (#set! conceal "")) + +((language_marker) @punctuation.delimiter + (#set! conceal "")) + +(block_quote) @markup.quote + +(block_quote_marker) @punctuation.special + +(table_header) @markup.heading + +(table_header + "|" @punctuation.special) + +(table_row + "|" @punctuation.special) + +(table_separator) @punctuation.special + +(table_caption + (marker) @punctuation.special) + +(table_caption) @markup.italic + +[ + (list_marker_dash) + (list_marker_plus) + (list_marker_star) + (list_marker_definition) + (list_marker_decimal_period) + (list_marker_decimal_paren) + (list_marker_decimal_parens) + (list_marker_lower_alpha_period) + (list_marker_lower_alpha_paren) + (list_marker_lower_alpha_parens) + (list_marker_upper_alpha_period) + (list_marker_upper_alpha_paren) + (list_marker_upper_alpha_parens) + (list_marker_lower_roman_period) + (list_marker_lower_roman_paren) + (list_marker_lower_roman_parens) + (list_marker_upper_roman_period) + (list_marker_upper_roman_paren) + (list_marker_upper_roman_parens) +] @markup.list + +(list_marker_task + (unchecked)) @markup.list.unchecked + +(list_marker_task + (checked)) @markup.list.checked + +; Colorize `x` in `[x]` +((checked) @constant.builtin + (#offset! @constant.builtin 0 1 0 -1)) + +[ + (ellipsis) + (en_dash) + (em_dash) + (quotation_marks) +] @string.special + +(list_item + (term) @type.definition) + +; Conceal { and } but leave " and ' +((quotation_marks) @string.special + (#any-of? @string.special "\"}" "'}") + (#offset! @string.special 0 1 0 0) + (#set! conceal "")) + +((quotation_marks) @string.special + (#any-of? @string.special "\\\"" "\\'" "{'" "{\"") + (#offset! @string.special 0 0 0 -1) + (#set! conceal "")) + +[ + (hard_line_break) + (backslash_escape) +] @string.escape + +; Only conceal \ but leave escaped character. +((backslash_escape) @string.escape + (#offset! @string.escape 0 0 0 -1) + (#set! conceal "")) + +(frontmatter_marker) @punctuation.delimiter + +(emphasis) @markup.italic + +(strong) @markup.strong + +(symbol) @string.special.symbol + +(insert) @markup.underline + +(delete) @markup.strikethrough + +[ + (highlighted) + (superscript) + (subscript) +] @string.special + +; We need to target tokens specifically because `{=` etc can exist as fallback symbols in +; regular text, which we don't want to highlight or conceal. +(highlighted + [ + "{=" + "=}" + ] @punctuation.delimiter + (#set! conceal "")) + +(insert + [ + "{+" + "+}" + ] @punctuation.delimiter + (#set! conceal "")) + +(delete + [ + "{-" + "-}" + ] @punctuation.delimiter + (#set! conceal "")) + +(superscript + [ + "^" + "{^" + "^}" + ] @punctuation.delimiter + (#set! conceal "")) + +(subscript + [ + "~" + "{~" + "~}" + ] @punctuation.delimiter + (#set! conceal "")) + +([ + (emphasis_begin) + (emphasis_end) + (strong_begin) + (strong_end) + (verbatim_marker_begin) + (verbatim_marker_end) + (math_marker) + (math_marker_begin) + (math_marker_end) + (raw_inline_attribute) + (raw_inline_marker_begin) + (raw_inline_marker_end) +] @punctuation.delimiter + (#set! conceal "")) + +((math) @markup.math + (#set! "priority" 90)) + +(verbatim) @markup.raw + +((raw_inline) @markup.raw + (#set! "priority" 90)) + +(comment + "%" @comment + (#set! conceal "")) + +(span + [ + "[" + "]" + ] @punctuation.bracket) + +(inline_attribute + [ + "{" + "}" + ] @punctuation.bracket) + +(block_attribute + [ + "{" + "}" + ] @punctuation.bracket) + +[ + (class) + (class_name) +] @type + +(identifier) @tag + +(key_value + "=" @operator) + +(key_value + (key) @property) + +(key_value + (value) @string) + +(link_text + [ + "[" + "]" + ] @punctuation.bracket + (#set! conceal "")) + +(autolink + [ + "<" + ">" + ] @punctuation.bracket + (#set! conceal "")) + +(inline_link + (inline_link_destination) @markup.link.url + (#set! conceal "")) + +(link_reference_definition + ":" @punctuation.special) + +(full_reference_link + (link_text) @markup.link) + +(full_reference_link + (link_label) @markup.link.label + (#set! conceal "")) + +(collapsed_reference_link + "[]" @punctuation.bracket + (#set! conceal "")) + +(full_reference_link + [ + "[" + "]" + ] @punctuation.bracket + (#set! conceal "")) + +(collapsed_reference_link + (link_text) @markup.link) + +(collapsed_reference_link + (link_text) @markup.link.label) + +(inline_link + (link_text) @markup.link) + +(full_reference_image + (link_label) @markup.link.label) + +(full_reference_image + [ + "![" + "[" + "]" + ] @punctuation.bracket) + +(collapsed_reference_image + [ + "![" + "]" + ] @punctuation.bracket) + +(inline_image + [ + "![" + "]" + ] @punctuation.bracket) + +(image_description) @markup.italic + +(image_description + [ + "[" + "]" + ] @punctuation.bracket) + +(link_reference_definition + [ + "[" + "]" + ] @punctuation.bracket) + +(link_reference_definition + (link_label) @markup.link.label) + +(inline_link_destination + [ + "(" + ")" + ] @punctuation.bracket) + +[ + (autolink) + (inline_link_destination) + (link_destination) + (link_reference_definition) +] @markup.link.url + +(footnote + (reference_label) @markup.link.label) + +(footnote_reference + (reference_label) @markup.link.label) + +[ + (footnote_marker_begin) + (footnote_marker_end) +] @punctuation.bracket + +(todo) @comment.todo + +(note) @comment.note + +(fixme) @comment.error + +[ + (paragraph) + (comment) + (table_cell) +] @spell + +[ + (autolink) + (inline_link_destination) + (link_destination) + (code_block) + (raw_block) + (math) + (raw_inline) + (verbatim) + (reference_label) + (class) + (class_name) + (identifier) + (key_value) + (frontmatter) +] @nospell + +(full_reference_link + (link_label) @nospell) + +(full_reference_image + (link_label) @nospell) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/djot/indents.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/djot/indents.scm new file mode 100644 index 00000000..3b1a56eb --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/djot/indents.scm @@ -0,0 +1,10 @@ +; The intention here is to rely on Neovims `autoindent` setting. +; This allows us to not indent after just a single list item +; so we can create narrow lists quickly, but indent blocks inside list items +; to the previous paragraph. +(list_item_content) @indent.auto + +(footnote_content) @indent.align + +((table_caption) @indent.begin + (#set! indent.immediate 1)) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/djot/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/djot/injections.scm new file mode 100644 index 00000000..078b4036 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/djot/injections.scm @@ -0,0 +1,20 @@ +((comment) @injection.content + (#set! injection.language "comment")) + +(code_block + (language) @injection.language + (code) @injection.content) + +(raw_block + (raw_block_info + (language) @injection.language) + (content) @injection.content) + +(raw_inline + (content) @injection.content + (raw_inline_attribute + (language) @injection.language)) + +(frontmatter + (language) @injection.language + (frontmatter_content) @injection.content) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/djot/locals.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/djot/locals.scm new file mode 100644 index 00000000..1ac27529 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/djot/locals.scm @@ -0,0 +1,17 @@ +(link_reference_definition + (link_label) @local.definition) + +(footnote + (reference_label) @local.definition) + +(collapsed_reference_link + (link_text) @local.reference) + +(full_reference_link + (link_label) @local.reference) + +(full_reference_image + (link_label) @local.reference) + +(footnote_reference + (reference_label) @local.reference) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/dot/indents.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/dot/indents.scm new file mode 100644 index 00000000..a951e551 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/dot/indents.scm @@ -0,0 +1,9 @@ +[ + (block) + (attr_list) +] @indent.begin + +[ + "}" + "]" +] @indent.branch @indent.end diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/earthfile/highlights.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/earthfile/highlights.scm new file mode 100644 index 00000000..cc7dce29 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/earthfile/highlights.scm @@ -0,0 +1,129 @@ +(string_array + "," @punctuation.delimiter) + +(string_array + [ + "[" + "]" + ] @punctuation.bracket) + +[ + "ARG" + "AS LOCAL" + "BUILD" + "CACHE" + "CMD" + "COPY" + "DO" + "ENTRYPOINT" + "ENV" + "EXPOSE" + "FROM DOCKERFILE" + "FROM" + "FUNCTION" + "GIT CLONE" + "HOST" + "IMPORT" + "LABEL" + "LET" + "PROJECT" + "RUN" + "SAVE ARTIFACT" + "SAVE IMAGE" + "SET" + "USER" + "VERSION" + "VOLUME" + "WORKDIR" +] @keyword + +(for_command + [ + "FOR" + "IN" + "END" + ] @keyword.repeat) + +(if_command + [ + "IF" + "END" + ] @keyword.conditional) + +(elif_block + "ELSE IF" @keyword.conditional) + +(else_block + "ELSE" @keyword.conditional) + +(import_command + [ + "IMPORT" + "AS" + ] @keyword.import) + +(try_command + [ + "TRY" + "FINALLY" + "END" + ] @keyword.exception) + +(wait_command + [ + "WAIT" + "END" + ] @keyword) + +(with_docker_command + [ + "WITH DOCKER" + "END" + ] @keyword) + +[ + (comment) + (line_continuation_comment) +] @comment @spell + +[ + (target_ref) + (target_artifact) + (function_ref) +] @function + +(target + (identifier) @function) + +[ + (double_quoted_string) + (single_quoted_string) +] @string + +(unquoted_string) @string.special + +(escape_sequence) @string.escape + +(variable) @variable + +(expansion + [ + "$" + "{" + "}" + "(" + ")" + ] @punctuation.special) + +(build_arg + [ + "--" + (variable) + ] @variable.parameter) + +(options + (_) @property) + +"=" @operator + +(line_continuation) @operator diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/earthfile/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/earthfile/injections.scm new file mode 100644 index 00000000..7435a400 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/earthfile/injections.scm @@ -0,0 +1,9 @@ +((comment) @injection.content + (#set! injection.language "comment")) + +((line_continuation_comment) @injection.content + (#set! injection.language "comment")) + +((shell_fragment) @injection.content + (#set! injection.language "bash") + (#set! injection.include-children)) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/ebnf/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/ebnf/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/ebnf/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/editorconfig/folds.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/editorconfig/folds.scm new file mode 100644 index 00000000..911798f5 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/editorconfig/folds.scm @@ -0,0 +1 @@ +(section) @fold diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/editorconfig/highlights.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/editorconfig/highlights.scm new file mode 100644 index 00000000..fd69bc4c --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/editorconfig/highlights.scm @@ -0,0 +1,56 @@ +(comment) @comment @spell + +; consistency with toml and ini +(section + (section_name) @type) + +(character_choice + (character) @constant) + +(character_range + start: (character) @constant + end: (character) @constant) + +[ + "[" + "]" + "{" + "}" +] @punctuation.bracket + +[ + "," + ".." + (path_separator) +] @punctuation.delimiter + +[ + "-" + "=" + (negation) +] @operator + +[ + (wildcard_characters) + (wildcard_any_characters) + (wildcard_single_character) +] @character.special + +(escaped_character) @string.escape + +(pair + key: (identifier) @property + value: (_) @string) + +(boolean) @boolean + +(integer) @number + +(unset) @constant.builtin + +[ + (spelling_language) + (indent_style) + (end_of_line) + (charset) +] @string.special diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/editorconfig/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/editorconfig/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/editorconfig/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/elm/folds.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/elm/folds.scm new file mode 100644 index 00000000..56987d9f --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/elm/folds.scm @@ -0,0 +1,14 @@ +((function_call_expr) @_fn + (#not-has-parent? @_fn parenthesized_expr)) @fold + +[ + (case_of_branch) + (case_of_expr) + (value_declaration) + (type_declaration) + (type_alias_declaration) + (list_expr) + (record_expr) + (parenthesized_expr) + (import_clause)+ +] @fold diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/erlang/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/erlang/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/erlang/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/faust/highlights.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/faust/highlights.scm new file mode 100644 index 00000000..6e7ef1d9 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/faust/highlights.scm @@ -0,0 +1,219 @@ +; Identifiers +(identifier) @variable + +[ + "process" + "effect" +] @variable.builtin + +(parameters + (identifier)) @variable.parameter + +(access + definition: (identifier) @variable.member) + +(global_metadata + key: (identifier) @variable.member) + +(function_metadata + function_name: (identifier) @variable.member) + +; Literals +(_ + filename: (string)) @string.special.path + +(documentation) @string.documentation @spell + +[ + (string) + (fstring) +] @string + +(int) @number + +(real) @number.float + +; Types +(_ + type: [ + (int_type) + (float_type) + (any_type) + ]) @type.builtin + +[ + (single_precision) + (double_precision) + (quad_precision) + (fixed_point_precision) +] @attribute + +; Functions +(function_definition + name: (identifier) @function) + +(function_names) @function + +(function_call + (identifier) @function.call) + +(function_call + (access + definition: (identifier) @function.call)) + +[ + "exp" + "log" + "log10" + "sqrt" + "abs" + "floor" + "ceil" + "rint" + "round" + "acos" + "asin" + "atan" + "cos" + "sin" + "tan" + "atan2" + "int" + "float" + "pow" + "min" + "max" + "fmod" + "remainder" + "prefix" + "attach" + "enable" + "control" + "rdtable" + "rwtable" + "select2" + "select3" + "lowest" + "highest" + "assertbounds" + (par) + (seq) + (sum) + (prod) + (component) + (library) + (vslider_type) + (hslider_type) + (nentry_type) + (vbargraph_type) + (hbargraph_type) + (vgroup_type) + (hgroup_type) + (tgroup_type) + "button" + "checkbox" + "soundfile" + "inputs" + "outputs" + "route" +] @function.builtin + +; xor is a @keyword.operator +[ + (add) + (sub) + (mult) + (div) + (mod) + (pow) + (or) + (and) + (lshift) + (rshift) + (lt) + (le) + (gt) + (ge) + (eq) + (neq) + (delay) + (one_sample_delay) + "=" + "=>" + "->" +] @operator + +(recursive + "~" @operator) + +(sequential + ":" @operator) + +(split + "<:" @operator) + +(merge + ":>" @operator) + +(parallel + "," @operator) + +; Keywords +[ + (par) + (seq) + (sum) + (prod) +] @keyword.repeat + +(file_import + "import" @keyword.import) + +[ + (wire) + (cut) + (mem) + "declare" + "with" + "environment" + "case" + "ffunction" + "fconstant" + "fvariable" +] @keyword + +(xor) @keyword.operator + +; Punctuation +[ + "," + ";" + "." +] @punctuation.delimiter + +[ + "(" + ")" + "[" + "]" + "{" + "}" +] @punctuation.bracket + +; Comments +(comment) @comment @spell + +; Tags +[ + "" + "" + "" + "" + "" + "" + "" + "" + "" +] @tag diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/faust/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/faust/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/faust/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/fidl/folds.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/fidl/folds.scm new file mode 100644 index 00000000..f524c455 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/fidl/folds.scm @@ -0,0 +1,6 @@ +[ + (layout_declaration) + (protocol_declaration) + (resource_declaration) + (service_declaration) +] @fold diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/fidl/highlights.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/fidl/highlights.scm new file mode 100644 index 00000000..f1960c61 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/fidl/highlights.scm @@ -0,0 +1,67 @@ +[ + "ajar" + "alias" + "as" + "bits" + "closed" + "compose" + "const" + "error" + "flexible" + "library" + "open" + ; "optional" we did not specify a node for optional yet + "overlay" + "protocol" + "reserved" + "strict" + "using" +] @keyword + +[ + "enum" + "struct" + "table" + "union" + "resource" + "service" + "type" +] @keyword.type + +(primitives_type) @type.builtin + +(builtin_complex_type) @type.builtin + +(const_declaration + (identifier) @constant) + +[ + "=" + "|" + "&" + "->" +] @operator + +(attribute + "@" @attribute + (identifier) @attribute) + +(string_literal) @string + +(numeric_literal) @number + +[ + (true) + (false) +] @boolean + +(comment) @comment + +[ + "(" + ")" + "<" + ">" + "{" + "}" +] @punctuation.bracket diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/fidl/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/fidl/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/fidl/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/fortran/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/fortran/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/fortran/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/fsh/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/fsh/injections.scm new file mode 100644 index 00000000..7bf6d006 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/fsh/injections.scm @@ -0,0 +1,2 @@ +((fsh_comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/func/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/func/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/func/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/fusion/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/fusion/injections.scm new file mode 100644 index 00000000..085cdb45 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/fusion/injections.scm @@ -0,0 +1,5 @@ +([ + (comment) + (afx_comment) +] @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/gdshader/highlights.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/gdshader/highlights.scm new file mode 100644 index 00000000..c93fd472 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/gdshader/highlights.scm @@ -0,0 +1,142 @@ +[ + "render_mode" + "shader_type" + "group_uniforms" + "global" + "instance" + "const" + "varying" + "uniform" +] @keyword + +"struct" @keyword.type + +[ + (precision_qualifier) + (interpolation_qualifier) +] @keyword.modifier + +[ + "in" + "out" + "inout" +] @keyword.modifier + +[ + "while" + "for" +] @keyword.repeat + +[ + "continue" + "break" + "return" +] @keyword.return + +[ + "if" + "else" + "switch" + "case" + "default" +] @keyword.conditional + +[ + "#" + "include" +] @keyword.directive + +(string) @string + +[ + "=" + "+=" + "-=" + "!" + "~" + "+" + "-" + "*" + "/" + "%" + "||" + "&&" + "|" + "^" + "&" + "==" + "!=" + ">" + ">=" + "<=" + "<" + "<<" + ">>" + "++" + "--" +] @operator + +(boolean) @boolean + +(integer) @number + +(float) @number.float + +[ + "." + "," + ";" +] @punctuation.delimiter + +[ + "(" + ")" + "[" + "]" + "{" + "}" +] @punctuation.bracket + +(builtin_type) @type.builtin + +(ident_type) @type.definition + +[ + (shader_type) + (render_mode) + (hint_name) +] @attribute + +(builtin_variable) @constant.builtin + +(builtin_function) @function.builtin + +(group_uniforms_declaration + group_name: (ident) @property + subgroup_name: (ident) @property) + +(struct_declaration + name: (ident) @type) + +(struct_member + name: (ident) @property) + +(function_declaration + name: (ident) @function) + +(parameter + name: (ident) @variable.parameter) + +(member_expr + member: (ident) @property) + +(call_expr + function: [ + (ident) + (builtin_type) + ] @function) + +(call_expr + function: (builtin_type) @function.call) + +(comment) @comment @spell diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/gdshader/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/gdshader/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/gdshader/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/git_config/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/git_config/injections.scm new file mode 100644 index 00000000..7bda6979 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/git_config/injections.scm @@ -0,0 +1,69 @@ +((comment) @injection.content + (#set! injection.language "comment")) + +((variable + (name) @_name + value: (string) @injection.content) + (#any-of? @_name "cmd" "command" "textconv" "sendmailCmd") + (#set! injection.language "bash")) + +(section + (variable + (name) @_name + value: (string) @injection.content) + (#eq? @_name "tool") + (#set! injection.language "bash")) + +(section + (section_header + (section_name) @_pager) + (variable + value: (string) @injection.content) + (#eq? @_pager "pager") + (#set! injection.language "bash")) + +(section + (section_header + (section_name) @_interactive) + (variable + (name) @_name + value: (string) @injection.content) + (#eq? @_interactive "interactive") + (#eq? @_name "diffFilter") + (#set! injection.language "bash")) + +; https://github.com/git-lfs/git-lfs +; git lfs install +(section + (section_header + (section_name) @_filter + (subsection_name) @_lfs) + (variable + (name) @_name + value: (string) @injection.content) + (#eq? @_filter "filter") + (#eq? @_lfs "lfs") + (#any-of? @_name "smudge" "process" "clean") + (#set! injection.language "bash")) + +(section + (section_header + (section_name) @_alias) + (variable + value: (string) @injection.content) + (#eq? @_alias "alias") + (#lua-match? @injection.content "^!") + (#offset! @injection.content 0 1 0 0) + (#set! injection.language "bash")) + +(section + (section_header + (section_name) @_alias) + (variable + value: (string + "\"" + "\"") @injection.content) + (#eq? @_alias "alias") + (#lua-match? @injection.content "^\"!") + (#offset! @injection.content 0 2 0 -1) + (#set! injection.language "bash")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/gitignore/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/gitignore/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/gitignore/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/glimmer/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/glimmer/injections.scm new file mode 100644 index 00000000..d0400c30 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/glimmer/injections.scm @@ -0,0 +1,2 @@ +((comment_statement) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/gnuplot/highlights.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/gnuplot/highlights.scm new file mode 100644 index 00000000..884c7263 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/gnuplot/highlights.scm @@ -0,0 +1,648 @@ +; highlights.scm +(comment) @comment @spell + +(identifier) @variable + +[ + "-" + "+" + "~" + "!" + "$" + "|" + "**" + "*" + "/" + "%" + "==" + "!=" + "<" + "<=" + ">" + ">=" + "<<" + ">>" + "&" + "^" + "&&" + "||" + "=" + "," + "." +] @operator + +[ + "eq" + "ne" +] @keyword.operator + +(ternary_expression + [ + "?" + ":" + ] @keyword.conditional.ternary) + +"sum" @function.builtin + +[ + "for" + "in" + "do" + "while" +] @keyword.repeat + +[ + (c_break) + (c_cd) + (c_clear) + "evaluate" + "fit" + "help" + "load" + "lower" + "print" + (c_replot) + (c_reread) + "reset" + "splot" + "cmd" + "test" + "undefine" + "vfill" +] @keyword + +(c_pause + "pause" @keyword + "mouse" @variable.member + _? @attribute + ("," + _ @attribute)?) + +(c_plot + "plot" @keyword) + +(c_show + "show" @keyword + "plot"? @attribute) + +(c_stats + "stats" @keyword + ("name" + (_))? @variable.member) + +[ + "via" + "inverse" + "sample" +] @keyword.function + +[ + "if" + "else" +] @keyword.conditional + +(plot_element + "axes"? @variable.member) + +(cntrparam + "auto"? @variable.member) + +(colorbox + "origin"? @attribute) + +(contourfill + "auto"? @variable.member) + +(format + _? @attribute + (_) + _? @attribute) + +(key + "auto"? @variable.member) + +(style ; TODO: complete + [ + "arrow" + "boxplot" + ("data" + [ + (_) + "spiderplot" @attribute + ]) + "fs" + "function" + "line" + "circle" + "rectangle" + "ellipse" + "parallelaxis" + ; (spiderplot) ; TODO: complete + "textbox" + ("watchpoint" + "labels" @attribute + (_)?) + ] @variable.member) + +(terminal + "name" @variable.member) + +; TODO: complete terminals in grammar and then simplify its options here +(t_cairolatex + [ + "eps" + "pdf" + "png" + "standalone" + "input" + "blacktext" + "colortext" + "colourtext" + ("header" + (_)) + "mono" + "color" + "background" + "rounded" + "butt" + ]* @attribute) + +; (t_canvas) +; (t_cgm) +; (t_context) +; (t_domterm) +; (t_dumb) +; (t_dxf) +; (t_emf) +; (t_epscairo) +; (t_epslatex) +; (t_fig) +; (t_gif) +; (t_hpgl) +; (t_jpeg) +; (t_lua) +; (t_pc15) +; (t_pdfcairo) +; (t_png) +; (t_pngcairo) +; (t_postscript) +; (t_pslatex) +; (t_pstricks) +; (t_qt) +; (t_sixelgd) +; (t_svg [(font_spec)]* @attribute) +; (t_tek4xxx) +; (t_texdraw) +; (t_tikz) +; (t_tkcanvas) +(plot_style + [ + "lines" + "points" + "lp" + "financebars" + "dots" + "impulses" + "labels" + "surface" + "steps" + "fsteps" + "histeps" + "arrows" + "vectors" + "sectors" + "contourfill" + "errorbar" + "errorlines" + "parallelaxes" + "boxes" + "boxerrorbars" + "boxxyerror" + "isosurface" + "boxplot" + "candlesticks" + "circles" + "zerrorfill" + "ellipses" + "filledcurves" + "fillsteps" + "histograms" + "image" + "spiderplot" + "pm3d" + "rgbalpha" + "rgbimage" + "polygons" + "table" + "mask" + ] @attribute) + +[ + "tc" + "fc" + "fs" + "lc" + "ls" + "lw" + "lt" + "pt" + "ps" + "pi" + "pn" + "dt" + "as" + "start" + "cycles" + "saturation" + "interval" + "format" + "keywidth" + "samplen" + "columns" + "title" + "notitle" + "every" + "index" + "using" + "with" + "frac" + "cb" + "arg" + "prefix" + "output" + "primary" + "specular" + "spec2" + "firstlinetype" + "width" + "height" + "expand" + "array" + "dx" + "dy" + "dz" + "filetype" + "center" + "record" +] @variable.member + +; Workaround because formatter cannot handle 300 list nodes +[ + (angles) + (clip) + (colorsequence) + (contour) + (encoding) + (mapping) + (xdata) + (theta) + "wall" + "on" + "off" + "opaque" + "inside" + "outside" + "margin" + "cen" + "lef" + "rig" + "top" + "bot" + "lr" + "a" + "maxcols" + "maxrows" + "autojustify" + "overlap" + "spread" + "wrap" + "swarm" + "range" + "label" + "mixed" + "triangles" + "insidecolor" + "noinsidecolor" + "cycle" + "tics" + "ztics" + "cbtics" + "user" + "front" + "back" + "bdefault" + "time" + "palette" + "terminal" + "onecolor" + "invert" + "reverse" + "writeback" + "extend" + "restore" + "linear" + "cubicspline" + "bspline" + "points" + "order" + "levels" + "sorted" + "autofreq" + "add" + "inout" + "axis" + "mirror" + "type" + "rowsfirst" + "columnsfirst" + "downwards" + "upwards" + "prevnext" + "gray" + "color" + "gamma" + "defined" + "cubehelix" + "model" + "maxcolors" + "file" + "colormap" + "rgbformulae" + "viridis" + "positive" + "negative" + "nops_allcF" + "ps_allcF" + "quiet" + "full" + "trip" + "numbers" + "small" + "large" + "fullwidth" + "append" + "bind" + "errors" + "session" + "behind" + "polar" + "layerdefault" + "locale" + "axes" + "fix" + "keepfix" + "noextend" + "head" + "fixed" + "filled" + "nofilled" + "absolute" + "at" + "relative" + "enhanced" + "border" + "noborder" + "rgbcolor" + "empty" + "black" + "bgnd" + "nodraw" + "size" + "new" + "first" + "second" + "screen" + "graph" + "character" + "trianglepattern" + "undefined" + "noundefined" + "altdiagonal" + "bentover" + "vertical" + "horizontal" + "square" + "ratio" + "noratio" + "solid" + "transparent" + "pattern" + "from" + "to_rto" + "length" + "angle" + "columnheaders" + "fortran" + "nofpe_trap" + "missing" + "separator" + "commentschars" + "log" + "rangelimited" + "offset" + "nooffset" + "scale" + "font" + "point" + "nopoint" + "boxed" + "noboxed" + "hypertext" + "defaults" + "keyentry" + "splines" + "qnorm" + "gauss" + "cauchy" + "exp" + "box" + "hann" + "implicit" + "explicit" + "rotate" + "by" + "parallel" + "norotate" + "map" + "projection" + "equal" + "azimuth" + "nohidden3d" + "nocontours" + "nosurface" + "colornames" + "functions" + "variables" + "version" + "nologfile" + "logfile" + "fit_out" + "errorvariables" + "covariancevariables" + "errorscaling" + "prescale" + "maxiter" + "limit" + "limit_abs" + "start-lambda" + "lambda-factor" + "script" + "clip" + "fontscale" + "lighting" + "depthorder" + "interpolate" + "corners2color" + "flush" + "scanorder" + "hidden3d" + "clipcb" + "layout" + "margins" + "spacing" + "smooth" + "binary" + "skip" + "bins" + "binrange" + "binwidth" + "binvalue" + "mask" + "convexhull" + "concavehull" + "volatile" + "zsort" + "nonuniform" + "sparse" + "matrix" +] @attribute + +[ + "x1" + "x2" + "y1" + "y2" + "y" + "r" + "z" + "xy" + "xz" + "yz" + "xyz" + "x1y1" + "x2y2" + "x1y2" + "x2y1" + "columnheader" + "seconds" + "minutes" + "hours" + "days" + "weeks" + "months" + "years" + "cm" + "in" + "discrete" + "incremental" + "default" + "long" + "nogrid" + "unique" + "frequency" + "fnormal" + "cumulative" + "cnormal" + "csplines" + "acsplines" + "mcsplines" + "path" + "bezier" + "sbezier" + "unwrap" + "kdensity" + "closed" + "between" + "above" + "below" + "variable" + "pixels" + "RGB" + "CMY" + "HSV" + "base" + "begin" + "center" + "end" + "ftriangles" + "clip1in" + "clip4in" + "c2c" + "retrace" + "whitespace" + "tab" + "comma" + "push" + "pop" + "flipx" + "flipy" + "flipz" +] @variable.member + +(colorspec + "palette" @attribute) + +(datafile_modifiers + "origin"? @variable.member) + +((datafile_modifiers + filetype: (identifier) @variable.member) + (#any-of? @variable.member + "avs" "bin" "edf" "ehf" "gif" "gpbin" "jpeg" "jpg" "png" "raw" "rgb" "auto")) + +(macro) @function.macro + +(datablock) @function.macro + +(function + name: (identifier) @function) + +((function + name: (identifier) @function.builtin) + (#any-of? @function.builtin + "abs" "acos" "acosh" "airy" "arg" "asin" "asinh" "atan" "atan2" "atanh" "besj0" "besj1" "besjn" + "besy0" "besy1" "besyn" "besi0" "besi1" "besin" "cbrt" "ceil" "conj" "cos" "cosh" "EllipticK" + "EllipticE" "EllipticPi" "erf" "erfc" "exp" "expint" "floor" "gamma" "ibeta" "inverf" "igamma" + "imag" "int" "invnorm" "invibeta" "invigamma" "LambertW" "lambertw" "lgamma" "lnGamma" "log" + "log10" "norm" "rand" "real" "round" "sgn" "sin" "sinh" "sqrt" "SynchrotronF" "tan" "tanh" + "uigamma" "voigt" "zeta" "cerf" "cdawson" "faddeva" "erfi" "FresnelC" "FresnelS" "VP" "VP_fwhm" + "Ai" "Bi" "BesselH1" "BesselH2" "BesselJ" "BesselY" "BesselI" "BesselK" "gprintf" "sprintf" + "strlen" "strstrt" "substr" "strptime" "srtftime" "system" "trim" "word" "words" "time" + "timecolumn" "tm_hour" "tm_mday" "tm_min" "tm_mon" "tm_sec" "tm_wday" "tm_week" "tm_yday" + "tm_year" "weekday_iso" "weekday_cdc" "column" "columnhead" "exists" "hsv2rgb" "index" "palette" + "rgbcolor" "stringcolumn" "valid" "value" "voxel")) + +((identifier) @variable.builtin + (#match? @variable.builtin + "^\\w+_(records|headers|outofrange|invalid|blank|blocks|columns|column_header|index_(min|max)(_x|_y)?|(min|max)(_x|_y)?|mean(_err)?(_x|_y)?|stddev(_err)?(_x|_y)?)$")) + +((identifier) @variable.builtin + (#match? @variable.builtin + "^\\w+_(sdd(_x|_y)?|(lo|up)_quartile(_x|_y)?|median(_x|_y)?|sum(sq)?(_x|_y)?|skewness(_err)?(_x|_y)?)$")) + +((identifier) @variable.builtin + (#match? @variable.builtin + "^\\w+_(kurtosis(_err)?(_x|_y)?|adev(_x|_y)?|correlation|slope(_err)?|intercept(_err)?|sumxy|pos(_min|_max)_y|size(_x|_y))$")) + +((identifier) @variable.builtin + (#match? @variable.builtin "^((GPVAL|MOUSE|FIT)_\\w+|GNUTERM|NaN|VoxelDistance|GridDistance|pi)$")) + +(array_def + "array" @keyword.function) + +(array + (identifier) @function) + +(number) @number + +(string_literal) @string diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/gnuplot/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/gnuplot/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/gnuplot/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/goctl/folds.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/goctl/folds.scm new file mode 100644 index 00000000..70492867 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/goctl/folds.scm @@ -0,0 +1,11 @@ +[ + (typeGroupSpec) + (typeSingleSpec) + (typeStruct) + (serviceSpec) + (serviceBody) + (importStatement) + (serviceServerSpec) + (infoStatement) + (structType) +] @fold diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/goctl/highlights.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/goctl/highlights.scm new file mode 100644 index 00000000..a4b809a1 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/goctl/highlights.scm @@ -0,0 +1,79 @@ +; Key Symbol +"=" @operator + +[ + "." + "," + ":" + ";" +] @punctuation.delimiter + +[ + "(" + ")" + "{" + "}" + "[" + "]" +] @punctuation.bracket + +; Keywords +[ + "syntax" + "info" + "service" +] @keyword + +"import" @keyword.import + +"returns" @keyword.return + +[ + "type" + "struct" +] @keyword.type + +[ + "@doc" + "@handler" + "@server" +] @attribute + +; Service +(serviceName) @type + +; Httpmethod +(HTTPMETHOD) @keyword.operator + +; Field +(fieldType) @type.builtin + +(fieldName) @variable.member + +(anonymousField) @variable.member + +; Functions +(handlerValue) @function.method + +; Strings +(VALUE) @string + +(tag) @string.documentation + +(PATH) @string.special.path + +; Comments +(comment) @comment @spell + +(key) @variable.member + +(identValue) @string + +(DURATION) @number + +(NUMBER) @number + +; Struct +(structNameId) @type + +(body) @type diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/goctl/indents.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/goctl/indents.scm new file mode 100644 index 00000000..ffa12690 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/goctl/indents.scm @@ -0,0 +1,15 @@ +[ + (importGroup) + (typeGroupSpec) + (structType) + (infoStatement) + (serviceServerSpec) + (serviceSpec) +] @indent.begin + +[ + ")" + "}" +] @indent.branch @indent.end + +(comment) @indent.ignore diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/goctl/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/goctl/injections.scm new file mode 100644 index 00000000..a53abee5 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/goctl/injections.scm @@ -0,0 +1,3 @@ +; Inject comment language for goctl +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/godot_resource/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/godot_resource/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/godot_resource/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/gotmpl/folds.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/gotmpl/folds.scm new file mode 100644 index 00000000..f3a22e90 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/gotmpl/folds.scm @@ -0,0 +1,8 @@ +[ + (if_action) + (range_action) + (block_action) + (with_action) + (define_action) + (comment) +] @fold diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/gotmpl/highlights.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/gotmpl/highlights.scm new file mode 100644 index 00000000..fd818945 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/gotmpl/highlights.scm @@ -0,0 +1,132 @@ +; Priorities of the highlight queries are raised, so that they overrule the +; often surrounding and overlapping highlights from the non-gotmpl injections. +; +; Identifiers +([ + (field) + (field_identifier) +] @variable.member + (#set! priority 110)) + +((variable) @variable + (#set! priority 110)) + +; Function calls +(function_call + function: (identifier) @function + (#set! priority 110)) + +(method_call + method: (selector_expression + field: (field_identifier) @function + (#set! priority 110))) + +; Builtin functions +(function_call + function: (identifier) @function.builtin + (#set! priority 110) + (#any-of? @function.builtin + "and" "call" "html" "index" "slice" "js" "len" "not" "or" "print" "printf" "println" "urlquery" + "eq" "ne" "lt" "ge" "gt" "ge")) + +; Operators +([ + "|" + ":=" +] @operator + (#set! priority 110)) + +; Delimiters +([ + "." + "," +] @punctuation.delimiter + (#set! priority 110)) + +([ + "{{" + "}}" + "{{-" + "-}}" + ")" + "(" +] @punctuation.bracket + (#set! priority 110)) + +; Actions +(if_action + [ + "if" + "else" + "else if" + "end" + ] @keyword.conditional + (#set! priority 110)) + +(range_action + [ + "range" + "else" + "end" + ] @keyword.repeat + (#set! priority 110)) + +(template_action + "template" @function.builtin + (#set! priority 110)) + +(block_action + [ + "block" + "end" + ] @keyword.directive + (#set! priority 110)) + +(define_action + [ + "define" + "end" + ] @keyword.directive.define + (#set! priority 110)) + +(with_action + [ + "with" + "else" + "end" + ] @keyword.conditional + (#set! priority 110)) + +; Literals +([ + (interpreted_string_literal) + (raw_string_literal) +] @string + (#set! priority 110)) + +((rune_literal) @string.special.symbol + (#set! priority 110)) + +((escape_sequence) @string.escape + (#set! priority 110)) + +([ + (int_literal) + (imaginary_literal) +] @number + (#set! priority 110)) + +((float_literal) @number.float + (#set! priority 110)) + +([ + (true) + (false) +] @boolean + (#set! priority 110)) + +((nil) @constant.builtin + (#set! priority 110)) + +((comment) @comment @spell + (#set! priority 110)) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/gotmpl/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/gotmpl/injections.scm new file mode 100644 index 00000000..3cfc2636 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/gotmpl/injections.scm @@ -0,0 +1,31 @@ +((comment) @injection.content + (#set! injection.language "comment")) + +; {{"put" | printf "%s%s" "out" | printf "%q"}} +(function_call + function: (identifier) @_function + arguments: (argument_list + . + (interpreted_string_literal) @injection.content) + (#eq? @_function "printf") + (#set! injection.language "printf")) + +; {{ js "var a = 1 + 1" }} +(function_call + function: (identifier) @_function + arguments: (argument_list + . + (interpreted_string_literal) @injection.content) + (#eq? @_function "js") + (#offset! @injection.content 0 1 0 -1) + (#set! injection.language "javascript")) + +; {{ html "

hello

" }} +(function_call + function: (identifier) @_function + arguments: (argument_list + . + (interpreted_string_literal) @injection.content) + (#eq? @_function "html") + (#offset! @injection.content 0 1 0 -1) + (#set! injection.language "html")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/gotmpl/locals.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/gotmpl/locals.scm new file mode 100644 index 00000000..528e9fab --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/gotmpl/locals.scm @@ -0,0 +1,12 @@ +[ + (if_action) + (range_action) + (block_action) + (with_action) + (define_action) +] @local.scope + +(variable_definition + variable: (variable) @local.definition.var) + +(variable) @local.reference diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/groovy/folds.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/groovy/folds.scm new file mode 100644 index 00000000..354861a6 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/groovy/folds.scm @@ -0,0 +1,6 @@ +[ + (argument_list) + (closure) + (list) + (map) +] @fold diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/groovy/indents.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/groovy/indents.scm new file mode 100644 index 00000000..ba3a2e84 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/groovy/indents.scm @@ -0,0 +1,35 @@ +[ + (closure) + (map) + (list) + (argument_list) + (parameter_list) + (for_parameters) +] @indent.begin + +; (function_definition "(" @indent.begin) +(closure + "}" @indent.end) + +(argument_list + ")" @indent.end) + +(for_parameters + ")" @indent.end) + +((for_loop + body: (_) @_body) @indent.begin + (#not-kind-eq? @_body "closure")) + +; TODO: while, try +(list + "]" @indent.end) + +(map + "]" @indent.end) + +[ + "}" + ")" + "]" +] @indent.branch diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/groovy/locals.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/groovy/locals.scm new file mode 100644 index 00000000..23cb5f0c --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/groovy/locals.scm @@ -0,0 +1,6 @@ +(function_definition) @local.scope + +(parameter + name: (identifier) @local.definition.parameter) + +(identifier) @local.reference diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/hack/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/hack/injections.scm new file mode 100644 index 00000000..655c29ec --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/hack/injections.scm @@ -0,0 +1,5 @@ +([ + (comment) + (heredoc) +] @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/haskell/locals.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/haskell/locals.scm new file mode 100644 index 00000000..7177f9de --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/haskell/locals.scm @@ -0,0 +1,9 @@ +(signature + name: (variable)) @local.definition + +(function + name: (variable)) @local.definition + +(pattern/variable) @local.definition + +(expression/variable) @local.reference diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/helm/folds.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/helm/folds.scm new file mode 100644 index 00000000..6ffb4b7d --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/helm/folds.scm @@ -0,0 +1 @@ +; inherits: gotmpl diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/helm/highlights.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/helm/highlights.scm new file mode 100644 index 00000000..f9af8a59 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/helm/highlights.scm @@ -0,0 +1,50 @@ +; inherits: gotmpl + +; For the reasoning concerning the priorities, see gotmpl highlights. +; +; Builtin functions +(function_call + function: (identifier) @function.builtin + (#set! priority 110) + (#any-of? @function.builtin + "and" "or" "not" "eq" "ne" "lt" "le" "gt" "ge" "default" "required" "empty" "fail" "coalesce" + "ternary" "print" "println" "printf" "trim" "trimAll" "trimPrefix" "trimSuffix" "lower" "upper" + "title" "untitle" "repeat" "substr" "nospace" "trunc" "abbrev" "abbrevboth" "initials" + "randAlphaNum" "randAlpha" "randNumeric" "randAscii" "wrap" "wrapWith" "contains" "hasPrefix" + "hasSuffix" "quote" "squote" "cat" "indent" "nindent" "replace" "plural" "snakecase" "camelcase" + "kebabcase" "swapcase" "shuffle" "toStrings" "toDecimal" "toJson" "mustToJson" "toPrettyJson" + "mustToPrettyJson" "toRawJson" "mustToRawJson" "fromYaml" "fromJson" "fromJsonArray" + "fromYamlArray" "toYaml" "regexMatch" "mustRegexMatch" "regexFindAll" "mustRegexFinDall" + "regexFind" "mustRegexFind" "regexReplaceAll" "mustRegexReplaceAll" "regexReplaceAllLiteral" + "mustRegexReplaceAllLiteral" "regexSplit" "mustRegexSplit" "sha1sum" "sha256sum" "adler32sum" + "htpasswd" "derivePassword" "genPrivateKey" "buildCustomCert" "genCA" "genSelfSignedCert" + "genSignedCert" "encryptAES" "decryptAES" "now" "ago" "date" "dateInZone" "duration" + "durationRound" "unixEpoch" "dateModify" "mustDateModify" "htmlDate" "htmlDateInZone" "toDate" + "mustToDate" "dict" "get" "set" "unset" "hasKey" "pluck" "dig" "merge" "mustMerge" + "mergeOverwrite" "mustMergeOverwrite" "keys" "pick" "omit" "values" "deepCopy" "mustDeepCopy" + "b64enc" "b64dec" "b32enc" "b32dec" "list" "first" "mustFirst" "rest" "mustRest" "last" + "mustLast" "initial" "mustInitial" "append" "mustAppend" "prepend" "mustPrepend" "concat" + "reverse" "mustReverse" "uniq" "mustUniq" "without" "mustWithout" "has" "mustHas" "compact" + "mustCompact" "index" "slice" "mustSlice" "until" "untilStep" "seq" "add" "add1" "sub" "div" + "mod" "mul" "max" "min" "len" "addf" "add1f" "subf" "divf" "mulf" "maxf" "minf" "floor" "ceil" + "round" "getHostByName" "base" "dir" "clean" "ext" "isAbs" "kindOf" "kindIs" "typeOf" "typeIs" + "typeIsLike" "deepequal" "semver" "semverCompare" "urlParse" "urlJoin" "urlquery" "lookup" + "include") + ) + +; {{ .Values.test }} +(selector_expression + operand: (field + name: (identifier) @constant.builtin + (#set! priority 110) + (#any-of? @constant.builtin + "Values" "Chart" "Release" "Capabilities" "Files" "Subcharts" "Template")) + (field_identifier)) + +; {{ $.Values.test }} +(selector_expression + operand: (variable) + field: (field_identifier) @constant.builtin + (#set! priority 110) + (#any-of? @constant.builtin + "Values" "Chart" "Release" "Capabilities" "Files" "Subcharts" "Template")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/helm/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/helm/injections.scm new file mode 100644 index 00000000..2adf8743 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/helm/injections.scm @@ -0,0 +1,36 @@ +; inherits: gotmpl + +((text) @injection.content + (#set! injection.language "yaml") + (#set! injection.combined)) + +; {{ regexFind "[a-zA-Z][1-9]" "abcd1234" }} +(function_call + function: (identifier) @_function + arguments: (argument_list + . + (interpreted_string_literal) @injection.content) + (#any-of? @_function + "regexMatch" "mustRegexMatch" "regexFindAll" "mustRegexFinDall" "regexFind" "mustRegexFind" + "regexReplaceAll" "mustRegexReplaceAll" "regexReplaceAllLiteral" "mustRegexReplaceAllLiteral" + "regexSplit" "mustRegexSplit") + (#offset! @injection.content 0 1 0 -1) + (#set! injection.language "regex")) + +(function_call + function: (identifier) @_function + arguments: (argument_list + . + (interpreted_string_literal) @injection.content) + (#any-of? @_function "fromYaml" "fromYamlArray") + (#offset! @injection.content 0 1 0 -1) + (#set! injection.language "yaml")) + +(function_call + function: (identifier) @_function + arguments: (argument_list + . + (interpreted_string_literal) @injection.content) + (#any-of? @_function "fromJson" "fromJsonArray") + (#offset! @injection.content 0 1 0 -1) + (#set! injection.language "json")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/helm/locals.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/helm/locals.scm new file mode 100644 index 00000000..6ffb4b7d --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/helm/locals.scm @@ -0,0 +1 @@ +; inherits: gotmpl diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/hlsplaylist/highlights.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/hlsplaylist/highlights.scm new file mode 100644 index 00000000..9852aed6 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/hlsplaylist/highlights.scm @@ -0,0 +1,41 @@ +; Comments +(comment) @comment @spell + +; General +(uri) @string.special.url + +(tag_name) @keyword + +(attribute_name) @attribute + +[ + (dec) + (hex) + (resolution) + (range) +] @number + +(float) @number.float + +(string) @string + +[ + (enum) + (date_time_msec) +] @string.special + +(title) @markup.heading + +; Literals +[ + "=" + "x" + "@" +] @operator + +[ + ":" + "," +] @punctuation.delimiter + +"#" @punctuation.special diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/hlsplaylist/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/hlsplaylist/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/hlsplaylist/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/hoon/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/hoon/injections.scm new file mode 100644 index 00000000..a004ba0b --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/hoon/injections.scm @@ -0,0 +1,2 @@ +((lineComment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/hyprlang/folds.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/hyprlang/folds.scm new file mode 100644 index 00000000..911798f5 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/hyprlang/folds.scm @@ -0,0 +1 @@ +(section) @fold diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/hyprlang/highlights.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/hyprlang/highlights.scm new file mode 100644 index 00000000..597edcbf --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/hyprlang/highlights.scm @@ -0,0 +1,58 @@ +(comment) @comment @spell + +[ + "source" + "exec" + "exec-once" +] @keyword + +(keyword + (name) @keyword) + +(assignment + (name) @property) + +(section + (name) @module) + +(section + device: (device_name) @type) + +(variable) @variable + +"$" @punctuation.special + +(boolean) @boolean + +(mod) @constant + +[ + "rgb" + "rgba" +] @function.builtin + +[ + (number) + (legacy_hex) + (angle) + (hex) + (display) + (position) +] @number + +"deg" @type + +"," @punctuation.delimiter + +[ + "(" + ")" + "{" + "}" +] @punctuation.bracket + +[ + "=" + "-" + "+" +] @operator diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/hyprlang/indents.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/hyprlang/indents.scm new file mode 100644 index 00000000..731ae9a6 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/hyprlang/indents.scm @@ -0,0 +1,6 @@ +(section) @indent.begin + +(section + "}" @indent.end) + +"}" @indent.branch diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/hyprlang/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/hyprlang/injections.scm new file mode 100644 index 00000000..d38d499b --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/hyprlang/injections.scm @@ -0,0 +1,6 @@ +((comment) @injection.content + (#set! injection.language "comment")) + +(exec + (string) @injection.content + (#set! injection.language "bash")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/idl/highlights.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/idl/highlights.scm new file mode 100644 index 00000000..7446b0d4 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/idl/highlights.scm @@ -0,0 +1,379 @@ +; https://neovim.io/doc/user/treesitter.html#treesitter-highlight-groups +(comment) @comment @spell + +[ + "enum" + "struct" + "union" + "bitmask" + "bitset" + "@annotation" + "exception" + "typedef" + "home" + "typeid" + "typeprefix" + (interface_kind) + (value_kind) + "component" + "porttype" + "connector" + "eventtype" + "valuetype" +] @keyword.type + +(import_dcl + "import" @keyword.directive) + +[ + "module" + "attribute" + "factory" + "manages" +] @keyword + +[ + "const" + "readonly" + "abstract" + "custom" + "supports" + "provides" + "uses" + "port" + "mirrorport" + "emits" + "publishes" + "consumes" + "primarykey" + "finder" +] @keyword.modifier + +[ + "switch" + "case" + "default" +] @keyword.conditional + +[ + "void" + (signed_short_int) + (signed_long_int) + (signed_longlong_int) + (unsigned_tiny_int) + (boolean_type) + (fixed_pt_const_type) + (octet_type) + (signed_tiny_int) + (unsigned_short_int) + (unsigned_long_int) + (unsigned_longlong_int) + (floating_pt_type) + (char_type) + (string_type) + (any_type) + (fixed_pt_type) + (sequence_type) + (map_type) + (object_type) + (value_base_type) + (wide_string_type) + (wide_char_type) +] @type.builtin + +(escape_sequence) @string.escape + +(scoped_name) @type + +(boolean_literal) @boolean + +(integer_literal) @number + +[ + (floating_pt_literal) + (fixed_pt_literal) +] @number.float + +(char_literal) @character + +(wide_character_literal) @character + +(string_literal) @string + +(wide_string_literal) @string + +[ + "(" + ")" + "[" + "]" + "<" + ">" + "{" + "}" +] @punctuation.bracket + +[ + "-" + "*" + "+" + "=" + "<<" + ">>" + "%" + "~" + "|" + "^" + "&" +] @operator + +[ + "::" + ";" + ":" + "," +] @punctuation.delimiter + +(readonly_attr_declarator + (simple_declarator) @variable.member) + +(attr_declarator + (simple_declarator) @variable.member) + +(annotation_appl + "@" @attribute) + +(annotation_appl_custom_body + (scoped_name) @attribute) + +(op_dcl + (identifier) @function.method) + +(type_declarator + (simple_type_spec) @type) + +(type_declarator + (any_declarators) @variable.member) + +(param_dcl + (simple_declarator) @variable.parameter) + +(raises_expr + "raises" @keyword.exception + (scoped_name + (identifier) @type)) + +(param_dcl + (param_attribute) @keyword.modifier) + +(preproc_call + directive: (preproc_directive) @keyword.directive + argument: (_) @constant) + +(module_dcl + (identifier) @module) + +(struct_def + (identifier) @type + parent: (scoped_name)? @type) + +(enum_dcl + (enumerator + (identifier) @constant)) + +(annotation_dcl + (identifier) @type) + +(struct_forward_dcl + (identifier) @type) + +(bitmask_dcl + (identifier) @type) + +(bitset_dcl + (identifier) @type + (scoped_name)* @type) + +(enum_dcl + (identifier) @type) + +(union_forward_dcl + (identifier) @type) + +(interface_forward_dcl + (identifier) @type) + +(interface_header + (identifier) @type) + +(interface_inheritance_spec + (interface_name) @type) + +(union_def + (identifier) @type + (switch_type_spec) @type) + +(except_dcl + (identifier) @type) + +(annotation_member_type) @type + +(bitfield + (bitfield_spec + "bitfield" @keyword.modifier + (positive_int_const) @number + (destination_type)? @type) + (identifier)* @variable.member) + +(bit_value) @constant + +(annotation_member + (annotation_member_type) @type + (simple_declarator) @property) + +(const_dcl + (const_type) @type + (identifier) @constant) + +(case_label + (const_expr) @constant) + +(simple_type_spec + (scoped_name + (identifier) @type)) + +(annotation_appl_param + (identifier) @attribute) + +(home_header + (identifier) @type) + +(factory_dcl + (identifier) @type) + +(factory_param_dcl + "in" @keyword.modifier) + +(op_oneway_dcl + "oneway" @keyword.modifier + (identifier) @function.method) + +(in_param_dcl + "in" @keyword.modifier) + +(context_expr + "context" @keyword.modifier) + +(get_excep_expr + "getraises" @keyword.exception) + +(set_excep_expr + "setraises" @keyword.exception) + +(value_header + (identifier) @type) + +(value_abs_def + (identifier) @type) + +(value_forward_dcl + (identifier) @type) + +(value_box_def + (identifier) @type) + +(provides_dcl + (interface_type) @type + (identifier) @variable.member) + +(uses_dcl + (identifier) @variable.member) + +(component_forward_dcl + (identifier) @type) + +(component_header + (identifier) @type) + +(porttype_forward_dcl + (identifier) @type) + +(porttype_def + (identifier) @type) + +(port_dcl + (identifier) @variable.member) + +(connector_header + (identifier) @type) + +(emits_dcl + (identifier) @variable.member) + +(publishes_dcl + (identifier) @variable.member) + +(consumes_dcl + (identifier) @variable.member) + +(event_forward_dcl + (identifier) @type) + +(event_header + (identifier) @type) + +(event_abs_def + (identifier) @type) + +(template_module_dcl + (identifier) @type) + +(formal_parameter + (formal_parameter_type) @type + (identifier) @variable.member) + +(init_param_dcl + "in" @keyword.modifier + (simple_declarator) @variable.parameter) + +(finder_dcl + (identifier) @function.method) + +(member + identifier: (declarators) @variable.member) + +(factory_param_dcl + (simple_declarator) @variable.parameter) + +(element_spec + (declarator) @variable.member) + +(preproc_include + (keyword_include) @type + path: (_) @string) + +(system_lib_string + "<" @string + ">" @string) + +(extend_annotation_appl + "//@" @attribute + (annotation_appl_custom_body)) + +(extend_annotation_appl + "//@" @attribute.builtin + (annotation_appl_builtin_body)) + +[ + (autoid_kind) + (extensibility_kind) + (verbatim_language) + (placement_kind) + (service_platform) + (try_construct_fail_action) + (data_representation_mask) +] @constant + +(anno_name) @attribute.builtin + +(range_kind) @attribute.builtin diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/idl/indents.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/idl/indents.scm new file mode 100644 index 00000000..2256fb70 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/idl/indents.scm @@ -0,0 +1,10 @@ +";" @indent.end + +"}" @indent.branch + +(definition) @indent.begin + +[ + (preproc_define) + (preproc_include) +] @indent.ignore diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/idl/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/idl/injections.scm new file mode 100644 index 00000000..e4a286e4 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/idl/injections.scm @@ -0,0 +1,8 @@ +((comment) @injection.content + (#lua-match? @injection.content "/[*\/][!*\/]" + "." + ":" +] @punctuation.delimiter + +[ + "!=" + "%" + "%=" + "&" + "&=" + "*" + "**" + "**=" + "*=" + "+" + "+=" + "-" + "-=" + "/" + "/=" + "<" + "<<" + "<<=" + "<=" + "<=" + "==" + ">" + ">=" + ">=" + ">>" + ">>=" + ">>>" + ">>>=" + "^" + "^=" + "|" + "|=" +] @operator + +; Keywords +[ + "as" + "for" + "impl" + "let" + "mut" + "ref" + "uni" + "move" + "recover" +] @keyword + +"fn" @keyword.function + +"import" @keyword.import + +[ + "and" + "or" +] @keyword.operator + +[ + "class" + "trait" +] @keyword.type + +[ + "extern" + (modifier) + (visibility) +] @keyword.modifier + +[ + "loop" + "while" + (break) + (next) +] @keyword.repeat + +"return" @keyword.return + +[ + "throw" + "try" +] @keyword.exception + +[ + "case" + "else" + "if" + "match" +] @keyword.conditional + +; Identifiers/variable references +(identifier) @variable + +; Comments +(line_comment) @comment @spell + +; Literals +(self) @variable.builtin + +(nil) @constant.builtin + +[ + (true) + (false) +] @boolean + +(integer) @number + +(float) @number.float + +(string) @string + +(escape_sequence) @string.escape + +(interpolation + "${" @punctuation.special + "}" @punctuation.special) @none + +(constant) @constant + +; Patterns +(integer_pattern) @number + +(string_pattern) @string + +(constant_pattern) @constant + +; Types +(generic_type + name: _ @type) + +(type) @type + +; Imports +(extern_import + path: _ @string) + +(import + (path + (identifier) @module)) + +; Classes +(class + name: _ @type) + +(define_field + name: _ @variable.member) + +; Traits +(trait + name: _ @type) + +; Implementations +(implement_trait + class: _ @type) + +(reopen_class + name: _ @type) + +(bound + name: _ @type) + +; Methods +(method + name: _ @function) + +(external_function + name: _ @function) + +(argument + name: _ @variable.parameter) + +(named_argument + name: _ @variable.parameter) + +(call + name: [ + (name) + (constant) + ] @function) + +(field) @variable.member diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/inko/indents.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/inko/indents.scm new file mode 100644 index 00000000..d2d9a572 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/inko/indents.scm @@ -0,0 +1,41 @@ +[ + (arguments) + (array) + (assign_field) + (assign_local) + (assign_receiver_field) + (binary) + (block) + (bounds) + (call) + (cast) + (class) + (class_pattern) + (compound_assign_field) + (compound_assign_local) + (compound_assign_receiver_field) + (define_constant) + (define_variable) + (grouped_expression) + (implement_trait) + (match) + (or_pattern) + (reopen_class) + (replace_field) + (replace_local) + (symbols) + (trait) + (tuple) + (tuple_pattern) + (type_arguments) +] @indent.begin + +[ + ")" + "]" + "}" +] @indent.end @indent.branch + +(line_comment) @indent.auto + +(string) @indent.auto diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/inko/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/inko/injections.scm new file mode 100644 index 00000000..36849c87 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/inko/injections.scm @@ -0,0 +1,2 @@ +((line_comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/inko/locals.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/inko/locals.scm new file mode 100644 index 00000000..09450f52 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/inko/locals.scm @@ -0,0 +1,57 @@ +[ + (method) + (block) +] @local.scope + +(method + name: _ @local.definition.method) + +(external_function + name: _ @local.definition.function) + +(argument + name: _ @local.definition.parameter) + +(define_variable + name: _ @local.definition.var) + +(define_constant + name: _ @local.definition.constant) + +(define_field + name: _ @local.definition.field) + +(named_argument + name: _ @local.definition.parameter) + +(class + modifier: (modifier + "enum") + name: _ @local.definition.enum) + +(class + modifier: (modifier + "enum") + body: (class_body + (define_case + name: _ @local.definition.field))) + +(class + name: _ @local.definition.type) + +(trait + name: _ @local.definition.type) + +(import + (symbols + [ + (identifier) + (constant) + (self) + ] @local.definition.import)) + +(identifier) @local.reference + +(field) @local.reference + +(constant) @local.reference diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/jsonnet/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/jsonnet/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/jsonnet/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/just/folds.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/just/folds.scm new file mode 100644 index 00000000..fea3a505 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/just/folds.scm @@ -0,0 +1,6 @@ +([ + (recipe) + (string) + (external_command) +] @fold + (#trim! @fold)) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/just/highlights.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/just/highlights.scm new file mode 100644 index 00000000..ae054c12 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/just/highlights.scm @@ -0,0 +1,133 @@ +[ + "true" + "false" +] @boolean + +[ + "if" + "else" +] @keyword.conditional + +[ + "alias" + "set" + "shell" + "mod" +] @keyword + +[ + "import" + "export" +] @keyword.import + +[ + ":=" + "?" + "==" + "!=" + "=~" + "@" + "=" + "$" + "*" + "+" + "&&" + "@-" + "-@" + "-" + "/" + ":" +] @operator + +[ + "(" + ")" + "[" + "]" + "{{" + "}}" + "{" + "}" +] @punctuation.bracket + +[ + "`" + "```" +] @punctuation.special + +"," @punctuation.delimiter + +(shebang) @keyword.directive + +(comment) @comment @spell + +[ + (string) + (external_command) +] @string + +(escape_sequence) @string.escape + +(module + (identifier) @module) + +(assignment + (identifier) @variable) + +(alias + (identifier) @variable) + +(value + (identifier) @variable) + +; Recipe definitions +(recipe_header + (identifier) @function) + +(dependency + (identifier) @function.call) + +(dependency_expression + (identifier) @function.call) + +(parameter + (identifier) @variable.parameter) + +(dependency_expression + (expression + (value + (identifier) @variable.parameter))) + +; Fallback highlighting for recipe bodies +(recipe + (recipe_body) @string + (#set! "priority" 90)) + +; Ref: https://just.systems/man/en/chapter_26.html +;(setting (identifier) @error) +(setting + (identifier) @constant.builtin + (#any-of? @constant.builtin + "allow-duplicate-recipes" "dotenv-filename" "dotenv-load" "dotenv-path" "export" "fallback" + "ignore-comments" "positional-arguments" "tempdir" "windows-powershell" "windows-shell")) + +; Ref: https://just.systems/man/en/chapter_32.html +;(recipe (attribute (identifier) @error)) +(recipe + (attribute + (identifier) @attribute) + (#any-of? @attribute + "confirm" "linux" "macos" "no-cd" "no-exit-message" "no-quiet" "private" "unix" "windows")) + +; Ref: https://just.systems/man/en/chapter_31.html +;(function_call (identifier) @error) +(function_call + (identifier) @function.call + (#any-of? @function.call + "arch" "num_cpus" "os" "os_family" "env_var" "env_var_or_default" "env" "invocation_directory" + "invocation_directory_native" "justfile" "justfile_directory" "just_executable" "quote" + "replace" "replace_regex" "trim" "trim_end" "trim_end_match" "trim_end_matches" "trim_start" + "trim_start_match" "trim_start_matches" "capitalize" "kebabcase" "lowercamelcase" "lowercase" + "shoutykebabcase" "shoutysnakecase" "snakecase" "titlecase" "uppercamelcase" "uppercase" + "absolute_path" "extension" "file_name" "file_stem" "parent_directory" "without_extension" + "clean" "join" "path_exists" "error" "sha256" "sha256_file" "uuid" "semver_matches")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/just/indents.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/just/indents.scm new file mode 100644 index 00000000..1402a0c0 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/just/indents.scm @@ -0,0 +1,14 @@ +; Source: https://github.com/IndianBoy42/tree-sitter-just/blob/main/queries/just/indents.scm +[ + (recipe) + (string) + (external_command) +] @indent.begin + +(string + [ + "'''" + "\"\"\"" + ] @indent.branch @indent.end) + +(comment) @indent.auto diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/just/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/just/injections.scm new file mode 100644 index 00000000..90db6b72 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/just/injections.scm @@ -0,0 +1,44 @@ +((comment) @injection.content + (#set! injection.language "comment")) + +; The right side of =~ literals +(regex_literal + (_) @injection.content + (#set! injection.language "regex")) + +; Default to bash highlighting for non-shebang recipes and commands +(recipe + (recipe_body + !shebang) @injection.content + (#set! injection.include-children) + (#set! injection.language "bash")) + +(external_command + (command_body) @injection.content + (#set! injection.language "bash")) + +; For shebang recipes, use the shebang executable name as the language by default +(recipe + (recipe_body + (shebang + (language) @injection.language)) @injection.content + (#not-any-of? @injection.language "python3" "nodejs" "node") + (#set! injection.include-children)) + +; python3 -> python +(recipe + (recipe_body + (shebang + (language) @_lang)) @injection.content + (#eq? @_lang "python3") + (#set! injection.language "python") + (#set! injection.include-children)) + +; node/nodejs -> javascript +(recipe + (recipe_body + (shebang + (language) @_lang)) @injection.content + (#any-of? @_lang "node" "nodejs") + (#set! injection.language "javascript") + (#set! injection.include-children)) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/just/locals.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/just/locals.scm new file mode 100644 index 00000000..80549f35 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/just/locals.scm @@ -0,0 +1,35 @@ +; Source: https://github.com/IndianBoy42/tree-sitter-just/blob/main/queries/just/locals.scm +; Scope +(recipe) @local.scope + +; Definitions +(alias + left: (identifier) @local.definition.var) + +(assignment + left: (identifier) @local.definition.var) + +(module + name: (identifier) @local.definition.namespace) + +(parameter + name: (identifier) @local.definition.var) + +(recipe_header + name: (identifier) @local.definition.function) + +; References +(alias + right: (identifier) @local.reference) + +(function_call + name: (identifier) @local.reference) + +(dependency + name: (identifier) @local.reference) + +(dependency_expression + name: (identifier) @local.reference) + +(value + (identifier) @local.reference) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/koto/folds.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/koto/folds.scm new file mode 100644 index 00000000..d20d0120 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/koto/folds.scm @@ -0,0 +1,9 @@ +[ + (assign) + (comment) + (function) + (list) + (map) + (tuple) + (string) +] @fold diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/koto/highlights.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/koto/highlights.scm new file mode 100644 index 00000000..021e504c --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/koto/highlights.scm @@ -0,0 +1,131 @@ +[ + "=" + "+" + "-" + "*" + "/" + "%" + "+=" + "-=" + "*=" + "/=" + "%=" + "==" + "!=" + "<" + ">" + "<=" + ">=" + ".." + "..=" +] @operator + +[ + "and" + "not" + "or" +] @keyword.operator + +[ + "return" + "yield" +] @keyword.return + +[ + "if" + "then" + "else" + "else if" + "match" + "switch" +] @keyword.conditional + +[ + (break) + (continue) + "for" + "in" + "loop" + "until" + "while" +] @keyword.repeat + +[ + "throw" + "try" + "catch" + "finally" +] @keyword.exception + +[ + "export" + "from" + "import" + "as" +] @keyword.import + +[ + "(" + ")" + "[" + "]" + "{" + "}" + "|" +] @punctuation.bracket + +(identifier) @variable + +(import_module + (identifier) @module) + +(import_item + (identifier) @module) + +(export + (identifier) @module) + +(chain + lookup: (identifier) @variable.member) + +(chain + start: (identifier) @function.call) + +[ + (true) + (false) +] @boolean + +(comment) @comment @spell + +(debug) @keyword.debug + +(string) @string + +(fill_char) @punctuation.delimiter + +(alignment) @operator + +(escape) @string.escape + +(null) @constant.builtin + +(number) @number + +(meta) @keyword.directive + +(meta + name: (identifier) @variable.member) + +(entry_inline + key: (identifier) @variable.member) + +(entry_block + key: (identifier) @variable.member) + +(self) @variable.builtin + +(arg + (identifier) @variable.parameter) + +(ellipsis) @variable.parameter diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/koto/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/koto/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/koto/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/koto/locals.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/koto/locals.scm new file mode 100644 index 00000000..c1848748 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/koto/locals.scm @@ -0,0 +1,28 @@ +; Scopes +(function + body: (_) @local.scope) + +; Definitions +(arg + (variable) @local.definition.parameter) + +(assign + (identifier) @local.definition.var) + +(for_args + (variable) @local.definition.var) + +(match_patterns + (variable) @local.definition.var) + +(import_item + (identifier) @local.definition.import) + +(entry_block + (identifier) @local.definition.field) + +(entry_inline + (identifier) @local.definition.field) + +; References +(identifier) @local.reference diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/lalrpop/folds.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/lalrpop/folds.scm new file mode 100644 index 00000000..beeed9ba --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/lalrpop/folds.scm @@ -0,0 +1,5 @@ +[ + (grammar_item) + (use)+ + (action) +] @fold diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/liquid/highlights.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/liquid/highlights.scm new file mode 100644 index 00000000..3f49f60a --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/liquid/highlights.scm @@ -0,0 +1,130 @@ +((comment) @comment @spell + (#set! priority 110)) + +(raw_statement + (raw_content) @spell + (#set! priority 110)) + +((identifier) @variable + (#set! priority 110)) + +((string) @string + (#set! priority 110)) + +((boolean) @boolean + (#set! priority 110)) + +((number) @number + (#set! priority 110)) + +(filter + name: (identifier) @function.call + (#set! priority 110)) + +([ + "as" + "assign" + "capture" + "decrement" + "echo" + "endcapture" + "endform" + "endjavascript" + "endraw" + "endschema" + "endstyle" + "form" + "increment" + "javascript" + "layout" + "liquid" + "raw" + "schema" + "style" + "with" +] @keyword + (#set! priority 110)) + +([ + "case" + "else" + "elsif" + "endcase" + "endif" + "endunless" + "if" + "unless" + "when" +] @keyword.conditional + (#set! priority 110)) + +([ + (break_statement) + (continue_statement) + "by" + "cycle" + "endfor" + "endpaginate" + "endtablerow" + "for" + "paginate" + "tablerow" +] @keyword.repeat + (#set! priority 110)) + +([ + "and" + "contains" + "in" + "or" +] @keyword.operator + (#set! priority 110)) + +([ + "{{" + "}}" + "{{-" + "-}}" + "{%" + "%}" + "{%-" + "-%}" +] @tag.delimiter + (#set! priority 110)) + +[ + "include" + "render" + "section" + "sections" +] @keyword.import + +[ + "|" + ":" + "=" + "+" + "-" + "*" + "/" + "%" + "^" + "==" + "<" + "<=" + "!=" + ">=" + ">" +] @operator + +[ + "]" + "[" + ")" + "(" +] @punctuation.bracket + +[ + "," + "." +] @punctuation.delimiter diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/liquid/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/liquid/injections.scm new file mode 100644 index 00000000..fa745765 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/liquid/injections.scm @@ -0,0 +1,22 @@ +((template_content) @injection.content + (#set! injection.language "html") + (#set! injection.combined)) + +; TODO we can switch to quantifiers once neovim 0.10 becomes stable +(javascript_statement + (js_content) @injection.content + (#set! injection.language "javascript") + (#set! injection.combined)) + +(schema_statement + (json_content) @injection.content + (#set! injection.language "json") + (#set! injection.combined)) + +(style_statement + (style_content) @injection.content + (#set! injection.language "css") + (#set! injection.combined)) + +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/liquidsoap/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/liquidsoap/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/liquidsoap/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/llvm/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/llvm/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/llvm/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/mermaid/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/mermaid/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/mermaid/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/meson/indents.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/meson/indents.scm new file mode 100644 index 00000000..3e27d920 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/meson/indents.scm @@ -0,0 +1,25 @@ +[ + (list) + (dictionaries) + (normal_command) + (if_condition) + (foreach_command) + (ternaryoperator) + (ERROR + "?") ; support partial ternary +] @indent.begin + +[ + ")" + "]" + "}" + (elseif_command) + (else_command) + "endif" + "endforeach" +] @indent.branch @indent.end + +(expression_statement + object: (_)) @indent.begin + +(comment) @indent.auto diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/mlir/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/mlir/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/mlir/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/muttrc/highlights.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/muttrc/highlights.scm new file mode 100644 index 00000000..27754cc5 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/muttrc/highlights.scm @@ -0,0 +1,55 @@ +; Comments +(comment) @comment @spell + +; General +(int) @number + +(string) @string + +[ + (map) + (object) + (composeobject) + (color) + (attribute) +] @string.special + +(quadoption) @boolean + +(path) @string.special.path + +(regex) @string.regexp + +(option) @variable + +(command_line_option) @variable.builtin + +((option) @variable.builtin + (#not-lua-match? @variable.builtin "^my_")) + +(command) @keyword + +(source_directive + (command) @keyword.import) + +(uri) @string.special.url + +(key_name) @constant.builtin + +(escape) @string.escape + +(function) @function.call + +; Literals +[ + "<" + ">" +] @punctuation.bracket + +"," @punctuation.delimiter + +[ + "&" + "?" + "*" +] @character.special diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/muttrc/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/muttrc/injections.scm new file mode 100644 index 00000000..9c16ad15 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/muttrc/injections.scm @@ -0,0 +1,8 @@ +((regex) @injection.content + (#set! injection.language "regex")) + +((shell) @injection.content + (#set! injection.language "bash")) + +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/nginx/folds.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/nginx/folds.scm new file mode 100644 index 00000000..fd7d2399 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/nginx/folds.scm @@ -0,0 +1 @@ +(block) @fold diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/nginx/highlights.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/nginx/highlights.scm new file mode 100644 index 00000000..58fcc0b1 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/nginx/highlights.scm @@ -0,0 +1,59 @@ +(comment) @comment @spell + +(value) @variable + +[ + (location_modifier) + "=" +] @operator + +[ + (keyword) + "location" +] @keyword + +[ + "if" + "map" +] @keyword.conditional + +(boolean) @boolean + +[ + (auto) + (constant) + (level) + (connection_method) + (var) + (condition) +] @variable.builtin + +[ + (file) + (mask) +] @string.special.path + +[ + (string_literal) + (quoted_string_literal) +] @string + +(directive + (variable + (keyword) @variable.parameter)) + +(location_route) @string.special + +";" @punctuation.delimiter + +[ + (numeric_literal) + (time) + (size) + (cpumask) +] @number + +[ + "{" + "}" +] @punctuation.bracket diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/nginx/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/nginx/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/nginx/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/nickel/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/nickel/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/nickel/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/ninja/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/ninja/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/ninja/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/nix/indents.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/nix/indents.scm new file mode 100644 index 00000000..757511b6 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/nix/indents.scm @@ -0,0 +1,75 @@ +[ + (list_expression) + (indented_string_expression) + (let_expression) + (if_expression) + (binding) + (parenthesized_expression) +] @indent.begin + +((attrset_expression) @indent.begin + (#not-has-parent? @indent.begin if_expression)) + +((rec_attrset_expression) @indent.begin + (#not-has-parent? @indent.begin if_expression)) + +((binding + "=" @indent.begin) + (#set! indent.immediate 1)) + +(binding + ";" @indent.end) + +(parenthesized_expression + ")" @indent.branch @indent.end) + +(attrset_expression + "}" @indent.branch @indent.end) + +(rec_attrset_expression + "}" @indent.branch @indent.end) + +(list_expression + "]" @indent.branch @indent.dedent) + +(indented_string_expression + "''" @indent.branch @indent.end .) + +[ + "else" + "in" +] @indent.branch + +(let_expression + body: (_) @indent.end @indent.dedent) + +(string_fragment) @indent.ignore @indent.auto + +(if_expression + condition: (_) @indent.auto) + +alternative: (if_expression) @indent.dedent + +(interpolation) @indent.begin @indent.dedent + +(interpolation + "}" @indent.end @indent.branch) + +(ERROR + "then" @indent.begin) + +(ERROR + "then" + . + (formals) @indent.begin) + +(ERROR + "then" + . + (formals + "}" @indent.branch @indent.end)) + +(ERROR + "let") @indent.begin + +(comment) @indent.ignore diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/php_only/folds.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/php_only/folds.scm new file mode 100644 index 00000000..43453b17 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/php_only/folds.scm @@ -0,0 +1,17 @@ +[ + (if_statement) + (switch_statement) + (while_statement) + (do_statement) + (for_statement) + (foreach_statement) + (try_statement) + (function_definition) + (class_declaration) + (interface_declaration) + (trait_declaration) + (enum_declaration) + (function_static_declaration) + (method_declaration) + (namespace_use_declaration)+ +] @fold diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/php_only/highlights.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/php_only/highlights.scm new file mode 100644 index 00000000..2b9e4ea9 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/php_only/highlights.scm @@ -0,0 +1,421 @@ +; Keywords +[ + "and" + "as" + "instanceof" + "or" + "xor" +] @keyword.operator + +[ + "fn" + "function" +] @keyword.function + +[ + "clone" + "declare" + "default" + "echo" + "enddeclare" + "extends" + "global" + "goto" + "implements" + "insteadof" + "print" + "new" + "unset" +] @keyword + +[ + "enum" + "class" + "interface" + "namespace" + "trait" +] @keyword.type + +[ + "abstract" + "const" + "final" + "private" + "protected" + "public" + "readonly" + (static_modifier) +] @keyword.modifier + +(function_static_declaration + "static" @keyword.modifier) + +[ + "return" + "exit" + "yield" +] @keyword.return + +(yield_expression + "from" @keyword.return) + +[ + "case" + "else" + "elseif" + "endif" + "endswitch" + "if" + "switch" + "match" + "??" +] @keyword.conditional + +[ + "break" + "continue" + "do" + "endfor" + "endforeach" + "endwhile" + "for" + "foreach" + "while" +] @keyword.repeat + +[ + "catch" + "finally" + "throw" + "try" +] @keyword.exception + +[ + "include_once" + "include" + "require_once" + "require" + "use" +] @keyword.import + +[ + "," + ";" + ":" + "\\" +] @punctuation.delimiter + +[ + (php_tag) + "?>" + "(" + ")" + "[" + "]" + "{" + "}" + "#[" +] @punctuation.bracket + +[ + "=" + "." + "-" + "*" + "/" + "+" + "%" + "**" + "~" + "|" + "^" + "&" + "<<" + ">>" + "<<<" + "->" + "?->" + "=>" + "<" + "<=" + ">=" + ">" + "<>" + "<=>" + "==" + "!=" + "===" + "!==" + "!" + "&&" + "||" + ".=" + "-=" + "+=" + "*=" + "/=" + "%=" + "**=" + "&=" + "|=" + "^=" + "<<=" + ">>=" + "??=" + "--" + "++" + "@" + "::" +] @operator + +; Variables +(variable_name) @variable + +; Constants +((name) @constant + (#lua-match? @constant "^_?[A-Z][A-Z%d_]*$")) + +((name) @constant.builtin + (#lua-match? @constant.builtin "^__[A-Z][A-Z%d_]+__$")) + +(const_declaration + (const_element + (name) @constant)) + +; Types +[ + (primitive_type) + (cast_type) + (bottom_type) +] @type.builtin + +(named_type + [ + (name) @type + (qualified_name + (name) @type) + ]) + +(named_type + (name) @type.builtin + (#any-of? @type.builtin "static" "self")) + +(class_declaration + name: (name) @type) + +(base_clause + [ + (name) @type + (qualified_name + (name) @type) + ]) + +(enum_declaration + name: (name) @type) + +(interface_declaration + name: (name) @type) + +(namespace_use_clause + [ + (name) @type + (qualified_name + (name) @type) + ]) + +(namespace_aliasing_clause + (name) @type.definition) + +(class_interface_clause + [ + (name) @type + (qualified_name + (name) @type) + ]) + +(scoped_call_expression + scope: [ + (name) @type + (qualified_name + (name) @type) + ]) + +(class_constant_access_expression + . + [ + (name) @type + (qualified_name + (name) @type) + ] + (name) @constant) + +(scoped_property_access_expression + scope: [ + (name) @type + (qualified_name + (name) @type) + ]) + +(scoped_property_access_expression + name: (variable_name) @variable.member) + +(trait_declaration + name: (name) @type) + +(use_declaration + (name) @type) + +(binary_expression + operator: "instanceof" + right: [ + (name) @type + (qualified_name + (name) @type) + ]) + +; Functions, methods, constructors +(array_creation_expression + "array" @function.builtin) + +(list_literal + "list" @function.builtin) + +(exit_statement + "exit" @function.builtin + "(") + +(method_declaration + name: (name) @function.method) + +(function_call_expression + function: (qualified_name + (name) @function.call)) + +(function_call_expression + (name) @function.call) + +(scoped_call_expression + name: (name) @function.call) + +(member_call_expression + name: (name) @function.method.call) + +(function_definition + name: (name) @function) + +(nullsafe_member_call_expression + name: (name) @function.method) + +(use_instead_of_clause + (class_constant_access_expression + (_) + (name) @function.method) + (name) @type) + +(use_as_clause + (class_constant_access_expression + (_) + (name) @function.method)* + (name) @function.method) + +(method_declaration + name: (name) @constructor + (#eq? @constructor "__construct")) + +(object_creation_expression + [ + (name) @constructor + (qualified_name + (name) @constructor) + ]) + +; Parameters +(variadic_parameter + "..." @operator + name: (variable_name) @variable.parameter) + +(simple_parameter + name: (variable_name) @variable.parameter) + +(argument + (name) @variable.parameter) + +; Member +(property_element + (variable_name) @property) + +(member_access_expression + name: (variable_name + (name)) @variable.member) + +(member_access_expression + name: (name) @variable.member) + +(nullsafe_member_access_expression + name: (variable_name + (name)) @variable.member) + +(nullsafe_member_access_expression + name: (name) @variable.member) + +; Variables +(relative_scope) @variable.builtin + +((variable_name) @variable.builtin + (#eq? @variable.builtin "$this")) + +; Namespace +(namespace_definition + name: (namespace_name + (name) @module)) + +(namespace_name_as_prefix + (namespace_name + (name) @module)) + +; Attributes +(attribute_list) @attribute + +; Conditions ( ? : ) +(conditional_expression + "?" @keyword.conditional.ternary + ":" @keyword.conditional.ternary) + +; Directives +(declare_directive + [ + "strict_types" + "ticks" + "encoding" + ] @variable.parameter) + +; Basic tokens +[ + (string) + (encapsed_string) + (heredoc_body) + (nowdoc_body) + (shell_command_expression) ; backtick operator: `ls -la` +] @string + +(escape_sequence) @string.escape + +[ + (heredoc_start) + (heredoc_end) +] @label + +(nowdoc + "'" @label) + +(boolean) @boolean + +(null) @constant.builtin + +(integer) @number + +(float) @number.float + +(comment) @comment @spell + +(named_label_statement) @label diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/php_only/indents.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/php_only/indents.scm new file mode 100644 index 00000000..fef02675 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/php_only/indents.scm @@ -0,0 +1,64 @@ +[ + (array_creation_expression) + (parenthesized_expression) + (compound_statement) + (declaration_list) + (member_call_expression) + (binary_expression) + (return_statement) + (arguments) + (formal_parameters) + (enum_declaration_list) + (switch_block) + (match_block) + (case_statement) + (default_statement) +] @indent.begin + +(return_statement + [ + (object_creation_expression) + (anonymous_function_creation_expression) + (arrow_function) + (match_expression) + ]) @indent.dedent + +[ + ")" + "}" + "]" +] @indent.branch + +(comment) @indent.auto + +(arguments + ")" @indent.end) + +(formal_parameters + ")" @indent.end) + +(compound_statement + "}" @indent.end) + +(declaration_list + "}" @indent.end) + +(enum_declaration_list + "}" @indent.end) + +(return_statement + ";" @indent.end) + +(ERROR + "(" @indent.align + . + (_) + (#set! indent.open_delimiter "(") + (#set! indent.close_delimiter ")")) + +(ERROR + "[" @indent.align + . + (_) + (#set! indent.open_delimiter "[") + (#set! indent.close_delimiter "]")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/php_only/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/php_only/injections.scm new file mode 100644 index 00000000..36817764 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/php_only/injections.scm @@ -0,0 +1,43 @@ +((comment) @injection.content + (#set! injection.language "phpdoc")) + +(heredoc + (heredoc_body) @injection.content + (heredoc_end) @injection.language + (#set! injection.include-children) + (#downcase! @injection.language)) + +(nowdoc + (nowdoc_body) @injection.content + (heredoc_end) @injection.language + (#set! injection.include-children) + (#downcase! @injection.language)) + +; regex +((function_call_expression + function: (_) @_preg_func_identifier + arguments: (arguments + . + (argument + (_ + (string_content) @injection.content)))) + (#set! injection.language "regex") + (#lua-match? @_preg_func_identifier "^preg_")) + +; bash +((function_call_expression + function: (_) @_shell_func_identifier + arguments: (arguments + . + (argument + (_ + (string_content) @injection.content)))) + (#set! injection.language "bash") + (#any-of? @_shell_func_identifier + "shell_exec" "escapeshellarg" "escapeshellcmd" "exec" "passthru" "proc_open" "shell_exec" + "system")) + +(expression_statement + (shell_command_expression + (string_content) @injection.content) + (#set! injection.language "bash")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/php_only/locals.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/php_only/locals.scm new file mode 100644 index 00000000..aff2b3da --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/php_only/locals.scm @@ -0,0 +1,84 @@ +; Scopes +;------- +((class_declaration + name: (name) @local.definition.type) @local.scope + (#set! definition.type.scope "parent")) + +((method_declaration + name: (name) @local.definition.method) @local.scope + (#set! definition.method.scope "parent")) + +((function_definition + name: (name) @local.definition.function) @local.scope + (#set! definition.function.scope "parent")) + +(anonymous_function_creation_expression + (anonymous_function_use_clause + (variable_name + (name) @local.definition.var))) @local.scope + +; Definitions +;------------ +(simple_parameter + (variable_name + (name) @local.definition.var)) + +(foreach_statement + (pair + (variable_name + (name) @local.definition.var))) + +(foreach_statement + (variable_name + (name) @local.reference + (#set! reference.kind "var")) + (variable_name + (name) @local.definition.var)) + +(property_declaration + (property_element + (variable_name + (name) @local.definition.field))) + +(namespace_use_clause + (qualified_name + (name) @local.definition.type)) + +; References +;------------ +(named_type + (name) @local.reference + (#set! reference.kind "type")) + +(named_type + (qualified_name) @local.reference + (#set! reference.kind "type")) + +(variable_name + (name) @local.reference + (#set! reference.kind "var")) + +(member_access_expression + name: (name) @local.reference + (#set! reference.kind "field")) + +(member_call_expression + name: (name) @local.reference + (#set! reference.kind "method")) + +(function_call_expression + function: (qualified_name + (name) @local.reference + (#set! reference.kind "function"))) + +(object_creation_expression + (qualified_name + (name) @local.reference + (#set! reference.kind "type"))) + +(scoped_call_expression + scope: (qualified_name + (name) @local.reference + (#set! reference.kind "type")) + name: (name) @local.reference + (#set! reference.kind "method")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/printf/highlights.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/printf/highlights.scm new file mode 100644 index 00000000..db5ef9a3 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/printf/highlights.scm @@ -0,0 +1 @@ +(format) @character diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/prisma/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/prisma/injections.scm new file mode 100644 index 00000000..ac427dd6 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/prisma/injections.scm @@ -0,0 +1,5 @@ +([ + (comment) + (developer_comment) +] @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/problog/folds.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/problog/folds.scm new file mode 100644 index 00000000..76871820 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/problog/folds.scm @@ -0,0 +1 @@ +; inherits: prolog diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/problog/highlights.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/problog/highlights.scm new file mode 100644 index 00000000..de171566 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/problog/highlights.scm @@ -0,0 +1,4 @@ +; inherits: prolog + +(probability_label + _ @attribute) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/problog/indents.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/problog/indents.scm new file mode 100644 index 00000000..76871820 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/problog/indents.scm @@ -0,0 +1 @@ +; inherits: prolog diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/problog/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/problog/injections.scm new file mode 100644 index 00000000..76871820 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/problog/injections.scm @@ -0,0 +1 @@ +; inherits: prolog diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/prolog/folds.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/prolog/folds.scm new file mode 100644 index 00000000..70a40151 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/prolog/folds.scm @@ -0,0 +1,6 @@ +[ + (directive_term) + (clause_term) + (arg_list) + (list_notation) +] @fold diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/prolog/highlights.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/prolog/highlights.scm new file mode 100644 index 00000000..fc89b6fe --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/prolog/highlights.scm @@ -0,0 +1,43 @@ +(comment) @comment @spell + +(atom) @constant + +((atom) @boolean + (#any-of? @boolean "true" "false")) + +(functional_notation + function: (atom) @function.call) + +(integer) @number + +(float_number) @number.float + +(directive_head) @operator + +(operator_notation + operator: _ @operator) + +[ + (open) + (open_ct) + (close) + (open_list) + "|" + (close_list) + (open_curly) + (close_curly) +] @punctuation.bracket + +[ + (arg_list_separator) + (comma) + (end) + (list_notation_separator) +] @punctuation.delimiter + +(operator_notation + operator: (semicolon) @punctuation.delimiter) + +(double_quoted_list_notation) @string + +(variable_term) @variable diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/prolog/indents.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/prolog/indents.scm new file mode 100644 index 00000000..a7f9b038 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/prolog/indents.scm @@ -0,0 +1,16 @@ +(directive_term) @indent.zero + +(clause_term) @indent.zero + +(functional_notation + (atom) + (open_ct) @indent.begin + (close) @indent.end) + +(list_notation + (open_list) @indent.begin + (close_list) @indent.end) + +(curly_bracketed_notation + (open_curly) @indent.begin + (close_curly) @indent.end) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/prolog/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/prolog/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/prolog/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/proto/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/proto/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/proto/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/qmljs/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/qmljs/injections.scm new file mode 100644 index 00000000..04328f09 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/qmljs/injections.scm @@ -0,0 +1 @@ +; inherits: ecma diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/ralph/highlights.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/ralph/highlights.scm new file mode 100644 index 00000000..e56ffa5a --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/ralph/highlights.scm @@ -0,0 +1,137 @@ +(type_identifier) @type + +(identifier) @variable + +[ + (primitive_type) + (alph_token_id) +] @type.builtin + +(var_declaration) @variable + +(struct_field + (identifier) @variable.member) + +(arg_def + (identifier) @variable.parameter) + +(event_field + (identifier) @variable.parameter) + +(struct_constructor_field + (identifier) @variable.parameter) + +[ + (hex_num) + (integer) + (typed_num) +] @number + +[ + (bool) + (bytes) + (address) +] @constant.builtin + +(func_id + [ + (identifier) + "!" + ] @function) + +(annotation + [ + "@" + (identifier) + ] @attribute) + +(map_def + (identifier) @variable.parameter) + +"fn" @keyword.function + +[ + "Contract" + "TxScript" + "Interface" + "AssetScript" + "struct" + "enum" + "event" + "mapping" +] @keyword.type + +[ + "pub" + "Abstract" + (mutable) +] @keyword.modifier + +[ + "while" + "for" +] @keyword.repeat + +"return" @keyword.return + +[ + "if" + "else" +] @keyword.conditional + +[ + "const" + "let" + "emit" + "extends" + "embeds" + "implements" +] @keyword + +[ + "(" + ")" + "[" + "]" + "{" + "}" +] @punctuation.bracket + +[ + "." + "," + ":" + ";" +] @punctuation.delimiter + +[ + "=" + "->" + (op_byte_vec_add) + (op_add) + (op_sub) + (op_mul) + (op_exp) + (op_mod_exp) + (op_div) + (op_mod) + (op_mod_add) + (op_mod_sub) + (op_mod_mul) + (op_shl) + (op_shr) + (op_bit_and) + (op_xor) + (op_bit_or) + (op_eq) + (op_ne) + (op_lt) + (op_le) + (op_gt) + (op_ge) + (op_and) + (op_or) + (op_not) +] @operator + +(line_comment) @comment @spell diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/ralph/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/ralph/injections.scm new file mode 100644 index 00000000..36849c87 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/ralph/injections.scm @@ -0,0 +1,2 @@ +((line_comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/rasi/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/rasi/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/rasi/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/readline/folds.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/readline/folds.scm new file mode 100644 index 00000000..57c9bc7d --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/readline/folds.scm @@ -0,0 +1 @@ +(conditional_construct) @fold diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/readline/highlights.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/readline/highlights.scm new file mode 100644 index 00000000..570e55b3 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/readline/highlights.scm @@ -0,0 +1,69 @@ +(comment) @comment @spell + +"set" @keyword + +[ + "$if" + "$else" + "$endif" +] @keyword.conditional + +"$include" @keyword.import + +[ + "=" + "==" + "!=" + ">=" + "<=" + ">" + "<" +] @operator + +[ + ":" + "-" +] @punctuation.delimiter + +[ + (application_name) + (keyname) + (keyseq) + (macro) + (string_value) + (term_name) +] @string + +(file_path) @string.special.path + +(escape_sequence) @string.escape + +(symbolic_character_name) @character.special + +(key_literal) @character + +(function_name) @function + +[ + (bell_variable) + (bool_variable) + (edit_mode_variable) + (keymap_variable) + (number_variable) + (string_variable) +] @variable.builtin + +[ + (bell_value) + (edit_mode_value) + (keymap_value) + "version" + "term" + "mode" +] @constant.builtin + +(number_value) @number + +(version_number) @number.float + +(bool_value) @boolean diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/readline/indents.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/readline/indents.scm new file mode 100644 index 00000000..d7dc6742 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/readline/indents.scm @@ -0,0 +1,11 @@ +(conditional_construct) @indent.begin + +(ERROR + "$if") @indent.begin + +[ + "$else" + "$endif" +] @indent.branch + +"$endif" @indent.end diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/readline/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/readline/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/readline/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/robot/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/robot/injections.scm new file mode 100644 index 00000000..56e37005 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/robot/injections.scm @@ -0,0 +1,5 @@ +([ + (comment) + (extra_text) +] @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/robots/highlights.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/robots/highlights.scm new file mode 100644 index 00000000..a2c55c74 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/robots/highlights.scm @@ -0,0 +1,7 @@ +(comment) @comment @spell + +(directive) @property + +(value) @string + +":" @punctuation.delimiter diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/robots/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/robots/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/robots/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/roc/highlights.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/roc/highlights.scm new file mode 100644 index 00000000..89b42a6a --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/roc/highlights.scm @@ -0,0 +1,175 @@ +;---Most generic types--- +(module) @module + +(identifier) @variable + +(concrete_type) @type + +;---annotations---- +(annotation_type_def + (annotation_pre_colon + (identifier) @type)) + +(annotation_type_def + (annotation_pre_colon + (identifier) @function) + (function_type)) + +;----decleration types---- +(value_declaration + (decl_left + (identifier_pattern + (identifier) @variable.parameter))) + +;---records---- +(field_name) @variable.member + +(record_field_pattern + (_ + (identifier) @variable)) + +;matches the second identifier and all subsequent ones +(field_access_expr + (identifier) @variable.member) + +;----comments---- +(line_comment) @comment @spell + +(doc_comment) @comment.documentation @spell + +;-----Punctuation---- +[ + "?" + (arrow) + (back_arrow) + (backslash) + "," + ":" +] @punctuation.delimiter + +[ + "(" + ")" + "{" + "}" + "[" + "]" +] @punctuation.bracket + +[ + "|" + "&" + (operator) +] @operator + +(wildcard_pattern) @constant.builtin + +[ + "if" + "then" + "else" +] @keyword.conditional + +[ + (implements) + (when) + (is) + "as" + (to) +] @keyword + +;----headers----- +[ + "app" + "expect" + "module" + "package" + "import" +] @keyword + +[ + (import_as) + "imports" +] @keyword.import + +(backpassing_expr + assignee: (identifier_pattern + (identifier) @variable.parameter)) + +(value_declaration + (decl_left + (identifier_pattern + (identifier) @function)) + (expr_body + (anon_fun_expr))) + +;----tags---- +(tags_type + (apply_type + (concrete_type) @constructor)) + +[ + (tag) + (opaque_tag) +] @constructor + +;-----builtins---- +(variable_expr + (module) @module + (identifier) @boolean + (#any-of? @boolean "true" "false") + (#eq? @module "Bool")) + +"dbg" @keyword.debug + +;----function invocations ---- +(function_call_expr + caller: (variable_expr + (identifier) @function.call)) + +(function_call_expr + caller: (field_access_expr + (identifier) @function.call .)) + +(bin_op_expr + (operator + "|>") @operator + (variable_expr + (identifier) @function)) + +;----function arguments---- +(argument_patterns + (identifier_pattern + (identifier) @variable.parameter)) + +(argument_patterns + (_ + (identifier_pattern + (identifier) @variable.parameter))) + +(argument_patterns + (_ + (_ + (identifier_pattern + (identifier) @variable.parameter)))) + +;-----consts----- +[ + (int) + (uint) + (iint) + (xint) + (natural) +] @number + +[ + (decimal) + (float) +] @number.float + +[ + (string) + (multiline_string) +] @string + +(char) @character diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/roc/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/roc/injections.scm new file mode 100644 index 00000000..32647835 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/roc/injections.scm @@ -0,0 +1,5 @@ +([ + (line_comment) + (doc_comment) +] @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/roc/locals.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/roc/locals.scm new file mode 100644 index 00000000..134fe011 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/roc/locals.scm @@ -0,0 +1,41 @@ +(expr_body) @local.scope + +(argument_patterns + (identifier_pattern + (identifier) @local.definition)) + +; (argument_patterns(long_identifier)@local.definition) +(exposes_list + (ident) @local.reference) + +(import_expr + (as) + (module) @local.definition) + +(opaque_type_def + (apply_type + (concrete_type) @local.definition.type)) + +(alias_type_def + (apply_type + (concrete_type) @local.definition.type)) + +(value_declaration + (decl_left + (identifier_pattern + (identifier) @local.definition.function)) + (expr_body + (anon_fun_expr))) + +(value_declaration + (decl_left + (identifier_pattern + (identifier) @local.definition.var))) + +(identifier_pattern + (identifier) @local.definition) + +(identifier) @local.reference + +(tag_expr + (tag)) @local.reference diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/scss/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/scss/injections.scm new file mode 100644 index 00000000..c3a252a7 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/scss/injections.scm @@ -0,0 +1,2 @@ +((single_line_comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/slint/folds.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/slint/folds.scm new file mode 100644 index 00000000..4c5b1307 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/slint/folds.scm @@ -0,0 +1,11 @@ +[ + (anon_struct_block) + (block) + (callback_event) + (component) + (enum_block) + (function_definition) + (global_definition) + (imperative_block) + (struct_block) +] @fold diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/slint/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/slint/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/slint/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/slint/locals.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/slint/locals.scm new file mode 100644 index 00000000..7e895a6b --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/slint/locals.scm @@ -0,0 +1,117 @@ +[ + (anon_struct_block) + (block) + (callback_event) + (component) + (enum_block) + (function_definition) + (global_definition) + (imperative_block) + (struct_block) +] @local.scope + +(anon_struct_block + (_) @local.definition.field) + +(argument) @local.definition.var + +(callback + name: (_) @local.definition.field) + +(component_definition + name: (_) @local.definition.type) + +(enum_definition + name: (_) @local.definition.type) + +(enum_block + (_) @local.definition.field) + +(function_definition + name: (_) @local.definition.function) + +(global_definition + name: (_) @local.definition.type) + +(import_type + import_name: (_) + !local_name) @local.definition.import + +(import_type + import_name: (_) + local_name: (_) @local.definition.import) + +(property + name: (_) @local.definition.field) + +(struct_block + (_) @local.definition.field) + +(struct_definition + name: (_) @local.definition.type) + +(typed_identifier + name: (_) @local.definition.var) + +(argument + (_) @local.reference) + +(binary_expression + left: (_) @local.reference) + +(binary_expression + right: (_) @local.reference) + +(callback_event + name: (_) @local.reference) + +(component + type: (_) @local.reference + (#set! reference.kind "type")) + +(component_definition + base_type: (_) @local.reference + (#set! reference.kind "type")) + +(function_call + name: (_) @local.reference) + +(index_op + index: (_) @local.reference) + +(index_op + left: (_) @local.reference) + +(member_access + base: (_) @local.reference) + +(member_access + member: (_) @local.reference) + +(parens_op + left: (_) @local.reference) + +(property + type: (_) @local.reference + (#set! reference.kind "type")) + +(property_assignment + property: (_) @local.reference + (#set! reference.kind "field")) + +(property_assignment + value: (_) @local.reference) + +(struct_block + (_) @local.reference + (#set! reference.kind "type")) + +(tr + percent: (_) @local.reference) + +(typed_identifier + type: (_) @local.reference + (#set! reference.kind "type")) + +(unary_expression + left: (_) @local.reference) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/smithy/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/smithy/injections.scm new file mode 100644 index 00000000..cb85ecaa --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/smithy/injections.scm @@ -0,0 +1,5 @@ +([ + (comment) + (documentation_comment) +] @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/snakemake/indents.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/snakemake/indents.scm new file mode 100644 index 00000000..a4648eff --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/snakemake/indents.scm @@ -0,0 +1,16 @@ +; inherits: python + +((rule_definition) @indent.begin + (#set! indent.immediate 1)) + +((checkpoint_definition) @indent.begin + (#set! indent.immediate 1)) + +((rule_inheritance) @indent.begin + (#set! indent.immediate 1)) + +((module_definition) @indent.begin + (#set! indent.immediate 1)) + +((directive) @indent.begin + (#set! indent.immediate 1)) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/solidity/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/solidity/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/solidity/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/sourcepawn/highlights.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/sourcepawn/highlights.scm new file mode 100644 index 00000000..21cbb973 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/sourcepawn/highlights.scm @@ -0,0 +1,303 @@ +(identifier) @variable + +; Assume all-caps names are constants +((identifier) @constant + (#lua-match? @constant "^[A-Z][A-Z0-9_]+$")) + +; Function definitions/declarations +(function_definition + name: (identifier) @function) + +(function_declaration + name: (identifier) @function) + +(parameter_declaration + name: (identifier) @variable.parameter) + +; Methods / Properties +(field_access + field: (identifier) @variable.member) + +; Function calls +(call_expression + function: (identifier) @function) + +(call_expression + function: (field_access + field: (identifier) @function.method.call)) + +; Types +[ + (builtin_type) + (any_type) +] @type.builtin + +(type + (identifier) @type) + +; Variables +(variable_declaration + name: (identifier) @variable) + +(old_variable_declaration + name: (identifier) @variable) + +[ + (system_lib_string) + (string_literal) +] @string + +; Preprocessor +[ + "#include" + "#tryinclude" +] @keyword.import + +[ + (preproc_assert) + (preproc_pragma) + (preproc_if) + (preproc_else) + (preproc_elseif) + (preproc_endinput) + (preproc_endif) + (preproc_error) + (preproc_warning) +] @keyword.directive + +[ + "#define" + "#undef" +] @keyword.directive.define + +(macro_param) @variable.parameter + +(preproc_define + name: (identifier) @constant) + +(preproc_macro + name: (identifier) @function.macro) + +(preproc_undefine + name: (identifier) @constant) + +; Expressions +(view_as) @function.builtin + +(sizeof_expression) @function.macro + +[ + (this) + ; https://github.com/alliedmodders/sourcemod/blob/5c0ae11a4619e9cba93478683c7737253ea93ba6/plugins/include/handles.inc#L78 + (hardcoded_symbol) +] @variable.builtin + +; Comments +(comment) @comment @spell + +; General +(parameter_declaration + defaultValue: (identifier) @constant) + +[ + (fixed_dimension) + (dimension) +] @punctuation.bracket + +(escape_sequence) @string.escape + +; Constructors +(new_expression + class: (identifier) @type + arguments: (call_arguments) @constructor) + +; Methodmaps +(methodmap + name: (identifier) @type) + +(methodmap + inherits: (identifier) @type) + +(methodmap_method_constructor + name: (identifier) @constructor) + +(methodmap_method + name: (identifier) @function.method) + +(methodmap_native + name: (identifier) @function.method) + +(methodmap_property + name: (identifier) @property) + +[ + (methodmap_property_getter) + (methodmap_property_setter) +] @function.method + +; Enum structs +(enum_struct + name: (identifier) @type) + +(enum_struct_field + name: (identifier) @variable.member) + +(enum_struct_method + name: (identifier) @function.method) + +; Non-type Keywords +(variable_storage_class) @keyword.modifier + +(visibility) @keyword.modifier + +(assertion) @function.builtin + +(function_declaration_kind) @keyword.function + +[ + "new" + "delete" +] @keyword.operator + +[ + "." + "," +] @punctuation.delimiter + +; Operators +[ + "+" + "-" + "*" + "/" + "%" + "++" + "--" + "=" + "+=" + "-=" + "*=" + "/=" + "==" + "!=" + "<" + ">" + ">=" + "<=" + "!" + "&&" + "||" + "&" + "|" + "~" + "^" + "<<" + ">>" + ">>>" + "|=" + "&=" + "^=" + "~=" + "<<=" + ">>=" + "..." + (ignore_argument) + (scope_access) + (rest_operator) +] @operator + +; public Plugin myinfo +(struct_declaration + name: (identifier) @variable.builtin) + +; Typedef/Typedef +(typedef + name: (identifier) @type) + +(functag + name: (identifier) @type) + +(funcenum + name: (identifier) @type) + +(typeset + name: (identifier) @type) + +(typedef_expression) @keyword.function ; function void(int x) + +; Enums +(enum + name: (identifier) @type) + +(enum_entry + name: (identifier) @constant) + +(enum_entry + value: (_) @constant) + +; Literals +(int_literal) @number + +(char_literal) @character + +(float_literal) @number.float + +(string_literal) @string + +(array_literal) @punctuation.bracket + +(bool_literal) @boolean + +(null) @constant.builtin + +((identifier) @constant.builtin + (#eq? @constant.builtin "INVALID_HANDLE")) + +; Keywords +"return" @keyword.return + +[ + "if" + "else" + "case" + "default" + "switch" +] @keyword.conditional + +[ + "do" + "while" + "for" + "continue" + "break" +] @keyword.repeat + +[ + "__nullable__" + "defined" + "delete" + "functag" + "get" + "methodmap" + "new" + "property" + "public" + "set" + "typeset" + "void" +] @keyword + +[ + "enum" + "funcenum" + "struct" + "typedef" +] @keyword.type + +[ + "const" + "native" + "static" + "stock" + "forward" +] @keyword.modifier diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/sourcepawn/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/sourcepawn/injections.scm new file mode 100644 index 00000000..c579ffad --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/sourcepawn/injections.scm @@ -0,0 +1,3 @@ +; Parse JSDoc annotations in comments +((comment) @injection.content + (#set! injection.language "jsdoc")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/sourcepawn/locals.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/sourcepawn/locals.scm new file mode 100644 index 00000000..39d6fb51 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/sourcepawn/locals.scm @@ -0,0 +1,19 @@ +[ + (function_definition) + (alias_declaration) + (enum_struct_method) + (methodmap_method) + (methodmap_method_constructor) + (methodmap_method_destructor) + (methodmap_property_method) +] @local.scope + +; Definitions +(variable_declaration + name: (identifier) @local.definition) + +(old_variable_declaration + name: (identifier) @local.definition) + +; References +(identifier) @local.reference diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/svelte/locals.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/svelte/locals.scm new file mode 100644 index 00000000..1f2129cf --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/svelte/locals.scm @@ -0,0 +1 @@ +; inherits: html diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/swift/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/swift/injections.scm new file mode 100644 index 00000000..19aae904 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/swift/injections.scm @@ -0,0 +1,5 @@ +([ + (comment) + (multiline_comment) +] @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/systemverilog/folds.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/systemverilog/folds.scm new file mode 100644 index 00000000..ea52476a --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/systemverilog/folds.scm @@ -0,0 +1,23 @@ +[ + (seq_block) + (function_body_declaration) + (task_body_declaration) + (generate_block) + (always_construct) + (property_declaration) + (checker_declaration) + (class_declaration) + (config_declaration) + (covergroup_declaration) + (clocking_declaration) + (interface_declaration) + (module_declaration) + (package_declaration) + (module_instantiation) + (program_declaration) + (specify_block) + (generate_region) + (package_import_declaration) + (text_macro_definition) + (include_compiler_directive)+ +] @fold diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/systemverilog/highlights.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/systemverilog/highlights.scm new file mode 100644 index 00000000..c8cff453 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/systemverilog/highlights.scm @@ -0,0 +1,595 @@ +; Keywords +[ + "begin" + "end" + "generate" + "endgenerate" + (module_keyword) + "endmodule" + "program" + "endprogram" + "package" + "endpackage" + "checker" + "endchecker" + "config" + "endconfig" + "pure" + "virtual" + "extends" + "implements" + "super" + (class_item_qualifier) + "parameter" + "localparam" + "defparam" + "assign" + "modport" + "fork" + "join" + "join_none" + "join_any" + "default" + "break" + "tagged" + "extern" + "alias" + "posedge" + "negedge" + "bind" + "expect" + "type" + "void" + "coverpoint" + "cross" + "nettype" + "export" + "force" + "release" + "timeunit" + "timeprecision" + "sequence" + "endsequence" + "property" + "endproperty" + "clocking" + "endclocking" + "covergroup" + "endgroup" + "specify" + "endspecify" + "primitive" + "endprimitive" + "wait" + "wait_order" + "const" + "constraint" + "unique" + "do" + "genvar" + "inside" + "rand" + "continue" + "randc" + "event" + "global" + "ref" + "initial" + (unique_priority) + (bins_keyword) + (always_keyword) +] @keyword + +[ + "class" + "endclass" + "interface" + "endinterface" + "enum" + "struct" + "union" + "typedef" +] @keyword.type + +[ + "function" + "endfunction" + "task" + "endtask" +] @keyword.function + +"return" @keyword.return + +[ + "for" + "foreach" + "repeat" + "forever" + "while" +] @keyword.repeat + +; for +(loop_generate_construct + (generate_block + [ + "begin" + "end" + ] @keyword.conditional)) + +; foreach +(loop_statement + (statement + (statement_item + (seq_block + [ + "begin" + "end" + ] @keyword.conditional)))) + +; repeat forever while +(loop_statement + (statement_or_null + (statement + (statement_item + (seq_block + [ + "begin" + "end" + ] @keyword.conditional))))) + +[ + "if" + "else" + "iff" + (case_keyword) + "endcase" +] @keyword.conditional + +[ + "=" + "-" + "+" + "/" + "*" + "^" + "&" + "|" + "&&" + "||" + "<=" + "==" + "!=" + "===" + "!==" + "-:" + "<" + ">" + ">=" + "%" + ">>" + "<<" + "|=" + "|=>" + "|->" + ">>>" + "<<<" + "->>" + "->" + "=>" + "*>" + ".*" + (unary_operator) + (inc_or_dec_operator) + (queue_dimension) +] @operator + +"#" @constructor + +[ + ";" + "::" + "," + "." + ":" +] @punctuation.delimiter + +(conditional_expression + [ + "?" + ":" + ] @keyword.conditional.ternary) + +[ + "[" + "]" + "(" + ")" + "{" + "}" + "'{" +] @punctuation.bracket + +[ + "or" + "and" +] @keyword.operator + +[ + "input" + "output" + "inout" + "signed" + "unsigned" + "assert" + "cover" + "assume" + "disable" + "automatic" + "static" + (dpi_function_import_property) + (dpi_task_import_property) +] @keyword.modifier + +[ + "include" + "import" + "directive_include" +] @keyword.import + +(comment) @comment @spell + +[ + "@" + (cycle_delay_range) + (delay_control) + (cycle_delay) + (attribute_instance) +] @attribute + +(attribute_instance + (attr_spec + (simple_identifier) @property)) + +[ + (integral_number) + (unbased_unsized_literal) + (fixed_point_number) + (unsigned_number) +] @number + +[ + (net_type) + (data_type) + (time_unit) +] @type.builtin + +; variable +(list_of_variable_decl_assignments + (variable_decl_assignment + name: (simple_identifier) @variable)) + +(hierarchical_identifier + (simple_identifier) @variable) + +(tf_port_item + (simple_identifier) @variable) + +port_name: (simple_identifier) @variable + +(port + (simple_identifier) @variable) + +(list_of_port_identifiers + (simple_identifier) @variable) + +(net_lvalue + (simple_identifier) @variable) + +(sequence_port_item + (simple_identifier) @variable) + +(property_port_item + (simple_identifier) @variable) + +(net_decl_assignment + (simple_identifier) @variable) + +(ERROR + (simple_identifier) @variable) + +; variable.member +(hierarchical_identifier + (simple_identifier) + (simple_identifier) @variable.member) + +(select + (simple_identifier) @variable.member) + +(named_port_connection + port_name: (simple_identifier) @variable.member) + +(ordered_port_connection + (expression + (primary + (hierarchical_identifier + (simple_identifier) @variable.member)))) + +(coverage_option + (simple_identifier) @variable.member) + +; variable.builtin +(method_call_body + arguments: (list_of_arguments + (expression) @variable.builtin + (#any-of? @variable.builtin "this"))) + +(implicit_class_handle) @variable.builtin + +; variable.parameter +(named_parameter_assignment + (simple_identifier) @variable.parameter) + +(parameter_declaration + (list_of_param_assignments + (param_assignment + (simple_identifier) @variable.parameter))) + +(local_parameter_declaration + (list_of_param_assignments + (param_assignment + (simple_identifier) @variable.parameter))) + +; function builtin +[ + (simulation_control_task) + (system_tf_identifier) + (severity_system_task) + (randomize_call) + (array_or_queue_method_name) + "new" +] @function.builtin + +; declaration +(task_body_declaration + . + name: (simple_identifier) @function + (simple_identifier)? @label) + +(function_body_declaration + . + name: (simple_identifier) @function + (simple_identifier)? @label) + +(function_body_declaration + . + (data_type_or_void) + name: (simple_identifier) @function + (simple_identifier)? @label) + +(clocking_declaration + . + name: (simple_identifier) @constructor + (simple_identifier)? @label) + +(sequence_declaration + . + name: (simple_identifier) @constructor + (simple_identifier)? @label) + +(property_declaration + . + name: (simple_identifier) @constructor + (simple_identifier)? @label) + +(class_declaration + . + name: (simple_identifier) @constructor + (simple_identifier)? @label) + +(interface_class_declaration + . + name: (simple_identifier) @constructor + (simple_identifier)? @label) + +(covergroup_declaration + . + name: (simple_identifier) @constructor + (simple_identifier)? @label) + +(package_declaration + . + name: (simple_identifier) @constructor + (simple_identifier)? @label) + +(checker_declaration + . + name: (simple_identifier) @constructor + (simple_identifier)? @label) + +(interface_declaration + . + [ + (simple_identifier) @constructor + (interface_nonansi_header + (simple_identifier) @constructor) + (interface_ansi_header + (simple_identifier) @constructor) + ] + (simple_identifier)? @label) + +(module_declaration + . + [ + (simple_identifier) @constructor + (module_nonansi_header + (simple_identifier) @constructor) + (module_ansi_header + (simple_identifier) @constructor) + ] + (simple_identifier)? @label) + +(program_declaration + . + [ + (simple_identifier) @constructor + (program_nonansi_header + (simple_identifier) @constructor) + (program_ansi_header + (simple_identifier) @constructor) + ] + (simple_identifier)? @label) + +; function.call +(method_call_body + name: (simple_identifier) @function.call) + +(tf_call + (hierarchical_identifier + (simple_identifier) @function.call)) + +; instance +(module_instantiation + instance_type: (simple_identifier) @constructor) + +(name_of_instance + instance_name: (simple_identifier) @module) + +(sequence_instance + (hierarchical_identifier + (simple_identifier) @module)) + +(udp_instantiation + (simple_identifier) @constructor) + +(ansi_port_declaration + (interface_port_header + interface_name: (simple_identifier) @variable + modport_name: (simple_identifier) @variable.member) + port_name: (simple_identifier) @variable) + +; bind +(bind_directive + (bind_target_scope + (simple_identifier) @constructor)) + +(bind_target_instance + (hierarchical_identifier + (simple_identifier) @module)) + +; assertion +(concurrent_assertion_item + (simple_identifier) @label) + +; converge +(cover_point + name: (simple_identifier) @label) + +(cover_cross + name: (simple_identifier) @module) + +(list_of_cross_items + (simple_identifier) @constructor) + +;package +(package_import_item + (simple_identifier) @constructor) + +; label +(seq_block + (simple_identifier) @label) + +(statement + block_name: (simple_identifier) @label) + +; dpi +(dpi_spec_string) @string + +c_name: (c_identifier) @function + +(dpi_import_export + name: (simple_identifier) @function) + +; type def +(class_type + (simple_identifier) @constructor) + +(class_type + (simple_identifier) + (simple_identifier) @type) + +(data_type + (class_scope + (class_type + (simple_identifier) @constructor))) + +(task_prototype + name: (simple_identifier) @function) + +(function_prototype + name: (simple_identifier) @function) + +(type_assignment + name: (simple_identifier) @type.definition) + +(interface_class_type + (simple_identifier) @type.definition) + +(package_scope + (simple_identifier) @constructor) + +(data_declaration + (type_declaration + type_name: (simple_identifier) @type.definition)) + +(net_declaration + (simple_identifier) @type) + +(constraint_declaration + (simple_identifier) @constructor) + +(method_call + (primary + (hierarchical_identifier + (simple_identifier) @constructor))) + +(string_literal + (quoted_string) @string) + +; include +(include_statement + (file_path_spec) @string.special.path) + +; directive +[ + "directive_define" + "directive_default_nettype" + "directive_resetall" + "directive_timescale" + "directive_undef" + "directive_undefineall" + "directive_ifdef" + "directive_elsif" + "directive_endif" + "directive_else" +] @keyword.directive.define + +(include_compiler_directive + (quoted_string) @string.special.path) + +(include_compiler_directive + (system_lib_string) @string) + +(default_nettype_compiler_directive + (default_nettype_value) @type.builtin) + +(text_macro_definition + (text_macro_name + (simple_identifier) @keyword.directive)) + +(text_macro_usage) @keyword.directive + +(ifdef_condition + (simple_identifier) @keyword.directive) + +(undefine_compiler_directive + (simple_identifier) @keyword.directive) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/systemverilog/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/systemverilog/injections.scm new file mode 100644 index 00000000..b6d2d472 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/systemverilog/injections.scm @@ -0,0 +1,5 @@ +((comment) @injection.content + (#set! injection.language "comment")) + +((macro_text) @injection.content + (#set! injection.language "systemverilog")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/tact/folds.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/tact/folds.scm new file mode 100644 index 00000000..03713dd7 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/tact/folds.scm @@ -0,0 +1,16 @@ +[ + ; import … + (import)+ + ; (…, …) + (parameter_list) + (argument_list) + ; {…, …} + (instance_argument_list) + ; {…; …} + (message_body) + (struct_body) + (contract_body) + (trait_body) + (function_body) + (block_statement) +] @fold diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/tact/highlights.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/tact/highlights.scm new file mode 100644 index 00000000..d5bec39f --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/tact/highlights.scm @@ -0,0 +1,305 @@ +; variable +; -------- +(identifier) @variable + +; variable.builtin +; ---------------- +(self) @variable.builtin + +; variable.parameter +; ------------------ +(parameter + name: (identifier) @variable.parameter) + +; punctuation.delimiter +; --------------------- +[ + ";" + "," + "." + ":" + "?" +] @punctuation.delimiter + +; punctuation.bracket +; ------------------- +[ + "(" + ")" + "{" + "}" +] @punctuation.bracket + +; operator +; -------- +[ + "-" + "-=" + "+" + "+=" + "*" + "*=" + "/" + "/=" + "%" + "%=" + "=" + "==" + "!" + "!=" + "!!" + "<" + "<=" + "<<" + ">" + ">=" + ">>" + "&" + "|" + "^" + "&&" + "||" +] @operator + +; constructor +; ----------- +(instance_expression + name: (identifier) @constructor) + +(initOf + name: (identifier) @constructor) + +; type +; ---- +(type_identifier) @type + +; type.builtin +; ------------ +((identifier) @type.builtin + (#eq? @type.builtin "SendParameters")) + +(bounced_type + "bounced" @type.builtin + "<" @punctuation.bracket + ">" @punctuation.bracket) + +(map_type + "map" @type.builtin + "<" @punctuation.bracket + ">" @punctuation.bracket) + +((type_identifier) @type.builtin + (#any-of? @type.builtin "Address" "Bool" "Builder" "Cell" "Int" "Slice" "String" "StringBuilder")) + +(tlb_serialization + "as" @keyword + type: (identifier) @type.builtin + (#any-of? @type.builtin + "int8" "int16" "int32" "int64" "int128" "int256" "int257" "uint8" "uint16" "uint32" "uint64" + "uint128" "uint256" "coins" "remaining" "bytes32" "bytes64")) + +; string +; ------ +(string) @string + +; string.escape +; ------------- +(escape_sequence) @string.escape + +; string.special.path +; ------------------- +(import + library: (string) @string.special.path) + +; boolean +; ------- +(boolean) @boolean + +; constant +; -------- +(global_constant + name: (identifier) @constant) + +(storage_constant + name: (identifier) @constant) + +; constant.builtin +; ---------------- +(null) @constant.builtin + +((identifier) @constant.builtin + (#any-of? @constant.builtin + "SendBounceIfActionFail" "SendPayGasSeparately" "SendIgnoreErrors" "SendDestroyIfZero" + "SendRemainingValue" "SendRemainingBalance" "ReserveExact" "ReserveAllExcept" "ReserveAtMost" + "ReserveAddOriginalBalance" "ReserveInvertSign" "ReserveBounceIfActionFail")) + +; property +; -------- +(instance_argument + name: (identifier) @variable.member) + +(lvalue + (_) + (_) @variable.member) + +(field_access_expression + name: (identifier) @variable.member) + +(field + name: (identifier) @variable.member) + +(storage_variable + name: (identifier) @variable.member) + +; number +; ------ +(integer) @number + +; keyword +; ------- +[ + "with" + "const" + "let" + ; "public" ; -- not used, but declared in grammar.ohm + ; "extend" ; -- not used, but declared in grammar.ohm +] @keyword + +; keyword.type +; ------------ +[ + "contract" + "trait" + "struct" + "message" +] @keyword.type + +; keyword.function +; ---------------- +[ + "fun" + "native" +] @keyword.function + +; keyword.operator +; ---------------- +"initOf" @keyword.operator + +; keyword.import +; -------------- +"import" @keyword.import + +; keyword.modifier +; --------------- +[ + "get" + "mutates" + "extends" + "virtual" + "override" + "inline" + "abstract" +] @keyword.modifier + +; keyword.repeat +; -------------- +(foreach_statement + . + (_) + . + (_) + . + "in" @keyword.repeat) + +[ + "while" + "repeat" + "do" + "until" + "foreach" +] @keyword.repeat + +; keyword.return +; -------------- +"return" @keyword.return + +; keyword.exception +; ----------------- +[ + "try" + "catch" +] @keyword.exception + +; keyword.conditional +; ------------------- +[ + "if" + "else" +] @keyword.conditional + +; keyword.directive.define +; ------------------------ +"primitive" @keyword.directive.define + +; function +; -------- +(native_function + name: (identifier) @function) + +(global_function + name: (identifier) @function) + +(func_identifier) @function + +; function.method +; --------------- +(init_function + "init" @function.method) + +(receive_function + "receive" @function.method) + +(bounced_function + "bounced" @function.method) + +(external_function + "external" @function.method) + +(storage_function + name: (identifier) @function.method) + +; function.call +; ------------- +(static_call_expression + name: (identifier) @function.call) + +; function.method.call +; --------------- +(method_call_expression + name: (identifier) @function.method.call) + +; function.builtin +; ---------------- +(static_call_expression + name: (identifier) @function.builtin + (#any-of? @function.builtin + "log" "log2" "send" "sender" "require" "now" "myBalance" "myAddress" "newAddress" + "contractAddress" "contractAddressExt" "emit" "cell" "ton" "dump" "dumpStack" "beginString" + "beginComment" "beginTailString" "beginStringFromBuilder" "beginCell" "emptyCell" "randomInt" + "random" "checkSignature" "checkDataSignature" "sha256" "min" "max" "abs" "pow" "pow2" "throw" + "nativeThrowIf" "nativeThrowUnless" "getConfigParam" "nativeRandomize" "nativeRandomizeLt" + "nativePrepareRandom" "nativeRandom" "nativeRandomInterval" "nativeReserve")) + +; attribute +; --------- +[ + "@name" + "@interface" +] @attribute + +; comment +; ------- +(comment) @comment @spell + +((comment) @comment.documentation + (#lua-match? @comment.documentation "^/[*][*][^*].*[*]/$")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/tact/indents.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/tact/indents.scm new file mode 100644 index 00000000..749ab246 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/tact/indents.scm @@ -0,0 +1,50 @@ +; indent.begin ; indent children when matching this node +; ------------ +[ + ; (..., ...) + (parameter_list) + (argument_list) + ; {..., ...} + (instance_argument_list) + ; {...; ...} + (message_body) + (struct_body) + (contract_body) + (trait_body) + (function_body) + (block_statement) + ; misc. + (binary_expression) + (ternary_expression) + (return_statement) + (static_call_expression) + (method_call_expression) +] @indent.begin + +; indent.branch ; dedent itself when matching this node +; ------------- +[ + "}" + ")" + ">" +] @indent.branch + +; indent.end ; marks the end of indented block +; ---------- +[ + "}" + ")" + ">" +] @indent.end + +; indent.auto ; behaves like 'autoindent' buffer option +; ----------- +[ + (comment) + (ERROR) +] @indent.auto + +; indent.align ; behaves like python aligned/hanging indent +; indent.dedent ; dedent children when matching this node +; indent.ignore ; do not indent in this node +; indent.zero ; sets this node at position 0 (no indent) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/tact/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/tact/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/tact/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/tact/locals.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/tact/locals.scm new file mode 100644 index 00000000..0c152260 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/tact/locals.scm @@ -0,0 +1,75 @@ +; Scopes @local.scope +; ------------------------- +[ + (global_function) + (init_function) + (bounced_function) + (receive_function) + (external_function) + (storage_function) + (block_statement) +] @local.scope + +; Definitions @local.definition +; ------------------------------ +; variables +(let_statement + name: (identifier) @local.definition.var) + +; constants +(global_constant + name: (identifier) @local.definition.constant) + +(storage_constant + name: (identifier) @local.definition.constant) + +; functions +(global_function + name: (identifier) @local.definition.function + (#set! definition.var.scope parent)) + +; methods (functions off of contracts and traits) +(init_function + "init" @local.definition.method + (#set! definition.var.scope parent)) + +(bounced_function + "bounced" @local.definition.method + (#set! definition.var.scope parent)) + +(receive_function + "receive" @local.definition.method + (#set! definition.var.scope parent)) + +(external_function + "external" @local.definition.method + (#set! definition.var.scope parent)) + +(storage_function + name: (identifier) @local.definition.method + (#set! definition.var.scope parent)) + +; parameters +(parameter + name: (identifier) @local.definition.parameter) + +; user-defined types (structs and messages) +(type_identifier) @local.definition.type + +; fields (of messages and structs) +(field + name: (identifier) @local.definition.field) + +; imports +(import + (string) @local.definition.import) + +; References @local.reference +; ----------------------------- +(self) @local.reference + +(value_expression + (identifier) @local.reference) + +(lvalue + (identifier) @local.reference) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/tcl/folds.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/tcl/folds.scm new file mode 100644 index 00000000..9084c662 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/tcl/folds.scm @@ -0,0 +1 @@ +(braced_word) @fold diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/tcl/highlights.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/tcl/highlights.scm new file mode 100644 index 00000000..c5f1f4c3 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/tcl/highlights.scm @@ -0,0 +1,114 @@ +(comment) @comment @spell + +(command + name: (simple_word) @function) + +"proc" @keyword.function + +(procedure + name: (_) @variable) + +(set + (simple_word) @variable) + +(argument + name: (_) @variable.parameter) + +((simple_word) @variable.builtin + (#any-of? @variable.builtin + "argc" "argv" "argv0" "auto_path" "env" "errorCode" "errorInfo" "tcl_interactive" "tcl_library" + "tcl_nonwordchars" "tcl_patchLevel" "tcl_pkgPath" "tcl_platform" "tcl_precision" + "tcl_rcFileName" "tcl_traceCompile" "tcl_traceExec" "tcl_wordchars" "tcl_version")) + +"expr" @function.builtin + +(command + name: (simple_word) @function.builtin + (#any-of? @function.builtin + "cd" "exec" "exit" "incr" "info" "join" "puts" "regexp" "regsub" "split" "subst" "trace" + "source")) + +(command + name: (simple_word) @keyword + (#any-of? @keyword + "append" "break" "catch" "continue" "default" "dict" "error" "eval" "global" "lappend" "lassign" + "lindex" "linsert" "list" "llength" "lmap" "lrange" "lrepeat" "lreplace" "lreverse" "lsearch" + "lset" "lsort" "package" "return" "switch" "throw" "unset" "variable")) + +[ + "error" + "on" + "set" + "try" +] @keyword + +"namespace" @keyword.type + +(unpack) @operator + +[ + "while" + "foreach" +] @keyword.repeat + +[ + "if" + "else" + "elseif" +] @keyword.conditional + +[ + "**" + "/" + "*" + "%" + "+" + "-" + "<<" + ">>" + ">" + "<" + ">=" + "<=" + "==" + "!=" + "eq" + "ne" + "in" + "ni" + "&" + "^" + "|" + "&&" + "||" +] @operator + +(variable_substitution) @variable + +(quoted_word) @string + +(escaped_character) @string.escape + +[ + "{" + "}" + "[" + "]" + ";" +] @punctuation.delimiter + +((simple_word) @number + (#lua-match? @number "^[0-9]+$")) + +((simple_word) @boolean + (#any-of? @boolean "true" "false")) + +; after apply array auto_execok auto_import auto_load auto_mkindex auto_qualify +; auto_reset bgerror binary chan clock close coroutine dde encoding eof fblocked +; fconfigure fcopy file fileevent filename flush format gets glob history http +; interp load mathfunc mathop memory msgcat my next nextto open parray pid +; pkg::create pkg_mkIndex platform platform::shell pwd re_syntax read refchan +; registry rename safe scan seek self socket source string tailcall tcl::prefix +; tcl_endOfWord tcl_findLibrary tcl_startOfNextWord tcl_startOfPreviousWord +; tcl_wordBreakAfter tcl_wordBreakBefore tcltest tell time timerate tm +; transchan unknown unload update uplevel upvar vwait yield yieldto zlib diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/tcl/indents.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/tcl/indents.scm new file mode 100644 index 00000000..c4968d17 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/tcl/indents.scm @@ -0,0 +1,25 @@ +[ + (braced_word_simple) + (namespace) + (command) + (conditional) + (foreach) + (while) + (try) + (procedure) + (command_substitution) +] @indent.begin + +(quoted_word) @indent.align + +([ + (expr) + (arguments) +] @indent.align + (#set! "indent.open_delimiter" "{") + (#set! "indent.close_delimiter" "}")) + +[ + "}" + "]" +] @indent.branch @indent.end diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/tcl/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/tcl/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/tcl/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/templ/folds.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/templ/folds.scm new file mode 100644 index 00000000..adbbb103 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/templ/folds.scm @@ -0,0 +1,15 @@ +[ + (component_block) + (css_declaration) + (script_declaration) + (element) + (style_element) + (script_element) + (component_switch_statement) + (field_declaration_list) + (block) + (interface_type) + (comment) + (const_declaration) + (var_declaration) +] @fold diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/textproto/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/textproto/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/textproto/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/tmux/highlights.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/tmux/highlights.scm new file mode 100644 index 00000000..50da7d7d --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/tmux/highlights.scm @@ -0,0 +1,52 @@ +; Comments +(comment) @comment @spell + +; General +[ + (string) + (raw_string) +] @string + +(int) @number + +(path) @string.special.path + +[ + (option) + (variable_name) +] @variable + +(command_line_option) @variable.builtin + +((option) @variable.builtin + (#not-lua-match? @variable.builtin "^@")) + +(command) @keyword + +(source_file_directive + (command) @keyword.import) + +(attribute) @attribute + +(function_name) @function.call + +"=" @operator + +[ + "," + ":" +] @punctuation.delimiter + +[ + "#" + "?" +] @punctuation.special + +[ + "#{" + "}" + "#[" + "]" + "[" + "{" +] @punctuation.bracket diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/tmux/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/tmux/injections.scm new file mode 100644 index 00000000..5bf6e27d --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/tmux/injections.scm @@ -0,0 +1,5 @@ +((shell) @injection.content + (#set! injection.language "bash")) + +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/typespec/highlights.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/typespec/highlights.scm new file mode 100644 index 00000000..68c67c0d --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/typespec/highlights.scm @@ -0,0 +1,135 @@ +(identifier_or_member_expression) @type + +[ + "is" + "extends" + "valueof" +] @keyword.operator + +[ + "namespace" + "model" + "scalar" + "interface" + "enum" + "union" + "alias" +] @keyword.type + +[ + "op" + "fn" + "dec" +] @keyword.function + +"extern" @keyword.modifier + +[ + "import" + "using" +] @keyword.import + +[ + "(" + ")" + "{" + "}" + "<" + ">" + "[" + "]" +] @punctuation.bracket + +[ + "," + ";" + "." + ":" +] @punctuation.delimiter + +[ + "|" + "&" + "=" + "..." +] @operator + +"?" @punctuation.special + +[ + (single_line_comment) + (multi_line_comment) +] @comment @spell + +[ + (quoted_string_literal) + (triple_quoted_string_literal) +] @string + +(boolean_literal) @boolean + +[ + (decimal_literal) + (hex_integer_literal) + (binary_integer_literal) +] @number + +(escape_sequence) @string.escape + +(builtin_type) @type.builtin + +(decorator + "@" @attribute + name: (identifier_or_member_expression) @attribute) + +(augment_decorator_statement + name: (identifier_or_member_expression) @attribute) + +(using_statement + module: (identifier_or_member_expression) @module) + +(namespace_statement + name: (identifier_or_member_expression) @module) + +(model_statement + name: (identifier) @type) + +(model_property + name: (identifier) @variable.member) + +(union_statement + name: (identifier) @type) + +(union_variant + name: (identifier) @variable.member) + +(scalar_statement + name: (identifier) @type) + +(interface_statement + name: (identifier) @type) + +(enum_statement + name: (identifier) @type) + +(enum_member + name: (identifier) @constant) + +(operation_statement + name: (identifier) @function) + +(template_parameter + name: (identifier) @type) + +(alias_statement + name: (identifier) @type) + +(decorator_declaration_statement + name: (identifier) @attribute) + +(function_parameter + name: (identifier) @variable.parameter) + +(operation_arguments + (model_property + name: (identifier) @variable.parameter)) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/typespec/indents.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/typespec/indents.scm new file mode 100644 index 00000000..aee01f35 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/typespec/indents.scm @@ -0,0 +1,18 @@ +[ + (model_expression) + (tuple_expression) + (namespace_body) + (interface_body) + (union_body) + (enum_body) + (template_arguments) + (template_parameters) + (operation_arguments) +] @indent.begin + +[ + "}" + ")" + ">" + "]" +] @indent.end diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/typespec/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/typespec/injections.scm new file mode 100644 index 00000000..81d7734c --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/typespec/injections.scm @@ -0,0 +1,5 @@ +([ + (single_line_comment) + (multi_line_comment) +] @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/typst/folds.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/typst/folds.scm new file mode 100644 index 00000000..710ae953 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/typst/folds.scm @@ -0,0 +1,6 @@ +[ + (set) + (let) + (show) + (call) +] @fold diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/typst/highlights.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/typst/highlights.scm new file mode 100644 index 00000000..e3610541 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/typst/highlights.scm @@ -0,0 +1,113 @@ +; punctuation +"#" @punctuation.special + +[ + ":" + ";" + "," +] @punctuation.delimiter + +; TODO: context blocks for "[" "]"? +[ + "(" + ")" + "{" + "}" + "[" + "]" +] @punctuation.bracket + +; operators +[ + "-" + "+" + "*" + "/" + "==" + "!=" + "<" + "<=" + ">" + ">=" + "=" + "in" + "and" + "or" + "not" +] @operator + +; keywords +[ + "import" + "include" +] @keyword.import + +[ + "let" + "set" + "show" +] @keyword + +; control flow +[ + "for" + "while" + "break" + "continue" +] @keyword.repeat + +[ + "if" + "else" +] @keyword.conditional + +; special case: #for (ident) in (expr) +(for + "in" @keyword.repeat) + +; type literals +(number) @number + +(string) @string + +(bool) @boolean + +(ident) @constant + +; name-value pairs +(tagged + field: (ident) @variable.member) + +(call + item: (ident) @function.call) + +; text +(text) @spell + +; TODO: use multi level headings +(heading) @markup.heading + +(strong) @markup.strong + +(emph) @markup.italic + +(url) @markup.link.url + +; code blocks +(raw_span) @markup.raw + +(raw_blck) @markup.raw + +(raw_blck + (blob) @markup.raw.block) + +; refs and labels +(label) @markup.link.label + +(ref) @markup.link + +; math +(math) @markup.math + +; comments +(comment) @comment @spell diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/typst/indents.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/typst/indents.scm new file mode 100644 index 00000000..d43c586c --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/typst/indents.scm @@ -0,0 +1,12 @@ +[ + (set) + (let) + (show) + (call) +] @indent.begin + +[ + "]" + "}" + ")" +] @indent.branch @indent.end diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/typst/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/typst/injections.scm new file mode 100644 index 00000000..344c6a30 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/typst/injections.scm @@ -0,0 +1,6 @@ +((comment) @injection.content + (#set! injection.language "comment")) + +(raw_blck + (ident) @injection.language + (blob) @injection.content) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/usd/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/usd/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/usd/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/vala/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/vala/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/vala/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/vento/highlights.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/vento/highlights.scm new file mode 100644 index 00000000..9d35b2f6 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/vento/highlights.scm @@ -0,0 +1,13 @@ +(comment) @comment @spell + +(keyword) @keyword + +(tag + [ + "{{" + "{{-" + "}}" + "-}}" + ] @punctuation.special) + +"|>" @operator diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/vento/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/vento/injections.scm new file mode 100644 index 00000000..66023c7f --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/vento/injections.scm @@ -0,0 +1,9 @@ +((comment) @injection.content + (#set! injection.language "comment")) + +((content) @injection.content + (#set! injection.language "html") + (#set! injection.combined)) + +((code) @injection.content + (#set! injection.language "javascript")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/vhdl/folds.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/vhdl/folds.scm new file mode 100644 index 00000000..9fc6deaf --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/vhdl/folds.scm @@ -0,0 +1,46 @@ +[ + (block_comment) + (architecture_definition) + (architecture_head) + (concurrent_block) + (configuration_declaration) + (component_instantiation_statement) + (generic_map_aspect) + (port_map_aspect) + (process_statement) + (process_head) + (sequential_block) + (block_configuration) + (block_statement) + (block_head) + (component_declaration) + (component_configuration) + (generic_clause) + (port_clause) + (entity_declaration) + (entity_head) + (entity_body) + (package_declaration) + (package_definition) + (function_specification) + (subprogram_declaration) + (subprogram_definition) + (subprogram_head) + (procedure_specification) + (sequential_block) + (loop_statement) + (if_statement_block) + (if_statement) + (elsif_statement) + (else_statement) + (case_statement) + (case_statement_alternative) + (for_generate_statement) + (if_generate_statement) + (if_generate) + (elsif_generate) + (else_generate) + (case_generate_statement) + (case_generate_alternative) + (type_declaration) +] @fold diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/vhdl/highlights.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/vhdl/highlights.scm new file mode 100644 index 00000000..36cd5620 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/vhdl/highlights.scm @@ -0,0 +1,427 @@ +(line_comment + (comment_content) @spell) @comment + +(block_comment + (comment_content) @spell) @comment.documentation + +(identifier) @variable + +[ + "access" + "after" + "alias" + "architecture" + "array" + ; "assume" + "attribute" + "block" + "body" + "component" + "configuration" + "context" + ; "cover" + "disconnect" + "entity" + ; "fairness" + "file" + "force" + "generate" + "generic" + "group" + "label" + "literal" + "map" + "new" + "package" + "parameter" + "port" + "property" + "range" + "reject" + "release" + ; "restrict" + "sequence" + "transport" + "unaffected" + "view" + ; "vmode" + ; "vpkg" + ; "vprop" + "vunit" +] @keyword + +[ + (ALL) + (OTHERS) + "<>" + (DEFAULT) + (OPEN) +] @constant.builtin + +[ + "is" + "begin" + "end" +] @keyword + +(parameter_specification + "in" @keyword) + +[ + "process" + "wait" + "on" + "until" +] @keyword.coroutine + +(end_process + "end" @keyword.coroutine) + +(timeout_clause + "for" @keyword.coroutine) + +[ + "function" + "procedure" +] @keyword.function + +(subprogram_end + "end" @keyword.function) + +[ + "to" + "downto" + "of" +] @keyword.operator + +[ + "library" + "use" +] @keyword.import + +[ + "subtype" + "type" + "record" + "units" + "constant" + "signal" + "variable" +] @keyword.type + +[ + "protected" + "private" + "pure" + "impure" + "inertial" + "postponed" + ; "strong" + "guarded" + "out" + "inout" + "linkage" + "buffer" + "register" + "bus" + "shared" +] @keyword.modifier + +(mode + "in" @keyword.modifier) + +(force_mode + "in" @keyword.modifier) + +[ + "while" + "loop" + "next" + "exit" +] @keyword.repeat + +(end_loop + "end" @keyword.repeat) + +(for_loop + "for" @keyword.repeat) + +(block_configuration + "for" @keyword) + +(configuration_specification + "for" @keyword) + +(component_configuration + "for" @keyword) + +(end_for + "for" @keyword) + +"return" @keyword.return + +[ + "assert" + "report" + "severity" +] @keyword.debug + +[ + "if" + "then" + "elsif" + "case" +] @keyword.conditional + +(end_if + "end" @keyword.conditional) + +(end_case + "end" @keyword.conditional) + +(when_element + "when" @keyword.conditional) + +(case_generate_alternative + "when" @keyword.conditional) + +(else_statement + "else" @keyword.conditional) + +(else_generate + "else" @keyword.conditional) + +[ + "with" + "select" +] @keyword.conditional.ternary + +(when_expression + "when" @keyword.conditional.ternary) + +(else_expression + "else" @keyword.conditional.ternary) + +(else_waveform + "else" @keyword.conditional.ternary) + +(else_expression_or_unaffected + "else" @keyword.conditional.ternary) + +"null" @constant.builtin + +(user_directive) @keyword.directive + +(protect_directive) @keyword.directive + +(warning_directive) @keyword.directive + +(error_directive) @keyword.directive + +(if_conditional_analysis + "if" @keyword.directive) + +(if_conditional_analysis + "then" @keyword.directive) + +(elsif_conditional_analysis + "elsif" @keyword.directive) + +(else_conditional_analysis + "else" @keyword.directive) + +(end_conditional_analysis + "end" @keyword.directive) + +(end_conditional_analysis + "if" @keyword.directive) + +(directive_body) @keyword.directive + +(directive_constant_builtin) @constant.macro + +(directive_error) @comment.error + +(directive_protect) @keyword.directive + +(directive_warning) @comment.warning + +[ + (condition_conversion) + (relational_operator) + (sign) + (adding_operator) + (exponentiate) + (variable_assignment) + (signal_assignment) + "*" + "/" + ":" + "=>" +] @operator + +[ + (unary_operator) + (logical_operator) + (shift_operator) + "mod" + "not" + "rem" +] @keyword.operator + +[ + "'" + "," + "." + ";" +] @punctuation.delimiter + +[ + "(" + ")" + "[" + "]" + "<<" + ">>" +] @punctuation.bracket + +"@" @punctuation.special + +[ + (decimal_integer) + (string_literal_std_logic) +] @number + +(decimal_float) @number.float + +(bit_string_length) @property + +(bit_string_base) @type.builtin + +(bit_string_value) @number + +(based_literal + (based_base) @type.builtin + (based_integer) @number) + +(based_literal + (based_base) @type.builtin + (based_float) @number.float) + +(string_literal) @string @spell + +(character_literal) @character + +(library_constant_std_logic) @constant.builtin + +(library_constant) @constant.builtin + +(library_function) @function.builtin + +(library_constant_boolean) @boolean + +(library_constant_character) @character + +(library_constant_debug) @keyword.debug + +(unit) @keyword.modifier + +(library_constant_unit) @keyword.modifier + +(label) @label + +(generic_map_aspect + "generic" @constructor + "map" @constructor) + +(port_map_aspect + "port" @constructor + "map" @constructor) + +(selection + (identifier) @variable.member) + +(_ + view: (_) @type) + +(_ + type: (_) @type) + +(_ + library: (_) @module) + +(_ + package: (_) @module) + +(_ + entity: (_) @module) + +(_ + component: (_) @module) + +(_ + configuration: (_) @property) + +(_ + architecture: (_) @property) + +(_ + function: (_) @function) + +(_ + procedure: (_) @function.method) + +(_ + attribute: (_) @attribute) + +(_ + constant: (_) @constant) + +(_ + generic: (_) @variable.parameter) + +(_ + view: (name + (_)) @type) + +(_ + type: (name + (_)) @type) + +(_ + entity: (name + (_)) @module) + +(_ + component: (name + (_)) @module) + +(_ + configuration: (name + (_)) @module) + +(library_type) @type.builtin + +[ + (attribute_function) + (attribute_impure_function) + (attribute_mode_view) + (attribute_pure_function) + (attribute_range) + (attribute_signal) + (attribute_subtype) + (attribute_type) + (attribute_value) + (library_attribute) +] @attribute.builtin + +(library_namespace) @module.builtin + +(subtype_declaration + (identifier) @type.definition) + +(type_declaration + (identifier) @type.definition) + +(mode_view_declaration + (identifier) @type.definition) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/vhdl/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/vhdl/injections.scm new file mode 100644 index 00000000..5cbc06cb --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/vhdl/injections.scm @@ -0,0 +1,7 @@ +(line_comment + (comment_content) @injection.content + (#set! injection.language "comment")) + +(block_comment + (comment_content) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/vhs/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/vhs/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/vhs/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/wgsl/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/wgsl/injections.scm new file mode 100644 index 00000000..3cd6aac8 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/wgsl/injections.scm @@ -0,0 +1,5 @@ +([ + (line_comment) + (block_comment) +] @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/wing/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/wing/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/wing/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/wit/folds.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/wit/folds.scm new file mode 100644 index 00000000..7f84ddd2 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/wit/folds.scm @@ -0,0 +1,12 @@ +[ + (world_items) + (world_body) + (interface_items) + (interface_body) +] @fold + +(world_items + [ + (use_item) + (import_item) + ])+ @fold diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/wit/highlights.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/wit/highlights.scm new file mode 100644 index 00000000..1f4b01cc --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/wit/highlights.scm @@ -0,0 +1,166 @@ +(comment) @comment @spell + +(ty + (id)) @type + +(package_decl + (id) @module) + +(valid_semver) @string.special + +(world_item + name: (id) @module) + +(interface_item + name: (id) @module) + +(import_item + name: (id) @module + (extern_type + (interface_body))) + +(import_item + name: (id) @function + (extern_type + (func_type))) + +(export_item + name: (id) @module + (extern_type + (interface_body))) + +(export_item + name: (id) @function + (extern_type + (func_type))) + +(type_item + alias: (id) @type.definition) + +(func_item + name: (id) @function.method) + +(handle + (id) @type) + +(named_type + name: (id) @variable.parameter) + +(record_item + name: (id) @type) + +(record_field + name: (id) @variable.member) + +(flags_items + name: (id) @type) + +(flags_body + (id) @variable.member) + +(variant_items + name: (id) @type) + +(variant_case + name: (id) @constant) + +(enum_items + name: (id) @type) + +(enum_case + name: (id) @constant) + +(resource_item + name: (id) @type) + +(resource_method + (id) @function.method) + +(resource_method + "constructor" @constructor) + +(toplevel_use_item + "use" @keyword.import) + +(toplevel_use_item + alias: (id) @module) + +(use_item + "use" @keyword.import) + +(use_path + (id) @module) + +(use_names_item + (id) @module) + +"func" @keyword.function + +[ + "type" + "interface" + "world" + "package" + "resource" + "record" + "enum" + "flags" + "variant" +] @keyword.type + +"static" @keyword.modifier + +[ + "include" + "import" + "export" + "as" +] @keyword.import + +[ + "u8" + "u16" + "u32" + "u64" + "s8" + "s16" + "s32" + "s64" + "f32" + "f64" + "float32" ; deprecated + "float64" ; deprecated + "char" + "bool" + "string" + "tuple" + "list" + "option" + "result" + "borrow" +] @type.builtin + +[ + "@" + "_" +] @punctuation.special + +[ + "/" + ";" + ":" + "," + "." + "->" +] @punctuation.delimiter + +[ + "{" + "}" + "(" + ")" + ">" + "<" +] @punctuation.bracket + +"=" @operator diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/wit/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/wit/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/wit/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/zathurarc/highlights.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/zathurarc/highlights.scm new file mode 100644 index 00000000..04daa190 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/zathurarc/highlights.scm @@ -0,0 +1,36 @@ +; General +(path) @string.special.path + +(option) @variable.builtin + +(command) @keyword + +(include_directive + (command) @keyword.import) + +(mode_name) @type.builtin + +(key) @constant + +(function) @function.call + +(argument) @variable.parameter + +; Comments +(comment) @comment @spell + +; Literals +(int) @number + +(float) @number.float + +(string) @string + +(bool) @boolean + +[ + "<" + ">" + "[" + "]" +] @punctuation.bracket diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/zathurarc/injections.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/zathurarc/injections.scm new file mode 100644 index 00000000..8e45396b --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/queries/zathurarc/injections.scm @@ -0,0 +1,9 @@ +(set_directive + (option) @_option + (string) @injection.content + (#eq? @_option "synctex-editor-command") + (#offset! @injection.content 0 1 0 -1) + (#set! injection.language "bash")) + +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/scripts/ci-install.sh b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/scripts/ci-install.sh new file mode 100755 index 00000000..52194cde --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/scripts/ci-install.sh @@ -0,0 +1,26 @@ +#!/nix/store/4bj2kxdm1462fzcc2i2s4dn33g2angcc-bash-5.2p32/bin/bash + +set -e + +os=$(uname -s) +if [[ $os == Linux ]]; then + wget https://github.com/neovim/neovim/releases/download/${NVIM_TAG}/nvim-linux64.tar.gz + tar -zxf nvim-linux64.tar.gz + sudo ln -s "$PWD"/nvim-linux64/bin/nvim /usr/local/bin + rm -rf "$PWD"/nvim-linux64/lib/nvim/parser + mkdir -p ~/.local/share/nvim/site/pack/nvim-treesitter/start + ln -s "$PWD" ~/.local/share/nvim/site/pack/nvim-treesitter/start +elif [[ $os == Darwin ]]; then + RELEASE_NAME="nvim-macos-$(uname -m)" + curl -L "https://github.com/neovim/neovim/releases/download/${NVIM_TAG}/$RELEASE_NAME.tar.gz" | tar -xz + sudo ln -s "$PWD/$RELEASE_NAME/bin/nvim" /usr/local/bin + rm -rf "$PWD/$RELEASE_NAME/lib/nvim/parser" + mkdir -p ~/.local/share/nvim/site/pack/nvim-treesitter/start + ln -s "$PWD" ~/.local/share/nvim/site/pack/nvim-treesitter/start +else + curl -L https://github.com/neovim/neovim/releases/download/${NVIM_TAG}/nvim-win64.zip -o nvim-win64.zip + unzip nvim-win64 + mkdir -p ~/AppData/Local/nvim/pack/nvim-treesitter/start + mkdir -p ~/AppData/Local/nvim-data + cp -r "$PWD" ~/AppData/Local/nvim/pack/nvim-treesitter/start +fi diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/scripts/format-queries.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/scripts/format-queries.lua new file mode 100755 index 00000000..acb1f159 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/scripts/format-queries.lua @@ -0,0 +1,450 @@ +#!/nix/store/w1iq3315z63558j04gnlzdd2yk1v1hfz-coreutils-9.5/bin/env -S -l + +local ts = vim.treesitter +local get_node_text = ts.get_node_text + +---@type string[] +local files + +local arg = _G.arg[1] or "." +if arg:match ".*%.scm$" then + files = { arg } +else + files = vim.fn.split(vim.fn.glob(arg .. "/**/*.scm")) +end + +ts.query.add_predicate("kind-eq?", function(match, _, _, pred) + local node = match[pred[2]] + if not node then + return true + end + + local types = { unpack(pred, 3) } + return vim.tbl_contains(types, node:type()) +end, true) + +ts.query.add_predicate("is-start-of-line?", function(match, _, _, pred) + local node = match[pred[2]] + if not node then + return true + end + local start_row, start_col = node:start() + return vim.fn.indent(start_row + 1) == start_col +end) + +--- Control the indent here. Change to \t if uses tab instead +local indent_str = " " +local textwidth = 100 + +-- Query to control the formatter +local format_queries = [[ +;;query +;; Ignore next node with `; format-ignore` +( + (comment) @_pattern + . + (_) @format.ignore + (#lua-match? @_pattern "^;+%s*format%-ignore")) + +;; {{{ +;; Add newlines to top level nodes +;; {{{ +;; Preserve inline comments +(program + . (_) + (comment) @format.prepend-newline + (#is-start-of-line? @format.prepend-newline)) +(program + . (_) + (comment) @_comment + . + (comment) @format.prepend-newline + (#not-is-start-of-line? @_comment) + (#is-start-of-line? @format.prepend-newline)) +; Extra newline for modelines +(program + (comment) @_modeline + . + (_) @format.prepend-newline + (#is-start-of-line? @_modeline) + (#contains? @_modeline "^;+%s*inherits:")) +(program + (comment) @_modeline + . + (_) @format.prepend-newline + (#is-start-of-line? @_modeline) + (#contains? @_modeline "^;+%s*extends%s*$")) +;; }}} +;; Making sure all top-level patterns are separated +(program + (_) @format.append-newline) +(program + (_) @format.cancel-append .) +(program + . (_) + [ + (list) + (grouping) + (named_node) + (anonymous_node) + (field_definition) + ] @format.prepend-newline) + +(program + (comment) @_comment + . + [ + (list) + (grouping) + (named_node) + (anonymous_node) + (field_definition) + (comment) + ] @format.cancel-prepend + (#is-start-of-line? @_comment) + (#not-lua-match? @_comment "^;+%s*inherits:") + (#not-lua-match? @_comment "^;+%s*extends%s*$")) +;; }}} + +;; delims +[ + ":" + "." +] @format.append-space +( + "." @format.prepend-space @format.cancel-append + . + ")") + +;; List handler +;; Only starts indent if 2 or more elements +(list + "[" @format.indent.begin + "]" @format.indent.dedent) +;; Otherwise, remove brackets +(list + "[" @format.remove @format.cancel-append + . + (_) @format.cancel-append + . + "]" @format.remove) +;; [ ... ] @capture1 @capture2 +;; Append newlines for nodes inside the list +(list + (_) @format.append-newline + (#not-kind-eq? @format.append-newline "capture" "quantifier")) + +;; (_), "_" and _ handler +;; Start indents if it's one of these patterns +(named_node + [ + "_" + name: (identifier) + ] @format.indent.begin + . + [ + (list) ; (foo [...]) + (grouping) ; (foo ((foo))) + (negated_field) ; (foo !field) + (field_definition) ; (foo field: (...)) + (named_node) ; (foo (bar)) + (predicate) ; (named_node (#set!)) + (anonymous_node) + "." + ]) +;; Honoring comment's position within a node +(named_node + [ + "_" + name: (identifier) + ] @format.indent.begin + . + (comment) @_comment + (#is-start-of-line? @_comment)) +(named_node + [ + "_" + name: (identifier) + ] @format.indent.begin @format.cancel-append + . + "."? @format.prepend-newline + . + (comment) @format.prepend-space + (#not-is-start-of-line? @format.prepend-space)) + +;; Add newlines for other nodes, in case the top node is indented +(named_node + [ + (list) + (grouping) + (negated_field) + (field_definition) + (named_node) + (predicate) + (anonymous_node) + "." + ] @format.append-newline) + +;; Collapse closing parentheses +(named_node + [ + "_" + name: (identifier) + (_) + ] @format.cancel-append + . + ")" + (#not-kind-eq? @format.cancel-append "comment")) + +;; All captures should be separated with a space +(capture) @format.prepend-space + +;; Workaround to just use the string's content +(anonymous_node (string) @format.keep) + +; ( (_) ) handler +(grouping + "(" + . + [ + (named_node) ; ((foo)) + (list) ; ([foo] (...)) + (anonymous_node) ; ("foo") + (grouping . (_)) + ] @format.indent.begin + . + (_)) +(grouping + "(" + . + (grouping) @format.indent.begin + (predicate)) +(grouping + "(" + [ + (anonymous_node) + (named_node) + (list) + (predicate) + (grouping . (_)) + "." + ] @format.append-newline + (_) .) +;; Collapsing closing parens +(grouping + (_) @format.cancel-append . ")" + (#not-kind-eq? @format.cancel-append "comment")) +(grouping + (capture) @format.prepend-space) +;; Remove unnecessary parens +(grouping + "(" @format.remove + . + (_) + . + ")" @format.remove .) +(grouping + "(" @format.remove + . + [ + (anonymous_node + name: (string) .) + (named_node + [ + "_" + name: (identifier) + ] .) + ] + . + ")" @format.remove + . + (capture)) + +; Separate this query to avoid capture duplication +(predicate + "(" @format.indent.begin @format.cancel-append) +(predicate + (parameters + (comment) @format.prepend-newline + . + (_) @format.cancel-prepend) + (#is-start-of-line? @format.prepend-newline)) +(predicate + (parameters + (_) @format.prepend-space) + (#set! conditional-newline)) +(predicate + (parameters + . + (capture) + . (_) @format.prepend-space) + (#set! lookahead-newline) + (#set! conditional-newline)) +;; Workaround to keep the string's content +(string) @format.keep + +;; Comment related handlers +(comment) @format.append-newline +;; comment styling. Feel free to change in the future +((comment) @format.replace + (#gsub! @format.replace "^;+(%s*.-)%s*$" ";%1")) +;; Preserve end of line comments +( + [ + "." + ":" + (list) + (grouping) + (named_node) + (anonymous_node) + (negated_field) + ] @format.cancel-append + . + (quantifier)? + . + "."? @format.prepend-newline ; Make sure anchor are not eol but start of newline + . + (comment) @format.prepend-space + (#not-is-start-of-line? @format.prepend-space)) +]] + +---@param lines string[] +---@param lines_to_append string[] +local function append_lines(lines, lines_to_append) + for i = 1, #lines_to_append, 1 do + lines[#lines] = lines[#lines] .. lines_to_append[i] + if i ~= #lines_to_append then + lines[#lines + 1] = "" + end + end +end + +---@param bufnr integer +---@param node TSNode +---@param lines string[] +---@param q table +---@param level integer +local function iter(bufnr, node, lines, q, level) + --- Sometimes 2 queries apply append twice. This is to prevent the case from happening + local apply_newline = false + for child, _ in node:iter_children() do + local id = child:id() + repeat + if apply_newline then + apply_newline = false + lines[#lines + 1] = string.rep(indent_str, level) + end + if q["format.ignore"][id] then + local text = vim.split(get_node_text(child, bufnr):gsub("\r\n?", "\n"), "\n", { trimempty = true }) + append_lines(lines, text) + break + elseif q["format.remove"][id] then + break + end + if not q["format.cancel-prepend"][id] then + if q["format.prepend-newline"][id] then + lines[#lines + 1] = string.rep(indent_str, level) + elseif q["format.prepend-space"][id] then + if not q["format.prepend-space"][id]["conditional-newline"] then + lines[#lines] = lines[#lines] .. " " + elseif child:byte_length() + 1 + #lines[#lines] > textwidth then + lines[#lines + 1] = string.rep(indent_str, level) + else + -- Do a rough guess of the actual byte length. If it's larger than `columns` then add a newline first + -- column - byte_end + byte_start + local _, _, byte_start = child:start() + local _, _, byte_end = node:end_() + if + q["format.prepend-space"][id]["lookahead-newline"] + and textwidth - (byte_end - byte_start) - #lines[#lines] < 0 + then + lines[#lines + 1] = string.rep(indent_str, level) + else + lines[#lines] = lines[#lines] .. " " + end + end + end + end + if q["format.replace"][id] then + append_lines(lines, vim.split(q["format.replace"][id].text, "\n", { trimempty = true })) + elseif child:named_child_count() == 0 or q["format.keep"][id] then + append_lines( + lines, + vim.split(string.gsub(get_node_text(child, bufnr), "\r\n?", "\n"), "\n+", { trimempty = true }) + ) + else + iter(bufnr, child, lines, q, level) + end + if q["format.indent.begin"][id] then + level = level + 1 + apply_newline = true + break + end + if q["format.indent.dedent"][id] then + if string.match(lines[#lines], "^%s*" .. get_node_text(child, bufnr)) then + lines[#lines] = string.sub(lines[#lines], 1 + #string.rep(indent_str, 1)) + end + end + if q["format.indent.end"][id] then + level = math.max(level - 1, 0) + if string.match(lines[#lines], "^%s*" .. get_node_text(child, bufnr)) then + lines[#lines] = string.sub(lines[#lines], 1 + #string.rep(indent_str, 1)) + end + break + end + until true + repeat + if q["format.cancel-append"][id] then + apply_newline = false + end + if not q["format.cancel-append"][id] then + if q["format.append-newline"][id] then + apply_newline = true + elseif q["format.append-space"][id] then + lines[#lines] = lines[#lines] .. " " + end + end + until true + end +end + +---@param bufnr integer +---@param queries string +local function format(bufnr, queries) + local lines = { "" } + -- stylua: ignore + local map = { + ['format.ignore'] = {}, -- Ignore the node and its children + ['format.indent.begin'] = {}, -- +1 shiftwidth for all nodes after this + ['format.indent.end'] = {}, -- -1 shiftwidth for all nodes after this + ['format.indent.dedent'] = {}, -- -1 shiftwidth for this line only + ['format.prepend-space'] = {}, -- Prepend a space before inserting the node + ['format.prepend-newline'] = {}, -- Prepend a \n before inserting the node + ['format.append-space'] = {}, -- Append a space after inserting the node + ['format.append-newline'] = {}, -- Append a newline after inserting the node + ['format.cancel-append'] = {}, -- Cancel any `@format.append-*` applied to the node + ['format.cancel-prepend'] = {}, -- Cancel any `@format.prepend-*` applied to the node + ['format.keep'] = {}, -- String content is not exposed as a syntax node. This is a workaround for it + ['format.replace'] = {}, -- Dedicated capture used to store results of `(#gsub!)` + ['format.remove'] = {}, -- Do not add the syntax node to the result, i.e. brackets [], parens () + } + local root = ts.get_parser(bufnr, "query"):parse(true)[1]:root() + local query = ts.query.parse("query", queries) + for id, node, metadata in query:iter_captures(root, bufnr) do + if query.captures[id]:sub(1, 1) ~= "_" then + map[query.captures[id]][node:id()] = metadata and (metadata[id] and metadata[id] or metadata) or {} + end + end + + iter(bufnr, root, lines, map, 0) + vim.api.nvim_buf_set_lines(bufnr, 0, -1, false, lines) +end + +for _, file in ipairs(files) do + local buf = vim.fn.bufadd(file) + vim.fn.bufload(file) + vim.api.nvim_set_current_buf(buf) + format(buf, format_queries) +end + +vim.cmd "silent wa!" diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/angular/defer.html b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/angular/defer.html new file mode 100644 index 00000000..a8531398 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/angular/defer.html @@ -0,0 +1,9 @@ +@defer (on viewport) { + +} @placeholder (minimum 100ms) { + +} @loading (after 100s; minimum 200ms){ + +} @error { + +} diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/angular/for.html b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/angular/for.html new file mode 100644 index 00000000..591472e2 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/angular/for.html @@ -0,0 +1,5 @@ +@for (item of items; track item.id) { +
  • {{ item.name }}
  • +} @empty { +

    No items

    +} diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/angular/if-else.html b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/angular/if-else.html new file mode 100644 index 00000000..7854e1bc --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/angular/if-else.html @@ -0,0 +1,15 @@ +@if (someCondition) { +

    someCondition is true

    +} @else { +

    someCondition is false

    +} + +
    + @if (someOther) { + True + + @if (nestedCondition) { + Nested + } + } +
    diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/angular/switch-case.html b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/angular/switch-case.html new file mode 100644 index 00000000..17df9660 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/angular/switch-case.html @@ -0,0 +1,13 @@ +
    + @switch (obj.property) { + @case (1) { +

    Case 1

    + } + @case (2) { +

    Case 2

    + } + @default { +

    Default

    + } + } +
    diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/angular_spec.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/angular_spec.lua new file mode 100644 index 00000000..2090420c --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/angular_spec.lua @@ -0,0 +1,70 @@ +local Runner = require("tests.indent.common").Runner +local runner = Runner:new(it, "tests/indent/angular", { + tabstop = 2, + shiftwidth = 2, + expandtab = true, + filetype = "htmlangular", +}) + +describe("indent HTML Angular:", function() + describe("whole file:", function() + runner:whole_file "." + end) + + describe("new line:", function() + for _, info in ipairs { + { 1, 2 }, + { 2, 2 }, + { 3, 2 }, + { 4, 2 }, + { 6, 0 }, + { 7, 2 }, + { 8, 4 }, + { 10, 4 }, + { 11, 6 }, + { 12, 6 }, + { 13, 4 }, + { 14, 2 }, + } do + runner:new_line("if-else.html", { on_line = info[1], text = "//", indent = info[2] }) + end + + for _, info in ipairs { + { 1, 2 }, + { 2, 4 }, + { 3, 6 }, + { 4, 6 }, + { 6, 6 }, + { 7, 6 }, + { 9, 6 }, + { 10, 6 }, + { 12, 2 }, + } do + runner:new_line("switch-case.html", { on_line = info[1], text = "//", indent = info[2] }) + end + + for _, info in ipairs { + { 1, 2 }, + { 2, 2 }, + { 3, 2 }, + { 4, 2 }, + { 5, 0 }, + } do + runner:new_line("for.html", { on_line = info[1], text = "//", indent = info[2] }) + end + + for _, info in ipairs { + { 1, 2 }, + { 2, 2 }, + { 3, 2 }, + { 4, 2 }, + { 5, 2 }, + { 6, 2 }, + { 7, 2 }, + { 8, 2 }, + { 9, 0 }, + } do + runner:new_line("defer.html", { on_line = info[1], text = "//", indent = info[2] }) + end + end) +end) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/dot/test.dot b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/dot/test.dot new file mode 100644 index 00000000..b3fe35fc --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/dot/test.dot @@ -0,0 +1,8 @@ +digraph { + node [ + shape=ellipse, + ]; + subgraph sub { + a1 -> a2 -> a3; + } +} diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/dot_spec.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/dot_spec.lua new file mode 100644 index 00000000..ac78f8d9 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/dot_spec.lua @@ -0,0 +1,25 @@ +local Runner = require("tests.indent.common").Runner + +local run = Runner:new(it, "tests/indent/dot", { + tabstop = 2, + shiftwidth = 2, + softtabstop = 0, + expandtab = true, +}) + +describe("indent dot:", function() + describe("whole file:", function() + run:whole_file(".", { + expected_failures = {}, + }) + end) + + describe("new line:", function() + run:new_line("test.dot", { on_line = 1, text = "node [", indent = 2 }) + run:new_line("test.dot", { on_line = 2, text = "shape=ellipse,", indent = 4 }) + run:new_line("test.dot", { on_line = 4, text = "subgraph sub {", indent = 2 }) + run:new_line("test.dot", { on_line = 5, text = "a1 -> a2 -> a3;", indent = 4 }) + run:new_line("test.dot", { on_line = 6, text = "}", indent = 2 }) + run:new_line("test.dot", { on_line = 7, text = "}", indent = 0 }) + end) +end) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/meson/cond.meson b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/meson/cond.meson new file mode 100644 index 00000000..a4b0b71d --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/meson/cond.meson @@ -0,0 +1,16 @@ +# vim: ft=meson + +if a == b +endif + +if a == b + foo() +endif + +if a == b + foo() +elif a != b + foo() +else + foo() +endif diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/meson/dict.meson b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/meson/dict.meson new file mode 100644 index 00000000..d48689fa --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/meson/dict.meson @@ -0,0 +1,15 @@ +# vim: ft=meson + +foo = { + 'a': 1, + 'b': 2, +} + +bar = { + 'a': 1, + 'b': 2} + +baz = {'a': 1, + 'b': 2 +} + diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/meson/func.meson b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/meson/func.meson new file mode 100644 index 00000000..3e83e0fa --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/meson/func.meson @@ -0,0 +1,13 @@ +# vim: ft=meson + +executable('progname', +) + +executable('progname', + sources: 'prog.c', + c_args: '-DFOO=1' +) + +executable('progname', + sources: 'prog.c', + c_args: '-DFOO=1') diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/meson/list.meson b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/meson/list.meson new file mode 100644 index 00000000..0dd17d27 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/meson/list.meson @@ -0,0 +1,14 @@ +# vim: ft=meson + +foo = [ + 'a', + 'b', +] + +bar = [ + 'a', + 'b'] + +baz = ['a', + 'b' +] diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/meson/loop.meson b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/meson/loop.meson new file mode 100644 index 00000000..ae9c4b7a --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/meson/loop.meson @@ -0,0 +1,8 @@ +# vim: ft=meson + +foreach elem : list +endforeach + +foreach elem : list + foo() +endforeach diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/meson/meson.build b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/meson/meson.build new file mode 100644 index 00000000..b7e6e056 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/meson/meson.build @@ -0,0 +1,34 @@ +project('simple', 'c') + +src = [ + 'source1.c', + 'source2.c', +] + +if 1 == 2 + if meson.is_cross_build() + src += [ + 'src1.c', + 'src2.c'] + endif +endif + +inc = include_directories([ + 'dir1/', +]) + + +dep = declare_dependency( + sources : src, + include_directories : inc, +) + +executable('myexe', src, + include_directories : [ + 'd1', + [ + 'd2', + 'd3', + ] + ], + dependencies: dep) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/meson/method.meson b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/meson/method.meson new file mode 100644 index 00000000..8c17be8a --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/meson/method.meson @@ -0,0 +1,8 @@ +# vim: ft=meson + +myobj + .do_something('now') + +myobj.do_something('now') + .do_something('now') + .do_something('now') diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/meson/ternary.meson b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/meson/ternary.meson new file mode 100644 index 00000000..d3dec04a --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/meson/ternary.meson @@ -0,0 +1,11 @@ +# vim: ft=meson + +x = cond ? + iftrue : + iffalse + +x = cond + ? iftrue + : iffalse + +x = cond ? diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/meson_spec.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/meson_spec.lua new file mode 100644 index 00000000..bc2372ee --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/meson_spec.lua @@ -0,0 +1,28 @@ +local Runner = require("tests.indent.common").Runner + +local run = Runner:new(it, "tests/indent/meson", { + tabstop = 2, + shiftwidth = 2, + softtabstop = 0, + expandtab = true, +}) + +describe("indent Meson:", function() + describe("whole file:", function() + run:whole_file(".", { + expected_failures = {}, + }) + end) + + describe("new line:", function() + run:new_line("cond.meson", { on_line = 3, text = "foo()", indent = 2 }) + run:new_line("cond.meson", { on_line = 6, text = "foo()", indent = 2 }) + run:new_line("cond.meson", { on_line = 7, text = "foo()", indent = 2 }) + run:new_line("cond.meson", { on_line = 12, text = "foo()", indent = 2 }) + run:new_line("cond.meson", { on_line = 14, text = "foo()", indent = 2 }) + run:new_line("dict.meson", { on_line = 13, text = ",'x':1,", indent = 2 }) + run:new_line("loop.meson", { on_line = 3, text = "foo()", indent = 2 }) + run:new_line("loop.meson", { on_line = 7, text = "foo()", indent = 2 }) + run:new_line("ternary.meson", { on_line = 11, text = "x : y", indent = 2 }) + end) +end) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/nix/conds.nix b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/nix/conds.nix new file mode 100644 index 00000000..4307fc84 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/nix/conds.nix @@ -0,0 +1,134 @@ +{ lib }: +with lib.lists; +with lib.types; +with lib.attrsets; +with lib.strings; { + doubleFromSystem = { cpu, kernel, abi, ... }: + if abi == abis.cygnus then + "${cpu.name}-cygwin" + else if kernel.families ? darwin then + "${cpu.name}-darwin" + else + "${cpu.name}-${kernelName kernel}"; + + tripleFromSystem = { cpu, vendor, kernel, abi, ... }@sys: + assert isSystem sys; + let + optExecFormat = lib.optionalString (kernel.name == "netbsd" + && gnuNetBSDDefaultExecFormat cpu != kernel.execFormat) + kernel.execFormat.name; + optAbi = lib.optionalString (abi != abis.unknown) "-${abi.name}"; + in "${cpu.name}-${vendor.name}-${ + kernelName kernel + }${optExecFormat}${optAbi}"; + + mkSystemFromSkeleton = { cpu, + # Optional, but fallback too complex for here. + # Inferred below instead. + vendor ? assert false; null, kernel, + # Also inferred below + abi ? assert false; null, }@args: + let + getCpu = name: cpuTypes.${name} or (throw "Unknown CPU type: ${name}"); + getVendor = name: vendors.${name} or (throw "Unknown vendor: ${name}"); + getKernel = name: kernels.${name} or (throw "Unknown kernel: ${name}"); + getAbi = name: abis.${name} or (throw "Unknown ABI: ${name}"); + + parsed = { + cpu = getCpu args.cpu; + vendor = if args ? vendor then + getVendor args.vendor + else if isDarwin parsed then + vendors.apple + else if isWindows parsed then + vendors.pc + else + vendors.unknown; + kernel = if hasPrefix "darwin" args.kernel then + getKernel "darwin" + else if hasPrefix "netbsd" args.kernel then + getKernel "netbsd" + else + getKernel args.kernel; + abi = if args ? abi then + getAbi args.abi + else if isLinux parsed || isWindows parsed then + if isAarch32 parsed then + if lib.versionAtLeast (parsed.cpu.version or "0") "6" then + abis.gnueabihf + else + abis.gnueabi + else if isPower64 parsed && isBigEndian parsed then + abis.gnuabielfv2 + else + abis.gnu + else + abis.unknown; + }; + in mkSystem parsed; + + mkSkeletonFromList = l: + { + "1" = if elemAt l 0 == "avr" then { + cpu = elemAt l 0; + kernel = "none"; + abi = "unknown"; + } else + throw "Target specification with 1 components is ambiguous"; + "2" = # We only do 2-part hacks for things Nix already supports + if elemAt l 1 == "cygwin" then { + cpu = elemAt l 0; + kernel = "windows"; + abi = "cygnus"; + } else if elemAt l 1 == "windows" then { + cpu = elemAt l 0; + kernel = "windows"; + abi = "msvc"; + } else if (elemAt l 1) == "elf" then { + cpu = elemAt l 0; + vendor = "unknown"; + kernel = "none"; + abi = elemAt l 1; + } else { + cpu = elemAt l 0; + kernel = elemAt l 1; + }; + "3" = + # cpu-kernel-environment + if elemAt l 1 == "linux" + || elem (elemAt l 2) [ "eabi" "eabihf" "elf" "gnu" ] then { + cpu = elemAt l 0; + kernel = elemAt l 1; + abi = elemAt l 2; + vendor = "unknown"; + } else if elemAt l 1 == "apple" + || elem (elemAt l 2) [ "wasi" "redox" "mmixware" "ghcjs" "mingw32" ] + || hasPrefix "freebsd" (elemAt l 2) || hasPrefix "netbsd" (elemAt l 2) + || hasPrefix "genode" (elemAt l 2) then { + cpu = elemAt l 0; + vendor = elemAt l 1; + kernel = if elemAt l 2 == "mingw32" then + "windows" # autotools breaks on -gnu for window + else + elemAt l 2; + } else + throw "Target specification with 3 components is ambiguous"; + "4" = { + cpu = elemAt l 0; + vendor = elemAt l 1; + kernel = elemAt l 2; + abi = elemAt l 3; + }; + }.${toString (length l)} or (throw + "system string has invalid number of hyphen-separated components"); + + # GNU build systems assume that older NetBSD architectures are using a.out. + gnuNetBSDDefaultExecFormat = cpu: + if (cpu.family == "arm" && cpu.bits == 32) + || (cpu.family == "sparc" && cpu.bits == 32) + || (cpu.family == "m68k" && cpu.bits == 32) + || (cpu.family == "x86" && cpu.bits == 32) then + execFormats.aout + else + execFormats.elf; +} diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/nix/general.nix b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/nix/general.nix new file mode 100644 index 00000000..f79214ba --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/nix/general.nix @@ -0,0 +1,130 @@ +{ lib }: +with lib.lists; +with lib.types; +with lib.attrsets; +with lib.strings; +with (import ./inspect.nix { inherit lib; }).predicates; + +let + inherit (lib.options) mergeOneOption; + + setTypes = type: + mapAttrs (name: value: + assert type.check value; + setType type.name ({ inherit name; } // value)); + +in rec { + + ################################################################################ + + types.openSignificantByte = mkOptionType { + name = "significant-byte"; + description = "Endianness"; + merge = mergeOneOption; + }; + + types.significantByte = enum (attrValues significantBytes); + + significantBytes = setTypes types.openSignificantByte { + bigEndian = { }; + littleEndian = { }; + }; + + ################################################################################ + + # Reasonable power of 2 + types.bitWidth = enum [ 8 16 32 64 128 ]; + + ################################################################################ + + types.openCpuType = mkOptionType { + name = "cpu-type"; + description = "instruction set architecture name and information"; + merge = mergeOneOption; + check = x: + types.bitWidth.check x.bits && (if 8 < x.bits then + types.significantByte.check x.significantByte + else + !(x ? significantByte)); + }; + + types.cpuType = enum (attrValues cpuTypes); + + cpuTypes = with significantBytes; + setTypes types.openCpuType { + arm = { + bits = 32; + significantByte = littleEndian; + family = "arm"; + }; + armv5tel = { + bits = 32; + significantByte = littleEndian; + family = "arm"; + version = "5"; + arch = "armv5t"; + }; + }; + + isCompatible = a: b: + with cpuTypes; + lib.any lib.id [ + # x86 + (b == i386 && isCompatible a i486) + (b == i486 && isCompatible a i586) + (b == i586 && isCompatible a i686) + + # ARMv6 + (b == armv6l && isCompatible a armv6m) + (b == armv6m && isCompatible a armv7l) + ]; + + ################################################################################ + + types.openVendor = mkOptionType { + name = "vendor"; + description = "vendor for the platform"; + merge = mergeOneOption; + }; + + abis = setTypes types.openAbi { + cygnus = { }; + msvc = { }; + + # Other architectures should use ELF in embedded situations. + elf = { }; + + androideabi = { }; + android = { + assertions = [{ + assertion = platform: !platform.isAarch32; + message = '' + The "android" ABI is not for 32-bit ARM. Use "androideabi" instead. + ''; + }]; + }; + }; + + ################################################################################ + + types.parsedPlatform = mkOptionType { + name = "system"; + description = + "fully parsed representation of llvm- or nix-style platform tuple"; + merge = mergeOneOption; + check = { cpu, vendor, kernel, abi, }: + types.cpuType.check cpu && types.vendor.check vendor + && types.kernel.check kernel && types.abi.check abi; + }; + + isSystem = isType "system"; + + mkSystem = components: + assert types.parsedPlatform.check components; + setType "system" components; + + mkSystemFromString = s: + mkSystemFromSkeleton (mkSkeletonFromList (lib.splitString "-" s)); + + ################################################################################ +} diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/nix_spec.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/nix_spec.lua new file mode 100644 index 00000000..709a0a10 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/nix_spec.lua @@ -0,0 +1,40 @@ +local Runner = require("tests.indent.common").Runner + +local runner = Runner:new(it, "tests/indent/nix", { + tabstop = 2, + shiftwidth = 2, + softtabstop = 2, + expandtab = true, +}) + +describe("indent Nix:", function() + describe("whole file:", function() + runner:whole_file(".", { + expected_failures = {}, + }) + end) + + describe("new line:", function() + for _, info in ipairs { + { 14, 2 }, + { 16, 2 }, + { 48, 4 }, + { 112, 6 }, + } do + runner:new_line("general.nix", { on_line = info[1], text = "x = 1;", indent = info[2] }) + end + + for _, info in ipairs { + { 115, 6 }, + { 113, 10 }, + { 6, 4 }, + { 12, 2 }, + { 16, 6 }, + { 35, 6 }, + { 23, 2 }, + { 21, 6 }, + } do + runner:new_line("conds.nix", { on_line = info[1], text = "x = 1;", indent = info[2] }) + end + end) +end) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/php/issue-4848.php b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/php/issue-4848.php new file mode 100644 index 00000000..8d112ea1 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/php/issue-4848.php @@ -0,0 +1,66 @@ + ( +); + +return fn ( +) => ( +); + +return function ( +) { +}; + +return function () { +}; + +return match ( +) { +}; + +return match () { +}; + +return new class +{ + public function up() + { + } + + public function down( + ) { + } +}; + +$this->foo() + ->bar( + ) + ->baz(); + +$this->get() + ->each(function () { + }) + ->each( + function ( + ) { + }, + ); + +return $this->get() + ->each(function () { + }) + ->each( + function ( + ) { + }, + ); diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/php/issue-6888.php b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/php/issue-6888.php new file mode 100644 index 00000000..a0bcb371 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/php/issue-6888.php @@ -0,0 +1,12 @@ + diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/python/parenthesized_conditions.py b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/python/parenthesized_conditions.py new file mode 100644 index 00000000..d30f2b1a --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/python/parenthesized_conditions.py @@ -0,0 +1,35 @@ +if ( + True + or 1 + or False +): + pass + +if ( + True + or 1 + or False): + pass + +if (True + or 1 + or False): + pass + +while ( + False + or 1 + or False +): + pass + +while ( + False + or 1 + or False): + pass + +while (False + or 1 + or False): + pass diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/query/test.scm b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/query/test.scm new file mode 100644 index 00000000..62b94417 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/query/test.scm @@ -0,0 +1,41 @@ +; vim:ft=query +; format-ignore +(fenced_code_block (fenced_code_block_delimiter) @label + (info_string + (language) @_lang) + (#offset! @label 0 1 0 -1) + (#ft-conceal! @_lang)) + +([ + (list_marker_minus) + (list_marker_plus) + (list_marker_star) +] @markup.list + (#offset-first-n! @markup.list 1) + (#set! conceal "•")) + +(list + (list_item + (list + (list_item + ([ + (list_marker_minus) + (list_marker_plus) + (list_marker_star) + ] @markup.list + (#offset-first-n! @markup.list 1) + (#set! conceal "◦")))))) + +; comment +(while_statement + [ + "while" + "do" + ] @open.loop + "end" @close.loop) @scope.loop + +[ + "toplevel" + "list" +] @variable +(( diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/query_spec.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/query_spec.lua new file mode 100644 index 00000000..1f9c2315 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/query_spec.lua @@ -0,0 +1,25 @@ +local Runner = require("tests.indent.common").Runner + +local run = Runner:new(it, "tests/indent/query", { + tabstop = 2, + shiftwidth = 2, + softtabstop = 2, + expandtab = true, + lispoptions = "expr:1", +}) + +describe("indent Query:", function() + describe("whole file:", function() + run:whole_file(".", {}) + end) + describe("new line:", function() + run:new_line("test.scm", { on_line = 3, text = "(node)", indent = 2 }) + run:new_line("test.scm", { on_line = 5, text = "(node)", indent = 2 }) + run:new_line("test.scm", { on_line = 12, text = "(node)", indent = 2 }) + run:new_line("test.scm", { on_line = 25, text = "(#my-directive!)", indent = 10 }) + run:new_line("test.scm", { on_line = 34, text = '"more"', indent = 2 }) + run:new_line("test.scm", { on_line = 35, text = "(node)", indent = 0 }) + run:new_line("test.scm", { on_line = 40, text = "(node)", indent = 0 }) + run:new_line("test.scm", { on_line = 41, text = "node_name", indent = 2 }) + end) +end) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/rust/tuple.rs b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/rust/tuple.rs new file mode 100644 index 00000000..9001f77a --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/rust/tuple.rs @@ -0,0 +1,8 @@ +fn foo() { + for ( + a, + b + ) in c.iter() { + // ... + } +} diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/yuck/indent.yuck b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/yuck/indent.yuck new file mode 100644 index 00000000..c224548a --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/yuck/indent.yuck @@ -0,0 +1,17 @@ +(defwidget name + :widget parameter + (box one + :box1 parameter + (box two + :box2 parameter + ) + ) +) + +(defwidget name + :widget parameter + (box one + ) +) + +(defwidget name diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/yuck_spec.lua b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/yuck_spec.lua new file mode 100644 index 00000000..6ce15de6 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/indent/yuck_spec.lua @@ -0,0 +1,19 @@ +local Runner = require("tests.indent.common").Runner +local run = Runner:new(it, "tests/indent/yuck", { + tabstop = 2, + shiftwidth = 2, + expandtab = true, +}) + +describe("indent yuck", function() + describe("whole file:", function() + run:whole_file(".", { + expected_failures = {}, + }) + end) + + describe("new line:", function() + run:new_line("indent.yuck", { on_line = 13, text = ":box1 parameter", indent = 4 }) + run:new_line("indent.yuck", { on_line = 17, text = ")", indent = 0 }) + end) +end) diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/query/highlights/latex/test.tex b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/query/highlights/latex/test.tex new file mode 100644 index 00000000..9e65b900 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/query/highlights/latex/test.tex @@ -0,0 +1,33 @@ +% vim:ft=latex +% !TeX +% ^ @keyword.directive +%& filename +% ^ @keyword.directive + \begin{equation} \frac{4}{2} + 128 \text{hello} \sum_{n=1}^{\text{hi\_hi\^hi}} n \end{equation} +% ^ @markup.math ^ @none ^ @function + +\begin{equation} + a = b % Comment here +% ^ @comment +% ^ @markup.math +\end{equation} +\begin{equation} + a = b % Comment here +% ^ @comment + b = c +\end{equation} +\text{ +hi $here$ is some text % with a comment +% ^ @comment +% ^ @markup.math +} +\textbf{ +here is some text $5 + 2$ % with a comment +% ^ @comment +% ^ @markup.math +} +\textit{ +here is some text $5 + 2$ % with a comment +% ^ @comment +% ^ @markup.math +} diff --git a/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/query/highlights/php/keywords.php b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/query/highlights/php/keywords.php new file mode 100644 index 00000000..f3d3f95a --- /dev/null +++ b/config/neovim/store/lazy-plugins/rainbow-delimiters.nvim/test/xdg/local/share/nvim/site/pack/testing/start/nvim-treesitter/tests/query/highlights/php/keywords.php @@ -0,0 +1,62 @@ +foo(); +// ^^^^ @variable.builtin +// ^^^ @function.method.call + self::foo(); +// ^^^^ @variable.builtin +// ^^^ @function.call + static::foo(); +// ^^^^^^ @variable.builtin + parent::foo(); +// ^^^^^^ @variable.builtin + $this->foo; +// ^^^ @variable.member + $this->foo(a: 5); +// ^ @variable.parameter + A::$foo::$bar; +// ^^^ @variable.member +// ^^^ @variable.member + } +} diff --git a/config/neovim/store/lazy-plugins/rustaceanvim/lua/rustaceanvim/neotest/parser.lua b/config/neovim/store/lazy-plugins/rustaceanvim/lua/rustaceanvim/neotest/parser.lua new file mode 100644 index 00000000..4ef3647e --- /dev/null +++ b/config/neovim/store/lazy-plugins/rustaceanvim/lua/rustaceanvim/neotest/parser.lua @@ -0,0 +1,39 @@ +local M = {} + +local trans = require('rustaceanvim.neotest.trans') + +---NOTE: This mutates results +--- +---@param results table +---@param context rustaceanvim.neotest.RunContext +---@param output_content string +---@return table results +function M.populate_pass_positions(results, context, output_content) + -- XXX: match doesn't work here because it needs to + -- match on the end of each line + -- TODO: Use cargo-nextest's JUnit output in the future? + local lines = vim.split(output_content, '\n') or {} + vim + .iter(lines) + ---@param line string + :map(function(line) + return line:match('PASS%s.*%s(%S+)$') or line:match('test%s(%S+)%s...%sok') + end) + ---@param result string | nil + :filter(function(result) + return result ~= nil + end) + ---@param pos string + :map(function(pos) + return trans.get_position_id(context.file, pos) + end) + ---@param pos string + :each(function(pos) + results[pos] = { + status = 'passed', + } + end) + return results +end + +return M diff --git a/config/neovim/store/lazy-plugins/rustaceanvim/rustaceanvim-5.2.0-1-unstable-5.2.0-1-rocks/manifest b/config/neovim/store/lazy-plugins/rustaceanvim/rustaceanvim-5.2.0-1-unstable-5.2.0-1-rocks/manifest new file mode 100644 index 00000000..59f3c12d --- /dev/null +++ b/config/neovim/store/lazy-plugins/rustaceanvim/rustaceanvim-5.2.0-1-unstable-5.2.0-1-rocks/manifest @@ -0,0 +1,241 @@ +commands = {} +dependencies = { + rustaceanvim = { + ["5.2.0-1"] = { + { + constraints = { + { + op = ">=", + version = { + 5, 1, string = "5.1" + } + } + }, + name = "lua" + } + } + } +} +modules = { + ["rustaceanvim.cached_commands"] = { + "rustaceanvim/5.2.0-1" + }, + ["rustaceanvim.cargo"] = { + "rustaceanvim/5.2.0-1" + }, + ["rustaceanvim.commands.code_action_group"] = { + "rustaceanvim/5.2.0-1" + }, + ["rustaceanvim.commands.crate_graph"] = { + "rustaceanvim/5.2.0-1" + }, + ["rustaceanvim.commands.debuggables"] = { + "rustaceanvim/5.2.0-1" + }, + ["rustaceanvim.commands.diagnostic"] = { + "rustaceanvim/5.2.0-1" + }, + ["rustaceanvim.commands.expand_macro"] = { + "rustaceanvim/5.2.0-1" + }, + ["rustaceanvim.commands.external_docs"] = { + "rustaceanvim/5.2.0-1" + }, + ["rustaceanvim.commands.fly_check"] = { + "rustaceanvim/5.2.0-1" + }, + ["rustaceanvim.commands.hover_range"] = { + "rustaceanvim/5.2.0-1" + }, + ["rustaceanvim.commands.init"] = { + "rustaceanvim/5.2.0-1" + }, + ["rustaceanvim.commands.join_lines"] = { + "rustaceanvim/5.2.0-1" + }, + ["rustaceanvim.commands.move_item"] = { + "rustaceanvim/5.2.0-1" + }, + ["rustaceanvim.commands.open_cargo_toml"] = { + "rustaceanvim/5.2.0-1" + }, + ["rustaceanvim.commands.parent_module"] = { + "rustaceanvim/5.2.0-1" + }, + ["rustaceanvim.commands.rebuild_proc_macros"] = { + "rustaceanvim/5.2.0-1" + }, + ["rustaceanvim.commands.rustc_unpretty"] = { + "rustaceanvim/5.2.0-1" + }, + ["rustaceanvim.commands.ssr"] = { + "rustaceanvim/5.2.0-1" + }, + ["rustaceanvim.commands.syntax_tree"] = { + "rustaceanvim/5.2.0-1" + }, + ["rustaceanvim.commands.view_ir"] = { + "rustaceanvim/5.2.0-1" + }, + ["rustaceanvim.commands.workspace_refresh"] = { + "rustaceanvim/5.2.0-1" + }, + ["rustaceanvim.commands.workspace_symbol"] = { + "rustaceanvim/5.2.0-1" + }, + ["rustaceanvim.config.check"] = { + "rustaceanvim/5.2.0-1" + }, + ["rustaceanvim.config.init"] = { + "rustaceanvim/5.2.0-1" + }, + ["rustaceanvim.config.internal"] = { + "rustaceanvim/5.2.0-1" + }, + ["rustaceanvim.config.json"] = { + "rustaceanvim/5.2.0-1" + }, + ["rustaceanvim.config.server"] = { + "rustaceanvim/5.2.0-1" + }, + ["rustaceanvim.dap"] = { + "rustaceanvim/5.2.0-1" + }, + ["rustaceanvim.executors.background"] = { + "rustaceanvim/5.2.0-1" + }, + ["rustaceanvim.executors.init"] = { + "rustaceanvim/5.2.0-1" + }, + ["rustaceanvim.executors.meta"] = { + "rustaceanvim/5.2.0-1" + }, + ["rustaceanvim.executors.neotest"] = { + "rustaceanvim/5.2.0-1" + }, + ["rustaceanvim.executors.quickfix"] = { + "rustaceanvim/5.2.0-1" + }, + ["rustaceanvim.executors.termopen"] = { + "rustaceanvim/5.2.0-1" + }, + ["rustaceanvim.executors.toggleterm"] = { + "rustaceanvim/5.2.0-1" + }, + ["rustaceanvim.executors.vimux"] = { + "rustaceanvim/5.2.0-1" + }, + ["rustaceanvim.health"] = { + "rustaceanvim/5.2.0-1" + }, + ["rustaceanvim.hover_actions"] = { + "rustaceanvim/5.2.0-1" + }, + ["rustaceanvim.init"] = { + "rustaceanvim/5.2.0-1" + }, + ["rustaceanvim.lsp"] = { + "rustaceanvim/5.2.0-1" + }, + ["rustaceanvim.neotest.init"] = { + "rustaceanvim/5.2.0-1" + }, + ["rustaceanvim.neotest.parser"] = { + "rustaceanvim/5.2.0-1" + }, + ["rustaceanvim.neotest.trans"] = { + "rustaceanvim/5.2.0-1" + }, + ["rustaceanvim.os"] = { + "rustaceanvim/5.2.0-1" + }, + ["rustaceanvim.overrides"] = { + "rustaceanvim/5.2.0-1" + }, + ["rustaceanvim.runnables"] = { + "rustaceanvim/5.2.0-1" + }, + ["rustaceanvim.rust_analyzer"] = { + "rustaceanvim/5.2.0-1" + }, + ["rustaceanvim.server_status"] = { + "rustaceanvim/5.2.0-1" + }, + ["rustaceanvim.shell"] = { + "rustaceanvim/5.2.0-1" + }, + ["rustaceanvim.test"] = { + "rustaceanvim/5.2.0-1" + }, + ["rustaceanvim.types.internal"] = { + "rustaceanvim/5.2.0-1" + }, + ["rustaceanvim.ui"] = { + "rustaceanvim/5.2.0-1" + } +} +repository = { + rustaceanvim = { + ["5.2.0-1"] = { + { + arch = "installed", + commands = {}, + dependencies = {}, + modules = { + ["rustaceanvim.cached_commands"] = "rustaceanvim/cached_commands.lua", + ["rustaceanvim.cargo"] = "rustaceanvim/cargo.lua", + ["rustaceanvim.commands.code_action_group"] = "rustaceanvim/commands/code_action_group.lua", + ["rustaceanvim.commands.crate_graph"] = "rustaceanvim/commands/crate_graph.lua", + ["rustaceanvim.commands.debuggables"] = "rustaceanvim/commands/debuggables.lua", + ["rustaceanvim.commands.diagnostic"] = "rustaceanvim/commands/diagnostic.lua", + ["rustaceanvim.commands.expand_macro"] = "rustaceanvim/commands/expand_macro.lua", + ["rustaceanvim.commands.external_docs"] = "rustaceanvim/commands/external_docs.lua", + ["rustaceanvim.commands.fly_check"] = "rustaceanvim/commands/fly_check.lua", + ["rustaceanvim.commands.hover_range"] = "rustaceanvim/commands/hover_range.lua", + ["rustaceanvim.commands.init"] = "rustaceanvim/commands/init.lua", + ["rustaceanvim.commands.join_lines"] = "rustaceanvim/commands/join_lines.lua", + ["rustaceanvim.commands.move_item"] = "rustaceanvim/commands/move_item.lua", + ["rustaceanvim.commands.open_cargo_toml"] = "rustaceanvim/commands/open_cargo_toml.lua", + ["rustaceanvim.commands.parent_module"] = "rustaceanvim/commands/parent_module.lua", + ["rustaceanvim.commands.rebuild_proc_macros"] = "rustaceanvim/commands/rebuild_proc_macros.lua", + ["rustaceanvim.commands.rustc_unpretty"] = "rustaceanvim/commands/rustc_unpretty.lua", + ["rustaceanvim.commands.ssr"] = "rustaceanvim/commands/ssr.lua", + ["rustaceanvim.commands.syntax_tree"] = "rustaceanvim/commands/syntax_tree.lua", + ["rustaceanvim.commands.view_ir"] = "rustaceanvim/commands/view_ir.lua", + ["rustaceanvim.commands.workspace_refresh"] = "rustaceanvim/commands/workspace_refresh.lua", + ["rustaceanvim.commands.workspace_symbol"] = "rustaceanvim/commands/workspace_symbol.lua", + ["rustaceanvim.config.check"] = "rustaceanvim/config/check.lua", + ["rustaceanvim.config.init"] = "rustaceanvim/config/init.lua", + ["rustaceanvim.config.internal"] = "rustaceanvim/config/internal.lua", + ["rustaceanvim.config.json"] = "rustaceanvim/config/json.lua", + ["rustaceanvim.config.server"] = "rustaceanvim/config/server.lua", + ["rustaceanvim.dap"] = "rustaceanvim/dap.lua", + ["rustaceanvim.executors.background"] = "rustaceanvim/executors/background.lua", + ["rustaceanvim.executors.init"] = "rustaceanvim/executors/init.lua", + ["rustaceanvim.executors.meta"] = "rustaceanvim/executors/meta.lua", + ["rustaceanvim.executors.neotest"] = "rustaceanvim/executors/neotest.lua", + ["rustaceanvim.executors.quickfix"] = "rustaceanvim/executors/quickfix.lua", + ["rustaceanvim.executors.termopen"] = "rustaceanvim/executors/termopen.lua", + ["rustaceanvim.executors.toggleterm"] = "rustaceanvim/executors/toggleterm.lua", + ["rustaceanvim.executors.vimux"] = "rustaceanvim/executors/vimux.lua", + ["rustaceanvim.health"] = "rustaceanvim/health.lua", + ["rustaceanvim.hover_actions"] = "rustaceanvim/hover_actions.lua", + ["rustaceanvim.init"] = "rustaceanvim/init.lua", + ["rustaceanvim.lsp"] = "rustaceanvim/lsp.lua", + ["rustaceanvim.neotest.init"] = "rustaceanvim/neotest/init.lua", + ["rustaceanvim.neotest.parser"] = "rustaceanvim/neotest/parser.lua", + ["rustaceanvim.neotest.trans"] = "rustaceanvim/neotest/trans.lua", + ["rustaceanvim.os"] = "rustaceanvim/os.lua", + ["rustaceanvim.overrides"] = "rustaceanvim/overrides.lua", + ["rustaceanvim.runnables"] = "rustaceanvim/runnables.lua", + ["rustaceanvim.rust_analyzer"] = "rustaceanvim/rust_analyzer.lua", + ["rustaceanvim.server_status"] = "rustaceanvim/server_status.lua", + ["rustaceanvim.shell"] = "rustaceanvim/shell.lua", + ["rustaceanvim.test"] = "rustaceanvim/test.lua", + ["rustaceanvim.types.internal"] = "rustaceanvim/types/internal.lua", + ["rustaceanvim.ui"] = "rustaceanvim/ui.lua" + } + } + } + } +} diff --git a/config/neovim/store/lazy-plugins/rustaceanvim/rustaceanvim-5.2.0-1-unstable-5.2.0-1-rocks/rustaceanvim/5.2.0-1/doc/mason.txt b/config/neovim/store/lazy-plugins/rustaceanvim/rustaceanvim-5.2.0-1-unstable-5.2.0-1-rocks/rustaceanvim/5.2.0-1/doc/mason.txt new file mode 100644 index 00000000..a30f1510 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rustaceanvim/rustaceanvim-5.2.0-1-unstable-5.2.0-1-rocks/rustaceanvim/5.2.0-1/doc/mason.txt @@ -0,0 +1,54 @@ +============================================================================== +mason-lspconfig troubleshooting *rustaceanvim.mason* + +This plugin supports automatically detecting mason.nvim codelldb installations, +but not rust-analyzer. +The main reason for this choice is that it mason.nvim installations of rust-analyzer +will most likely have been built with a different toolchain than your project, +leading to inconsistencies and possibly subtle bugs. + +If you want to use a mason.nvim installation anyway, you can do so by specifying +the `server.cmd` setting (see |rustaceanvim.config| and |RustaceanLspClientOpts|): +>lua + vim.g.rustaceanvim = { + server = { + cmd = function() + local mason_registry = require('mason-registry') + local ra_binary = mason_registry.is_installed('rust-analyzer') + -- This may need to be tweaked, depending on the operating system. + and mason_registry.get_package('rust-analyzer'):get_install_path() .. "/rust-analyzer" + or "rust-analyzer" + return { ra_binary } -- You can add args to the list, such as '--log-file' + end, + }, + } +< +Note that mason-lspconfig.nvim, when configured to ensure rust-analyzer is installed, +assumes you are using the `nvim-lspconfig.rust_analyzer` client. +Some Neovim distributions will automatically call the client's `setup` +function, resulting in a conflict with this plugin. + +General approach to prevent mason-lspconfig from setting up +`lspconfig.rust_analyzer`: + +>lua + require('mason-lspconfig').setup_handlers { + ['rust_analyzer'] = function() end, + } +< + +Using LazyVim: + +>lua + { + 'neovim/nvim-lspconfig', + opts = { + setup = { + rust_analyzer = function() + return true + end, + }, + }, + } +< +vim:tw=78:ts=8:noet:ft=help:norl: diff --git a/config/neovim/store/lazy-plugins/rustaceanvim/rustaceanvim-5.2.0-1-unstable-5.2.0-1-rocks/rustaceanvim/5.2.0-1/doc/rustaceanvim.txt b/config/neovim/store/lazy-plugins/rustaceanvim/rustaceanvim-5.2.0-1-unstable-5.2.0-1-rocks/rustaceanvim/5.2.0-1/doc/rustaceanvim.txt new file mode 100644 index 00000000..45f19f5c --- /dev/null +++ b/config/neovim/store/lazy-plugins/rustaceanvim/rustaceanvim-5.2.0-1-unstable-5.2.0-1-rocks/rustaceanvim/5.2.0-1/doc/rustaceanvim.txt @@ -0,0 +1,505 @@ +============================================================================== +Table of Contents *rustaceanvim.contents* + +Introduction ·············································· |rustaceanvim.intro| + ································································ |rustaceanvim| +plugin configuration ····································· |rustaceanvim.config| +LSP configuration utility ························· |rustaceanvim.config.server| + ························································ |rustaceanvim.neotest| + ···························································· |rustaceanvim.dap| + +============================================================================== +Introduction *rustaceanvim.intro* + +This plugin automatically configures the `rust-analyzer` builtin LSP client +and integrates with other rust tools. + +============================================================================== + *rustaceanvim* + + +Commands: + + ':RustAnalyzer start' - Start the LSP client. + ':RustAnalyzer stop' - Stop the LSP client. + ':RustAnalyzer restart' - Restart the LSP client. + ':RustAnalyzer reloadSettings' - Reload settings for the LSP client. + +The ':RustLsp[!]' command is available after the LSP client has initialized. +It accepts the following subcommands: + + 'runnables {args[]}?' - Run tests, executables, etc. + ':RustLsp!' means run the last runnable (ignores any args). + `args[]` allows you to override the executable's arguments. + 'run {args[]}?' - Like 'runnables', but runs the target at the current cursor position. + 'debuggables {args[]}?' - Debug tests, executables, etc. (requires |nvim-dap|). + ':RustLsp!' means run the last debuggable (ignores any args). + `args[]` allows you to override the executable's arguments. + 'debug {args[]}?' - Like 'debuggables', but debugs the target at the current cursor position. + 'testables {args[]}?' - Run tests + ':RustLsp!' means run the last testable (ignores any args). + `args[]` allows you to override the executable's arguments. + 'expandMacro' - Expand macros recursively. + 'moveItem {up|down}' - Move items up or down. + 'hover {actions|range}' - Hover actions, or hover over visually selected range. + 'explainError {cycle?|current?}' - Display a hover window with explanations form the Rust error index. + - If called with |cycle| or no args: + Like |vim.diagnostic.goto_next|, + |explainError| will cycle diagnostics, + starting at the cursor position, + until it can find a diagnostic with an error code. + - If called with |current|: + Searches for diagnostics only in the + current cursor line. + 'renderDiagnostic {cycle?|current?}' - Display a hover window with the rendered diagnostic, + as displayed during |cargo build|. + - If called with |cycle| or no args: + Like |vim.diagnostic.goto_next|, + |renderDiagnostic| will cycle diagnostics, + starting at the cursor position, + until it can find a diagnostic with rendered data. + - If called with |current|: + Searches for diagnostics only in the + current cursor line. + 'openCargo' - Open the Cargo.toml file for the current package. + 'openDocs' - Open docs.rs documentation for the symbol under the cursor. + 'parentModule' - Open the current module's parent module. + 'workspaceSymbol {onlyTypes?|allSymbols?} {query?}' + Filtered workspace symbol search. + When run with a bang (`:RustLsp! workspaceSymbol ...`), + rust-analyzer will include dependencies in the search. + You can also configure rust-analyzer so that |vim.lsp.buf.workspace_symbol| + supports filtering (with a # suffix to the query) or searching dependencies. + 'joinLines' - Join adjacent lines. + 'ssr {query}' - Structural search and replace. + Searches the entire buffer in normal mode. + Searches the selected region in visual mode. + 'crateGraph {backend}' - Create and view a crate graph with graphviz. + 'syntaxTree' - View the syntax tree. + 'view {mir|hir}' - View MIR or HIR. + 'flyCheck' {run?|clear?|cancel?} + - Run `cargo check` or another compatible command (f.x. `clippy`) + in a background thread and provide LSP diagnostics based on + the output of the command. + Useful in large projects where running `cargo check` on each save + can be costly. + Defaults to `flyCheck run` if called without an argument. + 'logFile' - Open the rust-analyzer log file. + +The ':Rustc' command can be used to interact with rustc. +It accepts the following subcommands: + + 'unpretty {args[]}' - Opens a buffer with a textual representation of the MIR or others things, + of the function closest to the cursor. + Achieves an experience similar to Rust Playground. + NOTE: This currently requires a tree-sitter parser for Rust, + and a nightly compiler toolchain. + +============================================================================== +plugin configuration *rustaceanvim.config* + + +rustaceanvim is a filetype plugin, and does not need +a `setup` function to work. + +To configure rustaceanvim, set the variable `vim.g.rustaceanvim`, +which is a `RustaceanOpts` table, in your neovim configuration. + +Example: + +>lua +---@type rustaceanvim.Opts +vim.g.rustaceanvim = { + ---@type rustaceanvim.tools.Opts + tools = { + -- ... + }, + ---@type rustaceanvim.lsp.ClientOpts + server = { + on_attach = function(client, bufnr) + -- Set keybindings, etc. here. + end, + default_settings = { + -- rust-analyzer language server configuration + ['rust-analyzer'] = { + }, + }, + -- ... + }, + ---@type rustaceanvim.dap.Opts + dap = { + -- ... + }, + } +< + +Notes: + + - `vim.g.rustaceanvim` can also be a function that returns a `rustaceanvim.Opts` table. + - `server.settings`, by default, is a function that looks for a `rust-analyzer.json` file + in the project root, to load settings from it. It falls back to an empty table. + + +rustaceanvim.Opts *rustaceanvim.Opts* + + Fields: ~ + {tools?} (rustaceanvim.tools.Opts) Plugin options + {server?} (rustaceanvim.lsp.ClientOpts) Language server client options + {dap?} (rustaceanvim.dap.Opts) Debug adapter options + + +rustaceanvim.tools.Opts *rustaceanvim.tools.Opts* + + Fields: ~ + {executor?} (rustaceanvim.Executor|rustaceanvim.executor_alias) + The executor to use for runnables/debuggables + {test_executor?} (rustaceanvim.Executor|rustaceanvim.test_executor_alias) + The executor to use for runnables that are tests / testables + {crate_test_executor?} (rustaceanvim.Executor|rustaceanvim.test_executor_alias) + The executor to use for runnables that are crate test suites (--all-targets) + {cargo_override?} (string) + Set this to override the 'cargo' command for runnables, debuggables (etc., e.g. to 'cross'). + If set, this takes precedence over 'enable_nextest'. + {enable_nextest?} (boolean) + Whether to enable nextest. If enabled, `cargo test` commands will be transformed to `cargo nextest run` commands. + Defaults to `true` if cargo-nextest is detected. Ignored if `cargo_override` is set. + {enable_clippy?} (boolean) + Whether to enable clippy checks on save if a clippy installation is detected. + Default: `true` + {on_initialized?} (fun(health:rustaceanvim.RAInitializedStatus)) + Function that is invoked when the LSP server has finished initializing + {reload_workspace_from_cargo_toml?} (boolean) + Automatically call `RustReloadWorkspace` when writing to a Cargo.toml file + {hover_actions?} (rustaceanvim.hover-actions.Opts) Options for hover actions + {code_actions?} (rustaceanvim.code-action.Opts) Options for code actions + {float_win_config?} (rustaceanvim.FloatWinConfig) + Options applied to floating windows. + See |api-win_config|. + {create_graph?} (rustaceanvim.crate-graph.Opts) + Options for showing the crate graph based on graphviz and the dot + {open_url?} (fun(url:string):nil) + If set, overrides how to open URLs + {rustc?} (rustaceanvim.rustc.Opts) + Options for `rustc` + + +rustaceanvim.Executor *rustaceanvim.Executor* + + Fields: ~ + {execute_command} (fun(cmd:string,args:string[],cwd:string|nil,opts?:rustaceanvim.ExecutorOpts)) + + +rustaceanvim.ExecutorOpts *rustaceanvim.ExecutorOpts* + + Fields: ~ + {bufnr?} (integer) + The buffer from which the executor was invoked. + + +rustaceanvim.FloatWinConfig *rustaceanvim.FloatWinConfig* + + Fields: ~ + {auto_focus?} (boolean) + {open_split?} ("horizontal"|"vertical") + + See: ~ + |vim.lsp.util.open_floating_preview.Opts| + |vim.api.nvim_open_win| + + +rustaceanvim.executor_alias *rustaceanvim.executor_alias* + + Type: ~ + "termopen"|"quickfix"|"toggleterm"|"vimux" + + +rustaceanvim.test_executor_alias *rustaceanvim.test_executor_alias* + + Type: ~ + rustaceanvim.executor_alias|"background"|"neotest" + + +rustaceanvim.hover-actions.Opts *rustaceanvim.hover-actions.Opts* + + Fields: ~ + {replace_builtin_hover?} (boolean) + Whether to replace Neovim's built-in `vim.lsp.buf.hover` with hover actions. + Default: `true` + + +rustaceanvim.code-action.Opts *rustaceanvim.code-action.Opts* + + Fields: ~ + {group_icon?} (string) + Text appended to a group action + {ui_select_fallback?} (boolean) + Whether to fall back to `vim.ui.select` if there are no grouped code actions. + Default: `false` + + +rustaceanvim.lsp_server_health_status *rustaceanvim.lsp_server_health_status* + + Type: ~ + "ok"|"warning"|"error" + + +rustaceanvim.RAInitializedStatus *rustaceanvim.RAInitializedStatus* + + Fields: ~ + {health} (rustaceanvim.lsp_server_health_status) + + +rustaceanvim.crate-graph.Opts *rustaceanvim.crate-graph.Opts* + + Fields: ~ + {backend?} (string) + Backend used for displaying the graph. + See: https://graphviz.org/docs/outputs/ + Defaults to `"x11"` if unset. + {output?} (string) + Where to store the output. No output if unset. + Relative path from `cwd`. + {enabled_graphviz_backends?} (string[]) + Override the enabled graphviz backends list, used for input validation and autocompletion. + {pipe?} (string) + Overide the pipe symbol in the shell command. + Useful if using a shell that is not supported by this plugin. + + +rustaceanvim.rustc.Opts *rustaceanvim.rustc.Opts* + + Fields: ~ + {default_edition?} (string) + The default edition to use if it cannot be auto-detected. + See https://rustc-dev-guide.rust-lang.org/guides/editions.html. + Default '2021'. + + +rustaceanvim.lsp.ClientOpts *rustaceanvim.lsp.ClientOpts* + + Fields: ~ + {auto_attach?} (boolean|fun(bufnr:integer):boolean) + Whether to automatically attach the LSP client. + Defaults to `true` if the `rust-analyzer` executable is found. + {cmd?} (string[]|fun():string[]) + Command and arguments for starting rust-analyzer + {root_dir?} (string|fun(filename:string,default:fun(filename:string):string|nil):string|nil) + The directory to use for the attached LSP. + Can be a function, which may return nil if no server should attach. + The second argument contains the default implementation, which can be used for fallback behavior. + {settings?} (table|fun(project_root:string|nil,default_settings:table):table) + Setting passed to rust-analyzer. + Defaults to a function that looks for a `rust-analyzer.json` file or returns an empty table. + See https://rust-analyzer.github.io/manual.html#configuration. + {standalone?} (boolean) + Standalone file support (enabled by default). + Disabling it may improve rust-analyzer's startup time. + {logfile?} (string) + The path to the rust-analyzer log file. + {load_vscode_settings?} (boolean) + Whether to search (upward from the buffer) for rust-analyzer settings in .vscode/settings json. + If found, loaded settings will override configured options. + Default: true + + See: ~ + |vim.lsp.ClientConfig| + + +rustaceanvim.dap.Opts *rustaceanvim.dap.Opts* + + Fields: ~ + {autoload_configurations} (boolean) + Whether to autoload nvim-dap configurations when rust-analyzer has attached? + Default: `true`. + + +rustaceanvim.disable *rustaceanvim.disable* + + Type: ~ + false + + +rustaceanvim.dap.Command *rustaceanvim.dap.Command* + + Type: ~ + string + + +rustaceanvim.dap.executable.Config *rustaceanvim.dap.executable.Config* + + Fields: ~ + {type} (rustaceanvim.dap.adapter.types.executable) + The type of debug adapter. + {command} (string) Default: `"lldb-vscode"`. + {args?} (string) Default: unset. + {name?} (string) Default: `"lldb"`. + + +rustaceanvim.dap.server.Config *rustaceanvim.dap.server.Config* + + Fields: ~ + {type} (rustaceanvim.dap.adapter.types.server) The type of debug adapter. + {host?} (string) The host to connect to. + {port} (string) The port to connect to. + {executable} (rustaceanvim.dap.Executable) The executable to run + {name?} (string) + + +rustaceanvim.dap.Executable *rustaceanvim.dap.Executable* + + Fields: ~ + {command} (string) The executable. + {args} (string[]) Its arguments. + + + *rustaceanvim.dap.adapter.types.executable* +rustaceanvim.dap.adapter.types.executable + + Type: ~ + + + +rustaceanvim.dap.adapter.types.server *rustaceanvim.dap.adapter.types.server* + + Type: ~ + + + + *rustaceanvim.dap.client.Config* +rustaceanvim.dap.client.Config : Configuration + + Fields: ~ + {type} (string) The dap adapter to use + {name} (string) + {request} (rustaceanvim.dap.config.requests.launch|rustaceanvim.dap.config.requests.attach|rustaceanvim.dap.config.requests.custom) The type of dap session + {cwd?} (string) Current working directory + {program?} (string) Path to executable for most DAP clients + {args?} (string[]) Optional args to DAP client, not valid for all client types + {env?} (rustaceanvim.EnvironmentMap) Environmental variables + {initCommands?} (string[]) Initial commands to run, `lldb` clients only + {coreConfigs?} (table) + Essential config values for `probe-rs` client, see https://probe.rs/docs/tools/debugger/ + + +rustaceanvim.EnvironmentMap *rustaceanvim.EnvironmentMap* + + Type: ~ + table + + +rustaceanvim.dap.config.requests.launch*rustaceanvim.dap.config.requests.launch* + + Type: ~ + + + +rustaceanvim.dap.config.requests.attach*rustaceanvim.dap.config.requests.attach* + + Type: ~ + + + +rustaceanvim.dap.config.requests.custom*rustaceanvim.dap.config.requests.custom* + + Type: ~ + + + + *M.get_codelldb_adapter* +M.get_codelldb_adapter({codelldb_path}, {liblldb_path}) + For the heroes who want to use it. + + Parameters: ~ + {codelldb_path} (string) Path to the codelldb executable + {liblldb_path} (string) Path to the liblldb dynamic library + + Returns: ~ + (rustaceanvim.dap.server.Config) + + +============================================================================== +LSP configuration utility *rustaceanvim.config.server* + +rustaceanvim.LoadRASettingsOpts *rustaceanvim.LoadRASettingsOpts* + + Fields: ~ + {settings_file_pattern} (string|nil) File name or pattern to search for. Defaults to 'rust-analyzer.json' + {default_settings} (table|nil) Default settings to merge the loaded settings into + + + *server.load_rust_analyzer_settings* +server.load_rust_analyzer_settings({project_root}, {opts}) + Load rust-analyzer settings from a JSON file, + falling back to the default settings if none is found or if it cannot be decoded. + + Parameters: ~ + {project_root} (string|nil) The project root + {opts} (rustaceanvim.LoadRASettingsOpts|nil) + + Returns: ~ + (table) server_settings + + See: ~ + |https://rust-analyzer.github.io/manual.html#configuration| + + +server.create_client_capabilities() *server.create_client_capabilities* + + Returns: ~ + (lsp.ClientCapabilities) + + +============================================================================== + *rustaceanvim.neotest* + + +A |neotest| adapter for rust, powered by rustaceanvim. + +If you add this to neotest: + +> +require('neotest').setup { + -- ..., + adapters = { + -- ..., + require('rustaceanvim.neotest') + }, +} +< + +this plugin will configure itself to use |neotest| +as a test executor, and |neotest| will use rust-analyzer +for test discovery and command construction. + +Note: If you use this adapter, do not add the neotest-rust adapter +(another plugin). + + +============================================================================== + *rustaceanvim.dap* + + + The DAP integration requires `nvim-dap` https://github.com/mfussenegger/nvim-dap + (Please read the plugin's documentation, see |dap-adapter|) + and a debug adapter (e.g. `lldb` https://lldb.llvm.org/ + or `codelldb` https://github.com/vadimcn/codelldb). + + By default, this plugin will silently attempt to autoload |dap-configuration|s + when the LSP client attaches. + You can call them with `require('dap').continue()` or `:DapContinue` once + they have been loaded. The feature can be disabled by setting + `vim.g.rustaceanvim.dap.autoload_configurations = false`. + + - `:RustLsp debuggables` will only load debug configurations + created by `rust-analyzer`. + - `require('dap').continue()` will load all Rust debug configurations, + including those specified in a `.vscode/launch.json` + (see |dap-launch.json|) + + IMPORTANT: Note that rustaceanvim may only be able to load DAP configurations + when rust-analyzer has finished initializing (which may be after + the client attaches, in large projects). This means that the + DAP configurations may not be loaded immediately upon startup. + + +vim:tw=78:ts=8:noet:ft=help:norl: diff --git a/config/neovim/store/lazy-plugins/rustaceanvim/rustaceanvim-5.2.0-1-unstable-5.2.0-1-rocks/rustaceanvim/5.2.0-1/ftplugin/rust.lua b/config/neovim/store/lazy-plugins/rustaceanvim/rustaceanvim-5.2.0-1-unstable-5.2.0-1-rocks/rustaceanvim/5.2.0-1/ftplugin/rust.lua new file mode 100644 index 00000000..ecf7852d --- /dev/null +++ b/config/neovim/store/lazy-plugins/rustaceanvim/rustaceanvim-5.2.0-1-unstable-5.2.0-1-rocks/rustaceanvim/5.2.0-1/ftplugin/rust.lua @@ -0,0 +1,57 @@ +---@type rustaceanvim.Config +local config = require('rustaceanvim.config.internal') + +if not vim.g.loaded_rustaceanvim then + require('rustaceanvim.config.check').check_for_lspconfig_conflict(vim.schedule_wrap(function(warn) + vim.notify_once(warn, vim.log.levels.WARN) + end)) + vim.lsp.commands['rust-analyzer.runSingle'] = function(command) + local runnables = require('rustaceanvim.runnables') + local cached_commands = require('rustaceanvim.cached_commands') + ---@type rustaceanvim.RARunnable[] + local ra_runnables = command.arguments + local runnable = ra_runnables[1] + local cargo_args = runnable.args.cargoArgs + if #cargo_args > 0 and vim.startswith(cargo_args[1], 'test') then + cached_commands.set_last_testable(1, ra_runnables) + end + cached_commands.set_last_runnable(1, ra_runnables) + runnables.run_command(1, ra_runnables) + end + + vim.lsp.commands['rust-analyzer.gotoLocation'] = function(command, ctx) + local client = vim.lsp.get_client_by_id(ctx.client_id) + if client then + vim.lsp.util.jump_to_location(command.arguments[1], client.offset_encoding) + end + end + + vim.lsp.commands['rust-analyzer.showReferences'] = function(_) + vim.lsp.buf.implementation() + end + + vim.lsp.commands['rust-analyzer.debugSingle'] = function(command) + local overrides = require('rustaceanvim.overrides') + local args = command.arguments[1].args + overrides.sanitize_command_for_debugging(args.cargoArgs) + local cached_commands = require('rustaceanvim.cached_commands') + cached_commands.set_last_debuggable(args) + local rt_dap = require('rustaceanvim.dap') + rt_dap.start(args) + end + + local commands = require('rustaceanvim.commands') + commands.create_rustc_command() +end + +vim.g.loaded_rustaceanvim = true + +local auto_attach = config.server.auto_attach +if type(auto_attach) == 'function' then + local bufnr = vim.api.nvim_get_current_buf() + auto_attach = auto_attach(bufnr) +end + +if auto_attach then + require('rustaceanvim.lsp').start() +end diff --git a/config/neovim/store/lazy-plugins/rustaceanvim/rustaceanvim-5.2.0-1-unstable-5.2.0-1-rocks/rustaceanvim/5.2.0-1/ftplugin/rust.vim b/config/neovim/store/lazy-plugins/rustaceanvim/rustaceanvim-5.2.0-1-unstable-5.2.0-1-rocks/rustaceanvim/5.2.0-1/ftplugin/rust.vim new file mode 100644 index 00000000..e0466566 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rustaceanvim/rustaceanvim-5.2.0-1-unstable-5.2.0-1-rocks/rustaceanvim/5.2.0-1/ftplugin/rust.vim @@ -0,0 +1,26 @@ +" Copied from built-in compiler/{rustc,cargo}.vim +setlocal errorformat= + \%f:%l:%c:\ %t%*[^:]:\ %m, + \%f:%l:%c:\ %*\\d:%*\\d\ %t%*[^:]:\ %m, + \%-G%f:%l\ %s, + \%-G%*[\ ]^, + \%-G%*[\ ]^%*[~], + \%-G%*[\ ]... + +" New errorformat (after nightly 2016/08/10) +setlocal errorformat+= + \%-G, + \%-Gerror:\ aborting\ %.%#, + \%-Gerror:\ Could\ not\ compile\ %.%#, + \%Eerror:\ %m, + \%Eerror[E%n]:\ %m, + \%Wwarning:\ %m, + \%Inote:\ %m, + \%C\ %#-->\ %f:%l:%c + +setlocal errorformat+= + \%-G%\\s%#Downloading%.%#, + \%-G%\\s%#Compiling%.%#, + \%-G%\\s%#Finished%.%#, + \%-G%\\s%#error:\ Could\ not\ compile\ %.%#, + \%-G%\\s%#To\ learn\ more\\,%.%# diff --git a/config/neovim/store/lazy-plugins/rustaceanvim/rustaceanvim-5.2.0-1-unstable-5.2.0-1-rocks/rustaceanvim/5.2.0-1/ftplugin/toml.lua b/config/neovim/store/lazy-plugins/rustaceanvim/rustaceanvim-5.2.0-1-unstable-5.2.0-1-rocks/rustaceanvim/5.2.0-1/ftplugin/toml.lua new file mode 100644 index 00000000..b465d3c4 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rustaceanvim/rustaceanvim-5.2.0-1-unstable-5.2.0-1-rocks/rustaceanvim/5.2.0-1/ftplugin/toml.lua @@ -0,0 +1,24 @@ +local fname = vim.fn.fnamemodify(vim.api.nvim_buf_get_name(0), ':t') +if fname ~= 'Cargo.toml' then + return +end + +local config = require('rustaceanvim.config.internal') +local ra = require('rustaceanvim.rust_analyzer') +if config.tools.reload_workspace_from_cargo_toml then + local group = vim.api.nvim_create_augroup('RustaceanCargoReloadWorkspace', { clear = false }) + local bufnr = vim.api.nvim_get_current_buf() + vim.api.nvim_clear_autocmds { + buffer = bufnr, + group = group, + } + vim.api.nvim_create_autocmd('BufWritePost', { + buffer = vim.api.nvim_get_current_buf(), + group = group, + callback = function() + if #ra.get_active_rustaceanvim_clients(nil) > 0 then + vim.cmd.RustLsp { 'reloadWorkspace', mods = { silent = true } } + end + end, + }) +end diff --git a/config/neovim/store/lazy-plugins/rustaceanvim/rustaceanvim-5.2.0-1-unstable-5.2.0-1-rocks/rustaceanvim/5.2.0-1/rock_manifest b/config/neovim/store/lazy-plugins/rustaceanvim/rustaceanvim-5.2.0-1-unstable-5.2.0-1-rocks/rustaceanvim/5.2.0-1/rock_manifest new file mode 100644 index 00000000..d91bd140 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rustaceanvim/rustaceanvim-5.2.0-1-unstable-5.2.0-1-rocks/rustaceanvim/5.2.0-1/rock_manifest @@ -0,0 +1,78 @@ +rock_manifest = { + doc = { + ["mason.txt"] = "858adffa88b1649b91187f49f191e376", + ["rustaceanvim.txt"] = "1eabb6dea51788209975fd19245bfcbe" + }, + ftplugin = { + ["rust.lua"] = "0bbc548280195d6d0a741e9640808675", + ["rust.vim"] = "3121ffa3b7f1aa9c3efbfe32e438dbeb", + ["toml.lua"] = "a8807dcfb5f6687ac543f4f8da3a9554" + }, + lua = { + rustaceanvim = { + ["cached_commands.lua"] = "31274668a1dc9e611c6fb4c0ac757d31", + ["cargo.lua"] = "f5378ecec5944cb0ee3444c31c378b88", + commands = { + ["code_action_group.lua"] = "4d2aee0d4d35a240b1c9d602695ed87e", + ["crate_graph.lua"] = "41d7ba76e788d984278f59d6c73f1dbd", + ["debuggables.lua"] = "f67f35eb3774672912e785c88cd91d48", + ["diagnostic.lua"] = "b37ce82f62b9c0ddc4646147d66765a0", + ["expand_macro.lua"] = "8c3785e8b5958081f4bec175d360ebb5", + ["external_docs.lua"] = "1d2fa5d88ea197ad9976c23b0ff70763", + ["fly_check.lua"] = "4ff335c2cc84d301b247e85110482311", + ["hover_range.lua"] = "68828cfd0c465bbe0915996795ff7b92", + ["init.lua"] = "b637c5c02f9c61c674e01c3eb599bb5d", + ["join_lines.lua"] = "f31a68f1ddac01b926d58ccd249bc03d", + ["move_item.lua"] = "f05118ba148e66c1e92882141e68343f", + ["open_cargo_toml.lua"] = "2368251db4ce52659693acc8eee15b74", + ["parent_module.lua"] = "a607e6c3f3871ed233704a2ba79c5ddc", + ["rebuild_proc_macros.lua"] = "6113336c3b82042f60c54446e6c5a887", + ["rustc_unpretty.lua"] = "ca233f8271917c20b5265a3161708b33", + ["ssr.lua"] = "1c936709630f09b2a81d22452d3e3fa2", + ["syntax_tree.lua"] = "c28fd8b22608e3f7bd3bdbb2e10c1617", + ["view_ir.lua"] = "97c8467240eb473cb9fc1a0bfc6674ef", + ["workspace_refresh.lua"] = "083b2d70533d0f417b65d2b7866f531b", + ["workspace_symbol.lua"] = "69bdc6d1255f7eb586ea8e350b840b85" + }, + config = { + ["check.lua"] = "8c87e8208f5b8fa2e5799531b4b88efa", + ["init.lua"] = "d9f55e37992cc4be0fa491927382c1df", + ["internal.lua"] = "6d452c01acd0e591b1943c949be310d7", + ["json.lua"] = "a8c7caf443ad9ce1193726aec053cc8d", + ["server.lua"] = "412839511a5dbc58672df8b182ce7e98" + }, + ["dap.lua"] = "44957dcdc4b2055c8aeaa94c0f833a01", + executors = { + ["background.lua"] = "93264d91d4f1e40b2ac914b2155544d5", + ["init.lua"] = "e0363361b74cbfdc0171bcab526b3fa2", + ["meta.lua"] = "c508069ea13f5b6dee89bfbc3baf5cca", + ["neotest.lua"] = "aaf98a780d535fc17506c4548ee1ac35", + ["quickfix.lua"] = "75bdebff2926554ed1e60fa35ab8b675", + ["termopen.lua"] = "394bfe73772bf3a901479e2f0813e265", + ["toggleterm.lua"] = "ef28fd456e9350e4250746899a6ae9ee", + ["vimux.lua"] = "a26ff98b8b3f0bff6a48090ac3fcf606" + }, + ["health.lua"] = "d739674bff96b05c82d00538a033aca2", + ["hover_actions.lua"] = "47721a479d52ff6cdc5afa76dcb36907", + ["init.lua"] = "cc66a50c1f863f59cf1ec703687f3336", + ["lsp.lua"] = "fa2f869c3f92b607d62fae44cec51137", + neotest = { + ["init.lua"] = "33b7a7be4dd23ee95cda1a170d4d0987", + ["parser.lua"] = "32b5c6bacd357015fb5167632bb82f7a", + ["trans.lua"] = "61e2e162521d1c47f077a29a8e058059" + }, + ["os.lua"] = "7a8abad874b58678039c73b3797328e7", + ["overrides.lua"] = "bccbf0314c999a8f51cbdf655651d48c", + ["runnables.lua"] = "fa001d0825d5a641649540f37d5d50dc", + ["rust_analyzer.lua"] = "68f0a270cb2de0ae86b91b0a10eec6c9", + ["server_status.lua"] = "4dade02d4facc6b3ed59a0d117ce3710", + ["shell.lua"] = "2a59375b5b9f9971573253c33a392b63", + ["test.lua"] = "e436ae539217729f46a1d556974e1100", + types = { + ["internal.lua"] = "95d9ff5763390a3efae83cc27dbef452" + }, + ["ui.lua"] = "185cbb4ef9b15b4feb6699fcbd5d4435" + } + }, + ["rustaceanvim-5.2.0-1.rockspec"] = "6551a7b17c39e7a27abb40d620829019" +} diff --git a/config/neovim/store/lazy-plugins/rustaceanvim/rustaceanvim-5.2.0-1-unstable-5.2.0-1-rocks/rustaceanvim/5.2.0-1/rustaceanvim-5.2.0-1.rockspec b/config/neovim/store/lazy-plugins/rustaceanvim/rustaceanvim-5.2.0-1-unstable-5.2.0-1-rocks/rustaceanvim/5.2.0-1/rustaceanvim-5.2.0-1.rockspec new file mode 100644 index 00000000..537336e8 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rustaceanvim/rustaceanvim-5.2.0-1-unstable-5.2.0-1-rocks/rustaceanvim/5.2.0-1/rustaceanvim-5.2.0-1.rockspec @@ -0,0 +1,40 @@ +local git_ref = '5.2.0' +local modrev = '5.2.0' +local specrev = '1' + +local repo_url = 'https://github.com/mrcjkb/rustaceanvim' + +rockspec_format = '3.0' +package = 'rustaceanvim' +version = modrev ..'-'.. specrev + +description = { + summary = '🦀 Supercharge your Rust experience in Neovim! A heavily modified fork of rust-tools.nvim', + detailed = [[ +This plugin automatically configures the rust-analyzer builtin LSP client +and integrates with other Rust tools. See the README's #features section +for more info.]], + labels = { 'dap', 'debug-adapter-protocol', 'language-server-protocol', 'lsp', 'neovim', 'nvim', 'plugin', 'rust', 'rust-analyzer', 'rust-lang', 'rust-tools' } , + homepage = 'https://github.com/mrcjkb/rustaceanvim', + license = 'GPL-2.0' +} + +dependencies = { 'lua >= 5.1' } + +test_dependencies = { } + +source = { + url = repo_url .. '/archive/' .. git_ref .. '.zip', + dir = 'rustaceanvim-' .. '5.2.0', +} + +if modrev == 'scm' or modrev == 'dev' then + source = { + url = repo_url:gsub('https', 'git') + } +end + +build = { + type = 'builtin', + copy_directories = { 'doc', 'ftplugin' } , +} diff --git a/config/neovim/store/lazy-plugins/rustaceanvim/rustaceanvim-5.2.0-1.rockspec b/config/neovim/store/lazy-plugins/rustaceanvim/rustaceanvim-5.2.0-1.rockspec new file mode 100644 index 00000000..537336e8 --- /dev/null +++ b/config/neovim/store/lazy-plugins/rustaceanvim/rustaceanvim-5.2.0-1.rockspec @@ -0,0 +1,40 @@ +local git_ref = '5.2.0' +local modrev = '5.2.0' +local specrev = '1' + +local repo_url = 'https://github.com/mrcjkb/rustaceanvim' + +rockspec_format = '3.0' +package = 'rustaceanvim' +version = modrev ..'-'.. specrev + +description = { + summary = '🦀 Supercharge your Rust experience in Neovim! A heavily modified fork of rust-tools.nvim', + detailed = [[ +This plugin automatically configures the rust-analyzer builtin LSP client +and integrates with other Rust tools. See the README's #features section +for more info.]], + labels = { 'dap', 'debug-adapter-protocol', 'language-server-protocol', 'lsp', 'neovim', 'nvim', 'plugin', 'rust', 'rust-analyzer', 'rust-lang', 'rust-tools' } , + homepage = 'https://github.com/mrcjkb/rustaceanvim', + license = 'GPL-2.0' +} + +dependencies = { 'lua >= 5.1' } + +test_dependencies = { } + +source = { + url = repo_url .. '/archive/' .. git_ref .. '.zip', + dir = 'rustaceanvim-' .. '5.2.0', +} + +if modrev == 'scm' or modrev == 'dev' then + source = { + url = repo_url:gsub('https', 'git') + } +end + +build = { + type = 'builtin', + copy_directories = { 'doc', 'ftplugin' } , +} diff --git a/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/manifest b/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/manifest new file mode 100644 index 00000000..eadd72ee --- /dev/null +++ b/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/manifest @@ -0,0 +1,330 @@ +commands = {} +dependencies = { + ["plenary.nvim"] = {}, + ["telescope.nvim"] = { + ["scm-1"] = { + { + constraints = { + { + op = "==", + version = { + 5, 1, string = "5.1" + } + } + }, + name = "lua" + }, + { + constraints = {}, + name = "plenary.nvim" + } + } + } +} +modules = { + ["telescope._"] = { + "telescope.nvim/scm-1" + }, + ["telescope._extensions.init"] = { + "telescope.nvim/scm-1" + }, + ["telescope.actions.generate"] = { + "telescope.nvim/scm-1" + }, + ["telescope.actions.history"] = { + "telescope.nvim/scm-1" + }, + ["telescope.actions.init"] = { + "telescope.nvim/scm-1" + }, + ["telescope.actions.layout"] = { + "telescope.nvim/scm-1" + }, + ["telescope.actions.mt"] = { + "telescope.nvim/scm-1" + }, + ["telescope.actions.set"] = { + "telescope.nvim/scm-1" + }, + ["telescope.actions.state"] = { + "telescope.nvim/scm-1" + }, + ["telescope.actions.utils"] = { + "telescope.nvim/scm-1" + }, + ["telescope.algos.fzy"] = { + "telescope.nvim/scm-1" + }, + ["telescope.algos.linked_list"] = { + "telescope.nvim/scm-1" + }, + ["telescope.algos.string_distance"] = { + "telescope.nvim/scm-1" + }, + ["telescope.builtin.__diagnostics"] = { + "telescope.nvim/scm-1" + }, + ["telescope.builtin.__files"] = { + "telescope.nvim/scm-1" + }, + ["telescope.builtin.__git"] = { + "telescope.nvim/scm-1" + }, + ["telescope.builtin.__internal"] = { + "telescope.nvim/scm-1" + }, + ["telescope.builtin.__lsp"] = { + "telescope.nvim/scm-1" + }, + ["telescope.builtin.init"] = { + "telescope.nvim/scm-1" + }, + ["telescope.command"] = { + "telescope.nvim/scm-1" + }, + ["telescope.config"] = { + "telescope.nvim/scm-1" + }, + ["telescope.config.resolve"] = { + "telescope.nvim/scm-1" + }, + ["telescope.debounce"] = { + "telescope.nvim/scm-1" + }, + ["telescope.deprecated"] = { + "telescope.nvim/scm-1" + }, + ["telescope.entry_manager"] = { + "telescope.nvim/scm-1" + }, + ["telescope.finders"] = { + "telescope.nvim/scm-1" + }, + ["telescope.finders.async_job_finder"] = { + "telescope.nvim/scm-1" + }, + ["telescope.finders.async_oneshot_finder"] = { + "telescope.nvim/scm-1" + }, + ["telescope.finders.async_static_finder"] = { + "telescope.nvim/scm-1" + }, + ["telescope.from_entry"] = { + "telescope.nvim/scm-1" + }, + ["telescope.health"] = { + "telescope.nvim/scm-1" + }, + ["telescope.init"] = { + "telescope.nvim/scm-1" + }, + ["telescope.log"] = { + "telescope.nvim/scm-1" + }, + ["telescope.make_entry"] = { + "telescope.nvim/scm-1" + }, + ["telescope.mappings"] = { + "telescope.nvim/scm-1" + }, + ["telescope.operators"] = { + "telescope.nvim/scm-1" + }, + ["telescope.pickers"] = { + "telescope.nvim/scm-1" + }, + ["telescope.pickers.entry_display"] = { + "telescope.nvim/scm-1" + }, + ["telescope.pickers.highlights"] = { + "telescope.nvim/scm-1" + }, + ["telescope.pickers.layout"] = { + "telescope.nvim/scm-1" + }, + ["telescope.pickers.layout_strategies"] = { + "telescope.nvim/scm-1" + }, + ["telescope.pickers.multi"] = { + "telescope.nvim/scm-1" + }, + ["telescope.pickers.scroller"] = { + "telescope.nvim/scm-1" + }, + ["telescope.pickers.window"] = { + "telescope.nvim/scm-1" + }, + ["telescope.previewers.buffer_previewer"] = { + "telescope.nvim/scm-1" + }, + ["telescope.previewers.init"] = { + "telescope.nvim/scm-1" + }, + ["telescope.previewers.previewer"] = { + "telescope.nvim/scm-1" + }, + ["telescope.previewers.term_previewer"] = { + "telescope.nvim/scm-1" + }, + ["telescope.previewers.utils"] = { + "telescope.nvim/scm-1" + }, + ["telescope.sorters"] = { + "telescope.nvim/scm-1" + }, + ["telescope.state"] = { + "telescope.nvim/scm-1" + }, + ["telescope.testharness.helpers"] = { + "telescope.nvim/scm-1" + }, + ["telescope.testharness.init"] = { + "telescope.nvim/scm-1" + }, + ["telescope.testharness.runner"] = { + "telescope.nvim/scm-1" + }, + ["telescope.themes"] = { + "telescope.nvim/scm-1" + }, + ["telescope.utils"] = { + "telescope.nvim/scm-1" + }, + ["tests.automated.action_spec"] = { + "telescope.nvim/scm-1" + }, + ["tests.automated.command_spec"] = { + "telescope.nvim/scm-1" + }, + ["tests.automated.entry_display_spec"] = { + "telescope.nvim/scm-1" + }, + ["tests.automated.entry_manager_spec"] = { + "telescope.nvim/scm-1" + }, + ["tests.automated.layout_strategies_spec"] = { + "telescope.nvim/scm-1" + }, + ["tests.automated.linked_list_spec"] = { + "telescope.nvim/scm-1" + }, + ["tests.automated.pickers.find_files_spec"] = { + "telescope.nvim/scm-1" + }, + ["tests.automated.resolver_spec"] = { + "telescope.nvim/scm-1" + }, + ["tests.automated.scroller_spec"] = { + "telescope.nvim/scm-1" + }, + ["tests.automated.sorters_spec"] = { + "telescope.nvim/scm-1" + }, + ["tests.automated.telescope_spec"] = { + "telescope.nvim/scm-1" + }, + ["tests.automated.utils_spec"] = { + "telescope.nvim/scm-1" + }, + ["tests.helpers"] = { + "telescope.nvim/scm-1" + }, + ["tests.pickers.find_files__readme"] = { + "telescope.nvim/scm-1" + }, + ["tests.pickers.find_files__scrolling_descending_cycle"] = { + "telescope.nvim/scm-1" + }, + ["tests/fixtures/find_files/file_a.txt"] = { + "telescope.nvim/scm-1" + }, + ["tests/fixtures/find_files/file_abc.txt"] = { + "telescope.nvim/scm-1" + } +} +repository = { + ["telescope.nvim"] = { + ["scm-1"] = { + { + arch = "installed", + commands = {}, + dependencies = {}, + modules = { + ["telescope._"] = "telescope/_.lua", + ["telescope._extensions.init"] = "telescope/_extensions/init.lua", + ["telescope.actions.generate"] = "telescope/actions/generate.lua", + ["telescope.actions.history"] = "telescope/actions/history.lua", + ["telescope.actions.init"] = "telescope/actions/init.lua", + ["telescope.actions.layout"] = "telescope/actions/layout.lua", + ["telescope.actions.mt"] = "telescope/actions/mt.lua", + ["telescope.actions.set"] = "telescope/actions/set.lua", + ["telescope.actions.state"] = "telescope/actions/state.lua", + ["telescope.actions.utils"] = "telescope/actions/utils.lua", + ["telescope.algos.fzy"] = "telescope/algos/fzy.lua", + ["telescope.algos.linked_list"] = "telescope/algos/linked_list.lua", + ["telescope.algos.string_distance"] = "telescope/algos/string_distance.lua", + ["telescope.builtin.__diagnostics"] = "telescope/builtin/__diagnostics.lua", + ["telescope.builtin.__files"] = "telescope/builtin/__files.lua", + ["telescope.builtin.__git"] = "telescope/builtin/__git.lua", + ["telescope.builtin.__internal"] = "telescope/builtin/__internal.lua", + ["telescope.builtin.__lsp"] = "telescope/builtin/__lsp.lua", + ["telescope.builtin.init"] = "telescope/builtin/init.lua", + ["telescope.command"] = "telescope/command.lua", + ["telescope.config"] = "telescope/config.lua", + ["telescope.config.resolve"] = "telescope/config/resolve.lua", + ["telescope.debounce"] = "telescope/debounce.lua", + ["telescope.deprecated"] = "telescope/deprecated.lua", + ["telescope.entry_manager"] = "telescope/entry_manager.lua", + ["telescope.finders"] = "telescope/finders.lua", + ["telescope.finders.async_job_finder"] = "telescope/finders/async_job_finder.lua", + ["telescope.finders.async_oneshot_finder"] = "telescope/finders/async_oneshot_finder.lua", + ["telescope.finders.async_static_finder"] = "telescope/finders/async_static_finder.lua", + ["telescope.from_entry"] = "telescope/from_entry.lua", + ["telescope.health"] = "telescope/health.lua", + ["telescope.init"] = "telescope/init.lua", + ["telescope.log"] = "telescope/log.lua", + ["telescope.make_entry"] = "telescope/make_entry.lua", + ["telescope.mappings"] = "telescope/mappings.lua", + ["telescope.operators"] = "telescope/operators.lua", + ["telescope.pickers"] = "telescope/pickers.lua", + ["telescope.pickers.entry_display"] = "telescope/pickers/entry_display.lua", + ["telescope.pickers.highlights"] = "telescope/pickers/highlights.lua", + ["telescope.pickers.layout"] = "telescope/pickers/layout.lua", + ["telescope.pickers.layout_strategies"] = "telescope/pickers/layout_strategies.lua", + ["telescope.pickers.multi"] = "telescope/pickers/multi.lua", + ["telescope.pickers.scroller"] = "telescope/pickers/scroller.lua", + ["telescope.pickers.window"] = "telescope/pickers/window.lua", + ["telescope.previewers.buffer_previewer"] = "telescope/previewers/buffer_previewer.lua", + ["telescope.previewers.init"] = "telescope/previewers/init.lua", + ["telescope.previewers.previewer"] = "telescope/previewers/previewer.lua", + ["telescope.previewers.term_previewer"] = "telescope/previewers/term_previewer.lua", + ["telescope.previewers.utils"] = "telescope/previewers/utils.lua", + ["telescope.sorters"] = "telescope/sorters.lua", + ["telescope.state"] = "telescope/state.lua", + ["telescope.testharness.helpers"] = "telescope/testharness/helpers.lua", + ["telescope.testharness.init"] = "telescope/testharness/init.lua", + ["telescope.testharness.runner"] = "telescope/testharness/runner.lua", + ["telescope.themes"] = "telescope/themes.lua", + ["telescope.utils"] = "telescope/utils.lua", + ["tests.automated.action_spec"] = "tests/automated/action_spec.lua", + ["tests.automated.command_spec"] = "tests/automated/command_spec.lua", + ["tests.automated.entry_display_spec"] = "tests/automated/entry_display_spec.lua", + ["tests.automated.entry_manager_spec"] = "tests/automated/entry_manager_spec.lua", + ["tests.automated.layout_strategies_spec"] = "tests/automated/layout_strategies_spec.lua", + ["tests.automated.linked_list_spec"] = "tests/automated/linked_list_spec.lua", + ["tests.automated.pickers.find_files_spec"] = "tests/automated/pickers/find_files_spec.lua", + ["tests.automated.resolver_spec"] = "tests/automated/resolver_spec.lua", + ["tests.automated.scroller_spec"] = "tests/automated/scroller_spec.lua", + ["tests.automated.sorters_spec"] = "tests/automated/sorters_spec.lua", + ["tests.automated.telescope_spec"] = "tests/automated/telescope_spec.lua", + ["tests.automated.utils_spec"] = "tests/automated/utils_spec.lua", + ["tests.helpers"] = "tests/helpers.lua", + ["tests.pickers.find_files__readme"] = "tests/pickers/find_files__readme.lua", + ["tests.pickers.find_files__scrolling_descending_cycle"] = "tests/pickers/find_files__scrolling_descending_cycle.lua", + ["tests/fixtures/find_files/file_a.txt"] = "tests/fixtures/find_files/file_a.txt", + ["tests/fixtures/find_files/file_abc.txt"] = "tests/fixtures/find_files/file_abc.txt" + } + } + } + } +} diff --git a/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/autoload/health/telescope.vim b/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/autoload/health/telescope.vim new file mode 100644 index 00000000..46cc9280 --- /dev/null +++ b/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/autoload/health/telescope.vim @@ -0,0 +1,3 @@ +function! health#telescope#check() + lua require 'telescope.health'.check() +endfunction diff --git a/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/data/memes/planets/earth b/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/data/memes/planets/earth new file mode 100644 index 00000000..aa624e17 --- /dev/null +++ b/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/data/memes/planets/earth @@ -0,0 +1,36 @@ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓   ▓▓▓▓▓▓▓▓▓▓▓▒▒▒░  ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ░▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒▒▒▒  ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒▒▒ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▓▓▒▓▓▓▓▓▒▒   ░ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▒▓▓▓▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒▓▓▓▒▒▓▒▒░   ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒▓▓▓ ░▓▓▓▒▒▒▒▒  ▒░ ▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▓▓▓▒▓▓▓▓▓▓▒▒ ▒▓▒░░▒▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓░▓▓▓▒▒▒▓▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒▒▓░░▒▓▓▓▓▓▓▓▓▓   ▒░░  ░ ▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▒▓▒▒▓▓▓▓▒▓▒▓▓▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▓▓▓▓▒▓▓▓▓▓▓▓▓ ▒░  ░▓  ░ ░ ▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▒▒▒▓▓▒░░▓▒▓▓▓▓▓▒▓▒▓▓▓▓▓▓▓▓▓▓▓▓▓▒▓▓▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓     ░▒▓      ▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▒▒▓▒▒░░░▓▒▒▓▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▓▓ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ░    ▓       ▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▒▒▒▒▒▒▒░▒▓▓▓▓▒▓▒▒▓▒▓▓▓▒▓▓▓▓▓▓▓▓▓▓▒▒▓▒▒░▓▓▓░▓▓▓▓▓▒▓    ░▒▓▒▓░       ▓▓▓▓▓▓ +▓▓▓▓▓▓ ▒▒▒▒░▒▒▒░░▒▓▓▒▓░▓▓▓░▒▓▓▓▓▓▓▓▓▒▓▓▒▒▒▒▒░░░▓▓ ▓▓░▓▓▓▒▒░  ▓ ░▒▓         ▓▓▓▓▓ +▓▓▓▓▓▓▒▒▒▒░▒▒▒░▒▓▒▒▓▓▓▓▓▓▒▓▓ ▓░▓▓▓▒▒▒▓▓▓▓▒░░░░▒▒▓▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒         ▓▓▓▓▓ +▓▓▓▓▓ ▒▒▒▓▓▒▒▒▒▒▓▓▒▒▓▓▓▓▓▓▓▒ ▓▓▓▓▓▓▒▒ ▓▓▒▓▒▒░▒ ▓▓▓▓▓▓▓▓▓▓▓▓▒▓▓▒░▓   ░░   ▒ ▓▓▓▓▓ +▓▓▓▓▓▒▒▒▒▒▒▒▒▒▓▒▓▓▒▓▓▓▓▓▓▒▓▓▓▓▓▒▓▓▓▓▓▓▓▓▓▒▒▒▓▓▒▓▓▓▓▓▓▓▓ ░▓▓▓▓▒▒░   ▒ ░   ▒░ ▓▓▓▓ +▓▓▓▓▓▒▒▒▒▒▒▒▒▒▓▓▒▓▓▓▒▓▓▓▓▒▓▓▓▓▒▓▒░ ▓▒▓▒▒▓▓▓▓▓▒▓▓▓▓▓▓▓▓  ▒ ▒░▒░░    ░ ▒░     ▓▓▓▓ +▓▓▓▓▓▒▒▒▒▒▒▓▒▒▒▒▒▒▒▒▓▒▒▓▓▓▓▓▓▓▒▓▓▓▒▓▓▓▓▓▒▒▓░▓▓▓▒░▒   ░▒  ░ ░    ▒    ░▒░    ▓▓▓▓ +▓▓▓▓▓▒▒▒▒▒░░▒▓▒▒▒▒▒▒▒▓ ▓▓▓▒▓▓▓▓▓▓ ▓▒░░▓▓░▒▓▓            ░   ░ ░▒ ░░░░▒░ ░░▒ ▓▓▓▓ +▓▓▓▓▓▒▒▒▒▓▒▒▒▒░▒░▒▓  ▓▒▓▓▒▓▓▓▓▓▓▓▓▓▓▓▒ ▓▓▓▓░          ▒▒▓▒░ ▒░░ ▒▓▓▓▒▒▒░▒ ▓ ▓▓▓▓ +▓▓▓▓▓ ▒░▒▓▒▒░░▒░░░▒▒▓ ░ ░▒▒▒▓▓▓▓▓▓▓▓▓▓▓▒▒▓▓▒ ▒▓   ▓▓  ░░░▒░▒   ▒▓▓▓▓▒░░    ▓▓▓▓▓ +▓▓▓▓▓▓▒▒░  ▒▓▒▒▒▒▓▒░ ▒ ░▒ ░▓▓▓▓▓▓▓▓▓▓▓▓░▒░░▓▓▓▓ ▓▓▓ ░▓▒░  ░ ░▒▒░▒▓▓░░░▒    ▓▓▓▓▓ +▓▓▓▓▓▓░▒▒▒▒ ▒  ▒▒░▓▒░▒ ▒░▒▓░▒▒▓▓▓▓▓▓▓▓▓▒▒░ ▒▓▓▒▓▓▓▓▓▓▓▓▓▒░▓▒ ▓▓▒▓▓▓▓▓▓▒░ ▒▓▓▓▓▓▓ +▓▓▓▓▓▓▓▒▒▒▒▒▒▒░▒▒▒░░▒▓░░▒▒░▒░▒░▒▓▓▓▒▒▒▒▓░ ░ ░       ▓▓▒▒▒░▓▓▓▓▓▓▓▓▓▓▓▓▒▒░ ▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▒▒░▒▒▒▒░▒▒░▒ ▒ ▓▓▓░▒▓░▒▓▓▒░░░░▒▒  ░░▓ ▒░ ▒░░▒░▓▓░▓▓▓▓▓▓▓▓▓▓▓▓▒▒▒ ▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▒░▒▒▒▒▒░▒▒▒░▒▒▒▒  ▒▒░ ▒▒▒▓░▒▒   ▒▓▓░▒      ▒▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒▒ ▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▒▒▒▒▒▒░▒▒░▒░▒▒▓░▒▓▓░▒▒░▒░▒▓▒▓▓▓▓▒▒▓░▓▓▓▓▓▓▓▓▓▓▒▓▓▓▓▓▓▓▓▓▒▒▒▒ ▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▒▒▒▒▒▒▒▒▒░▒▒▒▒░▒░░▓▒▓▒▒▓░▓▓░▓▓ ▓▒▓ ▒  ░▓ ▒░▓░▓▓▓▓▓▓▓▒▒▒▒▒▒ ▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓ ▒ ▒▒▒▒▒▒▒░▒░▒░░░▒▒░░░░ ▒ ░░▓▒░▓▓▓▓▓▒▓▓▓ ▓▓▓▓▓▓▓▒▒▒▒▒▒▒▒▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓░▒▒▒▒▒▒▒▓░▒▒░▒░▒▒░░▒▓▒▒▓▒▒▒▓▒░▓▒▒▓▓▓▓▓▓▓▓░░▓▓▓▓▓▒▒▒▒ ▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒░▒▒░░▒▓▓▓▒▓▓▓▒▓▓▓▒▒▒▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▒▒ ▒▒▒▒░░▒▒▒▓▒▒▓▒░▒▒▒▒░▒▒▓▓▒▒▓▓▒▓▓▓▓▓▓▓▓▓▓░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░▒▒░▒▒▒▒▒▒▒▒▒▒▓▒▒▒▓▓▒▓▒▒▒▒▓▓▒▒▓▓▓▓▓▒▓░ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▒▓▓▒▓▓▓▒░ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░▒▒▒▒▒▒▒▓▒▒▒▒▒▒▒▒▓▒░ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ + diff --git a/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/data/memes/planets/jupiter b/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/data/memes/planets/jupiter new file mode 100644 index 00000000..dac1487f --- /dev/null +++ b/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/data/memes/planets/jupiter @@ -0,0 +1,36 @@ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓  ░░░ ░    ░  ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒ ▒▒▒▒▒▒▒░░ ▒ ░▒░ ░░▓▓▓▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒░░▒▓▒▒░▒▒ ▒▒▒░▒▒░▓▓▓▓▓▓▓▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒ ▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▓▒▒▓▓▒▓▒▓▓▓▓▓▓▓▓▒▓▒▓▓▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▒   ▓ ░   ░▒▓▓▓▓▓▓▓▓▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▓▒▒▓▒▒▓▓▒▓▓▓▒▒▒▒▓▒▒▒▒▒▒▓▒▓▓▒▓▒▒▒▒▓▓▓▓▓▒▓▓▓▓▓▓▓▓▒▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒▒▓▒▒▒▒▓▒▒▓▓▓▒▒▒▒▒▒▒▒▓░░░▒▒▒▒░░░░░▒▒▒░░░░░▒▒▒░░░▒░▒▒▒▒▒▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▓▒▒▓▓▓▓▓▓▒▓▓▓▓▒▒▓▓▒▒▒▓▓▒▒▒▒▓▓▓▒▓▓▓▓▓▒▓▒▓▓▓▓▓▓▓▓ ▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒▒▒▓▓▓▒░▒▓▒▒▓▓▓▒▓▓▒▓▓▓▓▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒▒▓▓▓▓▒░▓▒▓▓   ▒ ▓▓▒▓▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▓▓▓▓▒▒░▓▓░░░  ▒   ▒▒▓▓▒  ▓▓░▓░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓ ▓▓▓▓▒▓▓▓▒▒▓▓░▒░ ▓▓▒▒▒▒▒▓▓▓▓▓▓▓▓▓▓ ▓▓▓ +▓▓▓▓▓▓▓▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒▒▒▒▓▓▓▓▒▓▒▓▓▒▒▒▒▒▒▒▒▒▒▒▒▓▓▒▒▒▒▒▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒▓▓▒▓▓▓▓▓▒▒▓▓▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓▒▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒▓▓▓░░▓▒▒▓▒▓ ▒▒▓▓▒▓▓▒▓▓▒▓▓▓▓▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▓▓▓▒▒▒▒▒▒▓▒▓▓▓▒▒▓▓▒▒    ░░▓▓▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▓▓▓▓▓▒▒▓▓▓▒▓▓▓▓▒      ░▓▓▓▓▓▓▓▓▓▓▓▓▒▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▓▒▓▓▓▒▓▒▓▓▓▓▒▓▓▓▓▓▒▓▓▓▓▓▓▓▓▓▒▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▒▓▓▓▓▓▒ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ + diff --git a/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/data/memes/planets/mars b/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/data/memes/planets/mars new file mode 100644 index 00000000..2eb8cfdd --- /dev/null +++ b/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/data/memes/planets/mars @@ -0,0 +1,27 @@ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▒▒░▒   ▓▒ ░░░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ░  ░░░▒▒ ░ ▒░  ░░░░░░░▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░░░░ ░░  ░ ░░▒▓░░░░░░░ ░░ ░░ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░░  ░░░░░░░░ ░▒░▒░░░▒▒░░░░░░░░░ ░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░ ░░░░░░░░░░░░░░░▒▒▒▓▒▒▒▒▒▒▒░░░░░░░░░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░ ░░ ░  ░░░░░░░░░░ ░░░▒▒▒▒▒▒▒▓▒▒▒▒░▒▒░░░▒░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░ ░ ░░         ░  ░  ░ ░░▒▓▒▒▒▒▒▒▒▓▒▒░▒░▒▒░░ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░ ░░                  ░ ░░▒▒▒▒▒▓▒▒▓▒▒░░ ▒▒░ ░ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░ ░                        ░░░▒▒▒▒▒▒▒▒▒░ ░░▒░░░ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓                          ░▒░░▒▒▒▒▒▒░░░░░░░░░░░░░░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓                        ░░ ░░░░░▒▒░▒░▒▒▒░░░░░ ░ ░░ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓                        ░ ░▒▒ ░ ░▒░░░░░░░░░  ░▒░░ ░▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓                        ░░  ░░ ░░ ░░░░░░░ ░░░░  ░░  ▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓        ░           ░░ ░              ░     ▒░░░░░░░▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓                      ░░░░     ░░     ░░ ░░░░░ ▒░░░▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓                       ░░░             ░ ░░▒░ ░▒▒▒ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓                        ░░  ░  ░       ░░░  ░▒▒▒▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░                       ░ ▒        ░  ░░░▒▒░▒▒▒░ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░        ░     ░ ░    ▒  ░░░ ░  ░░░░▒░░▓░▒░░░░░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░        ░          ░░ ▒▓▒░▒▒▒ ░░░░▒▒░▒▒ ░░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒░░ ░   ░░░          ░▒ ▒▒▒▓▒▒░░░░░░░░░▒░▒ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒░░ ░░░░░░░░░░ ░░░░ ▓▒▒▒▒▒▒▒▒▒▒░░░░░░▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▒▒░░░░░░▒▒▒▒▒░▒▒▒░░▒▒▓▓▓▓▒▓▒▒▒▒▒░▒░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒░   ░▒▒░░░░░▒▒░░▒▒▒▓▓▒▒▒▒▒▒░░░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░ ░ ░ ░░░░░░░░░▒▒░░░░░░░ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ░░░░░░░░░░ ░ ░░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ + diff --git a/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/data/memes/planets/mercury b/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/data/memes/planets/mercury new file mode 100644 index 00000000..fcad37da --- /dev/null +++ b/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/data/memes/planets/mercury @@ -0,0 +1,36 @@ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓            ░  ░░    ░   ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓    ░░            ░░   ░░  ░░ ░░░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓      ░░            ░   ░ ░░ ░ ░     ░   ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓    ░░ ░          ░ ░        ░░ ░  ░░░     ░ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓                 ░░    ░          ░░  ░  ░ ░  ░ ░ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓             ░░     ░░░░      ░ ░  ░ ░░  ░ ░░░░ ░░░░  ▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓             ░░  ░     ░ ░░░ ░░ ░ ░░░    ░ ░░░░░░░ ░░░░░ ▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓ ░    ░   ░ ░░░  ░░░ ░░  ░░░░░░   ░░░░░  ░ ░ ░░ ░░░ ░░░░░░░ ▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓░   ░░ ░░  ░  ░  ░░░  ░░░ ░░ ░░  ░  ░░░░░░ ░░░ ░░░   ░░ ░░░░░░░▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓    ░░           ░░ ░   ░ ░░  ░░░░░░ ░░░░░░ ░    ░ ░  ░  ░░░░░ ░ ▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓ ░   ░ ░░░    ░  ░░░░ ░ ░ ░░░  ░░░░░░░░░░░░░░░░░░░ ░ ░ ░ ░░░░░░ ░░░▓▓▓▓▓▓ +▓▓▓▓▓▓    ░ ░     ░     ░░░░      ░   ░░░   ░ ░░░░░░░░░░░ ░░  ░░░  ░  ░ ░░▓▓▓▓▓▓ +▓▓▓▓▓▓ ░   ░  ░░░ ░   ░░░░░     ░   ░░  ░░   ░░░   ░░░░░░░░  ░░░░░░░░░░░░ ░▓▓▓▓▓ +▓▓▓▓▓░ ░  ░░        ░ ░░░ ░ ░░ ░  ░░░░░░░░ ░  ░░░ ░ ░░░░░░    ░░░ ░░░░░░░░  ▓▓▓▓ +▓▓▓▓▓   ░░░ ░░░░░  ░░  ░░░░░   ░░░░ ░░  ░ ░░░ ░░░░░░ ░ ░░░░ ░  ░░░░░░   ░░ ░▓▓▓▓ +▓▓▓▓▓ ░░░░░░░ ░░░     ░░░░ ░░░░░░░░     ░░░ ░      ░   ░░░░ ░░░░░░░░░░  ░░░ ▓▓▓▓ +▓▓▓▓ ░ ░░░░░ ░░░   ░░░░░ ░ ░░░░░░░░ ░   ░  ░  ░ ░░ ░░  ░░░░░░░░░░░░░░░░░░░░░▓▓▓▓ +▓▓▓▓░░░░░░░░░░░░░░░░░   ░    ░░ ░░░░░░  ░      ░ ░░░     ░ ░░░░░░░░░░░░░░░░ ▓▓▓▓ +▓▓▓▓ ░  ░░ ░░  ░░░░░░  ░ ░░    ░ ░░░░░         ░░ ░░░░░░░░░ ░░░░░░░░░░░░░ ░ ▓▓▓▓ +▓▓▓▓▓ ░░░       ░░░░░░ ░  ░     ░  ░░░░░ ░░░ ░░░░ ░░░░░░░░ ░░░░░░░░░░░░░░ ░░▓▓▓▓ +▓▓▓▓▓ ░░░░░░ ░  ░░░ ░░ ░ ░░░  ░     ░░░░ ░ ░░░░  ░░░ ░  ░░░  ░░░░░░░░   ░░  ▓▓▓▓ +▓▓▓▓▓░░░  ░░ ░░  ░░░ ░░░░░░░░░░░   ░  ░░░ ░░ ░ ░░░░░    ░ ░░ ░░ ░░░ ░ ░░ ░░░▓▓▓▓ +▓▓▓▓▓▓░░  ░░ ░  ░░░░░░░░░░░░░░░░░░░░░░░ ░  ░░░░       ░░░  ░░░░░░░░ ░░░ ░░ ▓▓▓▓▓ +▓▓▓▓▓▓▓  ░░ ░░░░░░░ ░ ░░░░ ░░░░░ ░░░░░   ░░ ░░░    ░  ░░ ░░░ ░ ░  ░░░░  ░░▓▓▓▓▓▓ +▓▓▓▓▓▓▓  ░░░░░░░░░░░░░░░░░░░ ░   ░░░░░░ ░  ░░ ░    ░  ░     ░  ░░░░  ░░░░░▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓ ░░░░ ░░░░░      ░░░░░  ░░         ░ ░ ░                  ░ ░ ░ ░▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ ░░░░  ░░░░░░░░░░░░░   ░           ░░             ░    ░░     ░▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓      ░░░░  ░  ░░                ░ ░ ░  ░░        ░      ░░ ▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓    ░░░░░░░░        ░                                 ░░ ▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓   ░░░░░░░                     ░░░    ░              ▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓       ░           ░         ░  ░     ░          ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░                      ░  ░    ░          ░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░ ░                      ░           ░ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓    ░   ░        ░              ░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓                   ░  ░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ + diff --git a/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/data/memes/planets/moon b/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/data/memes/planets/moon new file mode 100644 index 00000000..2943e284 --- /dev/null +++ b/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/data/memes/planets/moon @@ -0,0 +1,35 @@ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ + diff --git a/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/data/memes/planets/neptune b/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/data/memes/planets/neptune new file mode 100644 index 00000000..9c2954e0 --- /dev/null +++ b/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/data/memes/planets/neptune @@ -0,0 +1,36 @@ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓       ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░▒▒▒░░░▒▒░░▒░▒░▒░░▒▒░░░ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒░░░░░░░░░░░░░░░▒░░░░▒░▒░░▒▒▒░░ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▒▒░░░░   ░░░░░░░░░░░░▒░▒░▒░░░▒▒░░▒░▒░░  ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▒░░▒░▒░▒░░░  ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▒░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▒░▒░▒░░░░▒▒▒░░░░░ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒▒░░░░░░░░░░░░░      ░░░░░░░░░░░░░░░░░▒░░▒▒░▒░░░░   ▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▒░░░▒░▒░░░░░░                 ░ ░░░░░░░░░░░▒░▒░░░░░░░   ▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓░▒░▒░░░░░                           ░░░░░░▒░░▒▒░░░▒░░░░░  ▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ ▒▒▒░░░░░░                              ░░░░▒░▒░▒▒░▒▒░░░░░   ▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓░▒▒░░░░░░                                ░ ░░░░░░▒░░▒░░░░░░░   ▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓ ▒▒▒░░░░░                                   ░░░░░░▒░░▒░░▒▒░░░░   ▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▒▒░░░░░░                                    ░░░░░▒░░░▒░░▒░▒░░░   ▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓░░░▒░░░                                       ░░░░░▒░░▒░▒░▒░░░░░   ▓▓▓▓▓▓▓ +▓▓▓▓▓▓▒░▒▒░░                         ░ ░░░░░░░░░     ░░░░░░░▒▒░░░▒░░░    ▓▓▓▓▓▓▓ +▓▓▓▓▓░▒░▒░░░░                          ░░░░░░░░░░░░░░░░░░░▒░▒░▒░░░░░░░░  ▓▓▓▓▓▓▓ +▓▓▓▓▓▒▒▒░░░░░                              ░ ░░░░░░░░░░░ ░▒▒░▒▒▒░░░░░░   ▓▓▓▓▓▓▓ +▓▓▓▓▓▒▒▒▒░░░░                                     ░░░░░░▒░▒▒▒▒▒░░░░░░    ▓▓▓▓▓▓▓ +▓▓▓▓▓░░▒░░░░░░                                   ░░░░░░  ░▒░▒░░░▒░░░░░   ▓▓▓▓▓▓▓ +▓▓▓▓▓░░▒░░░░░░                                   ░░░░░▒▒░░░░░▒▒░▒░▒░░░   ▓▓▓▓▓▓▓ +▓▓▓▓▓ ▒▒▒▒░░░░░░                                ░░░░░░░░░░░▒░▒░░▒░░░░░   ▓▓▓▓▓▓▓ +▓▓▓▓▓▓░▒░░▒░░░░░                            ░ ░░░░░░░░░░░░▒░▒░░░░░░░░   ▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓░▒▒░▒▒░░░░░ ░      ░     ░   ░   ░░░░░░░░░░░░▒░░░░░░▒░░░░░░░░     ▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓░▒▒░▒░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▒░░░░░░░░░▒░░▒░░░░░░░░░   ▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓ ▒▒▒░▒ ░░░░░░░░░░░░░░░░░░░▒░░░░░░░░░▒░░░▒░░░▒░▒░▒░░░░░▒░░ ░    ▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓░░░░░░░░░░░░░░░▒░░░▒░░░░░░░░░░░▒░░░░░░░░░░░░▒░▒░░░░░░░░░░    ▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ ▒░░░░░░░░░░░░░░░░░░▒░░░░░░░░░░░▒░▒░░▒░░░▒░▒░░░░░░░░░ ░░   ▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓░▒░░░░▒░░░░░░░░░░░░░░░░░░░░░░░▒▒▒░░░░░▒░░░░░░░░░░░░░    ▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓░░▒░░░▒░░░░░░▒░░░░░░░░░░▒░░░░░░░▒░░░░░▒░░░░░░ ░      ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓ ░░░░░░░▒░░░▒░░░░░░▒▒░░░░▒░▒░░░▒▒▒░░░░░░░░░  ░     ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ░░░░░░▒░░░░░░░░░░░░░░░░░░░░░░▒░░░░░░░░░░      ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░░▒░░░░░░░░░▒░░░░░░▒░░▒░░▒░░░░░░░ ░    ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ░ ░░░░░░░░░░░░░░░░░░░▒░░░░░░░       ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓     ░░░░░░░░░░░░░░░░        ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓                    ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ + diff --git a/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/data/memes/planets/pluto b/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/data/memes/planets/pluto new file mode 100644 index 00000000..cfcde6ff --- /dev/null +++ b/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/data/memes/planets/pluto @@ -0,0 +1,39 @@ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▓▒▒▒▒▒▒▒░░░░ ░░░▒░▒▒▒▒▒▒▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▓▒▒▒▒░░ ░░░░░░ ░░░▒▒▒░▒▒▒▒▒▒▒▒▓▓▓▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▒▒▒▒▒▒  ░░  ░     ░░░ ░ ░▒▒▒▒▒▒▒▓▓▒▓▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░▒▓▒▒▒░           ░        ░░▒▒▒▒▒▒▓▓▓▓▒▒ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒▒▒▒░                  ░░░▒▒░▒▒▒▒▒▓▓▓▒▓▒▒ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▓▓▒▒▒░░     ▒   ░       ░░░░░░▒▒▒▒▒▓▓▓▓▓▓▓▒▒ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓▒▒▒░░░▒ ░░▒▒▒░░      ░░░░░░▒▒▒▒▒▓▓▓▓▓▓▓▒▒▒░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▓▓▓▓▒▒░▒▒▒▒▒▒▒▒▒▒░░░░░░▒▒░▒▒▒▒▒▒▒▒▓▓▒▓▓▓▓▓▓▒▒▒ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▓▓▓▓▓▒▒▓░▒▒▒▒▒▒▒▒░░▒▒▒▒▒░▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓▒▓▓▒▒▒ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▓▓▓▓▓▓▓▓▒▒▒▒▓▒▒▒▒░░▒ ░░▒▒▒▒▒▓▓▒▓▒▒▒▒▒▒▓▓▓▓▓▓▓▒░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▓▓▓▓▓▒▓▓▓▓▒▓▒▒▒▒▒       ░▒▒▒▓▓▒▓▓▒▒▒▒▒▓▒▒▓▓▓▒▒ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒▒▒▓▓▓▓▓▒▓▓▒▒▒▒ ░         ░▒▓▒▒▒▒▒▒▒░▒▓▒▒▓▓▓▒▒ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▒▒▓▒▓▓▓▓▒▒▓▓▒░             ░▒░░░▒▒▒▒▒▒▒▓▓▓▒▒▒░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒ ▒▓▓▒▒▓▓▓▓▓░░░░          ░░░░ ░▒▒▒▒░▓▒▒▓▓▓▓  ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓    ░░▒ ▒▓▓▒▓▓▒░         ░░░░░░░▒▒▒▒▒▒▓▓▓▒▒  ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒      ▒▒▒ ▒▒▒▒░░░░░░░░░░░░▒▒▒▒▒▒▒▒▒▓▓▓▒▒  ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒          ▒▓▒▒▒░░░░░▒▒▒░▒▒▒▒▒▒▒▓▓▓▓▓▒▒  ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓    ▒ ▒   ▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓░░▒ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒  ▒       ▓▓▓▓▒▒▒▒▒▒▒▓▓▓▓▓▓░      ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▓▓▒░▓▒▓▒▓▓▓▓▓▓▓▓▓▓▓▒▒▒░▒░     ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▒▓▓▓▓▓▓▒▒▒▒▒    ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒▒▓▓▓▓▓▓▒▒▓▒░ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ + diff --git a/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/data/memes/planets/saturn b/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/data/memes/planets/saturn new file mode 100644 index 00000000..68a7ffae --- /dev/null +++ b/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/data/memes/planets/saturn @@ -0,0 +1,36 @@ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓▒▓▓▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒  ▒ ▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▒▒▒▒▒▒ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓ ▒▒▒▒▒░▒▒▒▒▒▓▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▒ ▒▒▓▒▓▓▒▓░▓░▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▒▒▒▒▒    ░▒▒▒ ▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒░▒▒  ▓▓  ▒▒▒ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒░▒ ▓▓▓▓▓▓  ▒▓▓▓▓▒▒▓▓▓▓▓▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒▒▒ ▓▓▓▓▓▓▓▒ ▒▒▓▓▒▓▓▓▓▓▓▓▓▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░ ▒▒ ▓▓▓▓▓▓▓▒ ▓▓▓▓▓▓▓▒▓▓▓▓▓▓▓▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░▓▒▒ ▒▓▓▒▒▒▓▒░▓▒▓▒▓▒▓░▒▓▓▓▓▓▓▓▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒▒▒▒▒▒▒▒░▒▒▒▒▒▒▒▒▒▒▒░▓▓▓▓▓▓▓▓▒ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▓▒▒▒▒▒▒▒░░▒▒▒▒▒▒▒▒▒▒▒░▒▓▓▓▓▓▓▓▒░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒  ▓▒▒▒ ▒░░░░░▒▒▒▒▒▒▒▒▒▒░░▓▓▓▓▓▓▓▒░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░  ▒▓▒▒▒▒░▒░░░░▒▒▒▒▒▒▒▒▒▒▒░▒▓▓▓▓▓▓▒ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓  ▒  ▓▓▒▒▒▒▒░░░░░▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓▒▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒     ▓▓▒▒▒░░░░░░░▒▒▒▒▒▒▒▒▒▒▓▓▓▓▒▒▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒ ▓  ░▒▒▓▒▒▒▓▒░░░░░▒▒▒▒▒▒▒▓▒▓▒▓▓▓▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░▒▓▓▒  ▒▓▒▒▒▒▒░░░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▓▓▓▓░░▒▒▓▒▒▒ ░▒▒▒▒░▒▒▒▒▒▓▒▒▒▒▒▒░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▓▒▒░  ▓ ░▓▓▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░▓▓▒▓   ▓▒▒▓▓▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▓▓░▓░  ▓▓▓▓▓▒▒▒░▒▓▒▒▒▒▓▒▒▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▓▓▒▒▒ ▒▓▒▒▒▓▒▒▒▒▒▓▒▒▒▒▒▓▓▓▓▓▓▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▓▓▓▒▒▒▒▒▓▒▓▓▒▒▒▒░░▓▓▓▓▓ ▓▓ ▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░▒▒▒▒▒▒▒▓▓▒▓▒ ▓▓▓▓   ▓▒▓▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▒▒▓      ▒▒░▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒▒▒▒▒   ░▒▒▒▒▒ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▓▓▒▒▒▓▓▓▒▒░ ░▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒▒░▒▒▒▒▒░▓ ▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▓▒▒▒▒░▒▒ ▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ░░▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ + diff --git a/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/data/memes/planets/uranus b/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/data/memes/planets/uranus new file mode 100644 index 00000000..f5a8b36a --- /dev/null +++ b/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/data/memes/planets/uranus @@ -0,0 +1,39 @@ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓       ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓  ░▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ░▒▓▓▓▓▓▓▒▒░     ░░▒▒▓▓▓▓░ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ░▒▓▓▓▓▓▓▒░              ▒▒▓▓▓ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▒▒▓▓▓▓▓▓▓▓░                 ░▒▓▓▓ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░▒▓▒▓▓▓▒▒▓▓▓░                   ░▒▓▓▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒▓▒▒▓▒▒▒▒▒▒▒▓ ▓▓▓▓▓▓▓▓▓           ▒▓▓▒ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░▓▓▒▒▒▒▒▒▒░░░░░  ▓▓▓▓▓▓▓▓▓▓          ▒▓▓▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▒▓▓▒▒▒░▒░░░░░░    ▓▓▓▓▓▓▓▓▓▓          ▒▓▓░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░▒▓▓▓▒▒▒░░░░░░░      ▓▓▓▓▓▓▓▓▓▓▓       ▒▓▓▒ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▒▒▓▓▒▒▒▒░░░░░░░         ▓▓▓▓▓▓▓▓▓      ▒▓▓▓ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▒▒▒▓▓▒▒▒░░ ░░                ▓▓▓▓    ░▒▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▒▒▒▒▒▒▒▒░░░                    ░▒▒▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒▒░░▒▒▒░░░░░            ░░░░░░░▒▒▒▒▓▓▓▓▓▓▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▒░░  ░▒▒░░░░░░            ░░░░░░░▒▒▒▓▓▓▓▓░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░▒░░   ░▒▒░░░░    ░    ░  ░░░░░░▒▒▒▓▓▓▓▓▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒░     ░▒░░░░░░░ ░░░░░░░░░░░░▒▒▒▒▓▓▒▓▒ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▒▒░      ░▒░░░░░░░░░░░░░░░░▒▒▒▒▒▓▓▓▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒▒░       ░░▒▒▒▒░▒░▒▒▒▒▒▒▒▒▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒▒░         ░▒▒▒▒▒▓▓▓▓▓▓▓▓▓▓░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▒▒▒░░         ░░▒▒▒▒▒▒▒▒ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░▒▒▒▒▒▒▒░░▒▒▒▒▒▒▒ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓  ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ + diff --git a/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/data/memes/planets/venus b/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/data/memes/planets/venus new file mode 100644 index 00000000..b95aff1b --- /dev/null +++ b/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/data/memes/planets/venus @@ -0,0 +1,35 @@ +                          ▓   ▓  ░░        ░░░░ ▓  ▓                             +                           ▒   ░        ░░░░░░  ░   ▒                            +                  ▓ ▓▓ ░  ░      ░░░     ░  ░░   ░ ░ ░  ▒    ▓                   +                ▓   ░░░  ░      ░     ░ ░             ░░   ░                     +                 ▓ ░░░   ░      ░  ░ ░ ░         ░ ░  ▒ ░ ░ ░░   ▓▓              +              ▓    ░  ░░ ░       ░░   ░                        ░                 +             ▓░  ░░ ░ ░ ░  ░░  ░  ░ ░░  ░    ░  ░     ░          ▒               +          ▓▓ ░   ░  ░    ░  ░ ░    ░      ░ ░ ░    ░     ░ ░░ ░                  +          ▓  ░  ░  ░░  ░ ▒  ░ ░░░░        ▒  ░░ ░  ░░  ░░   ░         ▓          +           ░ ░  ░ ░░░   ░░  ░  ▒▒    ░  ░ ░   ░             ▒ ░  ░  ░            +        ▓     ░ ░ ░    ░       ░░      ░░▒     ░░▒▒          ░ ░  ░    ▒         +        ▓░   ░    ░  ░     ░  ░   ░   ░             ░  ░░       ▒  ░   ▓         +         ░     ░ ░    ░ ░  ░            ░░      ░  ░░░░░         ░               +        ░  ░     ░  ░░    ░ ░░   ░    ░ ░     ░░  ░ ▒  ░ ░  ░ ░  ░░    ░         +    ▓                   ░   ░ ▓░     ░           ░ ░         ░     ░  ░░         +    ▓ ▓░          ░  ░ ░░    ░  ░ ░  ░░░        ░░░             ░░               +       ▒     ░░ ░ ░  ░░  ░ ░ ░░           ░        ░    ░           ░ ░  ▓       +                  ░   ░░░░ ░  ░ ░  ░               ░                ░░   ▓       +        ░ ░      ░     ░    ░           ░     ░         ░           ░░           +     ▓ ▓     ░  ░ ░         ░            ░          ░      ░ ░          ▓        +         ░        ░    ░        ░    ░   ░         ░  ░                ▒         +        ▓ ░ ░  ░░   ░  ░    ░   ░  ░░   ░       ░                      ▓         +        ▓    ░  ░          ░   ░░ ░  ░░  ░ ░   ░░ ░              ░               +              ░  ░░     ░ ░░          ░   ░   ░░                ░   ░            +             ░    ░  ░  ░ ░    ░    ░ ░ ░░░░ ░                                   +             ░ ░       ░ ░      ░ ░░  ░   ░ ░   ░       ░░        ░▓             +              ▒░░       ░           ░        ░   ░   ░          ░░  ▓            +                ░                    ░░        ░    ░░ ░       ░                 +                  ▒ ░         ░        ░   ░      ░       ░  ░                   +                    ▒  ░ ░        ░    ░  ░     ░           ▓                    +                    ▓  ░░  ░        ░░  ░     ░  ░  ░   ░                        +                     ▓▓    ▒░      ░           ░   ░░   ▓                        +                              ▓  ░░░░       ░░   ▓                               + + diff --git a/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/doc/secret.txt b/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/doc/secret.txt new file mode 100644 index 00000000..e872ca45 --- /dev/null +++ b/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/doc/secret.txt @@ -0,0 +1,32 @@ +================================================================================ + *telescope.theprimeagen* + +To The Viewers: ~ + +Oh why hello, I didn't see you there. So nice of you to join us. The Primeagen +must have sent you here. + +The places you want to look for help are: (you can do `:help ` below) + - |telescope.nvim| + - |telescope.setup| + - |telescope.builtin| + - |telescope.layout| + - |telescope.actions| + +I hope you enjoy telescope & Neovim. May your programming always be fun and +your vimming be quick. + + + +To The Primeagen: ~ + +Cyrnfr ernq guvf uryc znahny orsber pnyyvat zr ng 3 NZ jvgu gryrfpbcr +rzretrapvrf. V xabj ynfg gvzr jr fnirq gur ragver fgernzvat vaqhfgel, ohg +V unir n lbhat fba jub xrrcf zr hc ng avtug nyy ol uvzfrys. OGJ, unir lbh +pbafvqrerq fraqvat culfvpny QIQf sbe znkvzhz dhnyvgl naq rneyl npprff gb arj +pbagrag? Vg frrzf yvxr vg pbhyq or n cerggl pbby vqrn. + +#FunzryrffFrysCebzbgvba: uggcf://tvguho.pbz/fcbafbef/gwqrievrf + + + vim:tw=78:ts=8:ft=help:norl: diff --git a/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/doc/telescope.txt b/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/doc/telescope.txt new file mode 100644 index 00000000..edfbb5c1 --- /dev/null +++ b/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/doc/telescope.txt @@ -0,0 +1,4217 @@ +================================================================================ +INTRODUCTION *telescope.nvim* + +Telescope.nvim is a plugin for fuzzy finding and neovim. It helps you search, +filter, find and pick things in Lua. + +Getting started with telescope: + 1. Run `:checkhealth telescope` to make sure everything is installed. + 2. Evaluate it is working with `:Telescope find_files` or `:lua + require("telescope.builtin").find_files()` + 3. Put a `require("telescope").setup()` call somewhere in your neovim config. + 4. Read |telescope.setup| to check what config keys are available and what + you can put inside the setup call + 5. Read |telescope.builtin| to check which builtin pickers are offered and + what options these implement + 6. Profit + +The below flow chart illustrates a simplified telescope architecture: +┌───────────────────────────────────────────────────────────┐ +│ ┌────────┐ │ +│ │ Multi │ ┌───────+ │ +│ │ Select │ ┌───────┐ │ Entry │ │ +│ └─────┬──* │ Entry │ ┌────────+ │ Maker │ │ +│ │ ┌───│Manager│────│ Sorter │┐ └───┬───* │ +│ ▼ ▼ └───────* └────────┘│ │ │ +│ 1────────┐ 2───┴──┐ │ │ +│ ┌─────│ Picker │ │Finder│◀────┘ │ +│ ▼ └───┬────┘ └──────* │ +│ ┌────────┐ │ 3────────+ ▲ │ +│ │Selected│ └───────│ Prompt │─────────┘ │ +│ │ Entry │ └───┬────┘ │ +│ └────────* ┌───┴────┐ ┌────────┐ ┌────────┐ │ +│ │ ▲ 4─────────┐│ Prompt │ │(Attach)│ │Actions │ │ +│ ▼ └──▶ │ Results ││ Buffer │◀─┤Mappings│◀─┤User Fn │ │ +│5─────────┐ └─────────┘└────────┘ └────────┘ └────────┘ │ +││Previewer│ │ +│└─────────┘ telescope.nvim architecture │ +└───────────────────────────────────────────────────────────┘ + + + The `Entry Maker` at least defines + - value: "raw" result of the finder + - ordinal: string to be sorted derived from value + - display: line representation of entry in results buffer + + * The finder, entry manager, selected entry, and multi selections + comprises `entries` constructed by the `Entry Maker` from + raw results of the finder (`value`s) + + Primary components: + 1 Picker: central UI dedicated to varying use cases + (finding files, grepping, diagnostics, etc.) + see :h telescope.builtin + 2 Finder: pipe or interactively generates results to pick over + 3 Prompt: user input that triggers the finder which sorts results + in order into the entry manager + 4 Results: listed entries scored by sorter from finder results + 5 Previewer: preview of context of selected entry + see :h telescope.previewers + +A practical introduction into telescope customization is our `developers.md` +(top-level of repo) and `:h telescope.actions` that showcase how to access +information about the state of the picker (current selection, etc.). +To find out more: +https://github.com/nvim-telescope/telescope.nvim + + :h telescope.setup + :h telescope.command + :h telescope.builtin + :h telescope.themes + :h telescope.layout + :h telescope.resolve + :h telescope.actions + :h telescope.actions.state + :h telescope.actions.set + :h telescope.actions.utils + :h telescope.actions.generate + :h telescope.actions.history + :h telescope.previewers + +telescope.setup({opts}) *telescope.setup()* + Setup function to be run by user. Configures the defaults, pickers and + extensions of telescope. + + Usage: + > + require('telescope').setup{ + defaults = { + -- Default configuration for telescope goes here: + -- config_key = value, + -- .. + }, + pickers = { + -- Default configuration for builtin pickers goes here: + -- picker_name = { + -- picker_config_key = value, + -- ... + -- } + -- Now the picker_config_key will be applied every time you call this + -- builtin picker + }, + extensions = { + -- Your extension configuration goes here: + -- extension_name = { + -- extension_config_key = value, + -- } + -- please take a look at the readme of the extension you want to configure + } + } +< + + + Valid keys for {opts.defaults} + + *telescope.defaults.sorting_strategy* + sorting_strategy: ~ + Determines the direction "better" results are sorted towards. + + Available options are: + - "descending" (default) + - "ascending" + + *telescope.defaults.selection_strategy* + selection_strategy: ~ + Determines how the cursor acts after each sort iteration. + + Available options are: + - "reset" (default) + - "follow" + - "row" + - "closest" + - "none" + + *telescope.defaults.scroll_strategy* + scroll_strategy: ~ + Determines what happens if you try to scroll past the view of the + picker. + + Available options are: + - "cycle" (default) + - "limit" + + *telescope.defaults.layout_strategy* + layout_strategy: ~ + Determines the default layout of Telescope pickers. + See |telescope.layout| for details of the available strategies. + + Default: 'horizontal' + + *telescope.defaults.create_layout* + create_layout: ~ + Configure the layout of Telescope pickers. + See |telescope.pickers.layout| for details. + + Default: 'nil' + + *telescope.defaults.layout_config* + layout_config: ~ + Determines the default configuration values for layout strategies. + See |telescope.layout| for details of the configurations options for + each strategy. + + Allows setting defaults for all strategies as top level options and + for overriding for specific options. + For example, the default values below set the default width to 80% of + the screen width for all strategies except 'center', which has width + of 50% of the screen width. + + Default: { + bottom_pane = { + height = 25, + preview_cutoff = 120, + prompt_position = "top" + }, + center = { + height = 0.4, + preview_cutoff = 40, + prompt_position = "top", + width = 0.5 + }, + cursor = { + height = 0.9, + preview_cutoff = 40, + width = 0.8 + }, + horizontal = { + height = 0.9, + preview_cutoff = 120, + prompt_position = "bottom", + width = 0.8 + }, + vertical = { + height = 0.9, + preview_cutoff = 40, + prompt_position = "bottom", + width = 0.8 + } + } + + + *telescope.defaults.cycle_layout_list* + cycle_layout_list: ~ + Determines the layouts to cycle through when using `actions.layout.cycle_layout_next` + and `actions.layout.cycle_layout_prev`. + Should be a list of "layout setups". + Each "layout setup" can take one of two forms: + 1. string + This is interpreted as the name of a `layout_strategy` + 2. table + A table with possible keys `layout_strategy`, `layout_config` and `previewer` + + Default: { "horizontal", "vertical" } + + + *telescope.defaults.winblend* + winblend: ~ + Configure winblend for telescope floating windows. See |winblend| for + more information. Type can be a number or a function returning a + number + + Default: function() return vim.o.winblend end + + *telescope.defaults.wrap_results* + wrap_results: ~ + Word wrap the search results + + Default: false + + *telescope.defaults.prompt_prefix* + prompt_prefix: ~ + The character(s) that will be shown in front of Telescope's prompt. + + Default: '> ' + + *telescope.defaults.selection_caret* + selection_caret: ~ + The character(s) that will be shown in front of the current selection. + + Default: '> ' + + *telescope.defaults.entry_prefix* + entry_prefix: ~ + Prefix in front of each result entry. Current selection not included. + + Default: ' ' + + *telescope.defaults.multi_icon* + multi_icon: ~ + Symbol to add in front of a multi-selected result entry. + Replaces final character of |telescope.defaults.selection_caret| and + |telescope.defaults.entry_prefix| as appropriate. + To have no icon, set to the empty string. + + Default: '+' + + *telescope.defaults.initial_mode* + initial_mode: ~ + Determines in which mode telescope starts. Valid Keys: + `insert` and `normal`. + + Default: "insert" + + *telescope.defaults.border* + border: ~ + Boolean defining if borders are added to Telescope windows. + + Default: true + + *telescope.defaults.path_display* + path_display: ~ + Determines how file paths are displayed. + + path_display can be set to an array with a combination of: + - "hidden" hide file names + - "tail" only display the file name, and not the path + - "absolute" display absolute paths + - "smart" remove as much from the path as possible to only show + the difference between the displayed paths. + Warning: The nature of the algorithm might have a negative + performance impact! + - "shorten" only display the first character of each directory in + the path + - "truncate" truncates the start of the path when the whole path will + not fit. To increase the gap between the path and the edge, + set truncate to number `truncate = 3` + - "filename_first" shows filenames first and then the directories + + You can also specify the number of characters of each directory name + to keep by setting `path_display.shorten = num`. + e.g. for a path like + `alpha/beta/gamma/delta.txt` + setting `path_display.shorten = 1` will give a path like: + `a/b/g/delta.txt` + Similarly, `path_display.shorten = 2` will give a path like: + `al/be/ga/delta.txt` + + You can also further customise the shortening behaviour by + setting `path_display.shorten = { len = num, exclude = list }`, + where `len` acts as above, and `exclude` is a list of positions + that are not shortened. Negative numbers in the list are considered + relative to the end of the path. + e.g. for a path like + `alpha/beta/gamma/delta.txt` + setting `path_display.shorten = { len = 1, exclude = {1, -1} }` + will give a path like: + `alpha/b/g/delta.txt` + setting `path_display.shorten = { len = 2, exclude = {2, -2} }` + will give a path like: + `al/beta/gamma/de` + + path_display can also be set to 'filename_first' to put the filename + in front. + + path_display = { + "filename_first" + }, + + The directory structure can be reversed as follows: + + path_display = { + filename_first = { + reverse_directories = true + } + }, + + path_display can also be set to 'hidden' string to hide file names + + path_display can also be set to a function for custom formatting of + the path display with the following signature + + Signature: fun(opts: table, path: string): string, table? + + The optional table is an list of positions and highlight groups to + set the highlighting of the return path string. + + Example: + + -- Format path as "file.txt (path\to\file\)" + path_display = function(opts, path) + local tail = require("telescope.utils").path_tail(path) + return string.format("%s (%s)", tail, path) + end, + + -- Format path and add custom highlighting + path_display = function(opts, path) + local tail = require("telescope.utils").path_tail(path) + path = string.format("%s (%s)", tail, path) + + local highlights = { + { + { + 0, -- highlight start position + #path, -- highlight end position + }, + "Comment", -- highlight group name + }, + } + + return path, highlights + end + + Default: {} + + *telescope.defaults.borderchars* + borderchars: ~ + Set the borderchars of telescope floating windows. It has to be a + table of 8 string values. + + Default: { "─", "│", "─", "│", "╭", "╮", "╯", "╰" } + + *telescope.defaults.get_status_text* + get_status_text: ~ + A function that determines what the virtual text looks like. + Signature: function(picker) -> str + + Default: function that shows current count / all + + *telescope.defaults.hl_result_eol* + hl_result_eol: ~ + Changes if the highlight for the selected item in the results + window is always the full width of the window + + Default: true + + *telescope.defaults.dynamic_preview_title* + dynamic_preview_title: ~ + Will change the title of the preview window dynamically, where it + is supported. For example, the preview window's title could show up as + the full filename. + + Default: false + + *telescope.defaults.results_title* + results_title: ~ + Defines the default title of the results window. A false value + can be used to hide the title altogether. + + Default: "Results" + + *telescope.defaults.prompt_title* + prompt_title: ~ + Defines the default title of the prompt window. A false value + can be used to hide the title altogether. Most of the times builtins + define a prompt_title which will be preferred over this default. + + Default: "Prompt" + + *telescope.defaults.mappings* + mappings: ~ + Your mappings to override telescope's default mappings. + + See: ~ + |telescope.mappings| + + + *telescope.defaults.default_mappings* + default_mappings: ~ + Not recommended to use except for advanced users. + + Will allow you to completely remove all of telescope's default maps + and use your own. + + Default: nil + + + *telescope.defaults.history* + history: ~ + This field handles the configuration for prompt history. + By default it is a table, with default values (more below). + To disable history, set it to false. + + Currently mappings still need to be added, Example: + mappings = { + i = { + [""] = require('telescope.actions').cycle_history_next, + [""] = require('telescope.actions').cycle_history_prev, + }, + }, + + Fields: + - path: The path to the telescope history as string. + Default: stdpath("data")/telescope_history + - limit: The amount of entries that will be written in the + history. + Warning: If limit is set to nil it will grow unbound. + Default: 100 + - handler: A lua function that implements the history. + This is meant as a developer setting for extensions to + override the history handling, e.g., + https://github.com/nvim-telescope/telescope-smart-history.nvim, + which allows context sensitive (cwd + picker) history. + + Default: + require('telescope.actions.history').get_simple_history + - cycle_wrap: Indicates whether the cycle_history_next and + cycle_history_prev functions should wrap around to the + beginning or end of the history entries on reaching + their respective ends + Default: false + + *telescope.defaults.cache_picker* + cache_picker: ~ + This field handles the configuration for picker caching. + By default it is a table, with default values (more below). + To disable caching, set it to false. + + Caching preserves all previous multi selections and results and + therefore may result in slowdown or increased RAM occupation + if too many pickers (`cache_picker.num_pickers`) or entries + ('cache_picker.limit_entries`) are cached. + + Fields: + - num_pickers: The number of pickers to be cached. + Set to -1 to preserve all pickers of your + session. If passed to a picker, the cached + pickers with indices larger than + `cache_picker.num_pickers` will be cleared. + Default: 1 + - limit_entries: The amount of entries that will be saved for + each picker. + Default: 1000 + - ignore_empty_prompt: If true, the picker will not be cached if + the prompt is empty (i.e., no text has been + typed at the time of closing the prompt). + Default: false + + + *telescope.defaults.preview* + preview: ~ + This field handles the global configuration for previewers. + By default it is a table, with default values (more below). + To disable previewing, set it to false. If you have disabled previewers + globally, but want to opt in to previewing for single pickers, you will have to + pass `preview = true` or `preview = {...}` (your config) to the `opts` of + your picker. + + Fields: + - check_mime_type: Use `file` if available to try to infer whether the + file to preview is a binary if filetype + detection fails. + Windows users get `file` from: + https://github.com/julian-r/file-windows + Set to false to attempt to preview any mime type. + Default: true for all OS excl. Windows + - filesize_limit: The maximum file size in MB attempted to be previewed. + Set to false to attempt to preview any file size. + Default: 25 + - highlight_limit: The maximum file size in MB attempted to be highlighted. + Set to false to attempt to highlight any file size. + Default: 1 + - timeout: Timeout the previewer if the preview did not + complete within `timeout` milliseconds. + Set to false to not timeout preview. + Default: 250 + - hook(s): Function(s) that takes `(filepath, bufnr, opts)`, where opts + exposes winid and ft (filetype). + Available hooks (in order of priority): + {filetype, mime, filesize, timeout}_hook + Important: the filetype_hook must return true or false + to indicate whether to continue (true) previewing or not (false), + respectively. + Two examples: + local putils = require("telescope.previewers.utils") + ... -- preview is called in telescope.setup { ... } + preview = { + -- 1) Do not show previewer for certain files + filetype_hook = function(filepath, bufnr, opts) + -- you could analogously check opts.ft for filetypes + local excluded = vim.tbl_filter(function(ending) + return filepath:match(ending) + end, { + ".*%.csv", + ".*%.toml", + }) + if not vim.tbl_isempty(excluded) then + putils.set_preview_message( + bufnr, + opts.winid, + string.format("I don't like %s files!", + excluded[1]:sub(5, -1)) + ) + return false + end + return true + end, + -- 2) Truncate lines to preview window for too large files + filesize_hook = function(filepath, bufnr, opts) + local path = require("plenary.path"):new(filepath) + -- opts exposes winid + local height = vim.api.nvim_win_get_height(opts.winid) + local lines = vim.split(path:head(height), "[\r]?\n") + vim.api.nvim_buf_set_lines(bufnr, 0, -1, false, lines) + end, + } + The configuration recipes for relevant examples. + Note: we use vim.filetype filetype detection, + so if you have troubles with files not + highlighting correctly, please read + |vim.filetype| + Default: nil + - treesitter: Determines whether the previewer performs treesitter + highlighting, which falls back to regex-based highlighting. + `true`: treesitter highlighting for all available filetypes + `false`: regex-based highlighting for all filetypes + `table`: may contain the following keys: + - enable boolean|table: if boolean, enable ts + highlighting for all supported + filetypes. + if table, ts highlighting is only + enabled for given filetypes. + - disable table: list of filetypes for which ts highlighting + is not used if `enable = true`. + Default: true + - msg_bg_fillchar: Character to fill background of unpreviewable buffers with + Default: "╱" + - hide_on_startup: Hide previewer when picker starts. Previewer can be toggled + with actions.layout.toggle_preview. + Default: false + - ls_short: Determines whether to use the `--short` flag for the `ls` + command when previewing directories. Otherwise will result + to using `--long`. + Default: false + + + *telescope.defaults.vimgrep_arguments* + vimgrep_arguments: ~ + Defines the command that will be used for `live_grep` and `grep_string` + pickers. + Hint: Make sure that color is currently set to `never` because we do + not yet interpret color codes + Hint 2: Make sure that these options are in your changes arguments: + "--no-heading", "--with-filename", "--line-number", "--column" + because we need them so the ripgrep output is in the correct format. + + Default: { + "rg", + "--color=never", + "--no-heading", + "--with-filename", + "--line-number", + "--column", + "--smart-case" + } + + *telescope.defaults.use_less* + use_less: ~ + Boolean if less should be enabled in term_previewer (deprecated and + currently no longer used in the builtin pickers). + + Default: true + + *telescope.defaults.set_env* + set_env: ~ + Set an environment for term_previewer. A table of key values: + Example: { COLORTERM = "truecolor", ... } + Hint: Empty table is not allowed. + + Default: nil + + *telescope.defaults.color_devicons* + color_devicons: ~ + Boolean if devicons should be enabled or not. If set to false, the + text highlight group is used. + Hint: Coloring only works if |termguicolors| is enabled. + + Default: true + + *telescope.defaults.file_sorter* + file_sorter: ~ + A function pointer that specifies the file_sorter. This sorter will + be used for find_files, git_files and similar. + Hint: If you load a native sorter, you don't need to change this value, + the native sorter will override it anyway. + + Default: require("telescope.sorters").get_fzy_sorter + + *telescope.defaults.generic_sorter* + generic_sorter: ~ + A function pointer to the generic sorter. The sorter that should be + used for everything that is not a file. + Hint: If you load a native sorter, you don't need to change this value, + the native sorter will override it anyway. + + Default: require("telescope.sorters").get_fzy_sorter + + *telescope.defaults.prefilter_sorter* + prefilter_sorter: ~ + This points to a wrapper sorter around the generic_sorter that is able + to do prefiltering. + It's usually used for lsp_*_symbols and lsp_*_diagnostics + + Default: require("telescope.sorters").prefilter + + *telescope.defaults.tiebreak* + tiebreak: ~ + A function that determines how to break a tie when two entries have + the same score. + Having a function that always returns false would keep the entries in + the order they are found, so existing_entry before current_entry. + Vice versa always returning true would place the current_entry + before the existing_entry. + + Signature: function(current_entry, existing_entry, prompt) -> boolean + + Default: function that breaks the tie based on the length of the + entry's ordinal + + *telescope.defaults.file_ignore_patterns* + file_ignore_patterns: ~ + A table of lua regex that define the files that should be ignored. + Example: { "^scratch/" } -- ignore all files in scratch directory + Example: { "%.npz" } -- ignore all npz files + See: https://www.lua.org/manual/5.1/manual.html#5.4.1 for more + information about lua regex + Note: `file_ignore_patterns` will be used in all pickers that have a + file associated. This might lead to the problem that lsp_ pickers + aren't displaying results because they might be ignored by + `file_ignore_patterns`. For example, setting up node_modules as ignored + will never show node_modules in any results, even if you are + interested in lsp_ results. + + If you only want `file_ignore_patterns` for `find_files` and + `grep_string`/`live_grep` it is suggested that you setup `gitignore` + and have fd and or ripgrep installed because both tools will not show + `gitignore`d files on default. + + Default: nil + + *telescope.defaults.get_selection_window* + get_selection_window: ~ + Function that takes function(picker, entry) and returns a window id. + The window ID will be used to decide what window the chosen file will + be opened in and the cursor placed in upon leaving the picker. + + Default: `function() return 0 end` + + + *telescope.defaults.git_worktrees* + git_worktrees: ~ + A table of arrays of detached working trees with keys `gitdir` and `toplevel`. + Used to pass `--git-dir` and `--work-tree` flags to git commands when telescope fails + to infer the top-level directory of a given working tree based on cwd. + Example: + git_worktrees = { + { + toplevel = vim.env.HOME, + gitdir = vim.env.HOME .. '/.cfg' + } + } + + Default: nil + + + *telescope.defaults.file_previewer* + file_previewer: ~ + Function pointer to the default file_previewer. It is mostly used + for find_files, git_files and similar. + You can change this function pointer to either use your own + previewer or use the command-line program bat as the previewer: + require("telescope.previewers").cat.new + + Default: require("telescope.previewers").vim_buffer_cat.new + + *telescope.defaults.grep_previewer* + grep_previewer: ~ + Function pointer to the default vim_grep previewer. It is mostly + used for live_grep, grep_string and similar. + You can change this function pointer to either use your own + previewer or use the command-line program bat as the previewer: + require("telescope.previewers").vimgrep.new + + Default: require("telescope.previewers").vim_buffer_vimgrep.new + + *telescope.defaults.qflist_previewer* + qflist_previewer: ~ + Function pointer to the default qflist previewer. It is mostly + used for qflist, loclist and lsp. + You can change this function pointer to either use your own + previewer or use the command-line program bat as the previewer: + require("telescope.previewers").qflist.new + + Default: require("telescope.previewers").vim_buffer_qflist.new + + *telescope.defaults.buffer_previewer_maker* + buffer_previewer_maker: ~ + Developer option that defines the underlining functionality + of the buffer previewer. + For interesting configuration examples take a look at + https://github.com/nvim-telescope/telescope.nvim/wiki/Configuration-Recipes + + Default: require("telescope.previewers").buffer_previewer_maker + + Parameters: ~ + {opts} (table) Configuration opts. Keys: defaults, pickers, + extensions + + +telescope.load_extension({name}) *telescope.load_extension()* + Load an extension. + - Notes: + - Loading triggers ext setup via the config passed in |telescope.setup| + + + Parameters: ~ + {name} (string) Name of the extension + + +telescope.register_extension({mod}) *telescope.register_extension()* + Register an extension. To be used by plugin authors. + + + Parameters: ~ + {mod} (table) Module + + +telescope.extensions() *telescope.extensions()* + Use telescope.extensions to reference any extensions within your + configuration. + While the docs currently generate this as a function, it's actually a + table. Sorry. + + + + +================================================================================ +COMMAND *telescope.command* + +Telescope commands can be called through two apis, the lua api and the viml +api. + +The lua api is the more direct way to interact with Telescope, as you directly +call the lua functions that Telescope defines. It can be called in a lua file +using commands like: +`require("telescope.builtin").find_files({hidden=true, layout_config={prompt_position="top"}})` +If you want to use this api from a vim file you should prepend `lua` to the +command, as below: +`lua require("telescope.builtin").find_files({hidden=true, layout_config={prompt_position="top"}})` +If you want to use this api from a neovim command line you should prepend +`:lua` to the command, as below: +`:lua require("telescope.builtin").find_files({hidden=true, layout_config={prompt_position="top"}})` + +The viml api is more indirect, as first the command must be parsed to the +relevant lua equivalent, which brings some limitations. The viml api can be +called using commands like: +`:Telescope find_files hidden=true layout_config={"prompt_position":"top"}` +This involves setting options using an `=` and using viml syntax for lists and +dictionaries when the corresponding lua function requires a table. + +One limitation of the viml api is that there can be no spaces in any of the +options. For example, if you want to use the `cwd` option for `find_files` to +specify that you only want to search within the folder `/foo bar/subfolder/` +you could not do that using the viml api, as the path name contains a space. +Similarly, you could NOT set the `prompt_position` to `"top"` using the +following command: +`:Telescope find_files layout_config={ "prompt_position" : "top" }` +as there are spaces in the option. + + + +================================================================================ +BUILTIN *telescope.builtin* + +Telescope Builtins is a collection of community maintained pickers to support +common workflows. It can be used as reference when writing PRs, Telescope +extensions, your own custom pickers, or just as a discovery tool for all of the +amazing pickers already shipped with Telescope! + +Any of these functions can just be called directly by doing: + +:lua require('telescope.builtin').$NAME_OF_PICKER() + +To use any of Telescope's default options or any picker-specific options, call +your desired picker by passing a lua table to the picker with all of the +options you want to use. Here's an example with the live_grep picker: + +> + :lua require('telescope.builtin').live_grep({ + prompt_title = 'find string in open buffers...', + grep_open_files = true + }) + -- or with dropdown theme + :lua require('telescope.builtin').find_files(require('telescope.themes').get_dropdown{ + previewer = false + }) +< + +builtin.live_grep({opts}) *telescope.builtin.live_grep()* + Search for a string and get results live as you type, respects .gitignore + + + Parameters: ~ + {opts} (table) options to pass to the picker + + Options: ~ + {cwd} (string) root dir to search from + (default: cwd, use + utils.buffer_dir() to search + relative to open buffer) + {grep_open_files} (boolean) if true, restrict search to + open files only, mutually + exclusive with `search_dirs` + {search_dirs} (table) directory/directories/files to + search, mutually exclusive + with `grep_open_files` + {glob_pattern} (string|table) argument to be used with + `--glob`, e.g. "*.toml", can + use the opposite "!*.toml" + {type_filter} (string) argument to be used with + `--type`, e.g. "rust", see `rg + --type-list` + {additional_args} (function|table) additional arguments to be + passed on. Can be fn(opts) -> + tbl + {max_results} (number) define a upper result value + {disable_coordinates} (boolean) don't show the line & row + numbers (default: false) + {file_encoding} (string) file encoding for the entry & + previewer + + +builtin.grep_string({opts}) *telescope.builtin.grep_string()* + Searches for the string under your cursor or the visual selection in your + current working directory + + + Parameters: ~ + {opts} (table) options to pass to the picker + + Options: ~ + {cwd} (string) root dir to search from + (default: cwd, use + utils.buffer_dir() to search + relative to open buffer) + {search} (string) the query to search + {grep_open_files} (boolean) if true, restrict search to + open files only, mutually + exclusive with `search_dirs` + {search_dirs} (table) directory/directories/files to + search, mutually exclusive + with `grep_open_files` + {use_regex} (boolean) if true, special characters + won't be escaped, allows for + using regex (default: false) + {word_match} (string) can be set to `-w` to enable + exact word matches + {additional_args} (function|table) additional arguments to be + passed on. Can be fn(opts) -> + tbl + {disable_coordinates} (boolean) don't show the line and row + numbers (default: false) + {only_sort_text} (boolean) only sort the text, not the + file, line or row (default: + false) + {file_encoding} (string) file encoding for the entry & + previewer + + +builtin.find_files({opts}) *telescope.builtin.find_files()* + Search for files (respecting .gitignore) + + + Parameters: ~ + {opts} (table) options to pass to the picker + + Options: ~ + {cwd} (string) root dir to search from + (default: cwd, use + utils.buffer_dir() to search + relative to open buffer) + {find_command} (function|table) cmd to use for the search. Can + be a fn(opts) -> tbl (default: + autodetect) + {file_entry_encoding} (string) encoding of output of + `find_command` + {follow} (boolean) if true, follows symlinks + (i.e. uses `-L` flag for the + `find` command) (default: + false) + {hidden} (boolean) determines whether to show + hidden files or not (default: + false) + {no_ignore} (boolean) show files ignored by + .gitignore, .ignore, etc. + (default: false) + {no_ignore_parent} (boolean) show files ignored by + .gitignore, .ignore, etc. in + parent dirs. (default: false) + {search_dirs} (table) directory/directories/files to + search + {search_file} (string) specify a filename to search + for + {file_encoding} (string) file encoding for the + previewer + + +builtin.fd() *telescope.builtin.fd()* + This is an alias for the `find_files` picker + + + +builtin.treesitter() *telescope.builtin.treesitter()* + Lists function names, variables, and other symbols from treesitter queries + - Default keymaps: + - ``: show autocompletion menu to prefilter your query by kind of ts + node you want to see (i.e. `:var:`) + + + Options: ~ + {show_line} (boolean) if true, shows the row:column that + the result is found at (default: + true) + {bufnr} (number) specify the buffer number where + treesitter should run. (default: + current buffer) + {symbol_width} (number) defines the width of the symbol + section (default: 25) + {symbols} (string|table) filter results by symbol kind(s) + {ignore_symbols} (string|table) list of symbols to ignore + {symbol_highlights} (table) string -> string. Matches symbol + with hl_group + {file_encoding} (string) file encoding for the previewer + + +builtin.current_buffer_fuzzy_find({opts}) *telescope.builtin.current_buffer_fuzzy_find()* + Live fuzzy search inside of the currently open buffer + + + Parameters: ~ + {opts} (table) options to pass to the picker + + Options: ~ + {skip_empty_lines} (boolean) if true we don't display empty lines + (default: false) + {results_ts_highlight} (boolean) highlight result entries with + treesitter (default: true) + {file_encoding} (string) file encoding for the previewer + + +builtin.tags({opts}) *telescope.builtin.tags()* + Lists tags in current directory with tag location file preview (users are + required to run ctags -R to generate tags or update when introducing new + changes) + + + Parameters: ~ + {opts} (table) options to pass to the picker + + Options: ~ + {cwd} (string) root dir to search from (default: cwd, use + utils.buffer_dir() to search relative to + open buffer) + {ctags_file} (string) specify a particular ctags file to use + {show_line} (boolean) if true, shows the content of the line the + tag is found on in the picker (default: + true) + {only_sort_tags} (boolean) if true we will only sort tags (default: + false) + {fname_width} (number) defines the width of the filename section + (default: 30) + + +builtin.current_buffer_tags({opts}) *telescope.builtin.current_buffer_tags()* + Lists all of the tags for the currently open buffer, with a preview + + + Parameters: ~ + {opts} (table) options to pass to the picker + + Options: ~ + {cwd} (string) root dir to search from (default: cwd, use + utils.buffer_dir() to search relative to + open buffer) + {ctags_file} (string) specify a particular ctags file to use + {show_line} (boolean) if true, shows the content of the line the + tag is found on in the picker (default: + true) + {only_sort_tags} (boolean) if true we will only sort tags (default: + false) + {fname_width} (number) defines the width of the filename section + (default: 30) + + +builtin.git_files({opts}) *telescope.builtin.git_files()* + Fuzzy search for files tracked by Git. This command lists the output of the + `git ls-files` command, respects .gitignore + - Default keymaps: + - ``: opens the currently selected file + + + Parameters: ~ + {opts} (table) options to pass to the picker + + Options: ~ + {cwd} (string) specify the path of the repo + {use_file_path} (boolean) if we should use the current buffer + git root (default: false) + {use_git_root} (boolean) if we should use git root as cwd or + the cwd (important for submodule) + (default: true) + {show_untracked} (boolean) if true, adds `--others` flag to + command and shows untracked files + (default: false) + {recurse_submodules} (boolean) if true, adds the + `--recurse-submodules` flag to command + (default: false) + {git_command} (table) command that will be executed. + {"git","ls-files","--exclude-standard","--cached"} + {file_encoding} (string) file encoding for the previewer + + +builtin.git_commits({opts}) *telescope.builtin.git_commits()* + Lists commits for current directory with diff preview + - Default keymaps: + - ``: checks out the currently selected commit + - `m`: resets current branch to selected commit using mixed mode + - `s`: resets current branch to selected commit using soft mode + - `h`: resets current branch to selected commit using hard mode + + + Parameters: ~ + {opts} (table) options to pass to the picker + + Options: ~ + {cwd} (string) specify the path of the repo + {use_file_path} (boolean) if we should use the current buffer git + root (default: false) + {use_git_root} (boolean) if we should use git root as cwd or the cwd + (important for submodule) (default: true) + {git_command} (table) command that will be executed. + {"git","log","--pretty=oneline","--abbrev-commit","--","."} + + +builtin.git_bcommits({opts}) *telescope.builtin.git_bcommits()* + Lists commits for current buffer with diff preview + - Default keymaps or your overridden `select_` keys: + - ``: checks out the currently selected commit + - ``: opens a diff in a vertical split + - ``: opens a diff in a horizontal split + - ``: opens a diff in a new tab + + + Parameters: ~ + {opts} (table) options to pass to the picker + + Options: ~ + {cwd} (string) specify the path of the repo + {use_file_path} (boolean) if we should use the current buffer git + root (default: false) + {use_git_root} (boolean) if we should use git root as cwd or the cwd + (important for submodule) (default: true) + {current_file} (string) specify the current file that should be + used for bcommits (default: current buffer) + {git_command} (table) command that will be executed. + {"git","log","--pretty=oneline","--abbrev-commit"} + + +builtin.git_bcommits_range({opts}) *telescope.builtin.git_bcommits_range()* + Lists commits for a range of lines in the current buffer with diff preview + In visual mode, lists commits for the selected lines With operator mode + enabled, lists commits inside the text object/motion + - Default keymaps or your overridden `select_` keys: + - ``: checks out the currently selected commit + - ``: opens a diff in a vertical split + - ``: opens a diff in a horizontal split + - ``: opens a diff in a new tab + + + Parameters: ~ + {opts} (table) options to pass to the picker + + Options: ~ + {cwd} (string) specify the path of the repo + {use_git_root} (boolean) if we should use git root as cwd or the cwd + (important for submodule) (default: true) + {current_file} (string) specify the current file that should be used + for bcommits (default: current buffer) + {git_command} (table) command that will be executed. the last + element must be "-L". + {"git","log","--pretty=oneline","--abbrev-commit","--no-patch","-L"} + {from} (number) the first line number in the range (default: + current line) + {to} (number) the last line number in the range (default: + the value of `from`) + {operator} (boolean) select lines in operator-pending mode + (default: false) + + +builtin.git_branches({opts}) *telescope.builtin.git_branches()* + List branches for current directory, with output from `git log --oneline` + shown in the preview window + - Default keymaps: + - ``: checks out the currently selected branch + - ``: tracks currently selected branch + - ``: rebases currently selected branch + - ``: creates a new branch, with confirmation prompt before creation + - ``: deletes the currently selected branch, with confirmation + prompt before deletion + - ``: merges the currently selected branch, with confirmation prompt + before deletion + + + Parameters: ~ + {opts} (table) options to pass to the picker + + Options: ~ + {cwd} (string) specify the path of the + repo + {use_file_path} (boolean) if we should use the + current buffer git root + (default: false) + {use_git_root} (boolean) if we should use git root + as cwd or the cwd + (important for submodule) + (default: true) + {show_remote_tracking_branches} (boolean) show remote tracking + branches like origin/main + (default: true) + {pattern} (string) specify the pattern to + match all refs + + +builtin.git_status({opts}) *telescope.builtin.git_status()* + Lists git status for current directory + - Default keymaps: + - ``: stages or unstages the currently selected file + - ``: opens the currently selected file + + + Parameters: ~ + {opts} (table) options to pass to the picker + + Options: ~ + {cwd} (string) specify the path of the repo + {use_file_path} (boolean) if we should use the current buffer git + root (default: false) + {use_git_root} (boolean) if we should use git root as cwd or the cwd + (important for submodule) (default: true) + {git_icons} (table) string -> string. Matches name with icon + (see source code, make_entry.lua + git_icon_defaults) + {expand_dir} (boolean) pass flag `-uall` to show files in + untracked directories (default: true) + + +builtin.git_stash({opts}) *telescope.builtin.git_stash()* + Lists stash items in current repository + - Default keymaps: + - ``: runs `git apply` for currently selected stash + + + Parameters: ~ + {opts} (table) options to pass to the picker + + Options: ~ + {cwd} (string) specify the path of the repo + {use_file_path} (boolean) if we should use the current buffer git + root (default: false) + {use_git_root} (boolean) if we should use git root as cwd or the cwd + (important for submodule) (default: true) + {show_branch} (boolean) if we should display the branch name for + git stash entries (default: true) + + +builtin.builtin({opts}) *telescope.builtin.builtin()* + Lists all of the community maintained pickers built into Telescope + + + Parameters: ~ + {opts} (table) options to pass to the picker + + Options: ~ + {include_extensions} (boolean) if true will show the pickers of the + installed extensions (default: false) + {use_default_opts} (boolean) if the selected picker should use its + default options (default: false) + + +builtin.resume({opts}) *telescope.builtin.resume()* + Opens the previous picker in the identical state (incl. multi selections) + - Notes: + - Requires `cache_picker` in setup or when having invoked pickers, see + |telescope.defaults.cache_picker| + + + Parameters: ~ + {opts} (table) options to pass to the picker + + Options: ~ + {cache_index} (number) what picker to resume, where 1 denotes most + recent (default: 1) + + +builtin.pickers({opts}) *telescope.builtin.pickers()* + Opens a picker over previously cached pickers in their preserved states + (incl. multi selections) + - Default keymaps: + - ``: delete the selected cached picker + - Notes: + - Requires `cache_picker` in setup or when having invoked pickers, see + |telescope.defaults.cache_picker| + + + Parameters: ~ + {opts} (table) options to pass to the picker + + +builtin.planets({opts}) *telescope.builtin.planets()* + Use the telescope... + + + Parameters: ~ + {opts} (table) options to pass to the picker + + Options: ~ + {show_pluto} (boolean) we love Pluto (default: false, because its a + hidden feature) + {show_moon} (boolean) we love the Moon (default: false, because its + a hidden feature) + + +builtin.symbols({opts}) *telescope.builtin.symbols()* + Lists symbols inside of `data/telescope-sources/*.json` found in your + runtime path or found in `stdpath("data")/telescope/symbols/*.json`. The + second path can be customized. We provide a couple of default symbols which + can be found in https://github.com/nvim-telescope/telescope-symbols.nvim. + This repos README also provides more information about the format in which + the symbols have to be. + + + Parameters: ~ + {opts} (table) options to pass to the picker + + Options: ~ + {symbol_path} (string) specify the second path. Default: + `stdpath("data")/telescope/symbols/*.json` + {sources} (table) specify a table of sources you want to load + this time + + +builtin.commands({opts}) *telescope.builtin.commands()* + Lists available plugin/user commands and runs them on `` + + + Parameters: ~ + {opts} (table) options to pass to the picker + + Options: ~ + {show_buf_command} (boolean) show buf local command (Default: true) + + +builtin.quickfix({opts}) *telescope.builtin.quickfix()* + Lists items in the quickfix list, jumps to location on `` + + + Parameters: ~ + {opts} (table) options to pass to the picker + + Options: ~ + {show_line} (boolean) show results text (default: true) + {trim_text} (boolean) trim results text (default: false) + {nr} (number) specify the quickfix list number + + +builtin.quickfixhistory({opts}) *telescope.builtin.quickfixhistory()* + Lists all quickfix lists in your history and open them with + `builtin.quickfix`. It seems that neovim only keeps the full history for 10 + lists + + + Parameters: ~ + {opts} (table) options to pass to the picker + + +builtin.loclist({opts}) *telescope.builtin.loclist()* + Lists items from the current window's location list, jumps to location on + `` + + + Parameters: ~ + {opts} (table) options to pass to the picker + + Options: ~ + {show_line} (boolean) show results text (default: true) + {trim_text} (boolean) trim results text (default: false) + + +builtin.oldfiles({opts}) *telescope.builtin.oldfiles()* + Lists previously open files, opens on `` + + + Parameters: ~ + {opts} (table) options to pass to the picker + + Options: ~ + {cwd} (string) specify a working directory to filter + oldfiles by + {only_cwd} (boolean) show only files in the cwd (default: false) + {cwd_only} (boolean) alias for only_cwd + {file_encoding} (string) file encoding for the previewer + + +builtin.command_history({opts}) *telescope.builtin.command_history()* + Lists commands that were executed recently, and reruns them on `` + - Default keymaps: + - ``: open the command line with the text of the currently selected + result populated in it + + + Parameters: ~ + {opts} (table) options to pass to the picker + + Options: ~ + {filter_fn} (function) filter fn(cmd:string). true if the history + command should be presented. + + +builtin.search_history({opts}) *telescope.builtin.search_history()* + Lists searches that were executed recently, and reruns them on `` + - Default keymaps: + - ``: open a search window with the text of the currently selected + search result populated in it + + + Parameters: ~ + {opts} (table) options to pass to the picker + + +builtin.vim_options({opts}) *telescope.builtin.vim_options()* + Lists vim options, allows you to edit the current value on `` + + + Parameters: ~ + {opts} (table) options to pass to the picker + + +builtin.help_tags({opts}) *telescope.builtin.help_tags()* + Lists available help tags and opens a new window with the relevant help + info on `` + + + Parameters: ~ + {opts} (table) options to pass to the picker + + Options: ~ + {lang} (string) specify language (default: vim.o.helplang) + {fallback} (boolean) fallback to en if language isn't installed + (default: true) + + +builtin.man_pages({opts}) *telescope.builtin.man_pages()* + Lists manpage entries, opens them in a help window on `` + + + Parameters: ~ + {opts} (table) options to pass to the picker + + Options: ~ + {sections} (table) a list of sections to search, use `{ "ALL" }` + to search in all sections (default: { "1" }) + {man_cmd} (function) that returns the man command. (Default: + `apropos ""` on linux, `apropos " "` on macos) + + +builtin.reloader({opts}) *telescope.builtin.reloader()* + Lists lua modules and reloads them on `` + + + Parameters: ~ + {opts} (table) options to pass to the picker + + Options: ~ + {column_len} (number) define the max column len for the module name + (default: dynamic, longest module name) + + +builtin.buffers({opts}) *telescope.builtin.buffers()* + Lists open buffers in current neovim instance, opens selected buffer on + `` + - Default keymaps: + - ``: delete the currently selected buffer + + + Parameters: ~ + {opts} (table) options to pass to the picker + + Options: ~ + {cwd} (string) specify a working directory to + filter buffers list by + {show_all_buffers} (boolean) if true, show all buffers, + including unloaded buffers + (default: true) + {ignore_current_buffer} (boolean) if true, don't show the current + buffer in the list (default: + false) + {only_cwd} (boolean) if true, only show buffers in the + current working directory + (default: false) + {cwd_only} (boolean) alias for only_cwd + {sort_lastused} (boolean) Sorts current and last buffer to + the top and selects the lastused + (default: false) + {sort_mru} (boolean) Sorts all buffers after most + recent used. Not just the current + and last one (default: false) + {bufnr_width} (number) Defines the width of the buffer + numbers in front of the filenames + (default: dynamic) + {file_encoding} (string) file encoding for the previewer + {sort_buffers} (function) sort fn(bufnr_a, bufnr_b). true if + bufnr_a should go first. Runs + after sorting by most recent (if + specified) + {select_current} (boolean) select current buffer (default: + false) + + +builtin.colorscheme({opts}) *telescope.builtin.colorscheme()* + Lists available colorschemes and applies them on `` + + + Parameters: ~ + {opts} (table) options to pass to the picker + + Options: ~ + {colors} (table) a list of additional colorschemes to + explicitly make available to telescope + (default: {}) + {enable_preview} (boolean) if true, will preview the selected color + {ignore_builtins} (boolean) if true, builtin colorschemes are not + listed + + +builtin.marks({opts}) *telescope.builtin.marks()* + Lists vim marks and their value, jumps to the mark on `` + + + Parameters: ~ + {opts} (table) options to pass to the picker + + Options: ~ + {file_encoding} (string) file encoding for the previewer + {mark_type} (string) filter marks by type (default: "all", + options: "all"|"global"|"local") + + +builtin.registers({opts}) *telescope.builtin.registers()* + Lists vim registers, pastes the contents of the register on `` + - Default keymaps: + - ``: edit the contents of the currently selected register + + + Parameters: ~ + {opts} (table) options to pass to the picker + + +builtin.keymaps({opts}) *telescope.builtin.keymaps()* + Lists normal mode keymappings, runs the selected keymap on `` + + + Parameters: ~ + {opts} (table) options to pass to the picker + + Options: ~ + {modes} (table) a list of short-named keymap modes to search + (default: { "n", "i", "c", "x" }) + {show_plug} (boolean) if true, the keymaps for which the lhs + contains "" are also shown (default: + true) + {only_buf} (boolean) if true, only show the buffer-local keymaps + (default: false) + {lhs_filter} (function) filter(lhs:string) -> boolean. true for + keymap.lhs if the keymap should be shown + (optional) + {filter} (function) filter(km:keymap) -> boolean. true for the + keymap if it should be shown (optional) + + +builtin.filetypes({opts}) *telescope.builtin.filetypes()* + Lists all available filetypes, sets currently open buffer's filetype to + selected filetype in Telescope on `` + + + Parameters: ~ + {opts} (table) options to pass to the picker + + +builtin.highlights({opts}) *telescope.builtin.highlights()* + Lists all available highlights + + + Parameters: ~ + {opts} (table) options to pass to the picker + + +builtin.autocommands({opts}) *telescope.builtin.autocommands()* + Lists vim autocommands and goes to their declaration on `` + + + Parameters: ~ + {opts} (table) options to pass to the picker + + +builtin.spell_suggest({opts}) *telescope.builtin.spell_suggest()* + Lists spelling suggestions for the current word under the cursor, replaces + word with selected suggestion on `` + + + Parameters: ~ + {opts} (table) options to pass to the picker + + +builtin.tagstack({opts}) *telescope.builtin.tagstack()* + Lists the tag stack for the current window, jumps to tag on `` + + + Parameters: ~ + {opts} (table) options to pass to the picker + + Options: ~ + {show_line} (boolean) show results text (default: true) + {trim_text} (boolean) trim results text (default: false) + + +builtin.jumplist({opts}) *telescope.builtin.jumplist()* + Lists items from Vim's jumplist, jumps to location on `` + + + Parameters: ~ + {opts} (table) options to pass to the picker + + Options: ~ + {show_line} (boolean) show results text (default: true) + {trim_text} (boolean) trim results text (default: false) + + +builtin.lsp_references({opts}) *telescope.builtin.lsp_references()* + Lists LSP references for word under the cursor, jumps to reference on + `` + + + Parameters: ~ + {opts} (table) options to pass to the picker + + Options: ~ + {include_declaration} (boolean) include symbol declaration in the + lsp references (default: true) + {include_current_line} (boolean) include current line (default: + false) + {jump_type} (string) how to goto reference if there is + only one and the definition file is + different from the current file, + values: "tab", "tab drop", "split", + "vsplit", "never" + {show_line} (boolean) show results text (default: true) + {trim_text} (boolean) trim results text (default: false) + {reuse_win} (boolean) jump to existing window if buffer is + already opened (default: false) + {file_encoding} (string) file encoding for the previewer + + +builtin.lsp_incoming_calls({opts}) *telescope.builtin.lsp_incoming_calls()* + Lists LSP incoming calls for word under the cursor, jumps to reference on + `` + + + Parameters: ~ + {opts} (table) options to pass to the picker + + Options: ~ + {show_line} (boolean) show results text (default: true) + {trim_text} (boolean) trim results text (default: false) + {file_encoding} (string) file encoding for the previewer + + +builtin.lsp_outgoing_calls({opts}) *telescope.builtin.lsp_outgoing_calls()* + Lists LSP outgoing calls for word under the cursor, jumps to reference on + `` + + + Parameters: ~ + {opts} (table) options to pass to the picker + + Options: ~ + {show_line} (boolean) show results text (default: true) + {trim_text} (boolean) trim results text (default: false) + {file_encoding} (string) file encoding for the previewer + + +builtin.lsp_definitions({opts}) *telescope.builtin.lsp_definitions()* + Goto the definition of the word under the cursor, if there's only one, + otherwise show all options in Telescope + + + Parameters: ~ + {opts} (table) options to pass to the picker + + Options: ~ + {jump_type} (string) how to goto definition if there is only one + and the definition file is different from + the current file, values: "tab", "tab + drop", "split", "vsplit", "never" + {show_line} (boolean) show results text (default: true) + {trim_text} (boolean) trim results text (default: false) + {reuse_win} (boolean) jump to existing window if buffer is + already opened (default: false) + {file_encoding} (string) file encoding for the previewer + + +builtin.lsp_type_definitions({opts}) *telescope.builtin.lsp_type_definitions()* + Goto the definition of the type of the word under the cursor, if there's + only one, otherwise show all options in Telescope + + + Parameters: ~ + {opts} (table) options to pass to the picker + + Options: ~ + {jump_type} (string) how to goto definition if there is only one + and the definition file is different from + the current file, values: "tab", "tab + drop", "split", "vsplit", "never" + {show_line} (boolean) show results text (default: true) + {trim_text} (boolean) trim results text (default: false) + {reuse_win} (boolean) jump to existing window if buffer is + already opened (default: false) + {file_encoding} (string) file encoding for the previewer + + +builtin.lsp_implementations({opts}) *telescope.builtin.lsp_implementations()* + Goto the implementation of the word under the cursor if there's only one, + otherwise show all options in Telescope + + + Parameters: ~ + {opts} (table) options to pass to the picker + + Options: ~ + {jump_type} (string) how to goto implementation if there is only + one and the definition file is different + from the current file, values: "tab", "tab + drop", "split", "vsplit", "never" + {show_line} (boolean) show results text (default: true) + {trim_text} (boolean) trim results text (default: false) + {reuse_win} (boolean) jump to existing window if buffer is + already opened (default: false) + {file_encoding} (string) file encoding for the previewer + + +builtin.lsp_document_symbols({opts}) *telescope.builtin.lsp_document_symbols()* + Lists LSP document symbols in the current buffer + - Default keymaps: + - ``: show autocompletion menu to prefilter your query by type of + symbol you want to see (i.e. `:variable:`) + + + Parameters: ~ + {opts} (table) options to pass to the picker + + Options: ~ + {fname_width} (number) defines the width of the filename + section (default: 30) + {symbol_width} (number) defines the width of the symbol + section (default: 25) + {symbol_type_width} (number) defines the width of the symbol + type section (default: 8) + {show_line} (boolean) if true, shows the content of the + line the tag is found on (default: + false) + {symbols} (string|table) filter results by symbol kind(s) + {ignore_symbols} (string|table) list of symbols to ignore + {symbol_highlights} (table) string -> string. Matches symbol + with hl_group + {file_encoding} (string) file encoding for the previewer + + +builtin.lsp_workspace_symbols({opts}) *telescope.builtin.lsp_workspace_symbols()* + Lists LSP document symbols in the current workspace + - Default keymaps: + - ``: show autocompletion menu to prefilter your query by type of + symbol you want to see (i.e. `:variable:`) + + + Parameters: ~ + {opts} (table) options to pass to the picker + + Options: ~ + {query} (string) for what to query the workspace + (default: "") + {fname_width} (number) defines the width of the filename + section (default: 30) + {symbol_width} (number) defines the width of the symbol + section (default: 25) + {symbol_type_width} (number) defines the width of the symbol + type section (default: 8) + {show_line} (boolean) if true, shows the content of the + line the tag is found on (default: + false) + {symbols} (string|table) filter results by symbol kind(s) + {ignore_symbols} (string|table) list of symbols to ignore + {symbol_highlights} (table) string -> string. Matches symbol + with hl_group + {file_encoding} (string) file encoding for the previewer + + +builtin.lsp_dynamic_workspace_symbols({opts}) *telescope.builtin.lsp_dynamic_workspace_symbols()* + Dynamically lists LSP for all workspace symbols + - Default keymaps: + - ``: show autocompletion menu to prefilter your query by type of + symbol you want to see (i.e. `:variable:`), only works after refining + to fuzzy search using + + + Parameters: ~ + {opts} (table) options to pass to the picker + + Options: ~ + {fname_width} (number) defines the width of the filename + section (default: 30) + {show_line} (boolean) if true, shows the content of the + line the symbol is found on + (default: false) + {symbols} (string|table) filter results by symbol kind(s) + {ignore_symbols} (string|table) list of symbols to ignore + {symbol_highlights} (table) string -> string. Matches symbol + with hl_group + {file_encoding} (string) file encoding for the previewer + + +builtin.diagnostics({opts}) *telescope.builtin.diagnostics()* + Lists diagnostics + - Fields: + - `All severity flags can be passed as `string` or `number` as per + `:vim.diagnostic.severity:` + - Default keymaps: + - ``: show autocompletion menu to prefilter your query with the + diagnostic you want to see (i.e. `:warning:`) + - sort_by option: + - "buffer": order by bufnr (prioritizing current bufnr), severity, lnum + - "severity": order by severity, bufnr (prioritizing current bufnr), lnum + + + Parameters: ~ + {opts} (table) options to pass to the picker + + Options: ~ + {bufnr} (number|nil) Buffer number to get + diagnostics from. Use 0 for + current buffer or nil for all + buffers + {severity} (string|number) filter diagnostics by severity + name (string) or id (number) + {severity_limit} (string|number) keep diagnostics equal or more + severe wrt severity name + (string) or id (number) + {severity_bound} (string|number) keep diagnostics equal or less + severe wrt severity name + (string) or id (number) + {root_dir} (string|boolean) if set to string, get + diagnostics only for buffers + under this dir otherwise cwd + {no_unlisted} (boolean) if true, get diagnostics only + for listed buffers + {no_sign} (boolean) hide DiagnosticSigns from + Results (default: false) + {line_width} (string|number) set length of diagnostic entry + text in Results. Use 'full' + for full untruncated text + {namespace} (number) limit your diagnostics to a + specific namespace + {disable_coordinates} (boolean) don't show the line & row + numbers (default: false) + {sort_by} (string) sort order of the diagnostics + results; see above notes + (default: "buffer") + + + +================================================================================ +THEMES *telescope.themes* + +Themes are ways to combine several elements of styling together. + +They are helpful for managing the several different UI aspects for telescope +and provide a simple interface for users to get a particular "style" of picker. + +themes.get_dropdown() *telescope.themes.get_dropdown()* + Dropdown style theme. + + Usage: + > + local opts = {...} -- picker options + local builtin = require('telescope.builtin') + local themes = require('telescope.themes') + builtin.find_files(themes.get_dropdown(opts)) +< + + + +themes.get_cursor() *telescope.themes.get_cursor()* + Cursor style theme. + + Usage: + > + local opts = {...} -- picker options + local builtin = require('telescope.builtin') + local themes = require('telescope.themes') + builtin.find_files(themes.get_cursor(opts)) +< + + + +themes.get_ivy() *telescope.themes.get_ivy()* + Ivy style theme. + + Usage: + > + local opts = {...} -- picker options + local builtin = require('telescope.builtin') + local themes = require('telescope.themes') + builtin.find_files(themes.get_ivy(opts)) +< + + + + +================================================================================ +MAPPINGS *telescope.mappings* + +|telescope.mappings| is used to configure the keybindings within a telescope +picker. These key binds are only local to the picker window and will be cleared +once you exit the picker. + +We provide multiple configuration options to make it easy for you to adjust +telescope's default key bindings and create your own custom key binds. + +To see many of the builtin actions that you can use as values for this table, +see |telescope.actions| + +Format is: +> + { + mode = { ..keys } + } +< + +where {mode} is the one character letter for a mode ('i' for insert, 'n' for +normal). + +For example: +> + mappings = { + i = { + [""] = require('telescope.actions').close, + }, + } +< + +To disable a keymap, put `[map] = false` +For example: +> + { + ..., + [""] = false, + ..., + } +< + +To override behavior of a key, simply set the value to be a function (either by +requiring an action or by writing your own function) +> + { + ..., + [""] = require('telescope.actions').select_default, + ..., + } +< + +If the function you want is part of `telescope.actions`, then you can simply +supply the function name as a string. For example, the previous option is +equivalent to: +> + { + ..., + [""] = "select_default", + ..., + } +< + +You can also add other mappings using tables with `type = "command"`. For +example: +> + { + ..., + ["jj"] = { "", type = "command" }, + ["kk"] = { "echo \"Hello, World!\"", type = "command" },) + ..., + } +< + +You can also add additional options for mappings of any type ("action" and +"command"). For example: +> + { + ..., + [""] = { + actions.move_selection_next, type = "action", + opts = { nowait = true, silent = true } + }, + ..., + } +< + +There are three main places you can configure |telescope.mappings|. These are +ordered from the lowest priority to the highest priority. + +1. |telescope.defaults.mappings| +2. In the |telescope.setup()| table, inside a picker with a given name, use the + `mappings` key +> + require("telescope").setup { + pickers = { + find_files = { + mappings = { + n = { + ["kj"] = "close", + }, + }, + }, + }, + } +< +3. `attach_mappings` function for a particular picker. +> + require("telescope.builtin").find_files { + attach_mappings = function(_, map) + map("i", "asdf", function(_prompt_bufnr) + print "You typed asdf" + end) + + map({"i", "n"}, "", function(_prompt_bufnr) + print "You typed " + end, { desc = "desc for which key"}) + + -- needs to return true if you want to map default_mappings and + -- false if not + return true + end, + } +< + + +================================================================================ +LAYOUT *telescope.pickers.layout* + +The telescope pickers layout can be configured using the +|telescope.defaults.create_layout| option. + +Parameters: ~ + - picker : A Picker object. + +Return: ~ + - layout : instance of `TelescopeLayout` class. + +Example: ~ +> +local Layout = require "telescope.pickers.layout" + +require("telescope").setup { + create_layout = function(picker) + local function create_window(enter, width, height, row, col, title) + local bufnr = vim.api.nvim_create_buf(false, true) + local winid = vim.api.nvim_open_win(bufnr, enter, { + style = "minimal", + relative = "editor", + width = width, + height = height, + row = row, + col = col, + border = "single", + title = title, + }) + + vim.wo[winid].winhighlight = "Normal:Normal" + + return Layout.Window { + bufnr = bufnr, + winid = winid, + } + end + + local function destory_window(window) + if window then + if vim.api.nvim_win_is_valid(window.winid) then + vim.api.nvim_win_close(window.winid, true) + end + if vim.api.nvim_buf_is_valid(window.bufnr) then + vim.api.nvim_buf_delete(window.bufnr, { force = true }) + end + end + end + + local layout = Layout { + picker = picker, + mount = function(self) + self.results = create_window(false, 40, 20, 0, 0, "Results") + self.preview = create_window(false, 40, 23, 0, 42, "Preview") + self.prompt = create_window(true, 40, 1, 22, 0, "Prompt") + end, + unmount = function(self) + destory_window(self.results) + destory_window(self.preview) + destory_window(self.prompt) + end, + update = function(self) end, + } + + return layout + end, +} +< + +TelescopeWindowBorder.config *TelescopeWindowBorder.config* + + + Fields: ~ + {bufnr} (integer) + {winid} (integer|nil) + {change_title} (nil|function) (self: TelescopeWindowBorder, title: + string, pos?: + "NW"|"N"|"NE"|"SW"|"S"|"SE"):nil + + +TelescopeWindowBorder *TelescopeWindowBorder* + + + Fields: ~ + {bufnr} (integer|nil) + {winid} (integer|nil) + + +TelescopeWindow.config *TelescopeWindow.config* + + + Fields: ~ + {bufnr} (integer) + {winid} (integer|nil) + {border} (TelescopeWindowBorder.config|nil) + + +TelescopeWindow *TelescopeWindow* + + + Fields: ~ + {border} (TelescopeWindowBorder) + {bufnr} (integer) + {winid} (integer) + + +TelescopeLayout.config *TelescopeLayout.config* + + + Fields: ~ + {mount} (function) (self: TelescopeLayout):nil + {unmount} (function) (self: TelescopeLayout):nil + {update} (function) (self: TelescopeLayout):nil + {prompt} (TelescopeWindow|nil) + {results} (TelescopeWindow|nil) + {preview} (TelescopeWindow|nil) + + +TelescopeLayout *TelescopeLayout* + + + Fields: ~ + {prompt} (TelescopeWindow) + {results} (TelescopeWindow) + {preview} (TelescopeWindow|nil) + + +Layout:mount() *telescope.pickers.layout:mount()* + Create the layout. This needs to ensure the required properties are + populated. + + + +Layout:unmount() *telescope.pickers.layout:unmount()* + Destroy the layout. This is responsible for performing clean-up, for + example: + - deleting buffers + - closing windows + - clearing autocmds + + + +Layout:update() *telescope.pickers.layout:update()* + Refresh the layout. This is called when, for example, vim is resized. + + + + +================================================================================ +LAYOUT *telescope.layout* + +The layout of telescope pickers can be adjusted using the +|telescope.defaults.layout_strategy| and |telescope.defaults.layout_config| +options. For example, the following configuration changes the default layout +strategy and the default size of the picker: +> + require('telescope').setup{ + defaults = { + layout_strategy = 'vertical', + layout_config = { height = 0.95 }, + }, + } +< + + +──────────────────────────────────────────────────────────────────────────────── + +Layout strategies are different functions to position telescope. + +All layout strategies are functions with the following signature: + +> + function(picker, columns, lines, layout_config) + -- Do some calculations here... + return { + preview = preview_configuration + results = results_configuration, + prompt = prompt_configuration, + } + end +< + + Parameters: ~ + - picker : A Picker object. (docs coming soon) + - columns : (number) Columns in the vim window + - lines : (number) Lines in the vim window + - layout_config : (table) The configuration values specific to the picker. + +This means you can create your own layout strategy if you want! Just be aware +for now that we may change some APIs or interfaces, so they may break if you +create your own. + +A good method for creating your own would be to copy one of the strategies that +most resembles what you want from +"./lua/telescope/pickers/layout_strategies.lua" in the telescope repo. + + +layout_strategies.horizontal() *telescope.layout.horizontal()* + Horizontal layout has two columns, one for the preview and one for the + prompt and results. + + ┌──────────────────────────────────────────────────┐ + │ │ + │ ┌───────────────────┐┌───────────────────┐ │ + │ │ ││ │ │ + │ │ ││ │ │ + │ │ ││ │ │ + │ │ Results ││ │ │ + │ │ ││ Preview │ │ + │ │ ││ │ │ + │ │ ││ │ │ + │ └───────────────────┘│ │ │ + │ ┌───────────────────┐│ │ │ + │ │ Prompt ││ │ │ + │ └───────────────────┘└───────────────────┘ │ + │ │ + └──────────────────────────────────────────────────┘ + + `picker.layout_config` shared options: + - anchor: + - Which edge/corner to pin the picker to + - See |resolver.resolve_anchor_pos()| + - anchor_padding: + - Specifies an amount of additional padding around the anchor + - Values should be a positive integer + - height: + - How tall to make Telescope's entire layout + - See |resolver.resolve_height()| + - mirror: Flip the location of the results/prompt and preview windows + - prompt_position: + - Where to place prompt window. + - Available Values: 'bottom', 'top' + - scroll_speed: The number of lines to scroll through the previewer + - width: + - How wide to make Telescope's entire layout + - See |resolver.resolve_width()| + + `picker.layout_config` unique options: + - preview_cutoff: When columns are less than this value, the preview will be disabled + - preview_width: + - Change the width of Telescope's preview window + - See |resolver.resolve_width()| + + +layout_strategies.center() *telescope.layout.center()* + Centered layout with a combined block of the prompt and results aligned to + the middle of the screen. The preview window is then placed in the + remaining space above or below, according to `anchor` or `mirror`. + Particularly useful for creating dropdown menus (see |telescope.themes| and + |themes.get_dropdown()|). + + Note that vertical anchoring, i.e. `anchor` containing `"N"` or `"S"`, will + override `mirror` config. For `"N"` anchoring preview will be placed below + prompt/result block. For `"S"` anchoring preview will be placed above + prompt/result block. For horizontal only anchoring preview will be placed + according to `mirror` config, default is above the prompt/result block. + + ┌──────────────────────────────────────────────────┐ + │ ┌────────────────────────────────────────┐ │ + │ │ Preview │ │ + │ │ Preview │ │ + │ └────────────────────────────────────────┘ │ + │ ┌────────────────────────────────────────┐ │ + │ │ Prompt │ │ + │ ├────────────────────────────────────────┤ │ + │ │ Result │ │ + │ │ Result │ │ + │ └────────────────────────────────────────┘ │ + │ │ + │ │ + │ │ + │ │ + └──────────────────────────────────────────────────┘ + + `picker.layout_config` shared options: + - anchor: + - Which edge/corner to pin the picker to + - See |resolver.resolve_anchor_pos()| + - anchor_padding: + - Specifies an amount of additional padding around the anchor + - Values should be a positive integer + - height: + - How tall to make Telescope's entire layout + - See |resolver.resolve_height()| + - mirror: Flip the location of the results/prompt and preview windows + - prompt_position: + - Where to place prompt window. + - Available Values: 'bottom', 'top' + - scroll_speed: The number of lines to scroll through the previewer + - width: + - How wide to make Telescope's entire layout + - See |resolver.resolve_width()| + + `picker.layout_config` unique options: + - preview_cutoff: When lines are less than this value, the preview will be disabled + + +layout_strategies.cursor() *telescope.layout.cursor()* + Cursor layout dynamically positioned below the cursor if possible. If there + is no place below the cursor it will be placed above. + + ┌──────────────────────────────────────────────────┐ + │ │ + │ █ │ + │ ┌──────────────┐┌─────────────────────┐ │ + │ │ Prompt ││ Preview │ │ + │ ├──────────────┤│ Preview │ │ + │ │ Result ││ Preview │ │ + │ │ Result ││ Preview │ │ + │ └──────────────┘└─────────────────────┘ │ + │ █ │ + │ │ + │ │ + │ │ + │ │ + │ │ + └──────────────────────────────────────────────────┘ + + `picker.layout_config` shared options: + - height: + - How tall to make Telescope's entire layout + - See |resolver.resolve_height()| + - scroll_speed: The number of lines to scroll through the previewer + - width: + - How wide to make Telescope's entire layout + - See |resolver.resolve_width()| + + `picker.layout_config` unique options: + - preview_cutoff: When columns are less than this value, the preview will be disabled + - preview_width: + - Change the width of Telescope's preview window + - See |resolver.resolve_width()| + + +layout_strategies.vertical() *telescope.layout.vertical()* + Vertical layout stacks the items on top of each other. Particularly useful + with thinner windows. + + ┌──────────────────────────────────────────────────┐ + │ │ + │ ┌────────────────────────────────────────┐ │ + │ │ Preview │ │ + │ │ Preview │ │ + │ │ Preview │ │ + │ └────────────────────────────────────────┘ │ + │ ┌────────────────────────────────────────┐ │ + │ │ Result │ │ + │ │ Result │ │ + │ └────────────────────────────────────────┘ │ + │ ┌────────────────────────────────────────┐ │ + │ │ Prompt │ │ + │ └────────────────────────────────────────┘ │ + │ │ + └──────────────────────────────────────────────────┘ + + `picker.layout_config` shared options: + - anchor: + - Which edge/corner to pin the picker to + - See |resolver.resolve_anchor_pos()| + - anchor_padding: + - Specifies an amount of additional padding around the anchor + - Values should be a positive integer + - height: + - How tall to make Telescope's entire layout + - See |resolver.resolve_height()| + - mirror: Flip the location of the results/prompt and preview windows + - prompt_position: + - Where to place prompt window. + - Available Values: 'bottom', 'top' + - scroll_speed: The number of lines to scroll through the previewer + - width: + - How wide to make Telescope's entire layout + - See |resolver.resolve_width()| + + `picker.layout_config` unique options: + - preview_cutoff: When lines are less than this value, the preview will be disabled + - preview_height: + - Change the height of Telescope's preview window + - See |resolver.resolve_height()| + + +layout_strategies.flex() *telescope.layout.flex()* + Flex layout swaps between `horizontal` and `vertical` strategies based on + the window width + - Supports |layout_strategies.vertical| or |layout_strategies.horizontal| + features + + + `picker.layout_config` shared options: + - anchor: + - Which edge/corner to pin the picker to + - See |resolver.resolve_anchor_pos()| + - anchor_padding: + - Specifies an amount of additional padding around the anchor + - Values should be a positive integer + - height: + - How tall to make Telescope's entire layout + - See |resolver.resolve_height()| + - mirror: Flip the location of the results/prompt and preview windows + - prompt_position: + - Where to place prompt window. + - Available Values: 'bottom', 'top' + - scroll_speed: The number of lines to scroll through the previewer + - width: + - How wide to make Telescope's entire layout + - See |resolver.resolve_width()| + + `picker.layout_config` unique options: + - flip_columns: The number of columns required to move to horizontal mode + - flip_lines: The number of lines required to move to horizontal mode + - horizontal: Options to pass when switching to horizontal layout + - vertical: Options to pass when switching to vertical layout + + +layout_strategies.bottom_pane() *telescope.layout.bottom_pane()* + Bottom pane can be used to create layouts similar to "ivy". + + For an easy ivy configuration, see |themes.get_ivy()| + + + + +================================================================================ +RESOLVE *telescope.resolve* + +Provides "resolver functions" to allow more customisable inputs for options. + +resolver.resolve_height() *telescope.resolve.resolve_height()* + Converts input to a function that returns the height. The input must take + one of five forms: + 1. 0 <= number < 1 + This means total height as a percentage. + 2. 1 <= number + This means total height as a fixed number. + 3. function + Must have signature: function(self, max_columns, max_lines): number + 4. table of the form: { val, max = ..., min = ... } + val has to be in the first form 0 <= val < 1 and only one is given, + `min` or `max` as fixed number + 5. table of the form: {padding = `foo`} + where `foo` has one of the previous three forms. + The height is then set to be the remaining space after padding. For + example, if the window has height 50, and the input is {padding = 5}, + the height returned will be `40 = 50 - 2*5` + + The returned function will have signature: function(self, max_columns, + max_lines): number + + + +resolver.resolve_width() *telescope.resolve.resolve_width()* + Converts input to a function that returns the width. The input must take + one of five forms: + 1. 0 <= number < 1 + This means total width as a percentage. + 2. 1 <= number + This means total width as a fixed number. + 3. function + Must have signature: function(self, max_columns, max_lines): number + 4. table of the form: { val, max = ..., min = ... } + val has to be in the first form 0 <= val < 1 and only one is given, + `min` or `max` as fixed number + 5. table of the form: {padding = `foo`} + where `foo` has one of the previous three forms. + The width is then set to be the remaining space after padding. For + example, if the window has width 100, and the input is {padding = 5}, + the width returned will be `90 = 100 - 2*5` + + The returned function will have signature: function(self, max_columns, + max_lines): number + + + +resolver.resolve_anchor_pos() *telescope.resolve.resolve_anchor_pos()* + Calculates the adjustment required to move the picker from the middle of + the screen to an edge or corner. + The `anchor` can be any of the following strings: + - "", "CENTER", "NW", "N", "NE", "E", "SE", "S", "SW", "W" The anchors + have the following meanings: + - "" or "CENTER": + the picker will remain in the middle of the screen. + - Compass directions: + the picker will move to the corresponding edge/corner e.g. "NW" -> "top + left corner", "E" -> "right edge", "S" -> "bottom edge" + + + + +================================================================================ +MAKE_ENTRY *telescope.make_entry* + +Each picker has a finder made up of two parts, the results which are the data +to be displayed, and the entry_maker. These entry_makers are functions returned +from make_entry functions. These will be referred to as entry_makers in the +following documentation. + +Every entry maker returns a function that accepts the data to be used for an +entry. This function will return an entry table (or nil, meaning skip this +entry) which contains the following important keys: +- value any: value key can be anything but still required +- valid bool (optional): is an optional key because it defaults to true but if + the key is set to false it will not be displayed by the picker +- ordinal string: is the text that is used for filtering +- display string|function: is either a string of the text that is being + displayed or a function receiving the entry at a later stage, when the entry + is actually being displayed. A function can be useful here if a complex + calculation has to be done. `make_entry` can also return a second value - a + highlight array which will then apply to the line. Highlight entry in this + array has the following signature `{ { start_col, end_col }, hl_group }` +- filename string (optional): will be interpreted by the default `` action + as open this file +- bufnr number (optional): will be interpreted by the default `` action as + open this buffer +- lnum number (optional): lnum value which will be interpreted by the default + `` action as a jump to this line +- col number (optional): col value which will be interpreted by the default + `` action as a jump to this column + +For more information on easier displaying, see +|telescope.pickers.entry_display| + +TODO: Document something we call `entry_index` + + +================================================================================ +ENTRY_DISPLAY *telescope.pickers.entry_display* + +Entry Display is used to format each entry shown in the result panel. + +Entry Display create() will give us a function based on the configuration of +column widths we pass into it. We then can use this function n times to return +a string based on structured input. + +Note that if you call `create()` inside `make_display` it will be called for +every single entry. So it is suggested to do this outside of `make_display` for +the best performance. + +The create function will use the column widths passed to it in +configuration.items. Each item in that table is the number of characters in the +column. It's also possible for the final column to not have a fixed width, this +will be shown in the configuration as 'remaining = true'. + +An example of this configuration is shown for the buffers picker: +> +local displayer = entry_display.create { + separator = " ", + items = { + { width = opts.bufnr_width }, + { width = 4 }, + { width = icon_width }, + { remaining = true }, + }, +} +< + +This shows 4 columns, the first is defined in the opts as the width we'll use +when display_string is the number of the buffer. The second has a fixed width +of 4 and the third column's width will be decided by the width of the icons we +use. The fourth column will use the remaining space. Finally, we have also +defined the separator between each column will be the space " ". + +An example of how the display reference will be used is shown, again for the +buffers picker: +> +return displayer { + { entry.bufnr, "TelescopeResultsNumber" }, + { entry.indicator, "TelescopeResultsComment" }, + { icon, hl_group }, + display_bufname .. ":" .. entry.lnum, +} +< + +There are two types of values each column can have. Either a simple String or a +table containing the String as well as the hl_group. + +The displayer can return values, string and an optional highlights. The string +is all the text to be displayed for this entry as a single string. If parts of +the string are to be highlighted they will be described in the highlights +table. + +For a better understanding of how create() and displayer are used it's best to +look at the code in make_entry.lua. + + +================================================================================ +UTILS *telescope.utils* + +Utilities for writing telescope pickers + +utils.path_expand({path}) *telescope.utils.path_expand()* + Hybrid of `vim.fn.expand()` and custom `vim.fs.normalize()` + + Paths starting with '%', '#' or '<' are expanded with `vim.fn.expand()`. + Otherwise avoids using `vim.fn.expand()` due to its overly aggressive + expansion behavior which can sometimes lead to errors or the creation of + non-existent paths when dealing with valid absolute paths. + + Other paths will have '~' and environment variables expanded. Unlike + `vim.fs.normalize()`, backslashes are preserved. This has better + compatibility with `plenary.path` and also avoids mangling valid Unix paths + with literal backslashes. + + Trailing slashes are trimmed. With the exception of root paths. eg. `/` on + Unix or `C:\` on Windows + + + + Parameters: ~ + {path} (string) + + Return: ~ + string + + +utils.transform_path({opts}, {path}) *telescope.utils.transform_path()* + Transform path is a util function that formats a path based on path_display + found in `opts` or the default value from config. It is meant to be used in + make_entry to have a uniform interface for builtins as well as extensions + utilizing the same user configuration Note: It is only supported inside + `make_entry`/`make_display` the use of this function outside of telescope + might yield to undefined behavior and will not be addressed by us + + + Parameters: ~ + {opts} (table) The opts the users passed into the picker. Might + contains a path_display key + {path} (string|nil) The path that should be formatted + + Return: ~ + string: path to be displayed + table: The transformed path ready to be displayed with the styling + + +utils.has_ts_parser({lang}) *telescope.utils.has_ts_parser()* + Checks if treesitter parser for language is installed + + + Parameters: ~ + {lang} (string) + + +utils.notify({funname}, {opts}) *telescope.utils.notify()* + Telescope Wrapper around vim.notify + + + Parameters: ~ + {funname} (string) name of the function that will be + {opts} (table) opts.level string, opts.msg string, opts.once bool + + + +================================================================================ +ACTIONS *telescope.actions* + +These functions are useful for people creating their own mappings. + +Actions can be either normal functions that expect the `prompt_bufnr` as first +argument (1) or they can be a custom telescope type called "action" (2). + +(1) The `prompt_bufnr` of a normal function denotes the identifier of your +picker which can be used to access the picker state. In practice, users most +commonly access from both picker and global state via the following: +> + -- for utility functions + local action_state = require "telescope.actions.state" + + local actions = {} + actions.do_stuff = function(prompt_bufnr) + local current_picker = action_state.get_current_picker(prompt_bufnr) -- picker state + local entry = action_state.get_selected_entry() + end +< + +See |telescope.actions.state| for more information. + +(2) To transform a module of functions into a module of "action"s, you need to +do the following: +> + local transform_mod = require("telescope.actions.mt").transform_mod + + local mod = {} + mod.a1 = function(prompt_bufnr) + -- your code goes here + -- You can access the picker/global state as described above in (1). + end + + mod.a2 = function(prompt_bufnr) + -- your code goes here + end + mod = transform_mod(mod) + + -- Now the following is possible. This means that actions a2 will be executed + -- after action a1. You can chain as many actions as you want. + local action = mod.a1 + mod.a2 + action(bufnr) +< + +Another interesting thing to do is that these actions now have functions you +can call. These functions include `:replace(f)`, `:replace_if(f, c)`, +`replace_map(tbl)` and `enhance(tbl)`. More information on these functions can +be found in the `developers.md` and `lua/tests/automated/action_spec.lua` file. + +actions.move_selection_next({prompt_bufnr}) *telescope.actions.move_selection_next()* + Move the selection to the next entry + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.move_selection_previous({prompt_bufnr}) *telescope.actions.move_selection_previous()* + Move the selection to the previous entry + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.move_selection_worse({prompt_bufnr}) *telescope.actions.move_selection_worse()* + Move the selection to the entry that has a worse score + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.move_selection_better({prompt_bufnr}) *telescope.actions.move_selection_better()* + Move the selection to the entry that has a better score + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.move_to_top({prompt_bufnr}) *telescope.actions.move_to_top()* + Move to the top of the picker + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.move_to_middle({prompt_bufnr}) *telescope.actions.move_to_middle()* + Move to the middle of the picker + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.move_to_bottom({prompt_bufnr}) *telescope.actions.move_to_bottom()* + Move to the bottom of the picker + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.add_selection({prompt_bufnr}) *telescope.actions.add_selection()* + Add current entry to multi select + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.remove_selection({prompt_bufnr}) *telescope.actions.remove_selection()* + Remove current entry from multi select + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.toggle_selection({prompt_bufnr}) *telescope.actions.toggle_selection()* + Toggle current entry status for multi select + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.select_all({prompt_bufnr}) *telescope.actions.select_all()* + Multi select all entries. + - Note: selected entries may include results not visible in the results pop + up. + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.drop_all({prompt_bufnr}) *telescope.actions.drop_all()* + Drop all entries from the current multi selection. + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.toggle_all({prompt_bufnr}) *telescope.actions.toggle_all()* + Toggle multi selection for all entries. + - Note: toggled entries may include results not visible in the results pop + up. + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.preview_scrolling_up({prompt_bufnr}) *telescope.actions.preview_scrolling_up()* + Scroll the preview window up + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.preview_scrolling_down({prompt_bufnr}) *telescope.actions.preview_scrolling_down()* + Scroll the preview window down + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.preview_scrolling_left({prompt_bufnr}) *telescope.actions.preview_scrolling_left()* + Scroll the preview window to the left + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.preview_scrolling_right({prompt_bufnr}) *telescope.actions.preview_scrolling_right()* + Scroll the preview window to the right + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.results_scrolling_up({prompt_bufnr}) *telescope.actions.results_scrolling_up()* + Scroll the results window up + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.results_scrolling_down({prompt_bufnr}) *telescope.actions.results_scrolling_down()* + Scroll the results window down + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.results_scrolling_left({prompt_bufnr}) *telescope.actions.results_scrolling_left()* + Scroll the results window to the left + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.results_scrolling_right({prompt_bufnr}) *telescope.actions.results_scrolling_right()* + Scroll the results window to the right + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.center({prompt_bufnr}) *telescope.actions.center()* + Center the cursor in the window, can be used after selecting a file to edit + You can just map `actions.select_default + actions.center` + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.select_default({prompt_bufnr}) *telescope.actions.select_default()* + Perform default action on selection, usually something like + `:edit ` + + i.e. open the selection in the current buffer + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.select_horizontal({prompt_bufnr}) *telescope.actions.select_horizontal()* + Perform 'horizontal' action on selection, usually something like + `:new ` + + i.e. open the selection in a new horizontal split + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.select_vertical({prompt_bufnr}) *telescope.actions.select_vertical()* + Perform 'vertical' action on selection, usually something like + `:vnew ` + + i.e. open the selection in a new vertical split + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.select_tab({prompt_bufnr}) *telescope.actions.select_tab()* + Perform 'tab' action on selection, usually something like + `:tabedit ` + + i.e. open the selection in a new tab + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.select_drop({prompt_bufnr}) *telescope.actions.select_drop()* + Perform 'drop' action on selection, usually something like + `:drop ` + + i.e. open the selection in a window + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.select_tab_drop({prompt_bufnr}) *telescope.actions.select_tab_drop()* + Perform 'tab drop' action on selection, usually something like + `:tab drop ` + + i.e. open the selection in a new tab + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.file_edit({prompt_bufnr}) *telescope.actions.file_edit()* + Perform file edit on selection, usually something like + `:edit ` + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.file_split({prompt_bufnr}) *telescope.actions.file_split()* + Perform file split on selection, usually something like + `:new ` + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.file_vsplit({prompt_bufnr}) *telescope.actions.file_vsplit()* + Perform file vsplit on selection, usually something like + `:vnew ` + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.file_tab({prompt_bufnr}) *telescope.actions.file_tab()* + Perform file tab on selection, usually something like + `:tabedit ` + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.close({prompt_bufnr}) *telescope.actions.close()* + Close the Telescope window, usually used within an action + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions._close({prompt_bufnr}) *telescope.actions._close()* + Close the Telescope window, usually used within an action + Deprecated and no longer needed, does the same as + |telescope.actions.close|. Might be removed in the future + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.edit_command_line({prompt_bufnr}) *telescope.actions.edit_command_line()* + Set a value in the command line and don't run it, making it editable. + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.set_command_line({prompt_bufnr}) *telescope.actions.set_command_line()* + Set a value in the command line and run it + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.edit_search_line({prompt_bufnr}) *telescope.actions.edit_search_line()* + Set a value in the search line and don't search for it, making it editable. + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.set_search_line({prompt_bufnr}) *telescope.actions.set_search_line()* + Set a value in the search line and search for it + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.edit_register({prompt_bufnr}) *telescope.actions.edit_register()* + Edit a register + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.paste_register({prompt_bufnr}) *telescope.actions.paste_register()* + Paste the selected register into the buffer + + Note: only meant to be used inside builtin.registers + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.insert_symbol({prompt_bufnr}) *telescope.actions.insert_symbol()* + Insert a symbol into the current buffer (while switching to normal mode) + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.insert_symbol_i({prompt_bufnr}) *telescope.actions.insert_symbol_i()* + Insert a symbol into the current buffer and keeping the insert mode. + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.git_create_branch({prompt_bufnr}) *telescope.actions.git_create_branch()* + Create and checkout a new git branch if it doesn't already exist + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.git_apply_stash({prompt_bufnr}) *telescope.actions.git_apply_stash()* + Applies an existing git stash + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.git_checkout({prompt_bufnr}) *telescope.actions.git_checkout()* + Checkout an existing git branch + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.git_switch_branch({prompt_bufnr}) *telescope.actions.git_switch_branch()* + Switch to git branch. + If the branch already exists in local, switch to that. If the branch is + only in remote, create new branch tracking remote and switch to new one. + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.git_rename_branch() *telescope.actions.git_rename_branch()* + Action to rename selected git branch + + + +actions.git_track_branch({prompt_bufnr}) *telescope.actions.git_track_branch()* + Tell git to track the currently selected remote branch in Telescope + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.git_delete_branch({prompt_bufnr}) *telescope.actions.git_delete_branch()* + Delete all currently selected branches + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.git_merge_branch({prompt_bufnr}) *telescope.actions.git_merge_branch()* + Merge the currently selected branch + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.git_rebase_branch({prompt_bufnr}) *telescope.actions.git_rebase_branch()* + Rebase to selected git branch + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.git_reset_mixed({prompt_bufnr}) *telescope.actions.git_reset_mixed()* + Reset to selected git commit using mixed mode + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.git_reset_soft({prompt_bufnr}) *telescope.actions.git_reset_soft()* + Reset to selected git commit using soft mode + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.git_reset_hard({prompt_bufnr}) *telescope.actions.git_reset_hard()* + Reset to selected git commit using hard mode + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.git_checkout_current_buffer({prompt_bufnr}) *telescope.actions.git_checkout_current_buffer()* + Checkout a specific file for a given sha + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.git_staging_toggle({prompt_bufnr}) *telescope.actions.git_staging_toggle()* + Stage/unstage selected file + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.send_selected_to_qflist({prompt_bufnr}) *telescope.actions.send_selected_to_qflist()* + Sends the selected entries to the quickfix list, replacing the previous + entries. + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.add_selected_to_qflist({prompt_bufnr}) *telescope.actions.add_selected_to_qflist()* + Adds the selected entries to the quickfix list, keeping the previous + entries. + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.send_to_qflist({prompt_bufnr}) *telescope.actions.send_to_qflist()* + Sends all entries to the quickfix list, replacing the previous entries. + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.add_to_qflist({prompt_bufnr}) *telescope.actions.add_to_qflist()* + Adds all entries to the quickfix list, keeping the previous entries. + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.send_selected_to_loclist({prompt_bufnr}) *telescope.actions.send_selected_to_loclist()* + Sends the selected entries to the location list, replacing the previous + entries. + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.add_selected_to_loclist({prompt_bufnr}) *telescope.actions.add_selected_to_loclist()* + Adds the selected entries to the location list, keeping the previous + entries. + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.send_to_loclist({prompt_bufnr}) *telescope.actions.send_to_loclist()* + Sends all entries to the location list, replacing the previous entries. + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.add_to_loclist({prompt_bufnr}) *telescope.actions.add_to_loclist()* + Adds all entries to the location list, keeping the previous entries. + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.smart_send_to_qflist({prompt_bufnr}) *telescope.actions.smart_send_to_qflist()* + Sends the selected entries to the quickfix list, replacing the previous + entries. If no entry was selected, sends all entries. + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.smart_add_to_qflist({prompt_bufnr}) *telescope.actions.smart_add_to_qflist()* + Adds the selected entries to the quickfix list, keeping the previous + entries. If no entry was selected, adds all entries. + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.smart_send_to_loclist({prompt_bufnr}) *telescope.actions.smart_send_to_loclist()* + Sends the selected entries to the location list, replacing the previous + entries. If no entry was selected, sends all entries. + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.smart_add_to_loclist({prompt_bufnr}) *telescope.actions.smart_add_to_loclist()* + Adds the selected entries to the location list, keeping the previous + entries. If no entry was selected, adds all entries. + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.complete_tag({prompt_bufnr}) *telescope.actions.complete_tag()* + Open completion menu containing the tags which can be used to filter the + results in a faster way + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.cycle_history_next({prompt_bufnr}) *telescope.actions.cycle_history_next()* + Cycle to the next search prompt in the history + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.cycle_history_prev({prompt_bufnr}) *telescope.actions.cycle_history_prev()* + Cycle to the previous search prompt in the history + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.open_qflist({prompt_bufnr}) *telescope.actions.open_qflist()* + Open the quickfix list. It makes sense to use this in combination with one + of the send_to_qflist actions `actions.smart_send_to_qflist + + actions.open_qflist` + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.open_loclist({prompt_bufnr}) *telescope.actions.open_loclist()* + Open the location list. It makes sense to use this in combination with one + of the send_to_loclist actions `actions.smart_send_to_qflist + + actions.open_qflist` + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.delete_buffer({prompt_bufnr}) *telescope.actions.delete_buffer()* + Delete the selected buffer or all the buffers selected using multi + selection. + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.cycle_previewers_next({prompt_bufnr}) *telescope.actions.cycle_previewers_next()* + Cycle to the next previewer if there is one available. + This action is not mapped on default. + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.cycle_previewers_prev({prompt_bufnr}) *telescope.actions.cycle_previewers_prev()* + Cycle to the previous previewer if there is one available. + This action is not mapped on default. + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.remove_selected_picker({prompt_bufnr}) *telescope.actions.remove_selected_picker()* + Removes the selected picker in |builtin.pickers|. + This action is not mapped by default and only intended for + |builtin.pickers|. + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.which_key({prompt_bufnr}) *telescope.actions.which_key()* + Display the keymaps of registered actions similar to which-key.nvim. + + - Notes: + - The defaults can be overridden via |action_generate.which_key|. + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.to_fuzzy_refine({prompt_bufnr}) *telescope.actions.to_fuzzy_refine()* + Move from a none fuzzy search to a fuzzy one + This action is meant to be used in live_grep and + lsp_dynamic_workspace_symbols + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.delete_mark({prompt_bufnr}) *telescope.actions.delete_mark()* + Delete the selected mark or all the marks selected using multi selection. + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.insert_original_cword({prompt_bufnr}) *telescope.actions.insert_original_cword()* + Insert the word under the cursor of the original (pre-Telescope) window + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.insert_original_cWORD({prompt_bufnr}) *telescope.actions.insert_original_cWORD()* + Insert the WORD under the cursor of the original (pre-Telescope) window + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.insert_original_cfile({prompt_bufnr}) *telescope.actions.insert_original_cfile()* + Insert the file under the cursor of the original (pre-Telescope) window + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +actions.insert_original_cline({prompt_bufnr}) *telescope.actions.insert_original_cline()* + Insert the line under the cursor of the original (pre-Telescope) window + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + + +================================================================================ +ACTIONS_STATE *telescope.actions.state* + +Functions to be used to determine the current state of telescope. + +Generally used from within other |telescope.actions| + +action_state.get_selected_entry() *telescope.actions.state.get_selected_entry()* + Get the current entry + + + +action_state.get_current_line() *telescope.actions.state.get_current_line()* + Gets the current line in the search prompt + + + +action_state.get_current_picker({prompt_bufnr}) *telescope.actions.state.get_current_picker()* + Gets the current picker + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + + +================================================================================ +ACTIONS_SET *telescope.actions.set* + +Telescope action sets are used to provide an interface for managing actions +that all primarily do the same thing, but with slight tweaks. + +For example, when editing files you may want it in the current split, a +vertical split, etc. Instead of making users have to overwrite EACH of those +every time they want to change this behavior, they can instead replace the +`set` itself and then it will work great and they're done. + +action_set.shift_selection({prompt_bufnr}, {change}) *telescope.actions.set.shift_selection()* + Move the current selection of a picker {change} rows. Handles not + overflowing / underflowing the list. + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + {change} (number) The amount to shift the selection by + + +action_set.select({prompt_bufnr}, {type}) *telescope.actions.set.select()* + Select the current entry. This is the action set to overwrite common + actions by the user. + + By default maps to editing a file. + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + {type} (string) The type of selection to make + + +action_set.edit({prompt_bufnr}, {command}) *telescope.actions.set.edit()* + Edit a file based on the current selection. + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + {command} (string) The command to use to open the file. + + +action_set.scroll_previewer({prompt_bufnr}, {direction}) *telescope.actions.set.scroll_previewer()* + Scrolls the previewer up or down. Defaults to a half page scroll, but can + be overridden using the `scroll_speed` option in `layout_config`. See + |telescope.layout| for more details. + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + {direction} (number) The direction of the scrolling + + +action_set.scroll_horizontal_previewer({prompt_bufnr}, {direction}) *telescope.actions.set.scroll_horizontal_previewer()* + Scrolls the previewer to the left or right. Defaults to a half page scroll, + but can be overridden using the `scroll_speed` option in `layout_config`. + See |telescope.layout| for more details. + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + {direction} (number) The direction of the scrolling + + +action_set.scroll_results({prompt_bufnr}, {direction}) *telescope.actions.set.scroll_results()* + Scrolls the results up or down. Defaults to a half page scroll, but can be + overridden using the `scroll_speed` option in `layout_config`. See + |telescope.layout| for more details. + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + {direction} (number) The direction of the scrolling + + +action_set.scroll_horizontal_results({prompt_bufnr}, {direction}) *telescope.actions.set.scroll_horizontal_results()* + Scrolls the results to the left or right. Defaults to a half page scroll, + but can be overridden using the `scroll_speed` option in `layout_config`. + See |telescope.layout| for more details. + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + {direction} (number) The direction of the scrolling + + + +================================================================================ +ACTIONS_LAYOUT *telescope.actions.layout* + +The layout actions are actions to be used to change the layout of a picker. + +action_layout.toggle_preview({prompt_bufnr}) *telescope.actions.layout.toggle_preview()* + Toggle preview window. + - Note: preview window can be toggled even if preview is set to false. + + This action is not mapped by default. + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +action_layout.toggle_prompt_position({prompt_bufnr}) *telescope.actions.layout.toggle_prompt_position()* + Toggles the `prompt_position` option between "top" and "bottom". Checks if + `prompt_position` is an option for the current layout. + + This action is not mapped by default. + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +action_layout.toggle_mirror({prompt_bufnr}) *telescope.actions.layout.toggle_mirror()* + Toggles the `mirror` option between `true` and `false`. Checks if `mirror` + is an option for the current layout. + + This action is not mapped by default. + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +action_layout.cycle_layout_next({prompt_bufnr}) *telescope.actions.layout.cycle_layout_next()* + Cycles to the next layout in `cycle_layout_list`. + + This action is not mapped by default. + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + +action_layout.cycle_layout_prev({prompt_bufnr}) *telescope.actions.layout.cycle_layout_prev()* + Cycles to the previous layout in `cycle_layout_list`. + + This action is not mapped by default. + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + + +================================================================================ +ACTIONS_UTILS *telescope.actions.utils* + +Utilities to wrap functions around picker selections and entries. + +Generally used from within other |telescope.actions| + +utils.map_entries({prompt_bufnr}, {f}) *telescope.actions.utils.map_entries()* + Apply `f` to the entries of the current picker. + - Notes: + - Mapped entries include all currently filtered results, not just the + visible ones. + - Indices are 1-indexed, whereas rows are 0-indexed. + - Warning: `map_entries` has no return value. + - The below example showcases how to collect results + + Usage: + > + local action_state = require "telescope.actions.state" + local action_utils = require "telescope.actions.utils" + function entry_value_by_row() + local prompt_bufnr = vim.api.nvim_get_current_buf() + local current_picker = action_state.get_current_picker(prompt_bufnr) + local results = {} + action_utils.map_entries(prompt_bufnr, function(entry, index, row) + results[row] = entry.value + end) + return results + end +< + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + {f} (function) Function to map onto entries of picker that + takes (entry, index, row) as viable + arguments + + +utils.map_selections({prompt_bufnr}, {f}) *telescope.actions.utils.map_selections()* + Apply `f` to the multi selections of the current picker and return a table + of mapped selections. + - Notes: + - Mapped selections may include results not visible in the results pop + up. + - Selected entries are returned in order of their selection. + - Warning: `map_selections` has no return value. + - The below example showcases how to collect results + + Usage: + > + local action_state = require "telescope.actions.state" + local action_utils = require "telescope.actions.utils" + function selection_by_index() + local prompt_bufnr = vim.api.nvim_get_current_buf() + local current_picker = action_state.get_current_picker(prompt_bufnr) + local results = {} + action_utils.map_selections(prompt_bufnr, function(entry, index) + results[index] = entry.value + end) + return results + end +< + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + {f} (function) Function to map onto selection of picker + that takes (selection) as a viable argument + + +utils.get_registered_mappings({prompt_bufnr}) *telescope.actions.utils.get_registered_mappings()* + Utility to collect mappings of prompt buffer in array of `{mode, keybind, + name}`. + + + Parameters: ~ + {prompt_bufnr} (number) The prompt bufnr + + + +================================================================================ +ACTIONS_GENERATE *telescope.actions.generate* + +Module for convenience to override defaults of corresponding +|telescope.actions| at |telescope.setup()|. + +General usage: +> + require("telescope").setup { + defaults = { + mappings = { + n = { + ["?"] = action_generate.which_key { + name_width = 20, -- typically leads to smaller floats + max_height = 0.5, -- increase potential maximum height + separator = " > ", -- change sep between mode, keybind, and name + close_with_action = false, -- do not close float on action + }, + }, + }, + }, + } +< + +action_generate.which_key({opts}) *telescope.actions.generate.which_key()* + Display the keymaps of registered actions similar to which-key.nvim. + + - Floating window: + - Appears on the opposite side of the prompt. + - Resolves to minimum required number of lines to show hints with `opts` + or truncates entries at `max_height`. + - Closes automatically on action call and can be disabled with by setting + `close_with_action` to false. + + + Parameters: ~ + {opts} (table) options to pass to toggling registered actions + + Fields: ~ + {max_height} (number) % of max. height or no. of rows + for hints (default: 0.4), see + |resolver.resolve_height()| + {only_show_current_mode} (boolean) only show keymaps for the current + mode (default: true) + {mode_width} (number) fixed width of mode to be shown + (default: 1) + {keybind_width} (number) fixed width of keybind to be shown + (default: 7) + {name_width} (number) fixed width of action name to be + shown (default: 30) + {column_padding} (string) string to split; can be used for + vertical separator (default: " ") + {mode_hl} (string) hl group of mode (default: + TelescopeResultsConstant) + {keybind_hl} (string) hl group of keybind (default: + TelescopeResultsVariable) + {name_hl} (string) hl group of action name (default: + TelescopeResultsFunction) + {column_indent} (number) number of left-most spaces before + keybinds are shown (default: 4) + {line_padding} (number) row padding in top and bottom of + float (default: 1) + {separator} (string) separator string between mode, key + bindings, and action (default: " + -> ") + {close_with_action} (boolean) registered action will close + keymap float (default: true) + {normal_hl} (string) winhl of "Normal" for keymap hints + floating window (default: + "TelescopePrompt") + {border_hl} (string) winhl of "Normal" for keymap + borders (default: + "TelescopePromptBorder") + {winblend} (number) pseudo-transparency of keymap + hints floating window + {zindex} (number) z-index of keymap hints floating + window (default: 100) + + + +================================================================================ +PREVIEWERS *telescope.previewers* + +Provides a Previewer table that has to be implemented by each previewer. To +achieve this, this module also provides two wrappers that abstract most of the +work and make it really easy to create new previewers. + - `previewers.new_termopen_previewer` + - `previewers.new_buffer_previewer` + +Furthermore, there are a collection of previewers already defined which can be +used for every picker, as long as the entries of the picker provide the +necessary fields. The more important ones are + - `previewers.cat` + - `previewers.vimgrep` + - `previewers.qflist` + - `previewers.vim_buffer_cat` + - `previewers.vim_buffer_vimgrep` + - `previewers.vim_buffer_qflist` + +Previewers can be disabled for any builtin or custom picker by doing :Telescope +find_files previewer=false + +previewers.Previewer() *telescope.previewers.Previewer()* + This is the base table all previewers have to implement. It's possible to + write a wrapper for this because most previewers need to have the same keys + set. Examples of wrappers are: + - `new_buffer_previewer` + - `new_termopen_previewer` + + To create a new table do following: + - `local new_previewer = Previewer:new(opts)` + + What `:new` expects is listed below + + The interface provides the following set of functions. All of them, besides + `new`, will be handled by telescope pickers. + - `:new(opts)` + - `:preview(entry, status)` + - `:teardown()` + - `:send_input(input)` + - `:scroll_fn(direction)` + - `:scroll_horizontal_fn(direction)` + + `Previewer:new()` expects a table as input with following keys: + - `setup` function(self): Will be called the first time preview will be + called. + - `teardown` function(self): Will be called on clean up. + - `preview_fn` function(self, entry, status): Will be called each time a + new entry was selected. + - `title` function(self): Will return the static title of the previewer. + - `dynamic_title` function(self, entry): Will return the dynamic title of + the previewer. Will only be called when config value + dynamic_preview_title is true. + - `send_input` function(self, input): This is meant for + `termopen_previewer` and it can be used to send input to the terminal + application, like less. + - `scroll_fn` function(self, direction): Used to make scrolling work. + - `scroll_horizontal_fn` function(self, direction): Used to make + horizontal scrolling work. + + + +previewers.new() *telescope.previewers.new()* + A shorthand for creating a new Previewer. The provided table will be + forwarded to `Previewer:new(...)` + + + +previewers.new_termopen_previewer() *telescope.previewers.new_termopen_previewer()* + Is a wrapper around Previewer and helps with creating a new + `termopen_previewer`. + + It requires you to specify one table entry `get_command(entry, status)`. + This `get_command` function has to return the terminal command that will be + executed for each entry. Example: + > + get_command = function(entry, status) + return { 'bat', entry.path } + end +< + + Additionally you can define: + - `title` a static title for example "File Preview" + - `dyn_title(self, entry)` a dynamic title function which gets called when + config value `dynamic_preview_title = true` + - `env` table: define environment variables to forward to the terminal + process. Example: + - `{ ['PAGER'] = '', ['MANWIDTH'] = 50 }` + + It's an easy way to get your first previewer going and it integrates well + with `bat` and `less`. Providing out of the box scrolling if the command + uses less. + + Furthermore, if `env` is not set, it will forward all `config.set_env` + environment variables to that terminal process. + + + +previewers.cat() *telescope.previewers.cat()* + Provides a `termopen_previewer` which has the ability to display files. It + will always show the top of the file and has support for `bat`(prioritized) + and `cat`. Each entry has to provide either the field `path` or `filename` + in order to make this previewer work. + + The preferred way of using this previewer is like this + `require('telescope.config').values.cat_previewer` This will respect user + configuration and will use `buffer_previewers` in case it's configured that + way. + + + +previewers.vimgrep() *telescope.previewers.vimgrep()* + Provides a `termopen_previewer` which has the ability to display files at + the provided line. It has support for `bat`(prioritized) and `cat`. Each + entry has to provide either the field `path` or `filename` and a `lnum` + field in order to make this previewer work. + + The preferred way of using this previewer is like this + `require('telescope.config').values.grep_previewer` This will respect user + configuration and will use `buffer_previewers` in case it's configured that + way. + + + +previewers.qflist() *telescope.previewers.qflist()* + Provides a `termopen_previewer` which has the ability to display files at + the provided line or range. It has support for `bat`(prioritized) and + `cat`. Each entry has to provide either the field `path` or `filename`, + `lnum` and a `start` and `finish` range in order to make this previewer + work. + + The preferred way of using this previewer is like this + `require('telescope.config').values.qflist_previewer` This will respect + user configuration and will use buffer previewers in case it's configured + that way. + + + +previewers.new_buffer_previewer() *telescope.previewers.new_buffer_previewer()* + An interface to instantiate a new `buffer_previewer`. That means that the + content actually lives inside a vim buffer which enables us more control + over the actual content. For example, we can use `vim.fn.search` to jump to + a specific line or reuse buffers/already opened files more easily. This + interface is more complex than `termopen_previewer` but offers more + flexibility over your content. It was designed to display files but was + extended to also display the output of terminal commands. + + In the following options, state table and general tips are mentioned to + make your experience with this previewer more seamless. + + + options: + - `define_preview = function(self, entry, status)` (required) Is called + for each selected entry, after each selection_move (up or down) and is + meant to handle things like reading file, jump to line or attach a + highlighter. + - `setup = function(self)` (optional) Is called once at the beginning, + before the preview for the first entry is displayed. You can return a + table of vars that will be available in `self.state` in each + `define_preview` call. + - `teardown = function(self)` (optional) Will be called at the end, when + the picker is being closed and is meant to clean up everything that was + allocated by the previewer. The `buffer_previewer` will automatically + clean up all created buffers. So you only need to handle things that + were introduced by you. + - `keep_last_buf = true` (optional) Will not delete the last selected + buffer. This would allow you to reuse that buffer in the select action. + For example, that buffer can be opened in a new split, rather than + recreating that buffer in an action. To access the last buffer number: + `require('telescope.state').get_global_key("last_preview_bufnr")` + - `get_buffer_by_name = function(self, entry)` Allows you to set a unique + name for each buffer. This is used for caching purposes. + `self.state.bufname` will be nil if the entry was never loaded or the + unique name when it was loaded once. For example, useful if you have + one file but multiple entries. This happens for grep and lsp builtins. + So to make the cache work only load content if `self.state.bufname ~= + entry.your_unique_key` + - `title` a static title for example "File Preview" + - `dyn_title(self, entry)` a dynamic title function which gets called + when config value `dynamic_preview_title = true` + + `self.state` table: + - `self.state.bufnr` Is the current buffer number, in which you have to + write the loaded content. Don't create a buffer yourself, otherwise + it's not managed by the buffer_previewer interface and you will + probably be better off writing your own interface. + - self.state.winid Current window id. Useful if you want to set the + cursor to a provided line number. + - self.state.bufname Will return the current buffer name, if + `get_buffer_by_name` is defined. nil will be returned if the entry was + never loaded or when `get_buffer_by_name` is not set. + + Tips: + - If you want to display content of a terminal job, use: + `require('telescope.previewers.utils').job_maker(cmd, bufnr, opts)` + - `cmd` table: for example { 'git', 'diff', entry.value } + - `bufnr` number: in which the content will be written + - `opts` table: with following keys + - `bufname` string: used for cache + - `value` string: used for cache + - `mode` string: either "insert" or "append". "insert" is default + - `env` table: define environment variables. Example: + - `{ ['PAGER'] = '', ['MANWIDTH'] = 50 }` + - `cwd` string: define current working directory for job + - `callback` function(bufnr, content): will be called when job is + done. Content will be nil if job is already loaded. So you can do + highlighting only the first time the previewer is created for + that entry. Use the returned `bufnr` and not `self.state.bufnr` + in callback, because state can already be changed at this point + in time. + - If you want to attach a highlighter use: + - `require('telescope.previewers.utils').highlighter(bufnr, ft)` + - This will prioritize tree sitter highlighting if available for + environment and language. + - `require('telescope.previewers.utils').regex_highlighter(bufnr, ft)` + - `require('telescope.previewers.utils').ts_highlighter(bufnr, ft)` + - If you want to use `vim.fn.search` or similar you need to run it in + that specific buffer context. Do + > + vim.api.nvim_buf_call(bufnr, function() + -- for example `search` and `matchadd` + end) +< + to achieve that. + - If you want to read a file into the buffer it's best to use + `buffer_previewer_maker`. But access this function with + `require('telescope.config').values.buffer_previewer_maker` because it + can be redefined by users. + + + +previewers.buffer_previewer_maker({filepath}, {bufnr}, {opts}) *telescope.previewers.buffer_previewer_maker()* + A universal way of reading a file into a buffer previewer. It handles async + reading, cache, highlighting, displaying directories and provides a + callback which can be used, to jump to a line in the buffer. + + + Parameters: ~ + {filepath} (string) String to the filepath, will be expanded + {bufnr} (number) Where the content will be written + {opts} (table) keys: `use_ft_detect`, `bufname` and `callback` + + +previewers.vim_buffer_cat() *telescope.previewers.vim_buffer_cat()* + A previewer that is used to display a file. It uses the `buffer_previewer` + interface and won't jump to the line. To integrate this one into your own + picker make sure that the field `path` or `filename` is set for each entry. + The preferred way of using this previewer is like this + `require('telescope.config').values.file_previewer` This will respect user + configuration and will use `termopen_previewer` in case it's configured + that way. + + + +previewers.vim_buffer_vimgrep() *telescope.previewers.vim_buffer_vimgrep()* + A previewer that is used to display a file and jump to the provided line. + It uses the `buffer_previewer` interface. To integrate this one into your + own picker make sure that the field `path` or `filename` and `lnum` is set + in each entry. If the latter is not present, it will default to the first + line. Additionally, `lnend`, `col` and `colend` can be set to highlight a + text range instead of a single line. All line/column values are 1-indexed. + The preferred way of using this previewer is like this + `require('telescope.config').values.grep_previewer` This will respect user + configuration and will use `termopen_previewer` in case it's configured + that way. + + + +previewers.vim_buffer_qflist() *telescope.previewers.vim_buffer_qflist()* + Is the same as `vim_buffer_vimgrep` and only exists for consistency with + `term_previewers`. + + The preferred way of using this previewer is like this + `require('telescope.config').values.qflist_previewer` This will respect + user configuration and will use `termopen_previewer` in case it's + configured that way. + + + +previewers.git_branch_log() *telescope.previewers.git_branch_log()* + A previewer that shows a log of a branch as graph + + + +previewers.git_stash_diff() *telescope.previewers.git_stash_diff()* + A previewer that shows a diff of a stash + + + +previewers.git_commit_diff_to_parent() *telescope.previewers.git_commit_diff_to_parent()* + A previewer that shows a diff of a commit to a parent commit. + The run command is `git --no-pager diff SHA^! -- $CURRENT_FILE` + + The current file part is optional. So is only uses it with bcommits. + + + +previewers.git_commit_diff_to_head() *telescope.previewers.git_commit_diff_to_head()* + A previewer that shows a diff of a commit to head. + The run command is `git --no-pager diff --cached $SHA -- $CURRENT_FILE` + + The current file part is optional. So is only uses it with bcommits. + + + +previewers.git_commit_diff_as_was() *telescope.previewers.git_commit_diff_as_was()* + A previewer that shows a diff of a commit as it was. + The run command is `git --no-pager show $SHA:$CURRENT_FILE` or `git + --no-pager show $SHA` + + + +previewers.git_commit_message() *telescope.previewers.git_commit_message()* + A previewer that shows the commit message of a diff. + The run command is `git --no-pager log -n 1 $SHA` + + + +previewers.git_file_diff() *telescope.previewers.git_file_diff()* + A previewer that shows the current diff of a file. Used in git_status. + The run command is `git --no-pager diff $FILE` + + + +previewers.display_content() *telescope.previewers.display_content()* + A deprecated way of displaying content more easily. Was written at a time, + where the buffer_previewer interface wasn't present. Nowadays it's easier + to just use this. We will keep it around for backwards compatibility + because some extensions use it. It doesn't use cache or some other clever + tricks. + + + + +================================================================================ +HISTORY *telescope.actions.history* + +A base implementation of a prompt history that provides a simple history and +can be replaced with a custom implementation. + +For example: We provide an extension for a smart history that uses sql.nvim to +map histories to metadata, like the calling picker or cwd. + +So you have a history for: +- find_files project_1 +- grep_string project_1 +- live_grep project_1 +- find_files project_2 +- grep_string project_2 +- live_grep project_2 +- etc + +See https://github.com/nvim-telescope/telescope-smart-history.nvim + +histories.History() *telescope.actions.history.History()* + Manages prompt history + + + Fields: ~ + {enabled} (boolean) Will indicate if History is enabled or + disabled + {path} (string) Will point to the location of the history file + {limit} (string) Will have the limit of the history. Can be + nil, if limit is disabled. + {content} (table) History table. Needs to be filled by your own + History implementation + {index} (number) Used to keep track of the next or previous + index. Default is #content + 1 + {cycle_wrap} (boolean) Controls if history will wrap on reaching + beginning or end + + +histories.History:new({opts}) *telescope.actions.history.History:new()* + Create a new History + + + Parameters: ~ + {opts} (table) Defines the behavior of History + + Fields: ~ + {init} (function) Will be called after handling configuration + (required) + {append} (function) How to append a new prompt item (required) + {reset} (function) What happens on reset. Will be called when + telescope closes (required) + {pre_get} (function) Will be called before a next or previous item + will be returned (optional) + + +histories.new() *telescope.actions.history.new()* + Shorthand to create a new history + + + +histories.History:reset() *telescope.actions.history.History:reset()* + Will reset the history index to the default initial state. Will happen + after the picker closed + + + +histories.History:append({line}, {picker}, {no_reset}) *telescope.actions.history.History:append()* + Append a new line to the history + + + Parameters: ~ + {line} (string) current line that will be appended + {picker} (table) the current picker object + {no_reset} (boolean) On default it will reset the state at the end. + If you don't want to do this set to true + + +histories.History:get_next({line}, {picker}) *telescope.actions.history.History:get_next()* + Will return the next history item. Can be nil if there are no next items + + + Parameters: ~ + {line} (string) the current line + {picker} (table) the current picker object + + Return: ~ + string: the next history item + + +histories.History:get_prev({line}, {picker}) *telescope.actions.history.History:get_prev()* + Will return the previous history item. Can be nil if there are no previous + items + + + Parameters: ~ + {line} (string) the current line + {picker} (table) the current picker object + + Return: ~ + string: the previous history item + + +histories.get_simple_history() *telescope.actions.history.get_simple_history()* + A simple implementation of history. + + It will keep one unified history across all pickers. + + + + + vim:tw=78:ts=8:ft=help:norl: diff --git a/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/doc/telescope_changelog.txt b/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/doc/telescope_changelog.txt new file mode 100644 index 00000000..08750a7b --- /dev/null +++ b/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/doc/telescope_changelog.txt @@ -0,0 +1,282 @@ +================================================================================ + *telescope.changelog* + +# Changelog + + *telescope.changelog-922* + +Date: May 17, 2021 +PR: https://github.com/nvim-telescope/telescope.nvim/pull/922 + +This is one of our largest breaking changes thus far, so I (TJ) am adding some +information here so that you can more easily update (without having to track +down the commit, etc.). + +The goal of these breaking changes is to greatly simplify the way +configuration for layouts happen. This should make it much easier to configure +each picker, layout_strategy, and more. Please report any bugs or behavior +that is broken / confusing upstream and we can try and make the configuration +better. + +|telescope.setup()| has changed `layout_defaults` -> `layout_config`. + This makes it so that the setup and the pickers share the same key, + otherwise it is too confusing which key is for which. + + +`picker:find()` now has different values available for configuring the UI. + All configuration for the layout must be passed in the key: + `layout_config`. + + Previously, these keys were passed via `picker:find(opts)`, but should be + passed via `opts.layout_config` now. + - {height} + - {width} + - {prompt_position} + - {preview_cutoff} + + These keys are removed: + - {results_height}: This key is no longer valid. Instead, use `height` + and the corresponding `preview_*` options for the layout strategy to + get the correct results height. This simplifies the configuration + for many of the existing strategies. + + - {results_width}: This key actually never did anything. It was + leftover from some hacking that I had attempted before. Instead you + should be using something like the `preview_width` configuration + option for |layout_strategies.horizontal()| + + You should get error messages when you try and use any of the above keys now. + + *telescope.changelog-839* + +Date: July 7, 2021 +PR: https://github.com/nvim-telescope/telescope.nvim/pull/839 + +Small breaking change regarding `shorten_path` and `hide_filename`. +This allows to configure path displays on a global level and offers a way for +extension developers to make use of the same configuration, offering a better +overall experience. + +The new way to configure to configure path displays is with: + `path_display`: It is a table and accepts multiple values: + - "hidden" hide file names + - "tail" only display the file name, and not the path + - "absolute" display absolute paths + - "shorten" only display the first character of each directory in + the path + see |telescope.defaults.path_display| + +Example would be for a global configuration: + require("telescope").setup{ + defaults = { + path_display = { + "shorten", + "absolute", + }, + } + } + +You can also still pass this to a single builtin call: + require("telescope.builtin").find_files { + path_display = { "shorten" } + } + +For extension developers there is a new util function that can be used to +display a path: + local filename = utils.transform_path(opts, entry.filename) + + *telescope.changelog-473* + +Date: July 14, 2021 +PR: https://github.com/nvim-telescope/telescope.nvim/pull/473 + +Deprecation of telescope.path + +Extension developers need to move to plenary.path, because we will remove the +telescope.path module soon. + +Guide to switch over to plenary.path + - separator + before: require("telescope.path").separator + now: require("plenary.path").path.sep + - home + before: require("telescope.path").home + now: require("plenary.path").path.home + - make_relative + before: require("telescope.path").make_relative(filepath, cwd) + now: require("plenary.path"):new(filepath):make_relative(cwd) + - shorten + before: require("telescope.path").shorten(filepath) + now: require("plenary.path"):new(filepath):shorten() + with optional len, default is 1 + - normalize + before: require("telescope.path").normalize(filepath, cwd) + now: require("plenary.path"):new(filepath):normalize(cwd) + - read_file + before: require("telescope.path").read_file(filepath) + now: require("plenary.path"):new(filepath):read() + - read_file_async + before: require("telescope.path").read_file_async(filepath, callback) + now: require("plenary.path"):new(filepath):read(callback) + + *telescope.changelog-1406* + +Date: November 4, 2021 +PR: https://github.com/nvim-telescope/telescope.nvim/pull/1406 + +Telescope requires Neovim release 0.5.1 or a recent nightly + +Due to making use of newly implemented extmark features, Telescope now +requires users to be on Neovim 0.5.1 (the most recent stable version) or on +the LATEST version of Neovim nightly. + + + *telescope.changelog-1549* + +Date: December 10, 2021 +PR: https://github.com/nvim-telescope/telescope.nvim/pull/1549 + +Telescope requires now Neovim release 0.6.0 or a more recent nightly. +If you are running neovim nightly, you need to make sure that you are on the +LATEST version. Every other commit is not supported. So make sure you build +the newest nightly before reporting issues. + + + *telescope.changelog-1553* + +Date: December 10, 2021 +PR: https://github.com/nvim-telescope/telescope.nvim/pull/1553 + +Move from `vim.lsp.diagnostic` to `vim.diagnostic`. + +Because the newly added `vim.diagnostic` has no longer anything to do with lsp +we also decided to rename our diagnostic functions: + Telescope lsp_document_diagnostics -> Telescope diagnostics bufnr=0 + Telescope lsp_workspace_diagnostics -> Telescope diagnostics +Because of that the `lsp_*_diagnostics` inside Telescope will be deprecated +and removed soon. The new `diagnostics` works almost identical to the previous +functions. Note that there is no longer a workspace diagnostics. You can only +get all diagnostics for all open buffers. + + + *telescope.changelog-1851* + +Date: April 22, 2022 +PR: https://github.com/nvim-telescope/telescope.nvim/pull/1851 + +Telescope requires now Neovim release 0.7.0 or a more recent nightly. +If you are running Neovim nightly, you need to make sure that you are on the +LATEST version. Every other commit is not supported. So make sure you build +the newest nightly before reporting issues. +In the future, we will adopt a different release strategy. This release +strategy follows the approach that the latest telescope.nvim master will only +work with latest Neovim nightly and we will provide tags for specific Neovim +versions. You can read more about this strategy here: +https://github.com/nvim-telescope/telescope.nvim/issues/1772 + + + *telescope.changelog-1866* + +Date: April 25, 2022 +PR: https://github.com/nvim-telescope/telescope.nvim/pull/1866 + +We decided to remove both `lsp_code_actions` and `lsp_range_code_actions`. +Currently, both functions are highly duplicated code from neovim, with fewer +features, because it's out of date. So rather that we copy over the required +changes to fix some bugs or implement client side code actions, we decided to +remove both of them and suggest you use `vim.lsp.buf.code_action` and +`vim.lsp.buf.range_code_action`. The transition to it is easy thanks to +`vim.ui.select` which allows you to override the select UI. We provide a small +extension for quite some time that make it easy to use telescope for +`vim.ui.select`. You can found the code here +https://github.com/nvim-telescope/telescope-ui-select.nvim. It offers the same +displaying as the current version of `lsp_code_actions`. An alternative is +https://github.com/stevearc/dressing.nvim which has support for multiple +different backends including telescope. + + + *telescope.changelog-1945* + +Date: July 01, 2022 +PR: https://github.com/nvim-telescope/telescope.nvim/pull/1945 + +This is our dev branch which contains a lot of PRs, a lot of fixes, +refactoring and general quality of life improvements. It also contains new +features, the most noteworthy are the following (mostly developed by the +community): +- feat: none strategy & control attachment (#1867) +- feat: force buffer delete for terminal and improvements for + Picker:delete_selection (#1943) +- feat(tags): process tagfiles on the fly (#1989) +- feat(builtin.lsp): implement builtin handlers for + lsp.(incoming|outgoing)_calls (#1484) +- feat: clear previewer if no item is selected (#2004) +- feat: add min max boundary to width, height resolver (#2002) +- feat: Add entry_index for entry_makers (#1850) +- feat: refine with new_table (#1115) + +The last one is one of the most exciting new features, because it allows you +to go from live_grep into a fuzzy environment with the following mapping +``. It's a general interface we now implemented for `live_grep` and +`lsp_dynamic_workspace_symbols` but it could also be easily implemented for +other builtins, by us or the user. It's now available for extension developers. +We will add documentation in the next couple of days and improve it by adding +more options to configure it after the initial 0.1 release. + +But as with all longer development phases, there are also some breaking +changes. This is the main reason we moved development to a separate branch, for +the past two months. We can't promise that there won't be more breaking +changes, but it is the plan that this is the last set of breaking changes prior +to the 0.1 release on July, 12. We are deeply sorry for the inconvenience. The +following breaking changes are included in this PR: +- break(git_files): change `show_untracked` default to false. Can be changed + back with `:Telescope git_files show_untracked=true` +- break: deprecate `utils.get_default` `utils.if_nil`, will be removed prior + to 0.1, so if you use it in your config, please move to `vim.F.if_nil` +- break: drops `ignore_filename` option, use `path_display= { "hidden" }` + instead +- break: prefix internal interfaces with __ so + `require("telescope.builtin.files").find_files` will show a notify error but + still works for now. The error will be removed prior to 0.1! You should use + `require("telescope.builtin").find_files` because we wrap all the functions + that are exposed in this module. +- break: defaults.preview.treesitter rework that allows you to either enable a + list of languages, or enable all and disable some. Please read + `:help telescope.defaults.preview` for more information. + Something like this is now possible: + > + treesitter = { + enable = false, + -- or + enable = { "c" }, + -- disable can be set if enable isn't set + disable = { "perl", "javascript" }, + }, +< + + + *telescope.changelog-2499* + +Date: May 24, 2023 +PR: https://github.com/nvim-telescope/telescope.nvim/pull/2499 + +We decided to bump the minimum Neovim version to 0.9.0, in order to remove a +couple of no longer required workarounds. That includes using upstream +treesitter implementation in favor of nvim-treesitter. +If you still have a requirement for Neovim 0.7 or 0.8, we also have a stable +branch 0.1.x (or version, currently 0.1.1) which will not receive this version +bump and will continue to offer support for older Neovim versions. + + + *telescope.changelog-2529* + +Date: June 09, 2023 +PR: https://github.com/nvim-telescope/telescope.nvim/pull/2529 + +We finally removed usage of `plenary.filetype` to determine filetypes for +previewing and replaced it with `vim.filetype`. So if you have highlighting +issues you no longer have to configure `plenary`, but rather read +|vim.filetype|. + + + vim:tw=78:ts=8:ft=help:norl: diff --git a/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/ftplugin/TelescopePrompt.lua b/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/ftplugin/TelescopePrompt.lua new file mode 100644 index 00000000..8888a88f --- /dev/null +++ b/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/ftplugin/TelescopePrompt.lua @@ -0,0 +1,12 @@ +-- Don't wrap textwidth things +vim.opt_local.formatoptions:remove "t" +vim.opt_local.formatoptions:remove "c" + +-- Don't include `showbreak` when calculating strdisplaywidth +vim.opt_local.wrap = false + +-- There's also no reason to enable textwidth here anyway +vim.opt_local.textwidth = 0 +vim.opt_local.scrollbind = false + +vim.opt_local.signcolumn = "no" diff --git a/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/ftplugin/TelescopeResults.lua b/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/ftplugin/TelescopeResults.lua new file mode 100644 index 00000000..08e9dccf --- /dev/null +++ b/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/ftplugin/TelescopeResults.lua @@ -0,0 +1,5 @@ +-- Don't have scrolloff, it makes things weird. +vim.opt_local.scrolloff = 0 +vim.opt_local.scrollbind = false + +vim.opt_local.signcolumn = "no" diff --git a/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/plugin/telescope.lua b/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/plugin/telescope.lua new file mode 100644 index 00000000..338036cd --- /dev/null +++ b/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/plugin/telescope.lua @@ -0,0 +1,156 @@ +if 1 ~= vim.fn.has "nvim-0.9.0" then + vim.api.nvim_err_writeln "Telescope.nvim requires at least nvim-0.9.0. See `:h telescope.changelog-2499`" + return +end + +if vim.g.loaded_telescope == 1 then + return +end +vim.g.loaded_telescope = 1 + +local highlights = { + -- Sets the highlight for selected items within the picker. + TelescopeSelection = { default = true, link = "Visual" }, + TelescopeSelectionCaret = { default = true, link = "TelescopeSelection" }, + TelescopeMultiSelection = { default = true, link = "Type" }, + TelescopeMultiIcon = { default = true, link = "Identifier" }, + + -- "Normal" in the floating windows created by telescope. + TelescopeNormal = { default = true, link = "Normal" }, + TelescopePreviewNormal = { default = true, link = "TelescopeNormal" }, + TelescopePromptNormal = { default = true, link = "TelescopeNormal" }, + TelescopeResultsNormal = { default = true, link = "TelescopeNormal" }, + + -- Border highlight groups. + -- Use TelescopeBorder to override the default. + -- Otherwise set them specifically + TelescopeBorder = { default = true, link = "TelescopeNormal" }, + TelescopePromptBorder = { default = true, link = "TelescopeBorder" }, + TelescopeResultsBorder = { default = true, link = "TelescopeBorder" }, + TelescopePreviewBorder = { default = true, link = "TelescopeBorder" }, + + -- Title highlight groups. + -- Use TelescopeTitle to override the default. + -- Otherwise set them specifically + TelescopeTitle = { default = true, link = "TelescopeBorder" }, + TelescopePromptTitle = { default = true, link = "TelescopeTitle" }, + TelescopeResultsTitle = { default = true, link = "TelescopeTitle" }, + TelescopePreviewTitle = { default = true, link = "TelescopeTitle" }, + + TelescopePromptCounter = { default = true, link = "NonText" }, + + -- Used for highlighting characters that you match. + TelescopeMatching = { default = true, link = "Special" }, + + -- Used for the prompt prefix + TelescopePromptPrefix = { default = true, link = "Identifier" }, + + -- Used for highlighting the matched line inside Previewer. Works only for (vim_buffer_ previewer) + TelescopePreviewLine = { default = true, link = "Visual" }, + TelescopePreviewMatch = { default = true, link = "Search" }, + + TelescopePreviewPipe = { default = true, link = "Constant" }, + TelescopePreviewCharDev = { default = true, link = "Constant" }, + TelescopePreviewDirectory = { default = true, link = "Directory" }, + TelescopePreviewBlock = { default = true, link = "Constant" }, + TelescopePreviewLink = { default = true, link = "Special" }, + TelescopePreviewSocket = { default = true, link = "Statement" }, + TelescopePreviewRead = { default = true, link = "Constant" }, + TelescopePreviewWrite = { default = true, link = "Statement" }, + TelescopePreviewExecute = { default = true, link = "String" }, + TelescopePreviewHyphen = { default = true, link = "NonText" }, + TelescopePreviewSticky = { default = true, link = "Keyword" }, + TelescopePreviewSize = { default = true, link = "String" }, + TelescopePreviewUser = { default = true, link = "Constant" }, + TelescopePreviewGroup = { default = true, link = "Constant" }, + TelescopePreviewDate = { default = true, link = "Directory" }, + TelescopePreviewMessage = { default = true, link = "TelescopePreviewNormal" }, + TelescopePreviewMessageFillchar = { default = true, link = "TelescopePreviewMessage" }, + + -- Used for Picker specific Results highlighting + TelescopeResultsClass = { default = true, link = "Function" }, + TelescopeResultsConstant = { default = true, link = "Constant" }, + TelescopeResultsField = { default = true, link = "Function" }, + TelescopeResultsFunction = { default = true, link = "Function" }, + TelescopeResultsMethod = { default = true, link = "Method" }, + TelescopeResultsOperator = { default = true, link = "Operator" }, + TelescopeResultsStruct = { default = true, link = "Struct" }, + TelescopeResultsVariable = { default = true, link = "SpecialChar" }, + + TelescopeResultsLineNr = { default = true, link = "LineNr" }, + TelescopeResultsIdentifier = { default = true, link = "Identifier" }, + TelescopeResultsNumber = { default = true, link = "Number" }, + TelescopeResultsComment = { default = true, link = "Comment" }, + TelescopeResultsSpecialComment = { default = true, link = "SpecialComment" }, + + -- Used for git status Results highlighting + TelescopeResultsDiffChange = { default = true, link = "DiffChange" }, + TelescopeResultsDiffAdd = { default = true, link = "DiffAdd" }, + TelescopeResultsDiffDelete = { default = true, link = "DiffDelete" }, + TelescopeResultsDiffUntracked = { default = true, link = "NonText" }, +} + +for k, v in pairs(highlights) do + vim.api.nvim_set_hl(0, k, v) +end + +-- This is like "" in your terminal. +-- To use it, do `cmap (TelescopeFuzzyCommandSearch) +vim.keymap.set( + "c", + "(TelescopeFuzzyCommandSearch)", + "e \"lua require('telescope.builtin').command_history " + .. '{ default_text = [=[" . escape(getcmdline(), \'"\') . "]=] }"', + { silent = true, noremap = true } +) + +vim.api.nvim_create_user_command("Telescope", function(opts) + require("telescope.command").load_command(unpack(opts.fargs)) +end, { + nargs = "*", + complete = function(_, line) + local builtin_list = vim.tbl_keys(require "telescope.builtin") + local extensions_list = vim.tbl_keys(require("telescope._extensions").manager) + + local l = vim.split(line, "%s+") + local n = #l - 2 + + if n == 0 then + local commands = { builtin_list, extensions_list } + -- TODO(clason): remove when dropping support for Nvim 0.9 + if vim.fn.has "nvim-0.11" == 1 then + commands = vim.iter(commands):flatten():totable() + else + commands = vim.tbl_flatten(commands) + end + table.sort(commands) + + return vim.tbl_filter(function(val) + return vim.startswith(val, l[2]) + end, commands) + end + + if n == 1 then + local is_extension = vim.tbl_filter(function(val) + return val == l[2] + end, extensions_list) + + if #is_extension > 0 then + local extensions_subcommand_dict = require("telescope.command").get_extensions_subcommand() + local commands = extensions_subcommand_dict[l[2]] + table.sort(commands) + + return vim.tbl_filter(function(val) + return vim.startswith(val, l[3]) + end, commands) + end + end + + local options_list = vim.tbl_keys(require("telescope.config").values) + table.sort(options_list) + + return vim.tbl_filter(function(val) + return vim.startswith(val, l[#l]) + end, options_list) + end, +}) diff --git a/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/rock_manifest b/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/rock_manifest new file mode 100644 index 00000000..92dddb52 --- /dev/null +++ b/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/rock_manifest @@ -0,0 +1,147 @@ +rock_manifest = { + autoload = { + health = { + ["telescope.vim"] = "7e299db63944941eca0a9c0a857ee937" + } + }, + data = { + memes = { + planets = { + earth = "82832fcbe2e0eedeb3422285312ede07", + jupiter = "026b61e7620f516ea15d42813128a626", + mars = "552a3bb388e63202c5298b5a8759e720", + mercury = "846e54aca2ba791b745a8cc7fb3271e2", + moon = "da940686c32ef9e6d59481c418da9acc", + neptune = "49326b778a7a38ebfc7c90006967fb72", + pluto = "1a9e8e9618dbe487b7c140eec3996a4c", + saturn = "c93f370b9099a4a0727c2331d1d57dc6", + uranus = "5ff7c70e9b0b825e6793533b6560ef97", + venus = "59a266ef8a3cde831a540568ed3fa6b2" + } + } + }, + doc = { + ["secret.txt"] = "59f2d5cd8b01a044b4e7f598244869ec", + ["telescope.txt"] = "e929af7f8f79431d18c26614dfad8344", + ["telescope_changelog.txt"] = "5c807cb49d45799276be85c33693c08f" + }, + ftplugin = { + ["TelescopePrompt.lua"] = "207de42b635cc7de9ebf5e73128106aa", + ["TelescopeResults.lua"] = "50bc0d8c4520c7e678f4122a956d9a49" + }, + lua = { + telescope = { + ["_.lua"] = "e94b53c4fe57d51c361f0b1df9a6d64f", + _extensions = { + ["init.lua"] = "6c8e3d4e324874d3e9fef2f3b973027a" + }, + actions = { + ["generate.lua"] = "b627dbab3b7d2a572779707529331a5f", + ["history.lua"] = "6b34c6a357dfad0762f099c1ba3b426f", + ["init.lua"] = "5c2fb19f5d53ee0c6d3bf080a7d71b91", + ["layout.lua"] = "91470edb5dd37a3025e141d5cc6691bd", + ["mt.lua"] = "9c22e387921dbfbd56afdf3fed7b84af", + ["set.lua"] = "299d8069041d0c7ca326c8c59d2f6586", + ["state.lua"] = "7c488697afa9b5a993920103661c5cc1", + ["utils.lua"] = "bc8870c00a9206ab13dcb2ab1142b5bd" + }, + algos = { + ["fzy.lua"] = "146c9ee304190d4f50d46f4b279e3182", + ["linked_list.lua"] = "9ca6315ec7c740da8198d8d62823040b", + ["string_distance.lua"] = "1d63486c008b414586ec505b36c361a2" + }, + builtin = { + ["__diagnostics.lua"] = "debd53606d5dee06bb2031026c7c3145", + ["__files.lua"] = "30467c000c4a3be5981507a45c09d4c0", + ["__git.lua"] = "a40e030790285c1e8706d181f0b4a831", + ["__internal.lua"] = "71188dae9873d6d7fe35f63e1d05cae3", + ["__lsp.lua"] = "33e3c35e51864187e14568031b5b4ddb", + ["init.lua"] = "844d4a37134dfcc7e3f3533128e26adf" + }, + ["command.lua"] = "66d2dea0d60e1a27bfff18e55b1afb4c", + config = { + ["resolve.lua"] = "e05ea0a8a4f032458bf61cf6ff81bb49" + }, + ["config.lua"] = "824e9c60f4923d5e389d64ebc3b2914b", + ["debounce.lua"] = "562e0f836431d2e8e99130e657212196", + ["deprecated.lua"] = "7c1395098782b9c220a0dad7daca2fa6", + ["entry_manager.lua"] = "3d493cab0145fa8fd1405b2f160e0ec1", + finders = { + ["async_job_finder.lua"] = "7653d922e17ba0d3705a6cadcc9b544d", + ["async_oneshot_finder.lua"] = "4fd43f20022a9b72188776ef9b667497", + ["async_static_finder.lua"] = "66421d0a0cd5ce650bf107faaae87e62" + }, + ["finders.lua"] = "742e701ba623ff99035c455e231dc05a", + ["from_entry.lua"] = "7c2b68ad9af645ef0be4d7f929e021eb", + ["health.lua"] = "885a0947d640b003eba0b9aac67f5a21", + ["init.lua"] = "defe6eaf81f3596ccfafb9647afdac9f", + ["log.lua"] = "5c57992c1ac7c17c2e5879d38921f819", + ["make_entry.lua"] = "4fe6b147629c109e23c3962ba9cf2ba6", + ["mappings.lua"] = "aa736d661e2200619a98629ebb07f505", + ["operators.lua"] = "e7244d086698dfaa71be2133820e57ee", + pickers = { + ["entry_display.lua"] = "27c74c2c4812244722444ebafbccd1ae", + ["highlights.lua"] = "2a1497c924141b85e57b106d0d8ec0ed", + ["layout.lua"] = "cdcf7f2019df1a715b233c4deae252e9", + ["layout_strategies.lua"] = "27c7c04a0cd2a04dbb3ff6d9bcb62507", + ["multi.lua"] = "7822c69f5e6e537d7ad1d46c01097069", + ["scroller.lua"] = "54fc7267917bf9f9076a632293a73cd5", + ["window.lua"] = "fc74d7849a1381643289a65678e14aa3" + }, + ["pickers.lua"] = "fbbf43a3c1eae614a5de115feb14d8e2", + previewers = { + ["buffer_previewer.lua"] = "544d3e3417a9c496277f3a8118141007", + ["init.lua"] = "767b65a19544ce7289e077d1538eeeb7", + ["previewer.lua"] = "3b02d1b4a9aeb5c6a79771709ca799cc", + ["term_previewer.lua"] = "f6b483beea7a0faa6e819889ed7ddbf0", + ["utils.lua"] = "6aad15a9e8ec96ddb7576e0f3bd9bc48" + }, + ["sorters.lua"] = "bb1c9e687331d5cf0952582b2dadab7f", + ["state.lua"] = "450c0b38c2497ae8c505a882257e0bed", + testharness = { + ["helpers.lua"] = "1783be4d1f997b8ad23e9fab7680e0e3", + ["init.lua"] = "a447ceb5e7478053e98eb27acd011799", + ["runner.lua"] = "1201b1158848fc7e6a581f258776a977" + }, + ["themes.lua"] = "02e18c91826ee7834ffedc9378cbc9b9", + ["utils.lua"] = "beed6a421e27ed8be0a2d49b3de470e4" + }, + tests = { + automated = { + ["action_spec.lua"] = "7ffd015976efdc4bef88bf143e876a29", + ["command_spec.lua"] = "46a62833bbda1c56e29b2f183be62b9c", + ["entry_display_spec.lua"] = "b10d4d661d3ab2e1b89b412f45942061", + ["entry_manager_spec.lua"] = "708fbb4c280288a0a9c6fdd4e396c16e", + ["layout_strategies_spec.lua"] = "b146a6044e86ce63449f1463571b3ae2", + ["linked_list_spec.lua"] = "ebd7de3a8a8eaabf1e2fa6ced761374b", + pickers = { + ["find_files_spec.lua"] = "87af15abf6f94d58c667149a3e5a4e59" + }, + ["resolver_spec.lua"] = "46b5a49a82afae551a83a0c7ed471c35", + ["scroller_spec.lua"] = "3595abe16efe6753888274f11f1818ad", + ["sorters_spec.lua"] = "6a5c265752ac0ea6a07ef39d66518b8e", + ["telescope_spec.lua"] = "573cee7dce62d9f8cd0d3592f784aade", + ["utils_spec.lua"] = "48b3bda11ba9261ddc0b1c122adfbb44" + }, + fixtures = { + find_files = { + ["file_a.txt"] = "d41d8cd98f00b204e9800998ecf8427e", + ["file_abc.txt"] = "d41d8cd98f00b204e9800998ecf8427e" + } + }, + ["helpers.lua"] = "9d89080a25a31d5731b967731ed97c1d", + pickers = { + ["find_files__readme.lua"] = "c4a263e39c831b33a06a9d72ad383263", + ["find_files__scrolling_descending_cycle.lua"] = "8f32f279f627bdf01aa21628db699eef" + } + } + }, + plugin = { + ["telescope.lua"] = "0c9ae4aa6947d3bb124d7437d901237e" + }, + scripts = { + ["gendocs.lua"] = "bc7142cfb353b6315afec3fa2cac8b22", + ["minimal_init.vim"] = "97317fe610193d1fdad989e007a6cff6" + }, + ["telescope.nvim-scm-1.rockspec"] = "ecc6c254c09cc8213cde6d58393bc57b" +} diff --git a/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/scripts/gendocs.lua b/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/scripts/gendocs.lua new file mode 100644 index 00000000..ec0047c9 --- /dev/null +++ b/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/scripts/gendocs.lua @@ -0,0 +1,49 @@ +-- Setup telescope with defaults +if RELOAD then + RELOAD "telescope" +end +require("telescope").setup() + +local docgen = require "docgen" + +local docs = {} + +docs.test = function() + -- TODO: Fix the other files so that we can add them here. + local input_files = { + "./lua/telescope/init.lua", + "./lua/telescope/command.lua", + "./lua/telescope/builtin/init.lua", + "./lua/telescope/themes.lua", + "./lua/telescope/mappings.lua", + "./lua/telescope/pickers/layout.lua", + "./lua/telescope/pickers/layout_strategies.lua", + "./lua/telescope/config/resolve.lua", + "./lua/telescope/make_entry.lua", + "./lua/telescope/pickers/entry_display.lua", + "./lua/telescope/utils.lua", + "./lua/telescope/actions/init.lua", + "./lua/telescope/actions/state.lua", + "./lua/telescope/actions/set.lua", + "./lua/telescope/actions/layout.lua", + "./lua/telescope/actions/utils.lua", + "./lua/telescope/actions/generate.lua", + "./lua/telescope/previewers/init.lua", + "./lua/telescope/actions/history.lua", + } + + local output_file = "./doc/telescope.txt" + local output_file_handle = io.open(output_file, "w") + + for _, input_file in ipairs(input_files) do + docgen.write(input_file, output_file_handle) + end + + output_file_handle:write " vim:tw=78:ts=8:ft=help:norl:\n" + output_file_handle:close() + vim.cmd [[checktime]] +end + +docs.test() + +return docs diff --git a/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/scripts/minimal_init.vim b/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/scripts/minimal_init.vim new file mode 100644 index 00000000..6f6731f7 --- /dev/null +++ b/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/scripts/minimal_init.vim @@ -0,0 +1,8 @@ +set rtp+=. +set rtp+=../plenary.nvim/ +set rtp+=../tree-sitter-lua/ + +runtime! plugin/plenary.vim +runtime! plugin/telescope.lua + +let g:telescope_test_delay = 100 diff --git a/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/telescope.nvim-scm-1.rockspec b/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/telescope.nvim-scm-1.rockspec new file mode 100644 index 00000000..f717d640 --- /dev/null +++ b/config/neovim/store/lazy-plugins/telescope.nvim/telescope.nvim-scm-1-unstable-2024-08-02-rocks/telescope.nvim/scm-1/telescope.nvim-scm-1.rockspec @@ -0,0 +1,44 @@ +local MODREV, SPECREV = 'scm', '-1' +rockspec_format = '3.0' +package = 'telescope.nvim' +version = MODREV .. SPECREV + +description = { + summary = 'Find, Filter, Preview, Pick. All lua, all the time.', + detailed = [[ + A highly extendable fuzzy finder over lists. + Built on the latest awesome features from neovim core. + Telescope is centered around modularity, allowing for easy customization. + ]], + labels = { 'neovim', 'plugin', }, + homepage = 'https://github.com/nvim-telescope/telescope.nvim', + license = 'MIT', +} + +dependencies = { + 'lua == 5.1', + 'plenary.nvim', +} + +source = { + url = 'https://github.com/nvim-telescope/telescope.nvim/archive/refs/tags/' .. MODREV .. '.zip', + dir = 'telescope.nvim-' .. MODREV +} + +if MODREV == 'scm' then + source = { + url = 'git://github.com/nvim-telescope/telescope.nvim', + } +end + +build = { + type = 'builtin', + copy_directories = { + 'doc', + 'ftplugin', + 'plugin', + 'scripts', + 'autoload', + 'data', + } +} diff --git a/config/neovim/store/lazy-plugins/todo-comments.nvim/.editorconfig b/config/neovim/store/lazy-plugins/todo-comments.nvim/.editorconfig new file mode 100644 index 00000000..8b176d56 --- /dev/null +++ b/config/neovim/store/lazy-plugins/todo-comments.nvim/.editorconfig @@ -0,0 +1,7 @@ +root = true + +[*] +insert_final_newline = true +indent_style = space +indent_size = 2 +charset = utf-8 diff --git a/config/neovim/store/lazy-plugins/todo-comments.nvim/.github/ISSUE_TEMPLATE/config.yml b/config/neovim/store/lazy-plugins/todo-comments.nvim/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 00000000..52026dd0 --- /dev/null +++ b/config/neovim/store/lazy-plugins/todo-comments.nvim/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,5 @@ +blank_issues_enabled: false +contact_links: + - name: Ask a question + url: https://github.com/folke/todo-comments.nvim/discussions + about: Use Github discussions instead diff --git a/config/neovim/store/lazy-plugins/todo-comments.nvim/.github/PULL_REQUEST_TEMPLATE.md b/config/neovim/store/lazy-plugins/todo-comments.nvim/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 00000000..3f7c92ea --- /dev/null +++ b/config/neovim/store/lazy-plugins/todo-comments.nvim/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,16 @@ +## Description + + + +## Related Issue(s) + + + +## Screenshots + + + diff --git a/config/neovim/store/lazy-plugins/todo-comments.nvim/.github/dependabot.yml b/config/neovim/store/lazy-plugins/todo-comments.nvim/.github/dependabot.yml new file mode 100644 index 00000000..5ace4600 --- /dev/null +++ b/config/neovim/store/lazy-plugins/todo-comments.nvim/.github/dependabot.yml @@ -0,0 +1,6 @@ +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" diff --git a/config/neovim/store/lazy-plugins/todo-comments.nvim/.github/workflows/labeler.yml b/config/neovim/store/lazy-plugins/todo-comments.nvim/.github/workflows/labeler.yml new file mode 100644 index 00000000..0908727b --- /dev/null +++ b/config/neovim/store/lazy-plugins/todo-comments.nvim/.github/workflows/labeler.yml @@ -0,0 +1,8 @@ +name: "PR Labeler" +on: + - pull_request_target + +jobs: + labeler: + uses: folke/github/.github/workflows/labeler.yml@main + secrets: inherit diff --git a/config/neovim/store/lazy-plugins/todo-comments.nvim/.github/workflows/pr.yml b/config/neovim/store/lazy-plugins/todo-comments.nvim/.github/workflows/pr.yml new file mode 100644 index 00000000..6d9df366 --- /dev/null +++ b/config/neovim/store/lazy-plugins/todo-comments.nvim/.github/workflows/pr.yml @@ -0,0 +1,18 @@ +name: PR Title + +on: + pull_request_target: + types: + - opened + - edited + - synchronize + - reopened + - ready_for_review + +permissions: + pull-requests: read + +jobs: + pr-title: + uses: folke/github/.github/workflows/pr.yml@main + secrets: inherit diff --git a/config/neovim/store/lazy-plugins/todo-comments.nvim/.github/workflows/stale.yml b/config/neovim/store/lazy-plugins/todo-comments.nvim/.github/workflows/stale.yml new file mode 100644 index 00000000..4e0273bc --- /dev/null +++ b/config/neovim/store/lazy-plugins/todo-comments.nvim/.github/workflows/stale.yml @@ -0,0 +1,11 @@ +name: Stale Issues & PRs + +on: + schedule: + - cron: "30 1 * * *" + +jobs: + stale: + if: contains(fromJSON('["folke", "LazyVim"]'), github.repository_owner) + uses: folke/github/.github/workflows/stale.yml@main + secrets: inherit diff --git a/config/neovim/store/lazy-plugins/todo-comments.nvim/.github/workflows/update.yml b/config/neovim/store/lazy-plugins/todo-comments.nvim/.github/workflows/update.yml new file mode 100644 index 00000000..6784ef9c --- /dev/null +++ b/config/neovim/store/lazy-plugins/todo-comments.nvim/.github/workflows/update.yml @@ -0,0 +1,13 @@ +name: Update Repo + +on: + workflow_dispatch: + schedule: + # Run every hour + - cron: "0 * * * *" + +jobs: + update: + if: contains(fromJSON('["folke", "LazyVim"]'), github.repository_owner) + uses: folke/github/.github/workflows/update.yml@main + secrets: inherit diff --git a/config/neovim/store/lazy-plugins/todo-comments.nvim/lua/todo-comments/fzf.lua b/config/neovim/store/lazy-plugins/todo-comments.nvim/lua/todo-comments/fzf.lua new file mode 100644 index 00000000..be050160 --- /dev/null +++ b/config/neovim/store/lazy-plugins/todo-comments.nvim/lua/todo-comments/fzf.lua @@ -0,0 +1,29 @@ +local Config = require("todo-comments.config") +local Grep = require("fzf-lua.providers.grep") + +local M = {} + +---@param filter? string|string[] +local function keywords_filter(filter) + local all = vim.tbl_keys(Config.keywords) + if not filter then + return all + end + local filters = type(filter) == "string" and { filter } or filter + return vim.tbl_filter(function(kw) + return vim.tbl_contains(filters, kw) + end, all) +end + +---@param opts? {keywords: string[]} +function M.todo(opts) + opts = vim.tbl_extend("force", { + no_esc = true, + multiline = true, + }, opts or {}) + opts.no_esc = true + opts.search = Config.search_regex(keywords_filter(opts.keywords)) + return Grep.grep(opts) +end + +return M diff --git a/config/neovim/store/lazy-plugins/trouble.nvim/.editorconfig b/config/neovim/store/lazy-plugins/trouble.nvim/.editorconfig new file mode 100644 index 00000000..8b176d56 --- /dev/null +++ b/config/neovim/store/lazy-plugins/trouble.nvim/.editorconfig @@ -0,0 +1,7 @@ +root = true + +[*] +insert_final_newline = true +indent_style = space +indent_size = 2 +charset = utf-8 diff --git a/config/neovim/store/lazy-plugins/trouble.nvim/.github/ISSUE_TEMPLATE/config.yml b/config/neovim/store/lazy-plugins/trouble.nvim/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 00000000..9e5fd54b --- /dev/null +++ b/config/neovim/store/lazy-plugins/trouble.nvim/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,5 @@ +blank_issues_enabled: false +contact_links: + - name: Ask a question + url: https://github.com/folke/trouble.nvim/discussions + about: Use Github discussions instead diff --git a/config/neovim/store/lazy-plugins/trouble.nvim/.github/PULL_REQUEST_TEMPLATE.md b/config/neovim/store/lazy-plugins/trouble.nvim/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 00000000..3f7c92ea --- /dev/null +++ b/config/neovim/store/lazy-plugins/trouble.nvim/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,16 @@ +## Description + + + +## Related Issue(s) + + + +## Screenshots + + + diff --git a/config/neovim/store/lazy-plugins/trouble.nvim/.github/dependabot.yml b/config/neovim/store/lazy-plugins/trouble.nvim/.github/dependabot.yml new file mode 100644 index 00000000..5ace4600 --- /dev/null +++ b/config/neovim/store/lazy-plugins/trouble.nvim/.github/dependabot.yml @@ -0,0 +1,6 @@ +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" diff --git a/config/neovim/store/lazy-plugins/trouble.nvim/.github/workflows/labeler.yml b/config/neovim/store/lazy-plugins/trouble.nvim/.github/workflows/labeler.yml new file mode 100644 index 00000000..0908727b --- /dev/null +++ b/config/neovim/store/lazy-plugins/trouble.nvim/.github/workflows/labeler.yml @@ -0,0 +1,8 @@ +name: "PR Labeler" +on: + - pull_request_target + +jobs: + labeler: + uses: folke/github/.github/workflows/labeler.yml@main + secrets: inherit diff --git a/config/neovim/store/lazy-plugins/trouble.nvim/.github/workflows/pr.yml b/config/neovim/store/lazy-plugins/trouble.nvim/.github/workflows/pr.yml new file mode 100644 index 00000000..6d9df366 --- /dev/null +++ b/config/neovim/store/lazy-plugins/trouble.nvim/.github/workflows/pr.yml @@ -0,0 +1,18 @@ +name: PR Title + +on: + pull_request_target: + types: + - opened + - edited + - synchronize + - reopened + - ready_for_review + +permissions: + pull-requests: read + +jobs: + pr-title: + uses: folke/github/.github/workflows/pr.yml@main + secrets: inherit diff --git a/config/neovim/store/lazy-plugins/trouble.nvim/.github/workflows/stale.yml b/config/neovim/store/lazy-plugins/trouble.nvim/.github/workflows/stale.yml new file mode 100644 index 00000000..4e0273bc --- /dev/null +++ b/config/neovim/store/lazy-plugins/trouble.nvim/.github/workflows/stale.yml @@ -0,0 +1,11 @@ +name: Stale Issues & PRs + +on: + schedule: + - cron: "30 1 * * *" + +jobs: + stale: + if: contains(fromJSON('["folke", "LazyVim"]'), github.repository_owner) + uses: folke/github/.github/workflows/stale.yml@main + secrets: inherit diff --git a/config/neovim/store/lazy-plugins/trouble.nvim/.github/workflows/update.yml b/config/neovim/store/lazy-plugins/trouble.nvim/.github/workflows/update.yml new file mode 100644 index 00000000..6784ef9c --- /dev/null +++ b/config/neovim/store/lazy-plugins/trouble.nvim/.github/workflows/update.yml @@ -0,0 +1,13 @@ +name: Update Repo + +on: + workflow_dispatch: + schedule: + # Run every hour + - cron: "0 * * * *" + +jobs: + update: + if: contains(fromJSON('["folke", "LazyVim"]'), github.repository_owner) + uses: folke/github/.github/workflows/update.yml@main + secrets: inherit diff --git a/config/neovim/store/lazy-plugins/trouble.nvim/.neoconf.json b/config/neovim/store/lazy-plugins/trouble.nvim/.neoconf.json new file mode 100644 index 00000000..bd22218c --- /dev/null +++ b/config/neovim/store/lazy-plugins/trouble.nvim/.neoconf.json @@ -0,0 +1,18 @@ +{ + "neodev": { + "library": { + "plugins": [ + "plenary.nvim", + "nvim-web-devicons", + "telescope.nvim", + "lazy.nvim" + ] + } + }, + "lspconfig": { + "lua_ls": { + "Lua.runtime.version": "LuaJIT", + "Lua.workspace.checkThirdParty": false + } + } +} diff --git a/config/neovim/store/lazy-plugins/trouble.nvim/docs/examples.md b/config/neovim/store/lazy-plugins/trouble.nvim/docs/examples.md new file mode 100644 index 00000000..8b740fa9 --- /dev/null +++ b/config/neovim/store/lazy-plugins/trouble.nvim/docs/examples.md @@ -0,0 +1,166 @@ +# Examples + +## Window Options + +### Preview in small float top right + +![image](https://github.com/folke/trouble.nvim/assets/292349/f422b8fd-579e-427b-87d3-62daab85d2e0) + +```lua +{ + modes = { + preview_float = { + mode = "diagnostics", + preview = { + type = "float", + relative = "editor", + border = "rounded", + title = "Preview", + title_pos = "center", + position = { 0, -2 }, + size = { width = 0.3, height = 0.3 }, + zindex = 200, + }, + }, + }, +} +``` + +### Preview in a split to the right of the trouble list + +![image](https://github.com/folke/trouble.nvim/assets/292349/adfa02df-b3dd-4c90-af3c-41683c0b5356) + +```lua +{ + modes = { + test = { + mode = "diagnostics", + preview = { + type = "split", + relative = "win", + position = "right", + size = 0.3, + }, + }, + }, +} +``` + +### Make Trouble look like v2 + +```lua +{ + icons = { + indent = { + middle = " ", + last = " ", + top = " ", + ws = "│ ", + }, + }, + modes = { + diagnostics = { + groups = { + { "filename", format = "{file_icon} {basename:Title} {count}" }, + }, + }, + }, +} +``` + +## Filtering + +### Diagnostics for the current buffer only + +```lua +{ + modes = { + diagnostics_buffer = { + mode = "diagnostics", -- inherit from diagnostics mode + filter = { buf = 0 }, -- filter diagnostics to the current buffer + }, + } +} +``` + +### Diagnostics for the current buffer and errors from the current project + +```lua +{ + modes = { + mydiags = { + mode = "diagnostics", -- inherit from diagnostics mode + filter = { + any = { + buf = 0, -- current buffer + { + severity = vim.diagnostic.severity.ERROR, -- errors only + -- limit to files in the current project + function(item) + return item.filename:find((vim.loop or vim.uv).cwd(), 1, true) + end, + }, + }, + }, + } + } +} +``` + +### Diagnostics Cascade + +The following example shows how to create a new mode that +shows only the most severe diagnostics. + +Once those are resolved, less severe diagnostics will be shown. + +```lua +{ + modes = { + cascade = { + mode = "diagnostics", -- inherit from diagnostics mode + filter = function(items) + local severity = vim.diagnostic.severity.HINT + for _, item in ipairs(items) do + severity = math.min(severity, item.severity) + end + return vim.tbl_filter(function(item) + return item.severity == severity + end, items) + end, + }, + }, +} +``` + +## Other + +### Automatically Open Trouble Quickfix + +```lua +vim.api.nvim_create_autocmd("QuickFixCmdPost", { + callback = function() + vim.cmd([[Trouble qflist open]]) + end, +}) +``` + +Test with something like `:silent grep vim %` + +### Open Trouble Quickfix when the qf list opens + +> This is **NOT** recommended, since you won't be able to use the quickfix list for other things. + +```lua + +vim.api.nvim_create_autocmd("BufRead", { + callback = function(ev) + if vim.bo[ev.buf].buftype == "quickfix" then + vim.schedule(function() + vim.cmd([[cclose]]) + vim.cmd([[Trouble qflist open]]) + end) + end + end, +}) +``` diff --git a/config/neovim/store/lazy-plugins/trouble.nvim/docs/filter.md b/config/neovim/store/lazy-plugins/trouble.nvim/docs/filter.md new file mode 100644 index 00000000..4f0d6a72 --- /dev/null +++ b/config/neovim/store/lazy-plugins/trouble.nvim/docs/filter.md @@ -0,0 +1,98 @@ +# Filter + +## Examples + +A simple filter is a table whose keys are item attributes. +The following filter keeps items with attribute `buf = 0` **and** `ft = 'lua'`, +i.e., diagnostics with severity error to the current buffer when its filetype is `lua`. + +```lua +{ + modes = { + my_diagnostics = { + mode = 'diagnostics', + filter = { buf = 0, ft = 'lua' }, + }, + }, +} +``` + +A filter may be a function that takes `items` as parameter. +The following filter keeps items with severity `HINT` +```lua +{ + modes = { + my_diagnostics = { + mode = 'diagnostics', + filter = function(items) + return vim.tbl_filter(function(item) + return item.severity == vim.diagnostic.severity.HINT + end, items) + end, + }, + }, +} +``` + +## Advanced examples + +### The `not` filter + +The `not` negates filter results. +The following filter **removes** diagnostics with severity `INFO` +```lua +{ + modes = { + my_diagnostics = { + mode = 'diagnostics', + filter = { + ['not'] = { severity = vim.diagnostic.severity.INFO }, + }, + }, + }, +} +``` + +### The `any` filter + +The `any` filter provides logical disjunction. +The following filter **keeps** diagnostics for the current buffer **or** diagnostics with severity `ERROR` for the current project. + +```lua +{ + modes = { + my_diagnostics = { + mode = 'diagnostics', + filter = { + any = { + buf = 0, + { + severity = vim.diagnostic.severity.ERROR, + function(item) + return item.filename:find((vim.loop or vim.uv).cwd(), 1, true) + end, + }, + }, + }, + }, + }, +} +``` + +## Item attributes + +Item attributes are documented in `lua/trouble/item.lua` + +| Name | Type | Description | +| ------------ | -------------------------- | -------------------------------------------------- | +| **any** | Logical `or` | Filter result disjunction | +| **basename** | `string` | File name. | +| **buf** | `number` | Buffer id. | +| **dirname** | `string` | Directory path. | +| **filename** | `string` | Full file path. | +| **ft** | `string` or `string[]` | File types. | +| **kind** | `string` | Symbol kind. See `:h symbol`. | +| **not** | Logical `not` | Filter result negation. | +| **pos** | `{[1]:number, [2]:number}` | Item position. | +| **severity** | `number` | Diagnostic severity. See `:h diagnostic-severity`. | +| **source** | `string` | Item source. | \ No newline at end of file diff --git a/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/api.lua b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/api.lua new file mode 100644 index 00000000..8bb5bbd3 --- /dev/null +++ b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/api.lua @@ -0,0 +1,203 @@ +local Actions = require("trouble.config.actions") +local Config = require("trouble.config") +local Util = require("trouble.util") +local View = require("trouble.view") + +---@alias trouble.ApiFn fun(opts?: trouble.Config|string): trouble.View + +---@class trouble.api: trouble.actions +local M = {} +M.last_mode = nil ---@type string? + +--- Finds all open views matching the filter. +---@param opts? trouble.Config|string +---@param filter? trouble.View.filter +---@return trouble.View[], trouble.Config +function M._find(opts, filter) + opts = Config.get(opts) + if opts.mode == "last" then + opts.mode = M.last_mode + opts = Config.get(opts) + end + M.last_mode = opts.mode or M.last_mode + filter = filter or { open = true, mode = opts.mode } + return vim.tbl_map(function(v) + return v.view + end, View.get(filter)), opts +end + +--- Finds the last open view matching the filter. +---@param opts? trouble.Mode|string +---@param filter? trouble.View.filter +---@return trouble.View?, trouble.Mode +function M._find_last(opts, filter) + local views, _opts = M._find(opts, filter) + ---@cast _opts trouble.Mode + return views[#views], _opts +end + +-- Opens trouble with the given mode. +-- If a view is already open with the same mode, +-- it will be focused unless `opts.focus = false`. +-- When a view is already open and `opts.new = true`, +-- a new view will be created. +---@param opts? trouble.Mode | { new?: boolean, refresh?: boolean } | string +---@return trouble.View? +function M.open(opts) + opts = opts or {} + local view, _opts = M._find_last(opts) + if not view or _opts.new then + if not _opts.mode then + return Util.error("No mode specified") + elseif not vim.tbl_contains(Config.modes(), _opts.mode) then + return Util.error("Invalid mode `" .. _opts.mode .. "`") + end + view = View.new(_opts) + end + if view then + if view:is_open() then + if opts.refresh ~= false then + view:refresh() + end + else + view:open() + end + if _opts.focus ~= false then + view:wait(function() + view.win:focus() + end) + end + end + return view +end + +-- Closes the last open view matching the filter. +---@param opts? trouble.Mode|string +---@return trouble.View? +function M.close(opts) + local view = M._find_last(opts) + if view then + view:close() + return view + end +end + +-- Toggle the view with the given mode. +---@param opts? trouble.Mode|string +---@return trouble.View? +function M.toggle(opts) + if M.is_open(opts) then + ---@diagnostic disable-next-line: return-type-mismatch + return M.close(opts) + else + return M.open(opts) + end +end + +-- Returns true if there is an open view matching the mode. +---@param opts? trouble.Mode|string +function M.is_open(opts) + return M._find_last(opts) ~= nil +end + +-- Refresh all open views. Normally this is done automatically, +-- unless you disabled auto refresh. +---@param opts? trouble.Mode|string +function M.refresh(opts) + for _, view in ipairs(M._find(opts)) do + view:refresh() + end +end + +-- Proxy to last view's action. +---@param action trouble.Action.spec +function M._action(action) + return function(opts) + opts = opts or {} + if type(opts) == "string" then + opts = { mode = opts } + end + opts = vim.tbl_deep_extend("force", { + refresh = false, + }, opts) + local view = M.open(opts) + if view then + view:action(action, opts) + end + return view + end +end + +-- Get all items from the active view for a given mode. +---@param opts? trouble.Mode|string +function M.get_items(opts) + local view = M._find_last(opts) + local ret = {} ---@type trouble.Item[] + if view then + for _, source in pairs(view.sections) do + vim.list_extend(ret, source.items or {}) + end + end + return ret +end + +-- Renders a trouble list as a statusline component. +-- Check the docs for examples. +---@param opts? trouble.Mode|string|{hl_group?:string} +---@return {get: (fun():string), has: (fun():boolean)} +function M.statusline(opts) + local Spec = require("trouble.spec") + local Section = require("trouble.view.section") + local Render = require("trouble.view.render") + opts = Config.get(opts) + opts.indent_guides = false + opts.icons.indent.ws = "" + local renderer = Render.new(opts, { + multiline = false, + indent = false, + }) + local status = nil ---@type string? + ---@cast opts trouble.Mode + + local s = Spec.section(opts) + s.max_items = s.max_items or opts.max_items + local section = Section.new(s, opts) + section.on_update = function() + status = nil + if package.loaded["lualine"] then + vim.schedule(function() + require("lualine").refresh() + end) + else + vim.cmd.redrawstatus() + end + end + section:listen() + section:refresh() + return { + has = function() + return section.node and section.node:count() > 0 + end, + get = function() + if status then + return status + end + renderer:clear() + renderer:sections({ section }) + status = renderer:statusline() + if opts.hl_group then + status = require("trouble.config.highlights").fix_statusline(status, opts.hl_group) + end + return status + end, + } +end + +return setmetatable(M, { + __index = function(_, k) + if k == "last_mode" then + return nil + end + return M._action(k) + end, +}) diff --git a/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/async.lua b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/async.lua new file mode 100644 index 00000000..2b86e4cb --- /dev/null +++ b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/async.lua @@ -0,0 +1,135 @@ +local M = {} +local uv = vim.loop or vim.uv + +M.budget = 1 +local Scheduler = {} +Scheduler._queue = {} +Scheduler._executor = assert(uv.new_check()) + +function Scheduler.step() + local budget = M.budget * 1e6 + local start = uv.hrtime() + while #Scheduler._queue > 0 and uv.hrtime() - start < budget do + local a = table.remove(Scheduler._queue, 1) + a:_step() + if a.running then + table.insert(Scheduler._queue, a) + end + end + if #Scheduler._queue == 0 then + return Scheduler._executor:stop() + end +end + +---@param a Async +function Scheduler.add(a) + table.insert(Scheduler._queue, a) + if not Scheduler._executor:is_active() then + Scheduler._executor:start(vim.schedule_wrap(Scheduler.step)) + end +end + +--- @alias AsyncCallback fun(result?:any, error?:string) + +--- @class Async +--- @field running boolean +--- @field result? any +--- @field error? string +--- @field callbacks AsyncCallback[] +--- @field thread thread +local Async = {} +Async.__index = Async + +function Async.new(fn) + local self = setmetatable({}, Async) + self.callbacks = {} + self.running = true + self.thread = coroutine.create(fn) + Scheduler.add(self) + return self +end + +---@param result? any +---@param error? string +function Async:_done(result, error) + if self.running then + self.running = false + self.result = result + self.error = error + end + for _, callback in ipairs(self.callbacks) do + callback(result, error) + end + -- only run each callback once. + -- _done can possibly be called multiple times. + -- so we need to clear callbacks after executing them. + self.callbacks = {} +end + +function Async:_step() + local ok, res = coroutine.resume(self.thread) + if not ok then + return self:_done(nil, res) + elseif res == "abort" then + return self:_done(nil, "abort") + elseif coroutine.status(self.thread) == "dead" then + return self:_done(res) + end +end + +function Async:cancel() + self:_done(nil, "abort") +end + +---@param cb AsyncCallback +function Async:await(cb) + if not cb then + error("callback is required") + end + if self.running then + table.insert(self.callbacks, cb) + else + cb(self.result, self.error) + end +end + +function Async:sync() + while self.running do + vim.wait(10) + end + return self.error and error(self.error) or self.result +end + +--- @return boolean +function M.is_async(obj) + return obj and type(obj) == "table" and getmetatable(obj) == Async +end + +---@generic F +---@param fn F +---@return F|fun(...): Async +function M.wrap(fn) + return function(...) + local args = { ... } + return Async.new(function() + return fn(unpack(args)) + end) + end +end + +-- This will yield when called from a coroutine +---@async +function M.yield(...) + if coroutine.running() == nil then + error("Trying to yield from a non-yieldable context") + return ... + end + return coroutine.yield(...) +end + +---@async +function M.abort() + return M.yield("abort") +end + +return M diff --git a/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/cache.lua b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/cache.lua new file mode 100644 index 00000000..bcadd386 --- /dev/null +++ b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/cache.lua @@ -0,0 +1,60 @@ +---@class trouble.CacheM: {[string]: trouble.Cache} +local M = {} + +---@type table +M.stats = {} + +---@class trouble.Cache: {[string]: any} +---@field data table +---@field name string +---@field size number +local C = {} + +function C:__index(key) + local ret = C[key] + if ret then + return ret + end + ret = self.data[key] + M.stats[self.name] = M.stats[self.name] or { name = self.name, hit = 0, miss = 0 } + local stats = M.stats[self.name] + if ret ~= nil then + stats.hit = stats.hit + 1 + else + stats.miss = stats.miss + 1 + end + return ret +end + +function C:__newindex(key, value) + if self.data[key] ~= nil and value == nil then + self.size = self.size - 1 + elseif self.data[key] == nil and value ~= nil then + self.size = self.size + 1 + end + self.data[key] = value +end + +function C:clear() + self.data = {} + self.size = 0 +end + +function M.new(name) + return setmetatable({ data = {}, name = name, size = 0 }, C) +end + +function M.report() + for _, v in pairs(M.stats) do + v.ratio = math.ceil(v.hit / (v.hit + v.miss) * 100) + end + return M.stats +end + +function M.__index(_, k) + M[k] = M.new(k) + return M[k] +end + +local ret = setmetatable(M, M) +return ret diff --git a/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/command.lua b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/command.lua new file mode 100644 index 00000000..d3bf2379 --- /dev/null +++ b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/command.lua @@ -0,0 +1,136 @@ +local Config = require("trouble.config") +local Parser = require("trouble.config.parser") +local Util = require("trouble.util") + +local M = {} + +---@param prefix string +---@param line string +---@param col number +function M.complete(prefix, line, col) + line = line:sub(1, col):match("Trouble%s*(.*)$") + local parsed = M.parse(line) + local candidates = {} ---@type string[] + if vim.tbl_isempty(parsed.opts) then + if not parsed.mode then + vim.list_extend(candidates, Config.modes()) + else + if not parsed.action then + vim.list_extend(candidates, M.actions()) + end + vim.list_extend(candidates, M.complete_opts()) + end + else + vim.list_extend(candidates, M.complete_opts()) + end + candidates = vim.tbl_filter(function(x) + return tostring(x):find(prefix, 1, true) == 1 + end, candidates) + table.sort(candidates) + return candidates +end + +function M.complete_opts() + local candidates = {} ---@type string[] + local stack = { { k = "", t = Config.get() } } + while #stack > 0 do + local top = table.remove(stack) + for k, v in pairs(top.t) do + if type(k) == "number" then + k = "[" .. k .. "]" + elseif k:match("^[a-z_]+$") then + k = "." .. k + else + k = ("[%q]"):format(k) + end + local kk = top.k .. k + candidates[#candidates + 1] = kk:gsub("^%.", "") .. "=" + if type(v) == "table" and not Util.islist(v) then + table.insert(stack, { k = kk, t = v }) + end + end + end + vim.list_extend(candidates, { + "new=true", + }) + for _, w in ipairs({ "win", "preview" }) do + local winopts = { + "type=float", + "type=split", + "position=top", + "position=bottom", + "position=left", + "position=right", + "relative=editor", + "relative=win", + } + vim.list_extend( + candidates, + vim.tbl_map(function(x) + return w .. "." .. x + end, winopts) + ) + end + return candidates +end + +function M.actions() + local actions = vim.tbl_keys(require("trouble.api")) + vim.list_extend(actions, vim.tbl_keys(require("trouble.config.actions"))) + return actions +end + +---@param input string +function M.parse(input) + ---@type {mode: string, action: string, opts: trouble.Config, errors: string[], args: string[]} + local ret = Parser.parse(input) + local modes = Config.modes() + local actions = M.actions() + + -- Args can be mode and/or action + for _, a in ipairs(ret.args) do + if vim.tbl_contains(modes, a) then + ret.mode = a + elseif vim.tbl_contains(actions, a) then + ret.action = a + else + table.insert(ret.errors, "Unknown argument: " .. a) + end + end + + return ret +end + +function M.execute(input) + if input.args:match("^%s*$") then + ---@type {name: string, desc: string}[] + local modes = vim.tbl_map(function(x) + local m = Config.get(x) + local desc = m.desc or x:gsub("^%l", string.upper) + desc = Util.camel(desc, " ") + return { name = x, desc = desc } + end, Config.modes()) + + vim.ui.select(modes, { + prompt = "Select Trouble Mode:", + format_item = function(x) + return x.desc and (x.desc .. " (" .. x.name .. ")") or x.name + end, + }, function(mode) + if mode then + require("trouble").open({ mode = mode.name }) + end + end) + else + local ret = M.parse(input.args) + ret.action = ret.action or "open" + ret.opts.mode = ret.opts.mode or ret.mode + if #ret.errors > 0 then + Util.error("Error parsing command:\n- input: `" .. input.args .. "`\nErrors:\n" .. table.concat(ret.errors, "\n")) + return + end + require("trouble")[ret.action](ret.opts) + end +end + +return M diff --git a/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/config/actions.lua b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/config/actions.lua new file mode 100644 index 00000000..ecb26942 --- /dev/null +++ b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/config/actions.lua @@ -0,0 +1,181 @@ +local Util = require("trouble.util") + +---@alias trouble.Action.ctx {item?: trouble.Item, node?: trouble.Node, opts?: table} +---@alias trouble.ActionFn fun(view:trouble.View, ctx:trouble.Action.ctx) +---@alias trouble.Action {action: trouble.ActionFn, desc?: string, mode?: string} +---@alias trouble.Action.spec string|trouble.ActionFn|trouble.Action|{action: string} + +---@class trouble.actions: {[string]: trouble.ActionFn} +local M = { + -- Refresh the trouble source + refresh = function(self) + self:refresh() + end, + -- Close the trouble window + close = function(self) + self:close() + end, + -- Closes the preview and goes to the main window. + -- The Trouble window is not closed. + cancel = function(self) + self:goto_main() + end, + -- Focus the trouble window + focus = function(self) + self.win:focus() + end, + -- Open the preview + preview = function(self, ctx) + local Preview = require("trouble.view.preview") + if Preview.is_open() then + Preview.close() + else + self:preview(ctx.item) + end + end, + -- Open the preview + delete = function(self) + local enabled = self.opts.auto_refresh + self:delete() + if enabled and not self.opts.auto_refresh then + Util.warn("Auto refresh **disabled**", { id = "toggle_refresh" }) + end + end, + -- Toggle the preview + toggle_preview = function(self, ctx) + self.opts.auto_preview = not self.opts.auto_preview + local enabled = self.opts.auto_preview and "enabled" or "disabled" + local notify = (enabled == "enabled") and Util.info or Util.warn + notify("Auto preview **" .. enabled .. "**", { id = "toggle_preview" }) + local Preview = require("trouble.view.preview") + if self.opts.auto_preview then + if ctx.item then + self:preview() + end + else + Preview.close() + end + end, + -- Toggle the auto refresh + toggle_refresh = function(self) + self.opts.auto_refresh = not self.opts.auto_refresh + local enabled = self.opts.auto_refresh and "enabled" or "disabled" + local notify = (enabled == "enabled") and Util.info or Util.warn + notify("Auto refresh **" .. enabled .. "**", { id = "toggle_refresh" }) + end, + + filter = function(self, ctx) + self:filter(ctx.opts.filter) + end, + -- Show the help + help = function(self) + self:help() + end, + -- Go to the next item + next = function(self, ctx) + self:move({ down = vim.v.count1, jump = ctx.opts.jump }) + end, + -- Go to the previous item + prev = function(self, ctx) + self:move({ up = vim.v.count1, jump = ctx.opts.jump }) + end, + -- Go to the first item + first = function(self, ctx) + self:move({ idx = vim.v.count1, jump = ctx.opts.jump }) + end, + -- Go to the last item + last = function(self, ctx) + self:move({ idx = -vim.v.count1, jump = ctx.opts.jump }) + end, + -- Jump to the item if on an item, otherwise do nothing + jump_only = function(self, ctx) + if ctx.item then + self:jump(ctx.item) + end + end, + -- Jump to the item if on an item, otherwise fold the node + jump = function(self, ctx) + if ctx.item then + self:jump(ctx.item) + elseif ctx.node then + self:fold(ctx.node) + end + end, + -- Jump to the item and close the trouble window + jump_close = function(self, ctx) + if ctx.item then + self:jump(ctx.item) + self:close() + end + end, + -- Open the item in a split + jump_split = function(self, ctx) + if ctx.item then + self:jump(ctx.item, { split = true }) + end + end, + -- Open the item in a vsplit + jump_vsplit = function(self, ctx) + if ctx.item then + self:jump(ctx.item, { vsplit = true }) + end + end, + -- Dump the item to the console + inspect = function(_, ctx) + vim.print(ctx.item or (ctx.node and ctx.node.item)) + end, + fold_reduce = function(self) + self:fold_level({ add = vim.v.count1 }) + end, + fold_open_all = function(self) + self:fold_level({ level = 1000 }) + end, + fold_more = function(self) + self:fold_level({ add = -vim.v.count1 }) + end, + fold_close_all = function(self) + self:fold_level({ level = 0 }) + end, + fold_update = function(self, ctx) + self:fold_level({}) + self:fold(ctx.node, { action = "open" }) + end, + fold_update_all = function(self) + self:fold_level({}) + end, + fold_disable = function(self) + self.renderer.foldenable = false + self:render() + end, + fold_enable = function(self) + self.renderer.foldenable = true + self:render() + end, + fold_toggle_enable = function(self) + self.renderer.foldenable = not self.renderer.foldenable + self:render() + end, +} + +for _, fold_action in ipairs({ "toggle", "open", "close" }) do + for _, recursive in ipairs({ true, false }) do + local desc = "Fold " .. fold_action .. " " .. (recursive and "recursive" or "") + local name = "fold_" .. fold_action .. (recursive and "_recursive" or "") + M[name] = { + action = function(self, ctx) + self:fold(ctx.node, { action = fold_action, recursive = recursive }) + end, + desc = desc, + } + end +end + +return setmetatable(M, { + __index = function(_, k) + if k == "previous" then + Util.warn("`previous` is deprecated, use `prev` instead") + else + Util.error("Action not found: " .. k) + end + end, +}) diff --git a/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/config/highlights.lua b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/config/highlights.lua new file mode 100644 index 00000000..67291aab --- /dev/null +++ b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/config/highlights.lua @@ -0,0 +1,113 @@ +local Util = require("trouble.util") + +local M = {} + +-- stylua: ignore +M.colors = { + -- General + Normal = "NormalFloat", + NormalNC = "NormalFloat", + Text = "Normal", + Preview = "Visual", + + -- Item + Filename = "Directory", + Basename = "TroubleFilename", + Directory = "Directory", + IconDirectory = "Special", + Source = "Comment", + Code = "Special", + Pos = "LineNr", + Count = "TabLineSel", + + -- Indent Guides + Indent = "LineNr", + IndentFoldClosed = "CursorLineNr", + IndentFoldOpen = "TroubleIndent", + IndentTop = "TroubleIndent", + IndentMiddle = "TroubleIndent", + IndentLast = "TroubleIndent", + IndentWs = "TroubleIndent", + + -- LSP Symbol Kinds + IconArray = "@punctuation.bracket", + IconBoolean = "@boolean", + IconClass = "@type", + IconConstant = "@constant", + IconConstructor = "@constructor", + IconEnum = "@lsp.type.enum", + IconEnumMember = "@lsp.type.enumMember", + IconEvent = "Special", + IconField = "@variable.member", + IconFile = "Normal", + IconFunction = "@function", + IconInterface = "@lsp.type.interface", + IconKey = "@lsp.type.keyword", + IconMethod = "@function.method", + IconModule = "@module", + IconNamespace = "@module", + IconNull = "@constant.builtin", + IconNumber = "@number", + IconObject = "@constant", + IconOperator = "@operator", + IconPackage = "@module", + IconProperty = "@property", + IconString = "@string", + IconStruct = "@lsp.type.struct", + IconTypeParameter = "@lsp.type.typeParameter", + IconVariable = "@variable", +} + +function M.setup() + M.link(M.colors) + M.source("fs") + vim.api.nvim_create_autocmd("ColorScheme", { + group = vim.api.nvim_create_augroup("trouble.colorscheme", { clear = true }), + callback = function() + M._fixed = {} + end, + }) +end + +---@param prefix? string +---@param links table +function M.link(links, prefix) + for k, v in pairs(links) do + k = (prefix or "Trouble") .. k + vim.api.nvim_set_hl(0, k, { link = v, default = true }) + end +end + +---@param source string +---@param links? table +function M.source(source, links) + ---@type table + links = vim.tbl_extend("force", { + Filename = "TroubleFilename", + Basename = "TroubleFilename", + Source = "TroubleSource", + Pos = "TroublePos", + Count = "TroubleCount", + }, links or {}) + M.link(links, "Trouble" .. Util.camel(source)) +end + +M._fixed = {} ---@type table +---@param sl string +function M.fix_statusline(sl, statusline_hl) + local bg = vim.api.nvim_get_hl(0, { name = statusline_hl, link = false }) + bg = bg and bg.bg or nil + + return sl:gsub("%%#(.-)#", function(hl) + if not M._fixed[hl] then + local opts = vim.api.nvim_get_hl(0, { name = hl, link = false }) or {} + opts.bg = bg + local group = "TroubleStatusline" .. vim.tbl_count(M._fixed) + vim.api.nvim_set_hl(0, group, opts) + M._fixed[hl] = group + end + return "%#" .. M._fixed[hl] .. "#" + end) +end + +return M diff --git a/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/config/init.lua b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/config/init.lua new file mode 100644 index 00000000..eb37a1a5 --- /dev/null +++ b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/config/init.lua @@ -0,0 +1,337 @@ +---@class trouble.Config.mod: trouble.Config +local M = {} + +---@class trouble.Mode: trouble.Config,trouble.Section.spec +---@field desc? string +---@field sections? string[] + +---@class trouble.Config +---@field mode? string +---@field config? fun(opts:trouble.Config) +---@field formatters? table custom formatters +---@field filters? table custom filters +---@field sorters? table custom sorters +local defaults = { + debug = false, + auto_close = false, -- auto close when there are no items + auto_open = false, -- auto open when there are items + auto_preview = true, -- automatically open preview when on an item + auto_refresh = true, -- auto refresh when open + auto_jump = false, -- auto jump to the item when there's only one + focus = false, -- Focus the window when opened + restore = true, -- restores the last location in the list when opening + follow = true, -- Follow the current item + indent_guides = true, -- show indent guides + max_items = 200, -- limit number of items that can be displayed per section + multiline = true, -- render multi-line messages + pinned = false, -- When pinned, the opened trouble window will be bound to the current buffer + warn_no_results = true, -- show a warning when there are no results + open_no_results = false, -- open the trouble window when there are no results + ---@type trouble.Window.opts + win = {}, -- window options for the results window. Can be a split or a floating window. + -- Window options for the preview window. Can be a split, floating window, + -- or `main` to show the preview in the main editor window. + ---@type trouble.Window.opts + preview = { + type = "main", + -- when a buffer is not yet loaded, the preview window will be created + -- in a scratch buffer with only syntax highlighting enabled. + -- Set to false, if you want the preview to always be a real loaded buffer. + scratch = true, + }, + -- Throttle/Debounce settings. Should usually not be changed. + ---@type table + throttle = { + refresh = 20, -- fetches new data when needed + update = 10, -- updates the window + render = 10, -- renders the window + follow = 100, -- follows the current item + preview = { ms = 100, debounce = true }, -- shows the preview for the current item + }, + -- Key mappings can be set to the name of a builtin action, + -- or you can define your own custom action. + ---@type table + keys = { + ["?"] = "help", + r = "refresh", + R = "toggle_refresh", + q = "close", + o = "jump_close", + [""] = "cancel", + [""] = "jump", + ["<2-leftmouse>"] = "jump", + [""] = "jump_split", + [""] = "jump_vsplit", + -- go down to next item (accepts count) + -- j = "next", + ["}"] = "next", + ["]]"] = "next", + -- go up to prev item (accepts count) + -- k = "prev", + ["{"] = "prev", + ["[["] = "prev", + dd = "delete", + d = { action = "delete", mode = "v" }, + i = "inspect", + p = "preview", + P = "toggle_preview", + zo = "fold_open", + zO = "fold_open_recursive", + zc = "fold_close", + zC = "fold_close_recursive", + za = "fold_toggle", + zA = "fold_toggle_recursive", + zm = "fold_more", + zM = "fold_close_all", + zr = "fold_reduce", + zR = "fold_open_all", + zx = "fold_update", + zX = "fold_update_all", + zn = "fold_disable", + zN = "fold_enable", + zi = "fold_toggle_enable", + gb = { -- example of a custom action that toggles the active view filter + action = function(view) + view:filter({ buf = 0 }, { toggle = true }) + end, + desc = "Toggle Current Buffer Filter", + }, + s = { -- example of a custom action that toggles the severity + action = function(view) + local f = view:get_filter("severity") + local severity = ((f and f.filter.severity or 0) + 1) % 5 + view:filter({ severity = severity }, { + id = "severity", + template = "{hl:Title}Filter:{hl} {severity}", + del = severity == 0, + }) + end, + desc = "Toggle Severity Filter", + }, + }, + ---@type table + modes = { + -- sources define their own modes, which you can use directly, + -- or override like in the example below + lsp_references = { + -- some modes are configurable, see the source code for more details + params = { + include_declaration = true, + }, + }, + -- The LSP base mode for: + -- * lsp_definitions, lsp_references, lsp_implementations + -- * lsp_type_definitions, lsp_declarations, lsp_command + lsp_base = { + params = { + -- don't include the current location in the results + include_current = false, + }, + }, + -- more advanced example that extends the lsp_document_symbols + symbols = { + desc = "document symbols", + mode = "lsp_document_symbols", + focus = false, + win = { position = "right" }, + filter = { + -- remove Package since luals uses it for control flow structures + ["not"] = { ft = "lua", kind = "Package" }, + any = { + -- all symbol kinds for help / markdown files + ft = { "help", "markdown" }, + -- default set of symbol kinds + kind = { + "Class", + "Constructor", + "Enum", + "Field", + "Function", + "Interface", + "Method", + "Module", + "Namespace", + "Package", + "Property", + "Struct", + "Trait", + }, + }, + }, + }, + }, + -- stylua: ignore + icons = { + ---@type trouble.Indent.symbols + indent = { + top = "│ ", + middle = "├╴", + last = "└╴", + -- last = "-╴", + -- last = "╰╴", -- rounded + fold_open = " ", + fold_closed = " ", + ws = " ", + }, + folder_closed = " ", + folder_open = " ", + kinds = { + Array = " ", + Boolean = "󰨙 ", + Class = " ", + Constant = "󰏿 ", + Constructor = " ", + Enum = " ", + EnumMember = " ", + Event = " ", + Field = " ", + File = " ", + Function = "󰊕 ", + Interface = " ", + Key = " ", + Method = "󰊕 ", + Module = " ", + Namespace = "󰦮 ", + Null = " ", + Number = "󰎠 ", + Object = " ", + Operator = " ", + Package = " ", + Property = " ", + String = " ", + Struct = "󰆼 ", + TypeParameter = " ", + Variable = "󰀫 ", + }, + }, +} + +---@type trouble.Config +local options + +---@param opts? trouble.Config +function M.setup(opts) + if vim.fn.has("nvim-0.9.2") == 0 then + local msg = "trouble.nvim requires Neovim >= 0.9.2" + vim.notify_once(msg, vim.log.levels.ERROR, { title = "trouble.nvim" }) + error(msg) + return + end + opts = opts or {} + + if opts.auto_open then + require("trouble.util").warn({ + "You specified `auto_open = true` in your global config.", + "This is probably not what you want.", + "Add it to the mode you want to auto open instead.", + "```lua", + "opts = {", + " modes = {", + " diagnostics = { auto_open = true },", + " }", + "}", + "```", + "Disabling global `auto_open`.", + }) + opts.auto_open = nil + end + opts.mode = nil + options = {} + options = M.get(opts) + require("trouble.config.highlights").setup() + vim.api.nvim_create_user_command("Trouble", function(input) + require("trouble.command").execute(input) + end, { + nargs = "*", + complete = function(...) + return require("trouble.command").complete(...) + end, + desc = "Trouble", + }) + require("trouble.view.main").setup() + vim.schedule(function() + for mode, mode_opts in pairs(options.modes) do + if mode_opts.auto_open then + require("trouble.view").new(M.get(mode)) + end + end + end) + return options +end + +--- Update the default config. +--- Should only be used by source to extend the default config. +---@param config trouble.Config +function M.defaults(config) + options = vim.tbl_deep_extend("force", config, options) +end + +function M.modes() + require("trouble.sources").load() + local ret = {} ---@type string[] + for k, v in pairs(options.modes) do + if v.source or v.mode or v.sections then + ret[#ret + 1] = k + end + end + table.sort(ret) + return ret +end + +---@param ...? trouble.Config|string +---@return trouble.Config +function M.get(...) + options = options or M.setup() + + -- check if we need to load sources + for i = 1, select("#", ...) do + ---@type trouble.Config? + local opts = select(i, ...) + if type(opts) == "string" or (type(opts) == "table" and opts.mode) then + M.modes() -- trigger loading of sources + break + end + end + + ---@type trouble.Config[] + local all = { {}, defaults, options or {} } + + ---@type table + local modes = {} + local first_mode ---@type string? + + for i = 1, select("#", ...) do + ---@type trouble.Config? + local opts = select(i, ...) + if type(opts) == "string" then + opts = { mode = opts } + end + if opts then + table.insert(all, opts) + local idx = #all + while opts.mode and not modes[opts.mode] do + first_mode = first_mode or opts.mode + modes[opts.mode or ""] = true + opts = options.modes[opts.mode] or {} + table.insert(all, idx, opts) + end + end + end + + local ret = vim.tbl_deep_extend("force", unpack(all)) + + if type(ret.config) == "function" then + ret.config(ret) + end + ret.mode = first_mode + + return ret +end + +return setmetatable(M, { + __index = function(_, key) + options = options or M.setup() + assert(options, "should be setup") + return options[key] + end, +}) diff --git a/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/config/parser.lua b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/config/parser.lua new file mode 100644 index 00000000..830e1ac9 --- /dev/null +++ b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/config/parser.lua @@ -0,0 +1,80 @@ +local M = {} + +---@param t table +---@param dotted_key string +---@param value any +function M.dotset(t, dotted_key, value) + local keys = vim.split(dotted_key, ".", { plain = true }) + for i = 1, #keys - 1 do + local key = keys[i] + t[key] = t[key] or {} + if type(t[key]) ~= "table" then + t[key] = {} + end + t = t[key] + end + ---@diagnostic disable-next-line: no-unknown + t[keys[#keys]] = value +end + +---@return {args: string[], opts: table, errors: string[]} +function M.parse(input) + ---@type string?, string? + local positional, options = input:match("^%s*(.-)%s*([a-z%._]+%s*=.*)$") + positional = positional or input + positional = vim.trim(positional) + local ret = { + args = positional == "" and {} or vim.split(positional, "%s+"), + opts = {}, + errors = {}, + } + if not options then + return ret + end + input = options + local parser = vim.treesitter.get_string_parser(input, "lua") + parser:parse() + local query = vim.treesitter.query.parse( + "lua", + [[ + (ERROR) @error + (assignment_statement (variable_list name: (_)) @name) + (assignment_statement (expression_list value: (_)) @value) + (_ value: (identifier) @global (#has-ancestor? @global expression_list)) + ]] + ) + ---@type table + local env = { + dotset = M.dotset, + opts = ret.opts, + } + local lines = {} ---@type string[] + local name = "" + ---@diagnostic disable-next-line: missing-parameter + for id, node in query:iter_captures(parser:trees()[1]:root(), input) do + local capture = query.captures[id] + local text = vim.treesitter.get_node_text(node, input) + if capture == "name" then + name = text + elseif capture == "value" then + table.insert(lines, ("dotset(opts, %q, %s)"):format(name, text)) + elseif capture == "global" then + env[text] = text + elseif capture == "error" then + table.insert(ret.errors, text) + end + end + local ok, err = pcall(function() + local code = table.concat(lines, "\n") + env.vim = vim + -- selene: allow(incorrect_standard_library_use) + local chunk = load(code, "trouble", "t", env) + chunk() + end) + if not ok then + table.insert(ret.errors, err) + end + return ret +end + +return M diff --git a/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/docs.lua b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/docs.lua new file mode 100644 index 00000000..2857902c --- /dev/null +++ b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/docs.lua @@ -0,0 +1,112 @@ +local Config = require("trouble.config") +local Docs = require("lazy.docs") +local LazyUtil = require("lazy.util") + +local M = {} + +function M.update() + local config = Docs.extract("lua/trouble/config/init.lua", "\n(--@class trouble%.Mode.-\n})") + config = config:gsub("%s*debug = false.\n", "\n") + Docs.save({ + config = config, + colors = Docs.colors({ + modname = "trouble.config.highlights", + path = "lua/trouble/config/highlights.lua", + name = "Trouble", + }), + modes = M.modes(), + api = M.api(), + }) +end + +---@return ReadmeBlock +function M.modes() + ---@type string[] + local lines = {} + + local exclude = { "fs", "todo" } + local modes = Config.modes() + for _, mode in ipairs(modes) do + if not vim.tbl_contains(exclude, mode) then + local m = Config.get(mode) + lines[#lines + 1] = ("- **%s**: %s"):format(mode, m.desc or "") + end + end + + return { content = table.concat(lines, "\n") } +end + +---@return ReadmeBlock +function M.api() + local lines = vim.split(LazyUtil.read_file("lua/trouble/api.lua"), "\n") + + local funcs = {} + + ---@type string[] + local f = {} + + for _, line in ipairs(lines) do + if line:match("^%-%-") then + f[#f + 1] = line + elseif line:match("^function") and not line:match("^function M%._") then + f[#f + 1] = line:gsub("^function M", [[require("trouble")]]) + funcs[#funcs + 1] = table.concat(f, "\n") + f = {} + else + f = {} + end + end + + lines = vim.split(LazyUtil.read_file("lua/trouble/config/actions.lua"), "\n") + f = {} + ---@type table + local comments = {} + + for _, line in ipairs(lines) do + if line:match("^%s*%-%-") then + f[#f + 1] = line:gsub("^%s*[%-]*%s*", "") + elseif line:match("^%s*[%w_]+ = function") then + local name = line:match("^%s*([%w_]+)") + if not name:match("^_") and #f > 0 then + comments[name] = table.concat(f, "\n") + end + f = {} + else + f = {} + end + end + local Actions = require("trouble.config.actions") + local names = vim.tbl_keys(Actions) + table.sort(names) + + local exclude = { "close" } + + for _, k in ipairs(names) do + local desc = comments[k] or k:gsub("_", " ") + local action = Actions[k] + if type(Actions[k]) == "table" then + desc = action.desc or desc + action = action.action + end + desc = table.concat( + vim.tbl_map(function(line) + return ("-- %s"):format(line) + end, vim.split(desc, "\n")), + "\n" + ) + if type(action) == "function" and not vim.tbl_contains(exclude, k) then + funcs[#funcs + 1] = ([[ +%s +---@param opts? trouble.Mode | { new? : boolean } | string +---@return trouble.View +require("trouble").%s(opts)]]):format(desc, k) + end + end + return { content = table.concat(funcs, "\n\n"), lang = "lua" } +end + +M.update() +print("Updated docs") +-- M.api() + +return M diff --git a/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/filter.lua b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/filter.lua new file mode 100644 index 00000000..6aed7dab --- /dev/null +++ b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/filter.lua @@ -0,0 +1,136 @@ +local Util = require("trouble.util") + +local M = {} + +---@class trouble.ViewFilter.opts +---@field id? string +---@field template? string +---@field data? table +---@field toggle? boolean +---@field del? boolean + +---@class trouble.ViewFilter +---@field id string +---@field filter trouble.Filter +---@field template? string +---@field data? table + +---@param opts? {lines:boolean} +---@param range trouble.Range +---@param pos trouble.Pos +function M.overlaps(pos, range, opts) + if opts and opts.lines then + return pos[1] >= range.pos[1] and pos[1] <= range.end_pos[1] + else + return (pos[1] > range.pos[1] or (pos[1] == range.pos[1] and pos[2] >= range.pos[2])) + and (pos[1] < range.end_pos[1] or (pos[1] == range.end_pos[1] and pos[2] <= range.end_pos[2])) + end +end + +---@alias trouble.Filter.ctx {opts:trouble.Config, main?:trouble.Main} +---@alias trouble.FilterFn fun(item:trouble.Item, value: any, ctx:trouble.Filter.ctx): boolean +---@class trouble.Filters: {[string]: trouble.FilterFn} +M.filters = { + buf = function(item, buf, ctx) + if buf == 0 then + return ctx.main and ctx.main.filename == item.filename or false + end + return item.buf == buf + end, + ---@param fts string|string[] + ft = function(item, fts, _) + fts = type(fts) == "table" and fts or { fts } + local ft = item.buf and vim.bo[item.buf].filetype + return ft and vim.tbl_contains(fts, ft) or false + end, + range = function(item, buf, ctx) + local main = ctx.main + if not main or (main.buf ~= item.buf) then + return false + end + local range = item.range --[[@as trouble.Range]] + if range then + return M.overlaps(main.cursor, range, { lines = true }) + else + return M.overlaps(main.cursor, item, { lines = true }) + end + end, + ["not"] = function(item, filter, ctx) + ---@cast filter trouble.Filter + return not M.is(item, filter, ctx) + end, + any = function(item, any, ctx) + ---@cast any trouble.Filter[] + for k, f in pairs(any) do + if type(k) == "string" then + f = { [k] = f } + end + if M.is(item, f, ctx) then + return true + end + end + return false + end, +} + +---@param item trouble.Item +---@param filter trouble.Filter +---@param ctx trouble.Filter.ctx +function M.is(item, filter, ctx) + if type(filter) == "table" and Util.islist(filter) then + for _, f in ipairs(filter) do + if not M.is(item, f, ctx) then + return false + end + end + return true + end + + filter = type(filter) == "table" and filter or { filter } + for k, v in pairs(filter) do + ---@type trouble.FilterFn? + local filter_fn = ctx.opts.filters and ctx.opts.filters[k] or M.filters[k] + if filter_fn then + if not filter_fn(item, v, ctx) then + return false + end + elseif type(k) == "number" then + if type(v) == "function" then + if not v(item) then + return false + end + elseif not item[v] then + return false + end + elseif type(v) == "table" then + if not vim.tbl_contains(v, item[k]) then + return false + end + elseif item[k] ~= v then + return false + end + end + return true +end + +---@param items trouble.Item[] +---@param filter? trouble.Filter +---@param ctx trouble.Filter.ctx +function M.filter(items, filter, ctx) + -- fast path for empty filter + if not filter or (type(filter) == "table" and vim.tbl_isempty(filter)) then + return items, {} + end + if type(filter) == "function" then + return filter(items) + end + local ret = {} ---@type trouble.Item[] + for _, item in ipairs(items) do + if M.is(item, filter, ctx) then + ret[#ret + 1] = item + end + end + return ret +end + +return M diff --git a/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/format.lua b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/format.lua new file mode 100644 index 00000000..78e8afe3 --- /dev/null +++ b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/format.lua @@ -0,0 +1,253 @@ +local Cache = require("trouble.cache") +local Util = require("trouble.util") + +local M = {} + +---@alias trouble.spec.format string|trouble.Format|(string|trouble.Format)[] +---@alias trouble.Format {text:string, hl?:string} + +---@alias trouble.Formatter fun(ctx: trouble.Formatter.ctx): trouble.spec.format? +---@alias trouble.Formatter.ctx {item: trouble.Item, node:trouble.Node, field:string, value:string, opts:trouble.Config} + +---@param source string +---@param field string +function M.default_hl(source, field) + if not source then + return "Trouble" .. Util.camel(field) + end + local key = source .. field + local value = Cache.default_hl[key] + if value then + return value + end + local hl = "Trouble" .. Util.camel(source) .. Util.camel(field) + Cache.default_hl[key] = hl + return hl +end + +---@type (fun(file: string, ext: string): string, string)[] +local icons = { + function(file) + return require("mini.icons").get("file", file) + end, + function(file, ext) + return require("nvim-web-devicons").get_icon(file, ext, { default = true }) + end, +} +function M.get_icon(file, ext) + while #icons > 0 do + local ok, icon, hl = pcall(icons[1], file, ext) + if ok then + return icon, hl + end + table.remove(icons, 1) + end +end + +---@param fn trouble.Formatter +---@param field string +function M.cached_formatter(fn, field) + local cache = {} + ---@param ctx trouble.Formatter.ctx + return function(ctx) + local key = ctx.item.source .. field .. (ctx.item[field] or "") + local result = cache[key] + if result then + return result + end + result = fn(ctx) + cache[key] = result + return result + end +end + +---@type table +M.formatters = { + pos = function(ctx) + return { + text = "[" .. ctx.item.pos[1] .. ", " .. (ctx.item.pos[2] + 1) .. "]", + } + end, + code = function(ctx) + if not ctx.item.code or ctx.item.code == vim.NIL then + return + end + return { + text = "(" .. ctx.item.code .. ")", + hl = "TroubleCode", + } + end, + severity = function(ctx) + local severity = ctx.item.severity or vim.diagnostic.severity.ERROR + local name = vim.diagnostic.severity[severity] or "OTHER" + return { + text = name, + hl = "Diagnostic" .. Util.camel(name:lower()), + } + end, + severity_icon = function(ctx) + local severity = ctx.item.severity or vim.diagnostic.severity.ERROR + if not vim.diagnostic.severity[severity] then + return + end + if type(severity) == "string" then + severity = vim.diagnostic.severity[severity:upper()] or vim.diagnostic.severity.ERROR + end + local name = Util.camel(vim.diagnostic.severity[severity]:lower()) + local sign = vim.fn.sign_getdefined("DiagnosticSign" .. name)[1] + if vim.fn.has("nvim-0.10.0") == 1 then + local config = vim.diagnostic.config() or {} + if config.signs == nil or type(config.signs) == "boolean" then + return { text = sign and sign.text or name:sub(1, 1), hl = "DiagnosticSign" .. name } + end + local signs = config.signs or {} + if type(signs) == "function" then + signs = signs(0, 0) --[[@as vim.diagnostic.Opts.Signs]] + end + return { + text = signs.text and signs.text[severity] or sign and sign.text or name:sub(1, 1), + hl = "DiagnosticSign" .. name, + } + else + return sign and { text = sign.text, hl = sign.texthl } or { text = name } or nil + end + end, + file_icon = function(ctx) + local item = ctx.item --[[@as Diagnostic|trouble.Item]] + local file = vim.fn.fnamemodify(item.filename, ":t") + local ext = vim.fn.fnamemodify(item.filename, ":e") + local icon, color = M.get_icon(file, ext) + return icon and { text = icon .. " ", hl = color } or "" + end, + count = function(ctx) + return { + text = (" %d "):format(ctx.node:count()), + } + end, + filename = function(ctx) + return { + text = vim.fn.fnamemodify(ctx.item.filename, ":p:~:."), + } + end, + dirname = function(ctx) + return { + text = vim.fn.fnamemodify(ctx.item.dirname, ":p:~:."), + } + end, + filter = function(ctx) + return { + text = vim.inspect(ctx.item.filter):gsub("%s+", " "), + hl = "ts.lua", + } + end, + kind_icon = function(ctx) + if not ctx.item.kind then + return + end + local icon = ctx.opts.icons.kinds[ctx.item.kind] + if icon then + return { + text = icon, + hl = "TroubleIcon" .. ctx.item.kind, + } + end + end, + directory = function(ctx) + if ctx.node:source() == "fs" then + local directory = ctx.item.directory or "" + local parent = ctx.node:parent_item() + if parent and parent.directory then + directory = directory:sub(#parent.directory + 1) + return { text = directory, hl = "TroubleDirectory" } + end + return { text = vim.fn.fnamemodify(directory, ":~"), hl = "TroubleDirectory" } + end + end, + directory_icon = function(ctx) + if ctx.node:source() == "fs" then + local text = ctx.node.folded and ctx.opts.icons.folder_closed or ctx.opts.icons.folder_open + return { text = text, hl = "TroubleIconDirectory" } + end + end, +} +M.formatters.severity_icon = M.cached_formatter(M.formatters.severity_icon, "severity") +M.formatters.severity = M.cached_formatter(M.formatters.severity, "severity") + +---@param ctx trouble.Formatter.ctx +function M.field(ctx) + ---@type trouble.Format[] + local format = { { fi = ctx.field, text = vim.trim(tostring(ctx.item[ctx.field] or "")) } } + + local opts = ctx.opts + + local formatter = opts.formatters and opts.formatters[ctx.field] or M.formatters[ctx.field] + + if formatter then + local result = formatter(ctx) + if not result then + return + end + result = type(result) == "table" and Util.islist(result) and result or { result } + format = {} + ---@cast result (string|trouble.Format)[] + for _, f in ipairs(result) do + ---@diagnostic disable-next-line: assign-type-mismatch + format[#format + 1] = type(f) == "string" and { text = f } or f + end + end + for _, f in ipairs(format) do + f.hl = f.hl or M.default_hl(ctx.item.source, ctx.field) + end + return format +end + +---@param format string +---@param ctx {item: trouble.Item, node:trouble.Node, opts:trouble.Config} +function M.format(format, ctx) + ---@type trouble.Format[] + local ret = {} + local hl ---@type string? + while true do + ---@type string?,string,string + local before, fields, after = format:match("^(.-){(.-)}(.*)$") + if not before then + break + end + format = after + if #before > 0 then + ret[#ret + 1] = { text = before, hl = hl } + end + + for _, field in Util.split(fields, "|") do + ---@type string,string + local field_name, field_hl = field:match("^(.-):(.+)$") + if field_name then + field = field_name + end + if field == "hl" then + hl = field_hl + else + ---@cast ctx trouble.Formatter.ctx + ctx.field = field + ctx.value = ctx.item[field] + local ff = M.field(ctx) + if ff then + for _, f in ipairs(ff) do + if hl or field_hl then + f.hl = field_hl or hl + end + ret[#ret + 1] = f + end + -- only render the first field + break + end + end + end + end + if #format > 0 then + ret[#ret + 1] = { text = format, hl = hl } + end + return ret +end + +return M diff --git a/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/item.lua b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/item.lua new file mode 100644 index 00000000..5719993f --- /dev/null +++ b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/item.lua @@ -0,0 +1,185 @@ +local Cache = require("trouble.cache") +local Util = require("trouble.util") + +---@alias trouble.Pos {[1]:number, [2]:number} +---@class trouble.Range +---@field pos trouble.Pos +---@field end_pos trouble.Pos + +---@class trouble.Item: {[string]: any} +---@field id? string +---@field parent? trouble.Item +---@field buf? number +---@field filename string +---@field pos trouble.Pos (1,0)-indexed +---@field end_pos? trouble.Pos (1,0)-indexed +---@field item table +---@field source string +---@field cache table +---@field range? trouble.Range +local M = {} + +---@param opts trouble.Item | {filename?:string} +function M.new(opts) + local self = opts + assert(self.source, "source is required") + self.pos = self.pos or { 1, 0 } + self.pos[1] = math.max(self.pos[1] or 1, 1) + self.pos[2] = math.max(self.pos[2] or 0, 0) + self.end_pos = self.end_pos or self.pos + self.item = self.item or {} + if self.buf and not self.filename then + self.filename = vim.api.nvim_buf_get_name(self.buf) + if self.filename == "" then + self.filename = "[buffer:" .. self.buf .. "]" + end + end + assert(self.filename, "filename is required") + if self.filename then + self.filename = vim.fs.normalize(self.filename) + local parts = vim.split(self.filename, "/", { plain = true }) + self.basename = table.remove(parts) + self.dirname = table.concat(parts, "/") + end + self.cache = Cache.new("item") + return setmetatable(self, M) +end + +---@param items trouble.Item[] +---@param fields? string[] +function M.add_id(items, fields) + for _, item in ipairs(items) do + if not item.id then + local id = { + item.source, + item.filename, + item.pos[1] or "", + item.pos[2] or "", + item.end_pos[1] or "", + item.end_pos[2] or "", + } + for _, field in ipairs(fields or {}) do + table.insert(id, item[field] or "") + end + item.id = table.concat(id, ":") + end + end +end + +---@return string? +function M:get_ft(buf) + if self.buf and vim.api.nvim_buf_is_loaded(self.buf) then + return vim.bo[self.buf].filetype + end + if not self.filename then + return + end + local ft = Cache.ft[self.filename] + if ft == nil then + -- HACK: make sure we always pass a valid buf, + -- otherwise some detectors will fail hard (like ts) + ft = vim.filetype.match({ filename = self.filename, buf = buf or 0 }) + Cache.ft[self.filename] = ft or false -- cache misses too + end + return ft +end + +function M:get_lang(buf) + local ft = self:get_ft(buf) + return ft and ft ~= "" and vim.treesitter.language.get_lang(ft) or nil +end + +function M:__index(k) + if type(k) ~= "string" then + return + end + if M[k] then + return M[k] + end + local item = rawget(self, "item") + ---@cast k string + if item and item[k] ~= nil then + return item[k] + end + + local obj = self + + local start = 1 + while type(obj) == "table" do + local dot = k:find(".", start, true) + if not dot then + if start == 1 then + return + end + local ret = obj[k:sub(start)] + rawset(self, k, ret) + return ret + end + local key = k:sub(start, dot - 1) + obj = obj[key] + start = dot + 1 + end +end + +---@param item trouble.Item +function M:add_child(item) + item.parent = self +end + +---@param items trouble.Item[] +---@param opts? {mode?:"range"|"full"|"after", multiline?:boolean} +function M.add_text(items, opts) + opts = opts or {} + opts.mode = opts.mode or "range" + local todo = {} ---@type table + + for _, item in ipairs(items) do + if not item.item.text and item.filename then + -- schedule to get the lines + todo[item.filename] = todo[item.filename] or { rows = {} } + todo[item.filename].buf = todo[item.filename].buf or item.buf + for r = item.pos[1], item.end_pos and item.end_pos[1] or item.pos[1] do + table.insert(todo[item.filename].rows, r) + if not opts.multiline then + break + end + end + end + end + + -- get the lines and range text + local buf_lines = {} ---@type table> + for path, t in pairs(todo) do + buf_lines[path] = Util.get_lines({ + rows = t.rows, + buf = t.buf, + path = path, + }) or {} + end + for _, item in ipairs(items) do + if not item.item.text and item.filename then + local lines = {} ---@type string[] + for row = item.pos[1], item.end_pos[1] do + local line = buf_lines[item.filename][row] or "" + if row == item.pos[1] and row == item.end_pos[1] then + if opts.mode == "after" then + line = line:sub(item.pos[2] + 1) + elseif opts.mode == "range" then + line = line:sub(item.pos[2] + 1, item.end_pos[2]) + end + elseif row == item.pos[1] then + line = line:sub(item.pos[2] + 1) + elseif row == item.end_pos[1] then + line = line:sub(1, item.end_pos[2]) --[[@as string]] + end + if line ~= "" then + lines[#lines + 1] = line + end + end + item.item.text = table.concat(lines, "\n") + end + end + return items +end + +return M diff --git a/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/promise.lua b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/promise.lua new file mode 100644 index 00000000..28369c92 --- /dev/null +++ b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/promise.lua @@ -0,0 +1,201 @@ +local Util = require("trouble.util") + +---@alias trouble.Promise.state "pending" | "fulfilled" | "rejected" + +---@class trouble.Promise +---@field state trouble.Promise.state +---@field value any? +---@field queue (fun())[] +---@field resolve fun(value) +---@field reject fun(reason) +---@field has_next boolean +local P = {} +P.__index = P + +--- Creates a new promise +---@param executor fun(resolve: fun(value), reject: fun(reason)) +---@return trouble.Promise +function P.new(executor) + local self = setmetatable({}, P) + self.state = "pending" + self.value = nil + self.queue = {} + self.has_next = false + + ---@param state trouble.Promise.state + local function transition(state, result) + if self.state == "pending" then + self.state = state + self.value = result + for _, cb in ipairs(self.queue) do + cb() + end + if state == "rejected" and not self.has_next then + local bt = debug.traceback() + vim.schedule(function() + if not self.has_next then + Util.error("Unhandled promise rejection:\n```lua\n" .. tostring(result) .. "\n\n" .. bt .. "```") + end + end) + end + end + end + + self.resolve = function(value) + transition("fulfilled", value) + end + self.reject = function(reason) + transition("rejected", reason) + end + + xpcall(function() + executor(self.resolve, self.reject) + end, function(err) + self.reject(err) + end) + + return self +end + +--- Adds fulfillment and rejection handlers to the promise +---@param on_fulfilled? fun(value):any +---@param on_rejected? fun(reason):any +---@return trouble.Promise +function P:next(on_fulfilled, on_rejected) + local next = P.new(function() end) + + local function handle() + local callback = on_fulfilled + if self.state == "rejected" then + callback = on_rejected + end + if callback then + local ok, ret = pcall(callback, self.value) + if ok then + if ret and type(ret) == "table" and getmetatable(ret) == P then + ret:next(next.resolve, next.reject) + else + next.resolve(ret) + end + else + next.reject(ret) -- reject the next promise with the error + end + else + if self.state == "fulfilled" then + next.resolve(self.value) + else + next.reject(self.value) + end + end + end + + if self.state ~= "pending" then + vim.schedule(handle) -- ensure the callback is called in the next event loop tick + else + table.insert(self.queue, handle) + end + + self.has_next = true -- self.has_rejection_handler or (on_rejected ~= nil) + return next +end + +function P:catch(on_rejected) + return self:next(nil, on_rejected) +end + +function P:finally(on_finally) + return self:next(function(value) + return P.new(function(resolve) + on_finally() + resolve(value) + end) + end, function(reason) + return P.new(function(_, reject) + on_finally() + reject(reason) + end) + end) +end + +function P:is_pending() + return self.state == "pending" +end + +function P:timeout(ms) + return P.new(function(resolve, reject) + local timer = (vim.uv or vim.loop).new_timer() + timer:start(ms, 0, function() + timer:close() + vim.schedule(function() + reject("timeout") + end) + end) + self:next(resolve, reject) + end) +end + +local M = {} + +function M.resolve(value) + return P.new(function(resolve) + resolve(value) + end) +end + +function M.reject(reason) + return P.new(function(_, reject) + reject(reason) + end) +end + +---@param promises trouble.Promise[] +function M.all(promises) + return P.new(function(resolve, reject) + local results = {} + local pending = #promises + if pending == 0 then + return resolve(results) + end + for i, promise in ipairs(promises) do + promise:next(function(value) + results[i] = value + pending = pending - 1 + if pending == 0 then + resolve(results) + end + end, reject) + end + end) +end + +---@param promises trouble.Promise[] +function M.all_settled(promises) + return P.new(function(resolve) + local results = {} + local pending = #promises + if pending == 0 then + return resolve(results) + end + for i, promise in ipairs(promises) do + promise:next(function(value) + results[i] = { status = "fulfilled", value = value } + pending = pending - 1 + if pending == 0 then + resolve(results) + end + end, function(reason) + results[i] = { status = "rejected", reason = reason } + pending = pending - 1 + if pending == 0 then + resolve(results) + end + end) + end + end) +end + +M.new = P.new + +-- M.new(function() end):timeout(1000) + +return M diff --git a/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/sort.lua b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/sort.lua new file mode 100644 index 00000000..3fa0be71 --- /dev/null +++ b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/sort.lua @@ -0,0 +1,87 @@ +local Filter = require("trouble.filter") + +local M = {} + +---@alias trouble.Sort.ctx {opts:trouble.Config, main?:trouble.Main} + +---@type table +M.sorters = { + pos = function(obj) + -- Use large multipliers for higher priority fields to ensure their precedence in sorting + local primaryScore = obj.pos[1] * 1000000 + obj.pos[2] * 1000 + local secondaryScore = obj.end_pos[1] * 1000000 + obj.end_pos[2] * 1000 + + return primaryScore + secondaryScore + end, +} + +---@param items trouble.Item[] +---@param opts? trouble.Sort[] +---@param ctx trouble.Sort.ctx +function M.sort(items, opts, ctx) + if not opts or #opts == 0 then + return items + end + + local keys = {} ---@type table + local desc = {} ---@type boolean[] + + -- pre-compute fields + local fields = {} ---@type trouble.Sort[] + for f, field in ipairs(opts) do + if field.field then + ---@diagnostic disable-next-line: no-unknown + local sorter = ctx.opts.sorters and ctx.opts.sorters[field.field] or M.sorters[field.field] + if sorter then + fields[f] = { sorter = sorter } + else + fields[f] = { field = field.field } + end + else + fields[f] = field + end + desc[f] = field.desc or false + end + + -- pre-compute keys + for _, item in ipairs(items) do + local item_keys = {} ---@type any[] + for f, field in ipairs(fields) do + local key = nil + if field.sorter then + key = field.sorter(item) + elseif field.field then + ---@diagnostic disable-next-line: no-unknown + key = item[field.field] + elseif field.filter then + key = Filter.is(item, field.filter, ctx) + end + if type(key) == "boolean" then + key = key and 0 or 1 + end + item_keys[f] = key + end + keys[item] = item_keys + end + + -- sort items + table.sort(items, function(a, b) + local ka = keys[a] + local kb = keys[b] + for i = 1, #ka do + local fa = ka[i] + local fb = kb[i] + if fa ~= fb then + if desc[i] then + return fa > fb + else + return fa < fb + end + end + end + return false + end) + return items +end + +return M diff --git a/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/sources/diagnostics.lua b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/sources/diagnostics.lua new file mode 100644 index 00000000..3bf53c3d --- /dev/null +++ b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/sources/diagnostics.lua @@ -0,0 +1,130 @@ +---@diagnostic disable: inject-field +local Item = require("trouble.item") + +---@class trouble.Source.diagnostics: trouble.Source +local M = {} + +M.highlights = { + Message = "TroubleText", + ItemSource = "Comment", + Code = "Comment", +} + +M.config = { + modes = { + diagnostics = { + desc = "diagnostics", + events = { "DiagnosticChanged", "BufEnter" }, + -- Trouble classic for other buffers, + -- but only if they are in the current directory + source = "diagnostics", + groups = { + -- { format = "{hl:Special}󰚢 {hl} {hl:Title}Diagnostics{hl} {count}" }, + -- { "severity", format = "{severity_icon} {severity} {count}" }, + -- { "dirname", format = "{hl:Special} {hl} {dirname} {count}" }, + { "directory" }, + { "filename", format = "{file_icon} {basename} {count}" }, + }, + sort = { "severity", "filename", "pos", "message" }, + format = "{severity_icon} {message:md} {item.source} {code} {pos}", + -- filter = { + -- ["not"] = { + -- any = { + -- { severity = vim.diagnostic.severity.ERROR }, + -- { buf = 0 }, + -- }, + -- }, + -- function(item) + -- return item.filename:find((vim.loop or vim.uv).cwd(), 1, true) + -- end, + -- }, + }, + -- { + -- -- error from all files + -- source = "diagnostics", + -- groups = { "severity", "code", "filename" }, + -- filter = { + -- -- severity = 1, + -- }, + -- sort = { "filename", "pos" }, + -- format = "sig {severity_sign} {severity} file: {filename} pos: {pos}", + -- }, + -- { + -- -- diagnostics from current buffer + -- source = "diagnostics", + -- groups = { "severity", "filename" }, + -- filter = { + -- buf = 0, + -- }, + -- sort = { "pos" }, + -- }, + }, +} + +---@type table +local cache = {} + +function M.setup() + vim.api.nvim_create_autocmd("DiagnosticChanged", { + group = vim.api.nvim_create_augroup("trouble.diagnostics", { clear = true }), + callback = function(event) + -- NOTE: unfortunately, we can't use the event.data.diagnostics table here, + -- since multiple namespaces exist and we can't tell which namespace the + -- diagnostics are from. + cache[event.buf] = vim.tbl_map(M.item, vim.diagnostic.get(event.buf)) + cache[0] = nil + end, + }) + for _, diag in ipairs(vim.diagnostic.get()) do + local buf = diag.bufnr + if buf and vim.api.nvim_buf_is_valid(buf) then + cache[buf] = cache[buf] or {} + table.insert(cache[buf], M.item(diag)) + Item.add_id(cache[buf], { "item.source", "severity", "code" }) + end + end +end + +---@param diag vim.Diagnostic +function M.item(diag) + return Item.new({ + source = "diagnostics", + buf = diag.bufnr, + pos = { diag.lnum + 1, diag.col }, + end_pos = { diag.end_lnum and (diag.end_lnum + 1) or nil, diag.end_col }, + item = diag, + }) +end + +---@param cb trouble.Source.Callback +---@param ctx trouble.Source.ctx) +function M.get(cb, ctx) + -- PERF: pre-filter when possible + local buf = type(ctx.opts.filter) == "table" and ctx.opts.filter.buf or nil + + if buf == 0 then + buf = ctx.main.buf + end + + if buf then + cb(cache[buf] or {}) + else + if not cache[0] then + cache[0] = {} + for b, items in pairs(cache) do + if b ~= 0 then + if vim.api.nvim_buf_is_valid(b) then + for _, item in ipairs(items) do + table.insert(cache[0], item) + end + else + cache[b] = nil + end + end + end + end + cb(cache[0]) + end +end + +return M diff --git a/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/sources/fzf.lua b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/sources/fzf.lua new file mode 100644 index 00000000..6469f4a5 --- /dev/null +++ b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/sources/fzf.lua @@ -0,0 +1,128 @@ +---@diagnostic disable: inject-field +local Item = require("trouble.item") + +---Represents an item in a Neovim quickfix/loclist. +---@class fzf.Item +---@field stripped string the fzf item without any highlighting. +---@field bufnr? number The buffer number of the item. +---@field bufname? string +---@field terminal? boolean +---@field path string +---@field uri? string +---@field line number 1-indexed line number +---@field col number 1-indexed column number + +---@class fzf.Opts + +---@class trouble.Source.fzf: trouble.Source +local M = {} + +---@type trouble.Item[] +M.items = {} + +M.config = { + modes = { + fzf = { + desc = "FzfLua results previously opened with `require('trouble.sources.fzf').open()`.", + source = "fzf", + groups = { + { "cmd", format = "{hl:Title}fzf{hl} {cmd:Comment} {count}" }, + { "filename", format = "{file_icon} {filename} {count}" }, + }, + sort = { "filename", "pos" }, + format = "{text:ts} {pos}", + }, + fzf_files = { + desc = "FzfLua results previously opened with `require('trouble.sources.fzf').open()`.", + source = "fzf", + groups = { + { "cmd", format = "{hl:Title}fzf{hl} {cmd:Comment} {count}" }, + }, + sort = { "filename", "pos" }, + format = "{file_icon} {filename}", + }, + }, +} + +---@param item fzf.Item +function M.item(item) + item.text = item.stripped:match(":%d+:%d?%d?%d?%d?:?(.*)$") + local word = item.text and item.text:sub(item.col):match("%S+") + return Item.new({ + source = "fzf", + buf = item.bufnr, + filename = item.bufname or item.path or item.uri, + pos = { item.line, item.col - 1 }, + end_pos = word and { item.line, item.col - 1 + #word } or nil, + item = item, + }) +end + +---@param cb trouble.Source.Callback +---@param _ctx trouble.Source.ctx) +function M.get(cb, _ctx) + cb(M.items) +end + +-- Returns the mode based on the items. +function M.mode() + for _, item in ipairs(M.items) do + if item.text then + return "fzf" + end + end + return "fzf_files" +end + +-- Append the current fzf buffer to the trouble list. +---@param selected string[] +---@param fzf_opts fzf.Opts +---@param opts? trouble.Mode|string +function M.add(selected, fzf_opts, opts) + local cmd = fzf_opts.__INFO.cmd + local path = require("fzf-lua.path") + for _, line in ipairs(selected) do + local item = M.item(path.entry_to_file(line, fzf_opts)) + item.item.cmd = cmd + table.insert(M.items, item) + end + + vim.schedule(function() + opts = opts or {} + if type(opts) == "string" then + opts = { mode = opts } + end + opts = vim.tbl_extend("force", { mode = M.mode() }, opts) + require("trouble").open(opts) + end) +end + +-- Opens the current fzf buffer in the trouble list. +-- This will clear the existing items. +---@param selected string[] +---@param fzf_opts fzf.Opts +---@param opts? trouble.Mode|string +function M.open(selected, fzf_opts, opts) + M.items = {} + M.add(selected, fzf_opts, opts) +end + +local smart_prefix = require("trouble.util").is_win() and "transform(IF %FZF_SELECT_COUNT% LEQ 0 (echo select-all))" + or "transform([ $FZF_SELECT_COUNT -eq 0 ] && echo select-all)" + +M.actions = { + -- Open selected or all items in the trouble list. + open = { fn = M.open, prefix = smart_prefix, desc = "smart-open-with-trouble" }, + -- Open selected items in the trouble list. + open_selected = { fn = M.open, desc = "open-with-trouble" }, + -- Open all items in the trouble list. + open_all = { fn = M.open, prefix = "select-all", desc = "open-all-with-trouble" }, + -- Add selected or all items to the trouble list. + add = { fn = M.add, prefix = smart_prefix, desc = "smart-add-to-trouble" }, + -- Add selected items to the trouble list. + add_selected = { fn = M.add, desc = "add-to-trouble" }, + -- Add all items to the trouble list. + add_all = { fn = M.add, prefix = "select-all", desc = "add-all-to-trouble" }, +} + +return M diff --git a/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/sources/init.lua b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/sources/init.lua new file mode 100644 index 00000000..5ae9f0e8 --- /dev/null +++ b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/sources/init.lua @@ -0,0 +1,63 @@ +local Config = require("trouble.config") +local Util = require("trouble.util") + +---@class trouble.Source +---@field highlights? table +---@field config? trouble.Config +---@field setup? fun() +---@field get trouble.Source.get|table + +---@alias trouble.Source.ctx {main: trouble.Main, opts:trouble.Mode} +---@alias trouble.Source.Callback fun(items:trouble.Item[]) +---@alias trouble.Source.get fun(cb:trouble.Source.Callback, ctx:trouble.Source.ctx) + +local M = {} +---@type table +M.sources = {} + +---@param name string +---@param source? trouble.Source +function M.register(name, source) + if M.sources[name] then + error("source already registered: " .. name) + end + source = source or require("trouble.sources." .. name) + if source then + if source.setup then + source.setup() + end + require("trouble.config.highlights").source(name, source.highlights) + if source.config then + Config.defaults(source.config) + end + end + M.sources[name] = source + return source +end + +---@param source string +function M.get(source) + local parent, child = source:match("^(.-)%.(.*)$") + source = parent or source + local s = M.sources[source] or M.register(source) + if child and type(s.get) ~= "table" then + error("source does not support sub-sources: " .. source) + elseif child and type(s.get[child]) ~= "function" then + error("source does not support sub-source: " .. source .. "." .. child) + end + return child and s.get[child] or s.get +end + +function M.load() + local rtp = vim.api.nvim_get_runtime_file("lua/trouble/sources/*.lua", true) + for _, file in ipairs(rtp) do + local name = file:match("lua[/\\]trouble[/\\]sources[/\\](.*)%.lua") + if name and name ~= "init" and not M.sources[name] then + Util.try(function() + M.register(name) + end, { msg = "Error loading source: " .. name }) + end + end +end + +return M diff --git a/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/sources/lsp.lua b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/sources/lsp.lua new file mode 100644 index 00000000..c3838839 --- /dev/null +++ b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/sources/lsp.lua @@ -0,0 +1,536 @@ +local Cache = require("trouble.cache") +local Config = require("trouble.config") +local Filter = require("trouble.filter") +local Item = require("trouble.item") +local Promise = require("trouble.promise") +local Util = require("trouble.util") + +---@param line string line to be indexed +---@param index integer UTF index +---@param encoding string utf-8|utf-16|utf-32| defaults to utf-16 +---@return integer byte (utf-8) index of `encoding` index `index` in `line` +local function get_line_col(line, index, encoding) + local ok, ret = pcall(vim.lsp.util._str_byteindex_enc, line, index, encoding) + return ok and ret or #line +end + +---@class trouble.Source.lsp: trouble.Source +---@diagnostic disable-next-line: missing-fields +local M = {} + +function M.setup() + vim.api.nvim_create_autocmd({ "LspAttach", "LspDetach" }, { + group = vim.api.nvim_create_augroup("trouble.lsp.dattach", { clear = true }), + callback = function() + Cache.symbols:clear() + Cache.locations:clear() + end, + }) + vim.api.nvim_create_autocmd({ "BufDelete", "TextChanged", "TextChangedI" }, { + group = vim.api.nvim_create_augroup("trouble.lsp.buf", { clear = true }), + callback = function(ev) + local buf = ev.buf + Cache.symbols[buf] = nil + if vim.api.nvim_buf_is_valid(ev.buf) and vim.api.nvim_buf_is_loaded(ev.buf) and vim.bo[ev.buf].buftype == "" then + Cache.locations:clear() + end + end, + }) +end + +M.config = { + modes = { + lsp_document_symbols = { + title = "{hl:Title}Document Symbols{hl} {count}", + desc = "document symbols", + events = { + "BufEnter", + -- symbols are cached on changedtick, + -- so it's ok to refresh often + { event = "TextChanged", main = true }, + { event = "CursorMoved", main = true }, + { event = "LspAttach", main = true }, + }, + source = "lsp.document_symbols", + groups = { + { "filename", format = "{file_icon} {filename} {count}" }, + }, + sort = { "filename", "pos", "text" }, + -- sort = { { buf = 0 }, { kind = "Function" }, "filename", "pos", "text" }, + format = "{kind_icon} {symbol.name} {text:Comment} {pos}", + }, + lsp_base = { + events = { + "BufEnter", + { event = "CursorHold", main = true }, + { event = "LspAttach", main = true }, + }, + groups = { + { "filename", format = "{file_icon} {filename} {count}" }, + }, + sort = { "filename", "pos", "text" }, + format = "{text:ts} ({item.client}) {pos}", + }, + lsp = { + desc = "LSP definitions, references, implementations, type definitions, and declarations", + sections = { + "lsp_definitions", + "lsp_references", + "lsp_implementations", + "lsp_type_definitions", + "lsp_declarations", + "lsp_incoming_calls", + "lsp_outgoing_calls", + }, + }, + }, +} + +for _, mode in ipairs({ "incoming_calls", "outgoing_calls" }) do + M.config.modes["lsp_" .. mode] = { + mode = "lsp_base", + title = "{hl:Title}" .. Util.camel(mode, " ") .. "{hl} {count}", + desc = Util.camel(mode, " "), + source = "lsp." .. mode, + format = "{kind_icon} {text:ts} {pos} {hl:Title}{item.client:Title}{hl}", + } +end + +for _, mode in ipairs({ "definitions", "references", "implementations", "type_definitions", "declarations", "command" }) do + M.config.modes["lsp_" .. mode] = { + auto_jump = true, + mode = "lsp_base", + title = "{hl:Title}" .. Util.camel(mode, " ") .. "{hl} {count}", + source = "lsp." .. mode, + desc = Util.camel(mode, " "):lower(), + } +end + +---@class trouble.lsp.Response: {client: vim.lsp.Client, result: R, err: lsp.ResponseError, params: P} + +---@param method string +---@param params? table +---@param opts? {client?:vim.lsp.Client} +function M.request(method, params, opts) + opts = opts or {} + local buf = vim.api.nvim_get_current_buf() + ---@type vim.lsp.Client[] + local clients = {} + + if opts.client then + clients = { opts.client } + else + if vim.lsp.get_clients then + clients = vim.lsp.get_clients({ method = method, bufnr = buf }) + else + ---@diagnostic disable-next-line: deprecated + clients = vim.lsp.get_active_clients({ bufnr = buf }) + ---@param client vim.lsp.Client + clients = vim.tbl_filter(function(client) + return client.supports_method(method) + end, clients) + end + end + + ---@param client vim.lsp.Client + return Promise.all(vim.tbl_map(function(client) + return Promise.new(function(resolve) + client.request(method, params, function(err, result) + resolve({ client = client, result = result, err = err, params = params }) + end, buf) + end) + end, clients)):next(function(results) + ---@param v trouble.lsp.Response + return vim.tbl_filter(function(v) + return v.result + end, results) + end) +end + +---@param method string +---@param cb trouble.Source.Callback +---@param ctx trouble.Source.ctx +---@param opts? {context?:any, params?:table} +function M.get_locations(method, cb, ctx, opts) + local win = vim.api.nvim_get_current_win() + local buf = vim.api.nvim_get_current_buf() + local cursor = vim.api.nvim_win_get_cursor(win) + local col = cursor[2] + + local line = vim.api.nvim_get_current_line() + while col > 1 and vim.fn.strcharpart(line, col - 1, 1):match("^[a-zA-Z_]$") do + col = col - 1 + end + + opts = opts or {} + ---@type lsp.TextDocumentPositionParams + local params = opts.params or vim.lsp.util.make_position_params(win) + ---@diagnostic disable-next-line: inject-field + params.context = params.context or opts.context or nil + + local id = table.concat({ buf, cursor[1], col, method, vim.inspect(params) }, "-") + if Cache.locations[id] then + return cb(Cache.locations[id]) + end + + M.request(method, params):next( + ---@param results trouble.lsp.Response[] + function(results) + local items = {} ---@type trouble.Item[] + for _, resp in ipairs(results) do + vim.list_extend(items, M.get_items(resp.client, resp.result, ctx.opts.params)) + end + Cache.locations[id] = items + cb(items) + end + ) +end + +M.get = {} + +---@param cb trouble.Source.Callback +function M.get.document_symbols(cb) + local buf = vim.api.nvim_get_current_buf() + ---@type trouble.Item[] + local ret = Cache.symbols[buf] + + if ret then + return cb(ret) + end + + ---@type lsp.DocumentSymbolParams + local params = { textDocument = vim.lsp.util.make_text_document_params() } + + ---@alias lsp.Symbol lsp.SymbolInformation|lsp.DocumentSymbol + + M.request("textDocument/documentSymbol", params):next( + ---@param results trouble.lsp.Response[] + function(results) + if vim.tbl_isempty(results) then + return cb({}) + end + if not vim.api.nvim_buf_is_valid(buf) then + return + end + local items = {} ---@type trouble.Item[] + + for _, res in ipairs(results) do + vim.list_extend(items, M.results_to_items(res.client, res.result, params.textDocument.uri)) + end + Item.add_text(items, { mode = "after" }) + ---@diagnostic disable-next-line: no-unknown + Cache.symbols[buf] = items + cb(items) + end + ) +end + +---@param cb trouble.Source.Callback +function M.call_hierarchy(cb, incoming) + ---@type lsp.CallHierarchyPrepareParams + local params = vim.lsp.util.make_position_params() + + M.request("textDocument/prepareCallHierarchy", params) + :next( + ---@param results trouble.lsp.Response[] + function(results) + local requests = {} ---@type trouble.Promise[] + for _, res in ipairs(results or {}) do + for _, chi in ipairs(res.result) do + requests[#requests + 1] = M.request( + ("callHierarchy/%sCalls"):format(incoming and "incoming" or "outgoing"), + { item = chi }, + { client = res.client } + ) + end + end + return Promise.all(requests) + end + ) + :next( + ---@param responses trouble.lsp.Response<(lsp.CallHierarchyIncomingCall|lsp.CallHierarchyOutgoingCall)[]>[][] + function(responses) + local items = {} ---@type trouble.Item[] + + for _, results in ipairs(responses) do + for _, res in ipairs(results) do + local client = res.client + local calls = res.result + local todo = {} ---@type lsp.ResultItem[] + + for _, call in ipairs(calls) do + todo[#todo + 1] = call.to or call.from + end + vim.list_extend(items, M.results_to_items(client, todo)) + end + end + Item.add_text(items, { mode = "after" }) + + if incoming then + -- for incoming calls, we actually want the call locations, not just the caller + -- but we use the caller's item text as the call location text + local texts = {} ---@type table + for _, item in ipairs(items) do + texts[item.item.symbol] = item.item.text + end + + items = {} + for _, results in ipairs(responses) do + for _, res in ipairs(results) do + local client = res.client + local calls = res.result + local todo = {} ---@type lsp.ResultItem[] + + for _, call in ipairs(calls) do + for _, r in ipairs(call.fromRanges or {}) do + local t = vim.deepcopy(call.from) --[[@as lsp.ResultItem]] + t.location = { range = r or call.from.selectionRange or call.from.range, uri = call.from.uri } + t.text = texts[call.from] + todo[#todo + 1] = t + end + end + vim.list_extend(items, M.results_to_items(client, todo)) + end + end + end + cb(items) + end + ) + -- :catch(Util.error) +end + +---@param cb trouble.Source.Callback +function M.get.incoming_calls(cb) + M.call_hierarchy(cb, true) +end + +---@param cb trouble.Source.Callback +function M.get.outgoing_calls(cb) + M.call_hierarchy(cb, false) +end + +---@param client vim.lsp.Client +---@param locations? lsp.Location[]|lsp.LocationLink[]|lsp.Location +---@param opts? {include_current?:boolean} +function M.get_items(client, locations, opts) + opts = opts or {} + locations = locations or {} + locations = Util.islist(locations) and locations or { locations } + ---@cast locations (lsp.Location|lsp.LocationLink)[] + + locations = vim.list_slice(locations, 1, Config.max_items) + + local items = M.locations_to_items(client, locations) + + local cursor = vim.api.nvim_win_get_cursor(0) + local fname = vim.api.nvim_buf_get_name(0) + fname = vim.fs.normalize(fname) + + if not opts.include_current then + ---@param item trouble.Item + items = vim.tbl_filter(function(item) + return not (item.filename == fname and Filter.overlaps(cursor, item, { lines = true })) + end, items) + end + + -- Item.add_text(items, { mode = "full" }) + return items +end + +---@alias lsp.Loc lsp.Location|lsp.LocationLink +---@param client vim.lsp.Client +---@param locs lsp.Loc[] +---@return trouble.Item[] +function M.locations_to_items(client, locs) + local ranges = M.locations_to_ranges(client, locs) + ---@param range trouble.Range.lsp + return vim.tbl_map(function(range) + return M.range_to_item(client, range) + end, vim.tbl_values(ranges)) +end + +---@param client vim.lsp.Client +---@param range trouble.Range.lsp +---@return trouble.Item +function M.range_to_item(client, range) + return Item.new({ + buf = range.buf, + filename = range.filename, + pos = range.pos, + end_pos = range.end_pos, + source = "lsp", + item = { + client_id = client.id, + client = client.name, + location = range.location, + text = range.line and vim.trim(range.line) or nil, + }, + }) +end + +---@alias lsp.ResultItem lsp.Symbol|lsp.CallHierarchyItem|{text?:string} +---@param client vim.lsp.Client +---@param results lsp.ResultItem[] +---@param default_uri? string +function M.results_to_items(client, results, default_uri) + local items = {} ---@type trouble.Item[] + local locs = {} ---@type lsp.Loc[] + local processed = {} ---@type table + + ---@param result lsp.ResultItem + local function process(result) + local uri = result.location and result.location.uri or result.uri or default_uri + local loc = result.location or { range = result.selectionRange or result.range, uri = uri } + loc.uri = loc.uri or uri + assert(loc.uri, "missing uri in result:\n" .. vim.inspect(result)) + -- the range enclosing this symbol. Useful to get the symbol of the current cursor position + ---@type lsp.Location? + local range = result.range and { range = result.range, uri = uri } or nil + processed[result] = { uri = uri, loc = loc, range = range } + locs[#locs + 1] = loc + if range then + locs[#locs + 1] = range + end + for _, child in ipairs(result.children or {}) do + process(child) + end + end + + for _, result in ipairs(results) do + process(result) + end + + local ranges = M.locations_to_ranges(client, locs) + + ---@param result lsp.ResultItem + local function add(result) + local loc = processed[result].loc + local range = processed[result].range + + local item = M.range_to_item(client, ranges[loc]) + local id = { item.buf, item.pos[1], item.pos[2], item.end_pos[1], item.end_pos[2], item.kind } + item.id = table.concat(id, "|") + -- item.text = nil + -- the range enclosing this symbol. Useful to get the symbol of the current cursor position + item.range = range and ranges[range] or nil + item.item.kind = vim.lsp.protocol.SymbolKind[result.kind] or tostring(result.kind) + item.item.symbol = result + item.item.text = result.text + items[#items + 1] = item + for _, child in ipairs(result.children or {}) do + item:add_child(add(child)) + end + result.children = nil + return item + end + + for _, result in ipairs(results) do + add(result) + end + + return items +end + +---@class trouble.Range.lsp: trouble.Range +---@field buf? number +---@field filename string +---@field location lsp.Loc +---@field client vim.lsp.Client +---@field line string + +---@param client vim.lsp.Client +---@param locs lsp.Loc[] +function M.locations_to_ranges(client, locs) + local todo = {} ---@type table}> + for _, d in ipairs(locs) do + local uri = d.uri or d.targetUri + local range = d.range or d.targetSelectionRange + todo[uri] = todo[uri] or { locs = {}, rows = {} } + table.insert(todo[uri].locs, d) + local from = range.start.line + 1 + local to = range["end"].line + 1 + todo[uri].rows[from] = from + todo[uri].rows[to] = to + end + + local ret = {} ---@type table + + for uri, t in pairs(todo) do + local buf = vim.uri_to_bufnr(uri) + local filename = vim.uri_to_fname(uri) + local lines = Util.get_lines({ rows = vim.tbl_keys(t.rows), buf = buf }) or {} + for _, loc in ipairs(t.locs) do + local range = loc.range or loc.targetSelectionRange + local line = lines[range.start.line + 1] or "" + local end_line = lines[range["end"].line + 1] or "" + local pos = { range.start.line + 1, get_line_col(line, range.start.character, client.offset_encoding) } + local end_pos = { range["end"].line + 1, get_line_col(end_line, range["end"].character, client.offset_encoding) } + ret[loc] = { + buf = buf, + filename = filename, + pos = pos, + end_pos = end_pos, + source = "lsp", + client = client, + location = loc, + line = line, + } + end + end + return ret +end + +---@param cb trouble.Source.Callback +---@param ctx trouble.Source.ctx +function M.get.command(cb, ctx) + local err = "Missing command params for `lsp_command`.\n" + .. "You need to specify `opts.params = {command = 'the_command', arguments = {}}`" + if not ctx.opts.params then + return Util.error(err) + end + ---@type lsp.ExecuteCommandParams + local params = ctx.opts.params + if not params.command then + return Util.error(err) + end + M.get_locations("workspace/executeCommand", cb, ctx, { params = params }) +end + +---@param ctx trouble.Source.ctx +---@param cb trouble.Source.Callback +function M.get.references(cb, ctx) + local params = ctx.opts.params or {} + M.get_locations("textDocument/references", cb, ctx, { + context = { + includeDeclaration = params.include_declaration ~= false, + }, + }) +end + +---@param cb trouble.Source.Callback +---@param ctx trouble.Source.ctx +function M.get.definitions(cb, ctx) + M.get_locations("textDocument/definition", cb, ctx) +end + +---@param cb trouble.Source.Callback +---@param ctx trouble.Source.ctx +function M.get.implementations(cb, ctx) + M.get_locations("textDocument/implementation", cb, ctx) +end + +-- Type Definitions +---@param cb trouble.Source.Callback +---@param ctx trouble.Source.ctx +function M.get.type_definitions(cb, ctx) + M.get_locations("textDocument/typeDefinition", cb, ctx) +end + +-- Declaration +---@param cb trouble.Source.Callback +---@param ctx trouble.Source.ctx +function M.get.declarations(cb, ctx) + M.get_locations("textDocument/declaration", cb, ctx) +end + +return M diff --git a/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/sources/qf.lua b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/sources/qf.lua new file mode 100644 index 00000000..b61ad2b5 --- /dev/null +++ b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/sources/qf.lua @@ -0,0 +1,106 @@ +---@diagnostic disable: inject-field +local Item = require("trouble.item") + +---Represents an item in a Neovim quickfix/loclist. +---@class qf.item +---@field bufnr? number The buffer number where the item originates. +---@field filename? string +---@field lnum number The start line number for the item. +---@field end_lnum? number The end line number for the item. +---@field pattern string A pattern related to the item. It can be a search pattern or any relevant string. +---@field col? number The column number where the item starts. +---@field end_col? number The column number where the item ends. +---@field module? string Module information (if any) associated with the item. +---@field nr? number A unique number or ID for the item. +---@field text? string A description or message related to the item. +---@field type? string The type of the item. E.g., "W" might stand for "Warning". +---@field valid number A flag indicating if the item is valid (1) or not (0). +---@field user_data? any Any user data associated with the item. +---@field vcol? number Visual column number. Indicates if the column number is a visual column number (when set to 1) or a byte index (when set to 0). + +---@class trouble.Source.qf: trouble.Source +local M = {} + +M.config = { + modes = { + qflist = { + desc = "Quickfix List", + events = { + "QuickFixCmdPost", + { event = "TextChanged", main = true }, + }, + source = "qf.qflist", + groups = { + { "filename", format = "{file_icon} {filename} {count}" }, + }, + sort = { "severity", "filename", "pos", "message" }, + format = "{severity_icon|item.type:DiagnosticSignWarn} {text:ts} {pos}", + }, + loclist = { + desc = "Location List", + events = { + "BufEnter", + { event = "TextChanged", main = true }, + }, + source = "qf.loclist", + groups = { + { "filename", format = "{file_icon} {filename} {count}" }, + }, + sort = { "severity", "filename", "pos", "message" }, + format = "{severity_icon|item.type:DiagnosticSignWarn} {text:ts} {pos}", + }, + }, +} +M.config.modes.quickfix = M.config.modes.qflist + +local severities = { + E = vim.diagnostic.severity.ERROR, + W = vim.diagnostic.severity.WARN, + I = vim.diagnostic.severity.INFO, + H = vim.diagnostic.severity.HINT, + N = vim.diagnostic.severity.HINT, +} + +M.get = { + qflist = function(cb) + cb(M.get_list()) + end, + loclist = function(cb) + cb(M.get_list({ win = vim.api.nvim_get_current_win() })) + end, +} + +---@param opts? {win:number} +function M.get_list(opts) + opts = opts or {} + local list = opts.win == nil and vim.fn.getqflist({ all = true }) or vim.fn.getloclist(opts.win, { all = true }) + ---@cast list {items?:qf.item[]}? + + local ret = {} ---@type trouble.Item[] + for _, item in pairs(list and list.items or {}) do + local row = item.lnum == 0 and 1 or item.lnum + local col = (item.col == 0 and 1 or item.col) - 1 + local end_row = item.end_lnum == 0 and row or item.end_lnum + local end_col = item.end_col == 0 and col or (item.end_col - 1) + + if item.valid == 1 then + ret[#ret + 1] = Item.new({ + pos = { row, col }, + end_pos = { end_row, end_col }, + text = item.text, + severity = severities[item.type] or 0, + buf = item.bufnr, + filename = item.filename, + item = item, + source = "qf", + }) + elseif #ret > 0 and ret[#ret].item.text and item.text then + ret[#ret].item.text = ret[#ret].item.text .. "\n" .. item.text + end + end + Item.add_id(ret, { "severity" }) + Item.add_text(ret, { mode = "full" }) + return ret +end + +return M diff --git a/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/sources/telescope.lua b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/sources/telescope.lua new file mode 100644 index 00000000..1ae283a0 --- /dev/null +++ b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/sources/telescope.lua @@ -0,0 +1,123 @@ +---@diagnostic disable: inject-field +local Item = require("trouble.item") +local Util = require("trouble.util") + +---Represents an item in a Neovim quickfix/loclist. +---@class telescope.Item +---@field lnum? number The start line number for the item. +---@field col? number The column number where the item starts. +---@field bufnr? number The buffer number where the item originates. +---@field filename? string The filename of the item. +---@field text? string The text of the item. +---@field cwd? string The current working directory of the item. +---@field path? string The path of the item. + +---@class trouble.Source.telescope: trouble.Source +local M = {} + +---@type trouble.Item[] +M.items = {} + +M.config = { + modes = { + telescope = { + desc = "Telescope results previously opened with `require('trouble.sources.telescope').open()`.", + source = "telescope", + title = "{hl:Title}Telescope{hl} {count}", + groups = { + { "filename", format = "{file_icon} {filename} {count}" }, + }, + sort = { "filename", "pos" }, + format = "{text:ts} {pos}", + }, + telescope_files = { + desc = "Telescope results previously opened with `require('trouble.sources.telescope').open()`.", + source = "telescope", + title = "{hl:Title}Telescope{hl} {count}", + sort = { "filename", "pos" }, + format = "{file_icon} {filename}", + }, + }, +} + +---@param item telescope.Item +function M.item(item) + ---@type string + local filename + if item.path then + filename = item.path + else + filename = item.filename + if item.cwd then + filename = item.cwd .. "/" .. filename + end + end + local word = item.text and item.col and item.text:sub(item.col):match("%S+") + local pos = item.lnum and { item.lnum, item.col and item.col - 1 or 0 } or nil + return Item.new({ + source = "telescope", + buf = item.bufnr, + filename = filename, + pos = pos, + end_pos = word and pos and { pos[1], pos[2] + #word } or nil, + item = item, + }) +end + +---@param cb trouble.Source.Callback +---@param _ctx trouble.Source.ctx) +function M.get(cb, _ctx) + cb(M.items) +end + +-- Returns the mode based on the items. +function M.mode() + for _, item in ipairs(M.items) do + if item.text then + return "telescope" + end + end + return "telescope_files" +end + +-- Append the current telescope buffer to the trouble list. +---@param opts? trouble.Mode|string +function M.add(prompt_bufnr, opts) + local action_state = require("telescope.actions.state") + ---@type Picker + local picker = action_state.get_current_picker(prompt_bufnr) + if not picker then + return Util.error("No Telescope picker found?") + end + + if #picker:get_multi_selection() > 0 then + for _, item in ipairs(picker:get_multi_selection()) do + table.insert(M.items, M.item(item)) + end + else + for item in picker.manager:iter() do + table.insert(M.items, M.item(item)) + end + end + -- Item.add_text(M.items, { mode = "after" }) + + vim.schedule(function() + require("telescope.actions").close(prompt_bufnr) + opts = opts or {} + if type(opts) == "string" then + opts = { mode = opts } + end + opts = vim.tbl_extend("force", { mode = M.mode() }, opts) + require("trouble").open(opts) + end) +end + +-- Opens the current telescope buffer in the trouble list. +-- This will clear the existing items. +---@param opts? trouble.Mode|string +function M.open(prompt_bufnr, opts) + M.items = {} + M.add(prompt_bufnr, opts) +end + +return M diff --git a/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/spec.lua b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/spec.lua new file mode 100644 index 00000000..7bed37bc --- /dev/null +++ b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/spec.lua @@ -0,0 +1,194 @@ +local Config = require("trouble.config") +local Util = require("trouble.util") + +---@alias trouble.SorterFn fun(item: trouble.Item): any? + +---@alias trouble.Sort.spec string|trouble.SorterFn|(string|trouble.SorterFn|trouble.Filter.spec)[] +---@alias trouble.Filter.spec table|fun(items: trouble.Item[]): trouble.Item[] +---@alias trouble.Group.spec string|string[]|{format?:string} + +---@alias trouble.Sections.spec (trouble.Section.spec|string)[] + +---@class trouble.Section.spec +---@field source string +---@field title? string|boolean +---@field events? (string|trouble.Event)[] +---@field groups? trouble.Group.spec[]|trouble.Group.spec +---@field sort? trouble.Sort.spec +---@field filter? trouble.Filter.spec +---@field flatten? boolean when true, items with a natural hierarchy will be flattened +---@field format? string +---@field max_items? number +---@field params? table + +---@alias trouble.Filter table|fun(items: trouble.Item[]): trouble.Item[] + +---@class trouble.Event +---@field event string|string[] +---@field pattern? string|string[] +---@field main? boolean When true, this event will refresh only when it is the main window + +---@class trouble.Sort +---@field field? string +---@field sorter? trouble.SorterFn +---@field filter? trouble.Filter +---@field desc? boolean + +---@class trouble.Group +---@field fields? string[] +---@field format? string +---@field directory? boolean + +---@class trouble.Section.opts +---@field source string +---@field groups trouble.Group[] +---@field format string +---@field flatten? boolean when true, items with a natural hierarchy will be flattened +---@field events trouble.Event[] +---@field sort? trouble.Sort[] +---@field filter? trouble.Filter +---@field max_items? number +---@field params? table + +local M = {} + +---@param spec trouble.Section.spec|string +---@return trouble.Section.opts +function M.section(spec) + local groups = type(spec.groups) == "string" and { spec.groups } or spec.groups + ---@cast groups trouble.Group.spec[] + local events = {} ---@type trouble.Event[] + for _, e in ipairs(spec.events or {}) do + if type(e) == "string" then + local event, pattern = e:match("^(%w+)%s+(.*)$") + event = event or e + events[#events + 1] = { event = event, pattern = pattern } + elseif type(e) == "table" and e.event then + events[#events + 1] = e + else + error("invalid event: " .. vim.inspect(e)) + end + end + + local ret = { + source = spec.source, + groups = vim.tbl_map(M.group, groups or {}), + sort = spec.sort and M.sort(spec.sort) or nil, + filter = spec.filter, + format = spec.format or "{filename} {pos}", + events = events, + flatten = spec.flatten, + params = spec.params, + } + -- A title is just a group without fields + if spec.title then + table.insert(ret.groups, 1, { fields = {}, format = spec.title }) + end + return ret +end + +---@param action trouble.Action.spec +---@return trouble.Action +function M.action(action) + if type(action) == "string" then + action = { action = action, desc = action:gsub("_", " ") } + end + if type(action) == "function" then + action = { action = action } + end + if type(action.action) == "string" then + local desc = action.action:gsub("_", " ") + action.action = require("trouble.config.actions")[action.action] + if type(action.action) == "table" then + action = action.action + end + action.desc = action.desc or desc + end + ---@cast action trouble.Action + return action +end + +---@param mode trouble.Mode +---@return trouble.Section.opts[] +function M.sections(mode) + local ret = {} ---@type trouble.Section.opts[] + + if mode.sections then + for _, s in ipairs(mode.sections) do + ret[#ret + 1] = M.section(Config.get(mode, { sections = false }, s) --[[@as trouble.Mode]]) + end + else + local section = M.section(mode) + section.max_items = section.max_items or mode.max_items + ret[#ret + 1] = section + end + return ret +end + +---@param spec trouble.Sort.spec +---@return trouble.Sort[] +function M.sort(spec) + spec = type(spec) == "table" and Util.islist(spec) and spec or { spec } + ---@cast spec (string|trouble.SorterFn|trouble.Filter.spec)[] + local fields = {} ---@type trouble.Sort[] + for f, field in ipairs(spec) do + if type(field) == "function" then + ---@cast field trouble.SorterFn + fields[f] = { sorter = field } + elseif type(field) == "table" and field.field then + ---@cast field {field:string, desc?:boolean} + fields[f] = field + elseif type(field) == "table" then + fields[f] = { filter = field } + elseif type(field) == "string" then + local desc = field:sub(1, 1) == "-" + fields[f] = { + field = desc and field:sub(2) or field, + desc = desc and true or nil, + } + else + error("invalid sort field: " .. vim.inspect(field)) + end + end + return fields +end + +---@param spec trouble.Group.spec +---@return trouble.Group +function M.group(spec) + spec = type(spec) == "string" and { spec } or spec + ---@cast spec string[]|{format?:string} + ---@type trouble.Group + local ret = { fields = {}, format = "" } + for k, v in pairs(spec) do + if type(k) == "number" then + ---@cast v string + ret.fields[#ret.fields + 1] = v + elseif k == "format" then + ---@cast v string + ret[k] = v + else + error("invalid `group` key: " .. k) + end + end + if vim.tbl_contains(ret.fields, "directory") then + ret.directory = true + ret.format = ret.format == "" and "{directory_icon} {directory} {count}" or ret.format + if #ret.fields > 1 then + error("group: cannot specify other fields with `directory`") + end + ret.fields = nil + end + if ret.format == "" then + ret.format = table.concat( + ---@param f string + vim.tbl_map(function(f) + return "{" .. f .. "}" + end, ret.fields), + " " + ) + end + return ret +end + +return M diff --git a/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/tree.lua b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/tree.lua new file mode 100644 index 00000000..2f59a5e9 --- /dev/null +++ b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/tree.lua @@ -0,0 +1,308 @@ +local Item = require("trouble.item") +local Util = require("trouble.util") + +---@class trouble.Node +---@field id string +---@field parent? trouble.Node +---@field item? trouble.Item +---@field index? table +---@field group? trouble.Group +---@field folded? boolean +---@field children? trouble.Node[] +---@field private _depth number +---@field private _count? number +---@field private _degree? number +local M = {} + +---@alias trouble.GroupFn fun(item: trouble.Item, parent: trouble.Node, group: trouble.Group): trouble.Node + +---@param opts {id: string, item?: trouble.Item} +function M.new(opts) + local self = setmetatable(opts, { __index = M }) + self.id = self.id or self.item and self.item.id or nil + self.children = {} + self.index = {} + return self +end + +function M:delete() + local parent = self.parent + if not parent then + return + end + if parent.children then + parent.children = vim.tbl_filter(function(c) + return c ~= self + end, parent.children) + end + if parent.index and self.id then + parent.index[self.id] = nil + end + parent._count = nil + parent._degree = nil + if parent:count() == 0 then + parent:delete() + end +end + +-- Max depth of the tree +function M:degree() + if not self._degree then + self._degree = 0 + for _, child in ipairs(self.children or {}) do + self._degree = math.max(self._degree, child:degree()) + end + self._degree = self._degree + 1 + end + return self._degree +end + +-- Depth of this node +function M:depth() + if not self._depth then + self._depth = self.parent and (self.parent:depth() + 1) or 0 + end + return self._depth +end + +-- Number of actual items in the tree +-- This excludes internal group nodes +function M:count() + if not self._count then + self._count = 0 + for _, child in ipairs(self.children or {}) do + self._count = self._count + child:count() + end + if not self.group and self.item then + self._count = self._count + 1 + end + end + return self._count +end + +--- Gets all the items in the tree, recursively. +---@param ret trouble.Item[]? +function M:flatten(ret) + ret = ret or {} + for _, child in ipairs(self.children or {}) do + child:flatten(ret) + end + if not self.group and self.item then + ret[#ret + 1] = self.item + end + return ret +end + +---@param idx number|string +---@return trouble.Node? +function M:get(idx) + return type(idx) == "number" and self.children[idx] or self.index[idx] +end + +-- Source of the item of this node +function M:source() + return self.item and self.item.source +end + +-- Width of the node (number of children) +function M:width() + return self.children and #self.children or 0 +end + +-- Item of the parent node +function M:parent_item() + return self.parent and self.parent.item +end + +function M:add(node) + if node.id then + if self.index[node.id] then + Util.debug("node already exists:\n" .. node.id) + node.id = node.id .. "_" + end + self.index[node.id] = node + end + node.parent = self + table.insert(self.children, node) + return node +end + +function M:is_leaf() + return self.children == nil or #self.children == 0 +end + +---@param other? trouble.Node +function M:is(other) + if not other then + return false + end + + if self == other then + return true + end + + if self.id ~= other.id then + return false + end + + if self.group ~= other.group then + return false + end + + if self.group then + return true + end + assert(self.item, "missing item") + + if not other.item then + return false + end + + if self.item == other.item then + return true + end + + return self.item.id and (self.item.id == other.item.id) +end + +--- Build a tree from a list of items and a section. +---@param items trouble.Item[] +---@param section trouble.Section.opts +function M.build(items, section) + local root = M.new({ id = "$root" }) + local node_items = {} ---@type table + + -- create the group nodes + for i, item in ipairs(items) do + if section.max_items and i > section.max_items then + break + end + local node = root + for _, group in ipairs(section.groups) do + local builder = M.builders[group.directory and "directory" or "fields"] + assert(builder, "unknown group type: " .. vim.inspect(group)) + node = builder.group(item, node, group) + end + node_items[node] = node_items[node] or {} + table.insert(node_items[node], item) + end + + -- add the items to the nodes. + -- this will structure items by their parent node unless flatten is true + for node, nitems in pairs(node_items) do + M.add_items(node, nitems, { flatten = section.flatten }) + end + + -- post process the tree + for _, group in ipairs(section.groups) do + local builder = M.builders[group.directory and "directory" or "fields"] + if builder.post then + root = builder.post(root) or root + end + end + return root +end + +--- This will add all the items to the root node, +--- structured by their parent item, unless flatten is true. +---@param root trouble.Node +---@param items trouble.Item[] +---@param opts? {flatten?: boolean} +function M.add_items(root, items, opts) + opts = opts or {} + local item_nodes = {} ---@type table + for _, item in ipairs(items) do + item_nodes[item] = M.new({ item = item }) + end + for _, item in ipairs(items) do + local node = item_nodes[item] + local parent_node = root + if not opts.flatten then + local parent = item.parent + while parent do + if item_nodes[parent] then + parent_node = item_nodes[parent] + break + end + parent = parent.parent + end + end + parent_node:add(node) + end +end + +---@alias trouble.Group.builder {group:trouble.GroupFn, post?:(fun(node: trouble.Node):trouble.Node?)} +---@type table<"directory"|"fields", trouble.Group.builder> +M.builders = { + fields = { + group = function(item, parent, group) + -- id is based on the parent id and the group fields + local id = group.format + if #group.fields > 0 then + local values = {} ---@type string[] + for i = 1, #group.fields do + values[#values + 1] = tostring(item[group.fields[i]]) + end + id = table.concat(values, "|") + end + id = parent.id .. "#" .. id + local child = parent:get(id) + if not child then + child = M.new({ id = id, item = item, group = group }) + parent:add(child) + end + return child + end, + }, + + directory = { + group = function(item, root, group) + if not item.dirname then + return root + end + local directory = "" + local parent = root + for _, part in Util.split(item.dirname, "/") do + directory = directory .. part .. "/" + local id = (root.id or "") .. "#" .. directory + local child = parent:get(id) + if not child then + local dir = Item.new({ + filename = directory, + source = "fs", + id = id, + pos = { 1, 0 }, + end_pos = { 1, 0 }, + dirname = directory, + item = { directory = directory, type = "directory" }, + }) + child = M.new({ id = id, item = dir, group = group }) + parent:add(child) + end + parent = child + end + return parent + end, + post = function(root) + ---@param node trouble.Node + local function collapse(node) + if node:source() == "fs" then + if node:width() == 1 then + local child = node.children[1] + if child:source() == "fs" and child.item.type == "directory" then + child.parent = node.parent + return collapse(child) + end + end + end + for c, child in ipairs(node.children or {}) do + node.children[c] = collapse(child) + end + return node + end + return collapse(root) + end, + }, +} + +return M diff --git a/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/view/indent.lua b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/view/indent.lua new file mode 100644 index 00000000..45fee02e --- /dev/null +++ b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/view/indent.lua @@ -0,0 +1,80 @@ +local Config = require("trouble.config") +local Util = require("trouble.util") + +---@alias trouble.Indent.type "top"|"middle"|"last"|"fold_open"|"fold_closed"|"ws" +---@alias trouble.Indent.symbols table + +---@class SymbolSegment: TextSegment +---@field type trouble.Indent.type + +---@class trouble.Indent: {[number]: SymbolSegment} +---@field symbols table +local M = {} +M.__index = M + +---@param symbols? trouble.Indent.symbols +function M.new(symbols) + local self = setmetatable({}, M) + symbols = vim.tbl_deep_extend("force", Config.icons.indent, symbols or {}) + self.symbols = {} + for k, v in pairs(symbols) do + local symbol = v + self.symbols[k] = type(symbol) == "string" and { str = symbol } or { str = symbol[1], hl = symbol[2] } + self.symbols[k].type = k + self.symbols[k].hl = self.symbols[k].hl or ("TroubleIndent" .. Util.camel(k)) + end + return self +end + +---@return number +---@param opts? {display:boolean} +function M:width(opts) + local ret = 0 + for _, segment in ipairs(self) do + ret = ret + (opts and opts.display and vim.fn.strdisplaywidth(segment.str) or #segment.str) + end + return ret +end + +-- Returns a new indent with all the symbols replaced with whitespace +function M:indent() + local new = setmetatable({}, M) + for k, v in pairs(self) do + new[k] = type(k) == "number" and self.symbols.ws or v + end + return new +end + +function M:clone() + local new = setmetatable({}, M) + for k, v in pairs(self) do + new[k] = v + end + return new +end + +---@param other trouble.Indent.type +function M:add(other) + table.insert(self, self.symbols[other]) + return self +end + +---@return SymbolSegment? +function M:del() + return table.remove(self) +end + +---@param other trouble.Indent.type +function M:extend(other) + return self:clone():add(other) +end + +function M:multi_line() + local last = self:del() + if last then + self:add(last.type == "middle" and "top" or last.type == "last" and "ws" or last.type) + end + return self +end + +return M diff --git a/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/view/init.lua b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/view/init.lua new file mode 100644 index 00000000..34310092 --- /dev/null +++ b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/view/init.lua @@ -0,0 +1,742 @@ +local Format = require("trouble.format") +local Main = require("trouble.view.main") +local Preview = require("trouble.view.preview") +local Promise = require("trouble.promise") +local Render = require("trouble.view.render") +local Section = require("trouble.view.section") +local Spec = require("trouble.spec") +local Text = require("trouble.view.text") +local Util = require("trouble.util") +local Window = require("trouble.view.window") + +---@class trouble.View +---@field win trouble.Window +---@field preview_win? trouble.Window +---@field opts trouble.Mode +---@field sections trouble.Section[] +---@field renderer trouble.Render +---@field first_render trouble.Promise +---@field first_update trouble.Promise +---@field moving uv_timer_t +---@field clicked uv_timer_t +---@field state table +---@field _filters table +---@field private _main? trouble.Main +local M = {} +M.__index = M +local _idx = 0 +---@type table +M._views = setmetatable({}, { __mode = "k" }) + +---@type trouble.View[] +M._auto = {} + +---@type table +M._last = {} + +M.MOVING_DELAY = 4000 + +local uv = vim.loop or vim.uv + +---@param opts trouble.Mode +function M.new(opts) + local self = setmetatable({}, M) + _idx = _idx + 1 + M._views[self] = _idx + self.state = {} + self.opts = opts or {} + self._filters = {} + self.first_render = Promise.new(function() end) + self.first_update = Promise.new(function() end) + self.opts.win = vim.tbl_deep_extend("force", self.opts.win or {}, Window.FOLDS) + self.opts.win.on_mount = function() + self:on_mount() + end + self.opts.win.on_close = function() + if not self.opts.auto_open then + for _, section in ipairs(self.sections) do + section:stop() + end + end + end + + self.sections = {} + for _, s in ipairs(Spec.sections(self.opts)) do + local section = Section.new(s, self.opts) + section.on_update = function() + self:update() + end + table.insert(self.sections, section) + end + + self.win = Window.new(self.opts.win) + self.opts.win = self.win.opts + + self.preview_win = Window.new(self.opts.preview) or nil + + self.renderer = Render.new(self.opts, { + padding = vim.tbl_get(self.opts.win, "padding", "left") or 0, + multiline = self.opts.multiline, + }) + self.update = Util.throttle(M.update, Util.throttle_opts(self.opts.throttle.update, { ms = 10 })) + self.render = Util.throttle(M.render, Util.throttle_opts(self.opts.throttle.render, { ms = 10 })) + self.follow = Util.throttle(M.follow, Util.throttle_opts(self.opts.throttle.follow, { ms = 100 })) + + if self.opts.auto_open then + -- add to a table, so that the view doesn't gc + table.insert(M._auto, self) + self:listen() + self:refresh() + end + self.moving = uv.new_timer() + self.clicked = uv.new_timer() + return self +end + +---@alias trouble.View.filter {debug?: boolean, open?:boolean, mode?: string} + +---@param filter? trouble.View.filter +function M.get(filter) + filter = filter or {} + ---@type {idx:number, mode?: string, view: trouble.View, is_open: boolean}[] + local ret = {} + for view, idx in pairs(M._views) do + local is_open = view.win:valid() + local opening = view.first_update:is_pending() + local ok = is_open or view.opts.auto_open or opening + ok = ok and (not filter.mode or filter.mode == view.opts.mode) + ok = ok and (not filter.open or is_open or opening) + if ok then + ret[#ret + 1] = { + idx = idx, + mode = view.opts.mode, + view = not filter.debug and view or {}, + is_open = is_open, + } + end + end + table.sort(ret, function(a, b) + return a.idx < b.idx + end) + return ret +end + +function M:on_mount() + vim.w[self.win.win].trouble = { + mode = self.opts.mode, + type = self.opts.win.type, + relative = self.opts.win.relative, + position = self.opts.win.position, + } + + self:listen() + self.win:on("WinLeave", function() + if self.opts.preview.type == "main" and self.clicked:is_active() and Preview.is_open() then + local main = self.preview_win.opts.win + local preview = self.preview_win.win + if main and preview and vim.api.nvim_win_is_valid(main) and vim.api.nvim_win_is_valid(preview) then + local view = vim.api.nvim_win_call(preview, vim.fn.winsaveview) + vim.api.nvim_win_call(main, function() + vim.fn.winrestview(view) + end) + vim.api.nvim_set_current_win(main) + end + end + Preview.close() + end) + + local _self = Util.weak(self) + + local preview = Util.throttle( + M.preview, + Util.throttle_opts(self.opts.throttle.preview, { + ms = 100, + debounce = true, + }) + ) + + self.win:on("CursorMoved", function() + local this = _self() + if not this then + return true + end + M._last[self.opts.mode or ""] = self:at() + if this.opts.auto_preview then + local loc = this:at() + if loc and loc.item then + preview(this, loc.item) + end + end + end) + + if self.opts.follow then + -- tracking of the current item + self.win:on("CursorMoved", function() + local this = _self() + if not this then + return true + end + if this.win:valid() then + this:follow() + end + end, { buffer = false }) + end + + self.win:on("OptionSet", function() + local this = _self() + if not this then + return true + end + if this.win:valid() then + local foldlevel = vim.wo[this.win.win].foldlevel + if foldlevel ~= this.renderer.foldlevel then + this:fold_level({ level = foldlevel }) + end + end + end, { pattern = "foldlevel", buffer = false }) + + for k, v in pairs(self.opts.keys) do + if v ~= false then + self:map(k, v) + end + end + + self.win:map("", function() + self.clicked:start(100, 0, function() end) + return "" + end, { remap = false, expr = true }) +end + +---@param node? trouble.Node +function M:delete(node) + local selection = node and { node } or self:selection() + if #selection == 0 then + return + end + for _, n in ipairs(selection) do + n:delete() + end + self.opts.auto_refresh = false + self:render() +end + +---@param node? trouble.Node +---@param opts? trouble.Render.fold_opts +function M:fold(node, opts) + node = node or self:at().node + if node then + self.renderer:fold(node, opts) + self:render() + end +end + +---@param opts {level?:number, add?:number} +function M:fold_level(opts) + self.renderer:fold_level(opts) + self:render() +end + +---@param item? trouble.Item +---@param opts? {split?: boolean, vsplit?:boolean} +function M:jump(item, opts) + opts = opts or {} + item = item or self:at().item + vim.schedule(function() + Preview.close() + end) + if not item then + return Util.warn("No item to jump to") + end + + if not (item.buf or item.filename) then + Util.warn("No buffer or filename for item") + return + end + + item.buf = item.buf or vim.fn.bufadd(item.filename) + + if not vim.api.nvim_buf_is_loaded(item.buf) then + vim.fn.bufload(item.buf) + end + if not vim.bo[item.buf].buflisted then + vim.bo[item.buf].buflisted = true + end + local main = self:main() + local win = main and main.win or 0 + + vim.api.nvim_win_call(win, function() + -- save position in jump list + vim.cmd("normal! m'") + end) + + if opts.split then + vim.api.nvim_win_call(win, function() + vim.cmd("split") + win = vim.api.nvim_get_current_win() + end) + elseif opts.vsplit then + vim.api.nvim_win_call(win, function() + vim.cmd("vsplit") + win = vim.api.nvim_get_current_win() + end) + end + + vim.api.nvim_win_set_buf(win, item.buf) + -- order of the below seems important with splitkeep=screen + vim.api.nvim_set_current_win(win) + vim.api.nvim_win_set_cursor(win, item.pos) + vim.api.nvim_win_call(win, function() + vim.cmd("norm! zzzv") + end) + return item +end + +function M:wait(fn) + self.first_render:next(fn) +end + +---@param item? trouble.Item +function M:preview(item) + item = item or self:at().item + if not item then + return Util.warn("No item to preview") + end + + return Preview.open(self, item, { scratch = self.opts.preview.scratch }) +end + +function M:main() + self._main = Main.get(self.opts.pinned and self._main or nil) + return self._main +end + +function M:goto_main() + local main = self:main() + if main then + vim.api.nvim_set_current_win(main.win) + end +end + +function M:listen() + self:main() + + for _, section in ipairs(self.sections) do + section:listen() + end +end + +---@param cursor? number[] +function M:at(cursor) + if not vim.api.nvim_buf_is_valid(self.win.buf) then + return {} + end + cursor = cursor or vim.api.nvim_win_get_cursor(self.win.win) + return self.renderer:at(cursor[1]) +end + +function M:selection() + if not vim.fn.mode():lower():find("v") then + local ret = self:at() + return ret.node and { ret.node } or {} + end + vim.api.nvim_feedkeys(vim.api.nvim_replace_termcodes("", true, false, true), "x", false) + + local from = vim.api.nvim_buf_get_mark(self.win.buf, "<")[1] + local to = vim.api.nvim_buf_get_mark(self.win.buf, ">")[1] + ---@type trouble.Node[] + local ret = {} + for row = from, to do + local node = self.renderer:at(row).node + if not vim.tbl_contains(ret, node) then + ret[#ret + 1] = node + end + end + return ret +end + +---@param key string +---@param action trouble.Action.spec +function M:map(key, action) + action = Spec.action(action) + local _self = Util.weak(self) + self.win:map(key, function() + local this = _self() + if this then + this:action(action) + end + end, { desc = action.desc, mode = action.mode }) +end + +---@param opts? {idx?: number, up?:number, down?:number, jump?:boolean} +function M:move(opts) + -- start the moving timer. Will stop any previous timers, + -- so this acts as a debounce. + -- This is needed to prevent `follow` from being called + self.moving:start(M.MOVING_DELAY, 0, function() end) + + opts = opts or {} + local cursor = vim.api.nvim_win_get_cursor(self.win.win) + local from = 1 + local to = vim.api.nvim_buf_line_count(self.win.buf) + local todo = opts.idx or opts.up or opts.down or 0 + + if opts.idx and opts.idx < 0 then + from, to = to, 1 + todo = math.abs(todo) + elseif opts.down then + from = cursor[1] + 1 + elseif opts.up then + from = cursor[1] - 1 + to = 1 + end + + for row = from, to, from > to and -1 or 1 do + local info = self.renderer:at(row) + if info.item and info.first_line then + todo = todo - 1 + if todo == 0 then + vim.api.nvim_win_set_cursor(self.win.win, { row, cursor[2] }) + if opts.jump then + self:jump(info.item) + end + break + end + end + end +end + +---@param action trouble.Action.spec +---@param opts? table +function M:action(action, opts) + action = Spec.action(action) + self:wait(function() + local at = self:at() or {} + action.action(self, { + item = at.item, + node = at.node, + opts = type(opts) == "table" and opts or {}, + }) + end) +end + +---@param opts? {update?: boolean, opening?: boolean} +function M:refresh(opts) + opts = opts or {} + if not (opts.opening or self.win:valid() or self.opts.auto_open) then + return + end + ---@param section trouble.Section + return Promise.all(vim.tbl_map(function(section) + return section:refresh(opts) + end, self.sections)) +end + +function M:help() + local text = Text.new({ padding = 1 }) + + text:nl():append("# Help ", "Title"):nl() + text:append("Press ", "Comment"):append("", "Special"):append(" to close", "Comment"):nl():nl() + text:append("# Keymaps ", "Title"):nl():nl() + ---@type string[] + local keys = vim.tbl_keys(self.win.keys) + table.sort(keys, function(a, b) + local lowa = string.lower(a) + local lowb = string.lower(b) + if lowa == lowb then + return a > b -- Preserve original order for equal strings + else + return lowa < lowb + end + end) + for _, key in ipairs(keys) do + local desc = self.win.keys[key] + text:append(" - ", "@punctuation.special.markdown") + text:append(key, "Special"):append(" "):append(desc):nl() + end + text:trim() + + local win = Window.new({ + type = "float", + size = { width = text:width(), height = text:height() }, + border = "rounded", + wo = { cursorline = false }, + }) + win:open():focus() + text:render(win.buf) + vim.bo[win.buf].modifiable = false + + win:map("", win.close) + win:map("q", win.close) +end + +function M:is_open() + return self.win:valid() +end + +function M:open() + if self.win:valid() then + return self + end + self + :refresh({ update = false, opening = true }) + :next(function() + local count = self:count() + if count == 0 then + if not self.opts.open_no_results then + if self.opts.warn_no_results then + Util.warn({ + "No results for **" .. self.opts.mode .. "**", + "Buffer: " .. vim.api.nvim_buf_get_name(self:main().buf), + }) + end + return + end + elseif count == 1 and self.opts.auto_jump then + self:jump(self:flatten()[1]) + return self:close() + end + self.win:open() + self:update() + end) + :next(self.first_update.resolve) + return self +end + +function M:close() + if vim.api.nvim_get_current_win() == self.win.win then + self:goto_main() + end + Preview.close() + self.win:close() + return self +end + +function M:count() + local count = 0 + for _, section in ipairs(self.sections) do + if section.node then + count = count + section.node:count() + end + end + return count +end + +function M:flatten() + local ret = {} + for _, section in ipairs(self.sections) do + section.node:flatten(ret) + end + return ret +end + +-- called when results are updated +function M:update() + local is_open = self.win:valid() + local count = self:count() + + if count == 0 and is_open and self.opts.auto_close then + return self:close() + end + + if self.opts.auto_open and not is_open and count > 0 then + self.win:open() + is_open = true + end + + if not is_open then + return + end + + self:render() +end + +---@param filter trouble.Filter +---@param opts? trouble.ViewFilter.opts +function M:filter(filter, opts) + opts = opts or {} + + ---@type trouble.ViewFilter + local view_filter = vim.tbl_deep_extend("force", { + id = vim.inspect(filter), + filter = filter, + data = opts.data, + template = opts.template, + }, opts) + + if opts.del or (opts.toggle and self._filters[view_filter.id]) then + self._filters[view_filter.id] = nil + else + self._filters[view_filter.id] = view_filter + end + + local filters = vim.tbl_count(self._filters) > 0 + and vim.tbl_map(function(f) + return f.filter + end, vim.tbl_values(self._filters)) + or nil + + for _, section in ipairs(self.sections) do + section.filter = filters + end + self:refresh() +end + +function M:header() + local ret = {} ---@type trouble.Format[][] + for _, filter in pairs(self._filters) do + local data = vim.tbl_deep_extend("force", { + filter = filter.filter, + }, type(filter.filter) == "table" and filter.filter or {}, filter.data or {}) + local template = filter.template or "{hl:Title}Filter:{hl} {filter}" + ret[#ret + 1] = self:format(template, data) + end + return ret +end + +---@param id string +function M:get_filter(id) + return self._filters[id] +end + +---@param template string +---@param data table +function M:format(template, data) + data.source = "view" + assert(self.opts, "opts is nil") + return Format.format(template, { item = data, opts = self.opts }) +end + +-- render the results +function M:render() + if not self.win:valid() then + return + end + + local loc = self:at() + local restore_loc = self.opts.restore and self.first_render:is_pending() and M._last[self.opts.mode or ""] + if restore_loc then + loc = restore_loc + end + + -- render sections + self.renderer:clear() + self.renderer:nl() + for _ = 1, vim.tbl_get(self.opts.win, "padding", "top") or 0 do + self.renderer:nl() + end + + local header = self:header() + for _, h in ipairs(header) do + for _, ff in ipairs(h) do + self.renderer:append(ff.text, ff) + end + self.renderer:nl() + end + + self.renderer:sections(self.sections) + self.renderer:trim() + + -- calculate initial folds + if self.renderer.foldlevel == nil then + local level = vim.wo[self.win.win].foldlevel + if level < self.renderer.max_depth then + self.renderer:fold_level({ level = level }) + -- render again to apply folds + return self:render() + end + end + + vim.schedule(function() + self.first_render.resolve() + end) + + -- render extmarks and restore window view + local view = vim.api.nvim_win_call(self.win.win, vim.fn.winsaveview) + self.renderer:render(self.win.buf) + vim.api.nvim_win_call(self.win.win, function() + vim.fn.winrestview(view) + end) + + if self.opts.follow and self:follow() then + return + end + + -- when window is at top, dont move cursor + if not restore_loc and view.topline == 1 then + return + end + + -- fast exit when cursor is already on the right item + local new_loc = self:at() + if new_loc.node and loc.node and new_loc.node.id == loc.node.id then + return + end + + -- Move cursor to the same item + local cursor = vim.api.nvim_win_get_cursor(self.win.win) + local item_row ---@type number? + if loc.node then + for row, l in pairs(self.renderer._locations) do + if loc.node:is(l.node) then + item_row = row + break + end + end + end + + -- Move cursor to the actual item when found + if item_row and item_row ~= cursor[1] then + vim.api.nvim_win_set_cursor(self.win.win, { item_row, cursor[2] }) + return + end +end + +-- When not in the trouble window, try to show the range +function M:follow() + if not self.win:valid() then -- trouble is closed + return + end + if self.moving:is_active() then -- dont follow when moving + return + end + local current_win = vim.api.nvim_get_current_win() + if current_win == self.win.win then -- inside the trouble window + return + end + local Filter = require("trouble.filter") + local ctx = { opts = self.opts, main = self:main() } + local fname = vim.api.nvim_buf_get_name(ctx.main.buf or 0) + local loc = self:at() + + -- check if we're already in the file group + local in_group = loc.node and loc.node.item and loc.node.item.filename == fname + + ---@type number[]|nil + local cursor_item = nil + local cursor_group = cursor_item + + for row, l in pairs(self.renderer._locations) do + -- only return the group if we're not yet in the group + -- and the group's filename matches the current file + local is_group = not in_group and l.node and l.node.group and l.node.item and l.node.item.filename == fname + if is_group then + cursor_group = { row, 1 } + end + + -- prefer a full match + local is_current = l.item and Filter.is(l.item, { range = true }, ctx) + if is_current then + cursor_item = { row, 1 } + end + end + + local cursor = cursor_item or cursor_group + if cursor then + -- make sure the cursorline is visible + vim.wo[self.win.win].cursorline = true + vim.api.nvim_win_set_cursor(self.win.win, cursor) + return true + end +end + +return M diff --git a/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/view/main.lua b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/view/main.lua new file mode 100644 index 00000000..9505cd11 --- /dev/null +++ b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/view/main.lua @@ -0,0 +1,94 @@ +local Preview = require("trouble.view.preview") + +---@class trouble.Main +---@field win number +---@field buf number +---@field filename string +---@field cursor trouble.Pos + +local M = {} +M._main = nil ---@type trouble.Main? + +function M.setup() + local group = vim.api.nvim_create_augroup("trouble.main", { clear = true }) + vim.api.nvim_create_autocmd({ "BufEnter", "WinEnter" }, { + group = group, + callback = function() + local win = vim.api.nvim_get_current_win() + local buf = vim.api.nvim_win_get_buf(win) + if M._valid(win, buf) then + M.set(M._info(win)) + end + end, + }) + M.set(M._find()) +end + +---@param main trouble.Main +function M.set(main) + M._main = main +end + +function M._valid(win, buf) + if not win or not buf then + return false + end + if not vim.api.nvim_win_is_valid(win) or not vim.api.nvim_buf_is_valid(buf) then + return false + end + if vim.api.nvim_win_get_buf(win) ~= buf then + return false + end + if Preview.is_win(win) or vim.w[win].trouble then + return false + end + if vim.api.nvim_win_get_config(win).relative ~= "" then + return false + end + if vim.bo[buf].buftype ~= "" then + return false + end + return true +end + +---@private +function M._find() + local wins = vim.api.nvim_list_wins() + table.insert(wins, 1, vim.api.nvim_get_current_win()) + for _, win in ipairs(wins) do + local b = vim.api.nvim_win_get_buf(win) + if M._valid(win, b) then + return M._info(win) + end + end +end + +---@private +---@return trouble.Main +function M._info(win) + local b = vim.api.nvim_win_get_buf(win) + return { + win = win, + buf = b, + filename = vim.fs.normalize(vim.api.nvim_buf_get_name(b)), + cursor = vim.api.nvim_win_get_cursor(win), + } +end + +---@param main? trouble.Main +---@return trouble.Main? +function M.get(main) + main = main or M._main + + local valid = main and M._valid(main.win, main.buf) + + if not valid then + main = M._find() + end + -- Always return a main window even if it is not valid + main = main or M._info(vim.api.nvim_get_current_win()) + main.cursor = vim.api.nvim_win_get_cursor(main.win) + return main +end + +return M diff --git a/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/view/preview.lua b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/view/preview.lua new file mode 100644 index 00000000..35c386d9 --- /dev/null +++ b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/view/preview.lua @@ -0,0 +1,167 @@ +local Render = require("trouble.view.render") +local Util = require("trouble.util") + +local M = {} +M.preview = nil ---@type {item:trouble.Item, win:number, buf: number, close:fun()}? + +function M.is_open() + return M.preview ~= nil +end + +function M.is_win(win) + return M.preview and M.preview.win == win +end + +function M.item() + return M.preview and M.preview.item +end + +function M.close() + local preview = M.preview + M.preview = nil + if not preview then + return + end + Render.reset(preview.buf) + preview.close() +end + +--- Create a preview buffer for an item. +--- If the item has a loaded buffer, use that, +--- otherwise create a new buffer. +---@param item trouble.Item +---@param opts? {scratch?:boolean} +function M.create(item, opts) + opts = opts or {} + + local buf = item.buf or vim.fn.bufnr(item.filename) + + if item.filename and vim.fn.isdirectory(item.filename) == 1 then + return + end + + -- create a scratch preview buffer when needed + if not (buf and vim.api.nvim_buf_is_loaded(buf)) then + if opts.scratch then + buf = vim.api.nvim_create_buf(false, true) + vim.bo[buf].bufhidden = "wipe" + vim.bo[buf].buftype = "nofile" + local lines = Util.get_lines({ path = item.filename, buf = item.buf }) + if not lines then + return + end + vim.api.nvim_buf_set_lines(buf, 0, -1, false, lines) + local ft = item:get_ft(buf) + if ft then + local lang = vim.treesitter.language.get_lang(ft) + if not pcall(vim.treesitter.start, buf, lang) then + vim.bo[buf].syntax = ft + end + end + else + item.buf = vim.fn.bufadd(item.filename) + buf = item.buf + + if not vim.api.nvim_buf_is_loaded(item.buf) then + vim.fn.bufload(item.buf) + end + if not vim.bo[item.buf].buflisted then + vim.bo[item.buf].buflisted = true + end + end + end + + return buf +end + +---@param view trouble.View +---@param item trouble.Item +---@param opts? {scratch?:boolean} +function M.open(view, item, opts) + if M.item() == item then + return + end + if M.preview and M.preview.item.filename ~= item.filename then + M.close() + end + + if not M.preview then + local buf = M.create(item, opts) + if not buf then + return + end + + M.preview = M.preview_win(buf, view) + + M.preview.buf = buf + end + M.preview.item = item + + Render.reset(M.preview.buf) + + -- make sure we highlight at least one character + local end_pos = { item.end_pos[1], item.end_pos[2] } + if end_pos[1] == item.pos[1] and end_pos[2] == item.pos[2] then + end_pos[2] = end_pos[2] + 1 + end + + -- highlight the line + Util.set_extmark(M.preview.buf, Render.ns, item.pos[1] - 1, 0, { + end_row = end_pos[1], + hl_group = "CursorLine", + hl_eol = true, + strict = false, + priority = 150, + }) + + -- highlight the range + Util.set_extmark(M.preview.buf, Render.ns, item.pos[1] - 1, item.pos[2], { + end_row = end_pos[1] - 1, + end_col = end_pos[2], + hl_group = "TroublePreview", + strict = false, + priority = 160, + }) + + -- no autocmds should be triggered. So LSP's etc won't try to attach in the preview + Util.noautocmd(function() + if pcall(vim.api.nvim_win_set_cursor, M.preview.win, item.pos) then + vim.api.nvim_win_call(M.preview.win, function() + vim.cmd("norm! zzzv") + end) + end + end) + + return item +end + +---@param buf number +---@param view trouble.View +function M.preview_win(buf, view) + if view.opts.preview.type == "main" then + local main = view:main() + if not main then + Util.debug("No main window") + return + end + view.preview_win.opts.win = main.win + else + view.preview_win.opts.win = view.win.win + end + + view.preview_win:open() + Util.noautocmd(function() + view.preview_win:set_buf(buf) + view.preview_win:set_options("win") + vim.w[view.preview_win.win].trouble_preview = true + end) + + return { + win = view.preview_win.win, + close = function() + view.preview_win:close() + end, + } +end + +return M diff --git a/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/view/render.lua b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/view/render.lua new file mode 100644 index 00000000..93c15f29 --- /dev/null +++ b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/view/render.lua @@ -0,0 +1,264 @@ +local Cache = require("trouble.cache") +local Format = require("trouble.format") +local Indent = require("trouble.view.indent") +local Text = require("trouble.view.text") +local Util = require("trouble.util") + +---@alias trouble.Render.Location {item?: trouble.Item, node?: trouble.Node, first_line?:boolean} +---@class trouble.Render: trouble.Text +---@field _locations trouble.Render.Location[] Maps line numbers to items. +---@field _folded table +---@field root_nodes trouble.Node[] +---@field foldlevel? number +---@field foldenable boolean +---@field max_depth number +---@field view trouble.View +---@field opts trouble.Config +local M = setmetatable({}, Text) +M.__index = M + +---@class trouble.Render.opts: trouble.Text.opts +---@field indent? trouble.Indent.symbols +---@field formatters? table + +---@param text_opts trouble.Text.opts +---@param opts trouble.Config +function M.new(opts, text_opts) + local text = Text.new(text_opts) + ---@type trouble.Render + ---@diagnostic disable-next-line: assign-type-mismatch + local self = setmetatable(text, M) + self.opts = opts + self._folded = {} + self.foldenable = true + self:clear() + return self +end + +---@alias trouble.Render.fold_opts {action?: "open"|"close"|"toggle", recursive?: boolean} +---@param node trouble.Node +---@param opts? trouble.Render.fold_opts +function M:fold(node, opts) + self.foldenable = true + opts = opts or {} + local action = opts.action or "toggle" + if node:is_leaf() and node.parent then + node = node.parent + end + local id = node.id + if action == "toggle" then + if self._folded[id] then + action = "open" + else + action = "close" + end + end + local stack = { node } + while #stack > 0 do + local n = table.remove(stack) --[[@as trouble.Node]] + if not n:is_leaf() then + if action == "open" then + self._folded[n.id] = nil + local parent = n.parent + while parent do + self._folded[parent.id] = nil + parent = parent.parent + end + else + self._folded[n.id] = true + end + if opts.recursive then + for _, c in ipairs(n.children or {}) do + table.insert(stack, c) + end + end + end + end +end + +---@param opts {level?:number, add?:number} +function M:fold_level(opts) + self.foldenable = true + self.foldlevel = self.foldlevel or (self.max_depth - 1) or 0 + if opts.level then + self.foldlevel = opts.level + end + if opts.add then + self.foldlevel = self.foldlevel + opts.add + end + self.foldlevel = math.min(self.max_depth - 1, self.foldlevel) + self.foldlevel = math.max(0, self.foldlevel) + local stack = {} + for _, node in ipairs(self.root_nodes) do + table.insert(stack, node) + end + while #stack > 0 do + ---@type trouble.Node + local node = table.remove(stack) + if not node:is_leaf() then + if node:depth() > self.foldlevel then + self._folded[node.id] = true + else + self._folded[node.id] = nil + end + for _, c in ipairs(node.children or {}) do + table.insert(stack, c) + end + end + end +end + +function M:clear() + Cache.langs:clear() + self.max_depth = 0 + self._lines = {} + self.ts_regions = {} + self._locations = {} + self.root_nodes = {} +end + +---@param sections trouble.Section[] +function M:sections(sections) + for _, section in ipairs(sections) do + local nodes = section.node and section.node.children + if nodes and #nodes > 0 then + self:section(section.section, nodes) + end + end +end + +---@param section trouble.Section.opts +---@param nodes trouble.Node[] +function M:section(section, nodes) + for n, node in ipairs(nodes) do + table.insert(self.root_nodes, node) + self.max_depth = math.max(self.max_depth, node:degree()) + self:node(node, section, Indent.new(self.opts.icons.indent), n == #nodes) + end +end + +function M:is_folded(node) + return self.foldenable and self._folded[node.id] +end + +---@param node trouble.Node +---@param section trouble.Section.opts +---@param indent trouble.Indent +---@param is_last boolean +function M:node(node, section, indent, is_last) + node.folded = self:is_folded(node) + if node.item then + ---@type trouble.Indent.type + local symbol = self:is_folded(node) and "fold_closed" + or node:depth() == 1 and "fold_open" + or is_last and "last" + or "middle" + symbol = node:depth() == 1 and node:is_leaf() and "ws" or symbol + indent:add(symbol) + -- self:item(node.item, node, section.groups[node.depth].format, true, indent) + self:item(node, section, indent) + indent:del() + end + + if self:is_folded(node) then + return -- don't render children + end + + indent:add((is_last or node:depth() == 1) and "ws" or "top") + + for i, n in ipairs(node.children or {}) do + self:node(n, section, indent, i == #node.children) + end + + indent:del() +end + +--- Returns the item and node at the given row. +--- For a group, only the node is returned. +--- To get the group item used for formatting, use `node.items[1]`. +---@param row number +function M:at(row) + return self._locations[row] or {} +end + +---@param node trouble.Node +---@param section trouble.Section.opts +---@param indent trouble.Indent +function M:item(node, section, indent) + local item = node.item + if not item then + return + end + local is_group = node.group ~= nil + local row = self:row() + local format_string = node.group and node.group.format or section.format + local cache_key = "render:" .. node:depth() .. format_string + + ---@type TextSegment[]? + local segments = not is_group and item.cache[cache_key] + + if not self.opts.indent_guides then + indent = indent:indent() + end + if self._opts.indent ~= false then + self:append(indent) + end + if segments then + self:append(segments) + else + local format = Format.format(format_string, { item = item, node = node, opts = self.opts }) + indent:multi_line() + for _, ff in ipairs(format) do + local text = self._opts.multiline and ff.text or ff.text:gsub("[\n\r]+", " ") + local offset ---@type number? start column of the first line + local first ---@type string? first line + if ff.hl == "ts" then + local lang = item:get_lang() + if lang then + ff.hl = "ts." .. lang + else + ff.hl = nil + end + end + for l, line in Util.lines(text) do + if l == 1 then + first = line + else + -- PERF: most items are single line, so do heavy lifting only when more than one line + offset = offset or (self:col({ display = true }) - vim.fn.strdisplaywidth(first or "")) + self:nl() + self:append(indent) + local indent_width = indent:width({ display = true }) + -- align to item column + if offset > indent_width then + self:append((" "):rep(offset - indent_width)) + end + end + self:append(line, { + hl = ff.hl, + line = l, + }) + end + end + -- NOTE: + -- * don't cache groups, since they can contain aggregates. + -- * don't cache multi-line items + -- * don't cache the indent part of the line + if not is_group and self:row() == row then + item.cache[cache_key] = + vim.list_slice(self._lines[#self._lines], self._opts.indent == false and 1 or (#indent + 1)) + end + end + + for r = row, self:row() do + self._locations[r] = { + first_line = r == row, + item = not is_group and item or nil, + node = node, + } + end + + self:nl() +end + +return M diff --git a/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/view/section.lua b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/view/section.lua new file mode 100644 index 00000000..c7097504 --- /dev/null +++ b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/view/section.lua @@ -0,0 +1,174 @@ +local Filter = require("trouble.filter") +local Main = require("trouble.view.main") +local Preview = require("trouble.view.preview") +local Promise = require("trouble.promise") +local Sort = require("trouble.sort") +local Sources = require("trouble.sources") +local Tree = require("trouble.tree") +local Util = require("trouble.util") + +---@class trouble.Section +---@field section trouble.Section.opts +---@field finder trouble.Source.get +---@field private _main? trouble.Main +---@field opts trouble.Config +---@field items trouble.Item[] +---@field node? trouble.Node +---@field fetching boolean +---@field filter? trouble.Filter +---@field id number +---@field on_update? fun(self: trouble.Section) +---@field _refresh fun() +local M = {} +M._id = 0 + +---@param section trouble.Section.opts +---@param opts trouble.Config +function M.new(section, opts) + local self = setmetatable({}, { __index = M }) + self.section = section + self.opts = opts + M._id = M._id + 1 + self.id = M._id + self.finder = Sources.get(section.source) + self.items = {} + self:main() + + local _self = Util.weak(self) + + self._refresh = Util.throttle( + M.refresh, + Util.throttle_opts(opts.throttle.refresh, { + ms = 20, + is_running = function() + local this = _self() + return this and this.fetching + end, + }) + ) + + return self +end + +---@param opts? {update?: boolean} +function M:refresh(opts) + -- if self.section.source ~= "lsp.document_symbols" then + -- Util.debug("Section Refresh", { + -- id = self.id, + -- source = self.section.source, + -- }) + -- end + self.fetching = true + return Promise.new(function(resolve) + self:main_call(function(main) + local ctx = { opts = self.opts, main = main } + self.finder(function(items) + items = Filter.filter(items, self.section.filter, ctx) + if self.filter then + items = Filter.filter(items, self.filter, ctx) + end + items = Sort.sort(items, self.section.sort, ctx) + self.items = items + self.node = Tree.build(items, self.section) + if not (opts and opts.update == false) then + self:update() + end + resolve(self) + end, ctx) + end) + end) + :catch(Util.error) + :timeout(2000) + :catch(function() end) + :finally(function() + self.fetching = false + end) +end + +---@param fn fun(main: trouble.Main) +function M:main_call(fn) + local main = self:main() + + if not main then + return + end + + if Preview.is_win(main.win) then + return + end + + local current = { + win = vim.api.nvim_get_current_win(), + buf = vim.api.nvim_get_current_buf(), + cursor = vim.api.nvim_win_get_cursor(0), + } + + if vim.deep_equal(current, main) then + fn(main) + elseif vim.api.nvim_win_get_buf(main.win) == main.buf then + vim.api.nvim_win_call(main.win, function() + fn(main) + end) + else + Util.debug({ + "Main window switched buffers", + "Main: " .. vim.api.nvim_buf_get_name(main.buf), + "Current: " .. vim.api.nvim_buf_get_name(vim.api.nvim_win_get_buf(main.win)), + }) + end +end + +function M:update() + if self.on_update then + self:on_update() + end +end + +function M:main() + self._main = Main.get(self.opts.pinned and self._main or nil) + return self._main +end + +function M:augroup() + return "trouble.section." .. self.section.source .. "." .. self.id +end + +function M:stop() + pcall(vim.api.nvim_del_augroup_by_name, self:augroup()) +end + +function M:listen() + local _self = Util.weak(self) + + local group = vim.api.nvim_create_augroup(self:augroup(), { clear = true }) + for _, event in ipairs(self.section.events or {}) do + vim.api.nvim_create_autocmd(event.event, { + group = group, + pattern = event.pattern, + callback = function(e) + local this = _self() + if not this then + return true + end + if not this.opts.auto_refresh then + return + end + if not vim.api.nvim_buf_is_valid(e.buf) then + return + end + if event.main then + local main = this:main() + if main and main.buf ~= e.buf then + return + end + end + if e.event == "BufEnter" and vim.bo[e.buf].buftype ~= "" then + return + end + this:_refresh() + end, + }) + end +end + +return M diff --git a/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/view/text.lua b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/view/text.lua new file mode 100644 index 00000000..a6632c2b --- /dev/null +++ b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/view/text.lua @@ -0,0 +1,213 @@ +local Util = require("trouble.util") + +---@class TextSegment +---@field str string Text +---@field hl? string Extmark hl group +---@field ts? string TreeSitter language +---@field line? number line number in a multiline segment +---@field width? number + +---@alias Extmark {hl_group?:string, col?:number, row?:number, end_col?:number} + +---@class trouble.Text.opts +---@field padding? number +---@field multiline? boolean +---@field indent? boolean + +---@class trouble.Text +---@field _lines TextSegment[][] +---@field _col number +---@field _indents string[] +---@field _opts trouble.Text.opts +local M = {} +M.__index = M + +M.ns = vim.api.nvim_create_namespace("trouble.text") + +function M.reset(buf) + if vim.api.nvim_buf_is_valid(buf) then + vim.api.nvim_buf_clear_namespace(buf, M.ns, 0, -1) + end +end + +---@param opts? trouble.Text.opts +function M.new(opts) + local self = setmetatable({}, M) + self._lines = {} + self._col = 0 + self._opts = opts or {} + self._opts.padding = self._opts.padding or 0 + self._indents = {} + for i = 0, 100, 1 do + self._indents[i] = (" "):rep(i) + end + return self +end + +function M:height() + return #self._lines +end + +function M:width() + local width = 0 + for _, line in ipairs(self._lines) do + local w = 0 + for _, segment in ipairs(line) do + w = w + vim.fn.strdisplaywidth(segment.str) + end + width = math.max(width, w) + end + return width + ((self._opts.padding or 0) * 2) +end + +---@param text string|TextSegment[] +---@param opts? string|{ts?:string, hl?:string, line?:number} +function M:append(text, opts) + opts = opts or {} + if #self._lines == 0 then + self:nl() + end + + if type(text) == "table" then + for _, s in ipairs(text) do + s.width = s.width or #s.str + self._col = self._col + s.width + table.insert(self._lines[#self._lines], s) + end + return self + end + + opts = type(opts) == "string" and { hl = opts } or opts + if opts.hl == "md" then + opts.ts = "markdown" + elseif opts.hl and opts.hl:sub(1, 3) == "ts." then + opts.ts = opts.hl:sub(4) + end + + for l, line in Util.lines(text) do + local width = #line + self._col = self._col + width + table.insert(self._lines[#self._lines], { + str = line, + width = width, + hl = opts.hl, + ts = opts.ts, + line = opts.line or l, + }) + end + return self +end + +function M:nl() + table.insert(self._lines, {}) + self._col = 0 + return self +end + +---@param opts? {sep?:string} +function M:statusline(opts) + local sep = opts and opts.sep or " " + local lines = {} ---@type string[] + for _, line in ipairs(self._lines) do + local parts = {} + for _, segment in ipairs(line) do + local str = segment.str:gsub("%%", "%%%%") + if segment.hl then + str = ("%%#%s#%s%%*"):format(segment.hl, str) + end + parts[#parts + 1] = str + end + table.insert(lines, table.concat(parts, "")) + end + return table.concat(lines, sep) +end + +function M:render(buf) + local lines = {} + + local padding = (" "):rep(self._opts.padding) + for _, line in ipairs(self._lines) do + local parts = { padding } + for _, segment in ipairs(line) do + parts[#parts + 1] = segment.str + end + table.insert(lines, table.concat(parts, "")) + end + + vim.bo[buf].modifiable = true + vim.api.nvim_buf_clear_namespace(buf, M.ns, 0, -1) + vim.api.nvim_buf_set_lines(buf, 0, -1, false, lines) + + local regions = {} ---@type trouble.LangRegions + + for l, line in ipairs(self._lines) do + local col = self._opts.padding or 0 + local row = l - 1 + + for _, segment in ipairs(line) do + local width = segment.width + if segment.ts then + regions[segment.ts or ""] = regions[segment.ts] or {} + local ts_regions = regions[segment.ts or ""] + local last_region = ts_regions[#ts_regions] + if not last_region then + last_region = {} + table.insert(ts_regions, last_region) + end + -- combine multiline item segments in one region + if segment.line and #last_region ~= segment.line - 1 then + last_region = {} + table.insert(ts_regions, last_region) + end + table.insert(last_region, { + row, + col, + row, + col + width + 1, + }) + elseif segment.hl then + Util.set_extmark(buf, M.ns, row, col, { + hl_group = segment.hl, + end_col = col + width, + }) + end + col = col + width + end + end + vim.bo[buf].modifiable = false + local changetick = vim.b[buf].changetick + + vim.schedule(function() + if not vim.api.nvim_buf_is_valid(buf) then + return + end + if vim.b[buf].changetick ~= changetick then + return + end + require("trouble.view.treesitter").attach(buf, regions) + end) +end + +function M:trim() + while #self._lines > 0 and #self._lines[#self._lines] == 0 do + table.remove(self._lines) + end +end + +function M:row() + return #self._lines == 0 and 1 or #self._lines +end + +---@param opts? {display:boolean} +function M:col(opts) + if opts and opts.display then + local ret = 0 + for _, segment in ipairs(self._lines[#self._lines] or {}) do + ret = ret + vim.fn.strdisplaywidth(segment.str) + end + return ret + end + return self._col +end + +return M diff --git a/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/view/treesitter.lua b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/view/treesitter.lua new file mode 100644 index 00000000..a8d38e0a --- /dev/null +++ b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/view/treesitter.lua @@ -0,0 +1,86 @@ +---@alias trouble.LangRegions table + +local M = {} + +M.cache = {} ---@type table> +local ns = vim.api.nvim_create_namespace("trouble.treesitter") + +local TSHighlighter = vim.treesitter.highlighter + +local function wrap(name) + return function(_, win, buf, ...) + if not M.cache[buf] then + return false + end + for _, hl in pairs(M.cache[buf] or {}) do + if hl.enabled then + TSHighlighter.active[buf] = hl.highlighter + TSHighlighter[name](_, win, buf, ...) + end + end + TSHighlighter.active[buf] = nil + end +end + +M.did_setup = false +function M.setup() + if M.did_setup then + return + end + M.did_setup = true + + vim.api.nvim_set_decoration_provider(ns, { + on_win = wrap("_on_win"), + on_line = wrap("_on_line"), + }) + + vim.api.nvim_create_autocmd("BufWipeout", { + group = vim.api.nvim_create_augroup("trouble.treesitter.hl", { clear = true }), + callback = function(ev) + M.cache[ev.buf] = nil + end, + }) +end + +---@param buf number +---@param regions trouble.LangRegions +function M.attach(buf, regions) + M.setup() + M.cache[buf] = M.cache[buf] or {} + for lang in pairs(M.cache[buf]) do + M.cache[buf][lang].enabled = regions[lang] ~= nil + end + + for lang in pairs(regions) do + M._attach_lang(buf, lang, regions[lang]) + end +end + +---@param buf number +---@param lang? string +function M._attach_lang(buf, lang, regions) + lang = lang or "markdown" + lang = lang == "markdown" and "markdown_inline" or lang + + M.cache[buf] = M.cache[buf] or {} + + if not M.cache[buf][lang] then + local ok, parser = pcall(vim.treesitter.get_parser, buf, lang) + if not ok then + local msg = "nvim-treesitter parser missing `" .. lang .. "`" + vim.notify_once(msg, vim.log.levels.WARN, { title = "trouble.nvim" }) + return + end + + M.cache[buf][lang] = { + parser = parser, + highlighter = TSHighlighter.new(parser), + } + end + M.cache[buf][lang].enabled = true + local parser = M.cache[buf][lang].parser + + parser:set_included_regions(regions) +end + +return M diff --git a/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/view/window.lua b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/view/window.lua new file mode 100644 index 00000000..560d7b89 --- /dev/null +++ b/config/neovim/store/lazy-plugins/trouble.nvim/lua/trouble/view/window.lua @@ -0,0 +1,389 @@ +local Main = require("trouble.view.main") +local Util = require("trouble.util") + +---@class trouble.Window.split +---@field type "split" +---@field relative "editor" | "win" cursor is only valid for float +---@field size number | {width:number, height:number} when a table is provided, either the width or height is used based on the position +---@field position "top" | "bottom" | "left" | "right" + +---@class trouble.Window.float +---@field type "float" +---@field relative "editor" | "win" | "cursor" cursor is only valid for float +---@field size {width: number, height: number} +---@field position {[1]: number, [2]: number} +---@field anchor? string +---@field focusable? boolean +---@field zindex? integer +---@field border? any +---@field title? string|{[1]: string, [2]: string} +---@field title_pos? string +---@field footer? string|{[1]: string, [2]: string} +---@field footer_pos? string +---@field fixed? boolean + +---@class trouble.Window.main +---@field type "main" + +---@class trouble.Window.base +---@field padding? {top?:number, left?:number} +---@field wo? vim.wo +---@field bo? vim.bo +---@field minimal? boolean (defaults to true) +---@field win? number +---@field on_mount? fun(self: trouble.Window) +---@field on_close? fun(self: trouble.Window) + +---@alias trouble.Window.opts trouble.Window.base|trouble.Window.split|trouble.Window.float|trouble.Window.main + +---@class trouble.Window +---@field opts trouble.Window.opts +---@field win? number +---@field buf number +---@field id number +---@field keys table +local M = {} +M.__index = M + +local _id = 0 +local function next_id() + _id = _id + 1 + return _id +end + +local split_commands = { + editor = { + top = "topleft", + right = "vertical botright", + bottom = "botright", + left = "vertical topleft", + }, + win = { + top = "aboveleft", + right = "vertical rightbelow", + bottom = "belowright", + left = "vertical leftabove", + }, +} + +local float_options = { + "anchor", + "border", + "bufpos", + "col", + "external", + "fixed", + "focusable", + "footer", + "footer_pos", + "height", + "hide", + "noautocmd", + "relative", + "row", + "style", + "title", + "title_pos", + "width", + "win", + "zindex", +} + +---@type trouble.Window.opts +local defaults = { + padding = { top = 0, left = 1 }, + bo = { + bufhidden = "wipe", + filetype = "trouble", + buftype = "nofile", + }, + wo = { + winbar = "", + winblend = 0, + }, +} + +M.FOLDS = { + wo = { + foldcolumn = "0", + foldenable = false, + foldlevel = 99, + foldmethod = "manual", + }, +} + +---@type trouble.Window.opts +local minimal = { + wo = { + cursorcolumn = false, + cursorline = true, + cursorlineopt = "both", + fillchars = "eob: ", + list = false, + number = false, + relativenumber = false, + signcolumn = "no", + spell = false, + winbar = "", + statuscolumn = "", + winfixheight = true, + winfixwidth = true, + winhighlight = "Normal:TroubleNormal,NormalNC:TroubleNormalNC,EndOfBuffer:TroubleNormal", + wrap = false, + }, +} + +---@param opts? trouble.Window.opts +function M.new(opts) + local self = setmetatable({}, M) + self.id = next_id() + opts = opts or {} + + if opts.minimal == nil then + opts.minimal = opts.type ~= "main" + end + + opts = vim.tbl_deep_extend("force", {}, defaults, opts.minimal and minimal or {}, opts or {}) + opts.type = opts.type or "split" + if opts.type == "split" then + opts.relative = opts.relative or "editor" + opts.position = opts.position or "bottom" + opts.size = opts.size or (opts.position == "bottom" or opts.position == "top") and 10 or 30 + opts.win = opts.win or vim.api.nvim_get_current_win() + elseif opts.type == "float" then + opts.relative = opts.relative or "editor" + opts.size = opts.size or { width = 0.8, height = 0.8 } + opts.position = type(opts.position) == "table" and opts.position or { 0.5, 0.5 } + elseif opts.type == "main" then + opts.type = "float" + opts.relative = "win" + opts.position = { 0, 0 } + opts.size = { width = 1, height = 1 } + opts.wo.winhighlight = "Normal:Normal" + end + self.opts = opts + return self +end + +---@param clear? boolean +function M:augroup(clear) + return vim.api.nvim_create_augroup("trouble.window." .. self.id, { clear = clear == true }) +end + +function M:parent_size() + if self.opts.relative == "editor" or self.opts.relative == "cursor" then + return { width = vim.o.columns, height = vim.o.lines } + end + local ret = { + width = vim.api.nvim_win_get_width(self.opts.win), + height = vim.api.nvim_win_get_height(self.opts.win), + } + -- account for winbar + if vim.wo[self.opts.win].winbar ~= "" then + ret.height = ret.height - 1 + end + return ret +end + +---@param type "win" | "buf" +function M:set_options(type) + local opts = type == "win" and self.opts.wo or self.opts.bo + ---@diagnostic disable-next-line: no-unknown + for k, v in pairs(opts or {}) do + ---@diagnostic disable-next-line: no-unknown + local ok, err = pcall(vim.api.nvim_set_option_value, k, v, type == "win" and { + scope = "local", + win = self.win, + } or { buf = self.buf }) + if not ok then + Util.error("Error setting option `" .. k .. "=" .. v .. "`\n\n" .. err) + end + end +end + +function M:mount() + self.keys = {} + self.buf = vim.api.nvim_create_buf(false, true) + self:set_options("buf") + if self.opts.type == "split" then + ---@diagnostic disable-next-line: param-type-mismatch + self:mount_split(self.opts) + else + ---@diagnostic disable-next-line: param-type-mismatch + self:mount_float(self.opts) + end + + self:set_options("win") + + self:on({ "BufWinLeave" }, vim.schedule_wrap(self.check_alien)) + + self:on("WinClosed", function() + if self.opts.on_close then + self.opts.on_close(self) + end + self:augroup(true) + end, { win = true }) + + if self.opts.on_mount then + self.opts.on_mount(self) + end +end + +function M:set_buf(buf) + self.buf = buf + if self.win and vim.api.nvim_win_is_valid(self.win) then + vim.api.nvim_win_set_buf(self.win, buf) + end +end + +function M:check_alien() + if self.win and vim.api.nvim_win_is_valid(self.win) then + local buf = vim.api.nvim_win_get_buf(self.win) + if buf ~= self.buf then + -- move the alien buffer to another window + local main = Main:get() + if main then + vim.api.nvim_win_set_buf(main.win, buf) + -- restore the trouble window + self:close() + self:open() + end + end + end +end + +function M:close() + pcall(vim.api.nvim_win_close, self.win, true) + self:augroup(true) + self.win = nil +end + +function M:open() + if self:valid() then + return self + end + self:close() + self:mount() + return self +end + +function M:valid() + return self.win + and vim.api.nvim_win_is_valid(self.win) + and self.buf + and vim.api.nvim_buf_is_valid(self.buf) + and vim.api.nvim_win_get_buf(self.win) == self.buf +end + +---@param opts trouble.Window.split|trouble.Window.base +function M:mount_split(opts) + if self.opts.win and not vim.api.nvim_win_is_valid(self.opts.win) then + self.opts.win = 0 + end + local parent_size = self:parent_size() + local size = opts.size + if type(size) == "table" then + size = opts.position == "left" or opts.position == "right" and size.width or size.height + end + if size <= 1 then + local vertical = opts.position == "left" or opts.position == "right" + size = math.floor(parent_size[vertical and "width" or "height"] * size) + end + local cmd = split_commands[opts.relative][opts.position] + Util.noautocmd(function() + vim.api.nvim_win_call(opts.win, function() + vim.cmd("silent noswapfile " .. cmd .. " " .. size .. "split") + vim.api.nvim_win_set_buf(0, self.buf) + self.win = vim.api.nvim_get_current_win() + end) + end) +end + +---@param opts trouble.Window.float|trouble.Window.base +function M:mount_float(opts) + local parent_size = self:parent_size() + ---@type vim.api.keyset.win_config + local config = {} + for _, v in ipairs(float_options) do + ---@diagnostic disable-next-line: no-unknown + config[v] = opts[v] + end + config.focusable = true + config.height = opts.size.height <= 1 and math.floor(parent_size.height * opts.size.height) or opts.size.height + config.width = opts.size.width <= 1 and math.floor(parent_size.width * opts.size.width) or opts.size.width + + config.row = math.abs(opts.position[1]) <= 1 and math.floor((parent_size.height - config.height) * opts.position[1]) + or opts.position[1] + config.row = config.row < 0 and (parent_size.height + config.row) or config.row + + config.col = math.abs(opts.position[2]) <= 1 and math.floor((parent_size.width - config.width) * opts.position[2]) + or opts.position[2] + config.col = config.col < 0 and (parent_size.width + config.col) or config.col + if config.relative ~= "win" then + config.win = nil + end + + self.win = vim.api.nvim_open_win(self.buf, false, config) +end + +function M:focus() + if self:valid() then + vim.api.nvim_set_current_win(self.win) + end +end + +---@param events string|string[] +---@param fn fun(self:trouble.Window, event:{buf:number}):boolean? +---@param opts? vim.api.keyset.create_autocmd | {buffer: false, win?:boolean} +function M:on(events, fn, opts) + opts = opts or {} + if opts.win then + opts.pattern = self.win .. "" + opts.win = nil + elseif opts.buffer == nil then + opts.buffer = self.buf + elseif opts.buffer == false then + opts.buffer = nil + end + if opts.pattern then + opts.buffer = nil + end + local _self = Util.weak(self) + opts.callback = function(e) + local this = _self() + if not this then + -- delete the autocmd + return true + end + return fn(this, e) + end + opts.group = self:augroup() + vim.api.nvim_create_autocmd(events, opts) +end + +---@param key string +---@param fn fun(self: trouble.Window):any +---@param opts? string|vim.keymap.set.Opts|{mode?:string} +function M:map(key, fn, opts) + opts = vim.tbl_deep_extend("force", { + buffer = self.buf, + nowait = true, + mode = "n", + }, type(opts) == "string" and { desc = opts } or opts or {}) + local mode = opts.mode + opts.mode = nil + ---@cast opts vim.keymap.set.Opts + if not self:valid() then + error("Cannot create a keymap for an invalid window") + end + + self.keys[key] = opts.desc or key + local weak_self = Util.weak(self) + vim.keymap.set(mode, key, function() + if weak_self() then + return fn(weak_self()) + end + end, opts) +end + +return M diff --git a/config/neovim/store/lazy-plugins/trouble.nvim/scripts/docs b/config/neovim/store/lazy-plugins/trouble.nvim/scripts/docs new file mode 100755 index 00000000..41b88e18 --- /dev/null +++ b/config/neovim/store/lazy-plugins/trouble.nvim/scripts/docs @@ -0,0 +1,3 @@ +#!/nix/store/4bj2kxdm1462fzcc2i2s4dn33g2angcc-bash-5.2p32/bin/bash + +nvim -u tests/minit.lua -l lua/trouble/docs.lua diff --git a/config/neovim/store/lazy-plugins/trouble.nvim/scripts/test b/config/neovim/store/lazy-plugins/trouble.nvim/scripts/test new file mode 100755 index 00000000..0bc1a330 --- /dev/null +++ b/config/neovim/store/lazy-plugins/trouble.nvim/scripts/test @@ -0,0 +1,3 @@ +#!/nix/store/4bj2kxdm1462fzcc2i2s4dn33g2angcc-bash-5.2p32/bin/bash + +nvim -l tests/minit.lua --minitest diff --git a/config/neovim/store/lazy-plugins/trouble.nvim/tests/minit.lua b/config/neovim/store/lazy-plugins/trouble.nvim/tests/minit.lua new file mode 100644 index 00000000..b5e16bdb --- /dev/null +++ b/config/neovim/store/lazy-plugins/trouble.nvim/tests/minit.lua @@ -0,0 +1,12 @@ +#!/usr/bin/env -S nvim -l + +vim.env.LAZY_STDPATH = ".tests" +vim.env.LAZY_PATH = vim.fs.normalize("~/projects/lazy.nvim") +load(vim.fn.system("curl -s https://raw.githubusercontent.com/folke/lazy.nvim/main/bootstrap.lua"))() + +-- Setup lazy.nvim +require("lazy.minit").setup({ + spec = { + { dir = vim.uv.cwd(), opts = {} }, + }, +}) diff --git a/config/neovim/store/lazy-plugins/trouble.nvim/tests/parser_spec.lua b/config/neovim/store/lazy-plugins/trouble.nvim/tests/parser_spec.lua new file mode 100644 index 00000000..15990eb6 --- /dev/null +++ b/config/neovim/store/lazy-plugins/trouble.nvim/tests/parser_spec.lua @@ -0,0 +1,95 @@ +local Parser = require("trouble.config.parser") +describe("Input is parsed correctly", function() + local tests = { + { + input = [[a = "b" foo = true bar=1 c = "g"]], + expected = { opts = { a = "b", foo = true, bar = 1, c = "g" }, errors = {}, args = {} }, + }, + { + input = [[key="value with spaces"]], + expected = { opts = { key = "value with spaces" }, errors = {}, args = {} }, + }, + { + input = [[arr={one, two}]], + expected = { opts = { arr = { "one", "two" } }, errors = {}, args = {} }, + }, + { + input = [[a.b = "c"]], + expected = { opts = { a = { b = "c" } }, errors = {}, args = {} }, + }, + { + input = [[vim=vim.diagnostic.severity.ERROR]], + expected = { opts = { vim = vim.diagnostic.severity.ERROR }, errors = {}, args = {} }, + }, + { + input = [[x.y.z = "value" a.b = 2]], + expected = { opts = { x = { y = { z = "value" } }, a = { b = 2 } }, errors = {}, args = {} }, + }, + { + input = [[test="hello world"]], + expected = { opts = { test = "hello world" }, errors = {}, args = {} }, + }, + { + input = [[one.two.three.four = 4]], + expected = { opts = { one = { two = { three = { four = 4 } } } }, errors = {}, args = {} }, + }, + { + input = [[a="b" c="d" e.f="g" h.i.j="k"]], + expected = { opts = { a = "b", c = "d", e = { f = "g" }, h = { i = { j = "k" } } }, errors = {}, args = {} }, + }, + { + input = [[empty = "" nonempty="not empty"]], + expected = { opts = { empty = "", nonempty = "not empty" }, errors = {}, args = {} }, + }, + { + input = [[win.position="right" win.relative="win"]], + expected = { opts = { win = { position = "right", relative = "win" } }, errors = {}, args = {} }, + }, + { + input = [[a.b="c" a = "b"]], + expected = { opts = { a = "b" }, errors = {}, args = {} }, -- This test is tricky as it will overwrite the first value of 'a' + }, + { + input = [[a="b" a.b="c"]], + expected = { opts = { a = { b = "c" } }, errors = {}, args = {} }, -- This test is tricky as it will overwrite the first value of 'a' + }, + { + input = [[a_b = 1]], + expected = { opts = { a_b = 1 }, errors = {}, args = {} }, + }, + { + input = "foo=bar bar=baz", + expected = { opts = { foo = "bar", bar = "baz" }, errors = {}, args = {} }, + }, + { + input = "foo=bar bar={ one, two, three} ", + expected = { opts = { foo = "bar", bar = { "one", "two", "three" } }, errors = {}, args = {} }, + }, + { + input = [[a.x = 1 a.y = 2 a = {z =3}]], + expected = { opts = { a = { z = 3 } }, errors = {}, args = {} }, + }, + { + input = [[ a = {z =3} a.x = 1 a.y = 2]], + expected = { opts = { a = { x = 1, y = 2, z = 3 } }, errors = {}, args = {} }, + }, + { + input = "foo", + expected = { opts = {}, errors = {}, args = { "foo" } }, + }, + { input = "foo bar", expected = { opts = {}, errors = {}, args = { "foo", "bar" } } }, + { + input = "foo bar baz", + expected = { opts = {}, errors = {}, args = { "foo", "bar", "baz" } }, + }, + } + + for _, test in ipairs(tests) do + it("parses " .. test.input, function() + local actual = Parser.parse(test.input) + assert.same(test.expected, actual) + end) + end + + return tests +end) diff --git a/config/neovim/store/lazy-plugins/trouble.nvim/tests/spec_spec.lua b/config/neovim/store/lazy-plugins/trouble.nvim/tests/spec_spec.lua new file mode 100644 index 00000000..d6b6721b --- /dev/null +++ b/config/neovim/store/lazy-plugins/trouble.nvim/tests/spec_spec.lua @@ -0,0 +1,97 @@ +local Spec = require("trouble.spec") + +describe("parses specs", function() + it("parses a sort spec", function() + local f1 = function() end + ---@type ({input:trouble.Sort.spec, output:trouble.Sort})[] + local tests = { + { + input = "foo", + output = { { field = "foo" } }, + }, + { + input = { "foo", "bar" }, + output = { { field = "foo" }, { field = "bar" } }, + }, + { + input = { "foo", "-bar" }, + output = { { field = "foo" }, { field = "bar", desc = true } }, + }, + { input = f1, output = { { sorter = f1 } } }, + { input = { buf = 0 }, output = { { filter = { buf = 0 } } } }, + { input = { { buf = 0 } }, output = { { filter = { buf = 0 } } } }, + { input = { f1, "foo" }, output = { { sorter = f1 }, { field = "foo" } } }, + } + + for _, test in ipairs(tests) do + assert.same(test.output, Spec.sort(test.input)) + end + end) + + it("parses a group spec", function() + ---@type ({input:trouble.Group.spec, output:trouble.Group})[] + local tests = { + { + input = "foo", + output = { fields = { "foo" }, format = "{foo}" }, + }, + { + input = "foo", + output = { fields = { "foo" }, format = "{foo}" }, + }, + { + input = { "foo", "bar" }, + output = { fields = { "foo", "bar" }, format = "{foo} {bar}" }, + }, + { + input = { "foo", "bar" }, + output = { fields = { "foo", "bar" }, format = "{foo} {bar}" }, + }, + { + input = { "foo", "bar" }, + output = { fields = { "foo", "bar" }, format = "{foo} {bar}" }, + }, + { + input = { + "directory", + format = "{kind_icon} {symbol.name} {text:Comment} {pos}", + }, + output = { + directory = true, + format = "{kind_icon} {symbol.name} {text:Comment} {pos}", + }, + }, + } + + for _, test in ipairs(tests) do + assert.same(test.output, Spec.group(test.input)) + end + end) + + it("parses a section spec", function() + local tests = { + { + input = { + -- error from all files + source = "diagnostics", + groups = { "filename" }, + filter = { + severity = 1, + }, + sort = { "filename", "-pos" }, + }, + output = { + events = {}, + source = "diagnostics", + groups = { { fields = { "filename" }, format = "{filename}" } }, + sort = { { field = "filename" }, { field = "pos", desc = true } }, + filter = { severity = 1 }, + format = "{filename} {pos}", + }, + }, + } + for _, test in ipairs(tests) do + assert.same(test.output, Spec.section(test.input)) + end + end) +end) diff --git a/config/neovim/store/lazy-plugins/vimtex/autoload/vimtex/syntax/p/apacite.vim b/config/neovim/store/lazy-plugins/vimtex/autoload/vimtex/syntax/p/apacite.vim new file mode 100644 index 00000000..010fb0c7 --- /dev/null +++ b/config/neovim/store/lazy-plugins/vimtex/autoload/vimtex/syntax/p/apacite.vim @@ -0,0 +1,20 @@ +" VimTeX - LaTeX plugin for Vim +" +" Maintainer: Karl Yngve Lervåg +" Email: karl.yngve@gmail.com +" + +function! vimtex#syntax#p#apacite#load(cfg) abort " {{{1 + syntax match texCmdRef nextgroup=texRefOpt,texRefArg skipwhite skipnl "\v\\citeA[pt]?>\*?" + syntax match texCmdRef nextgroup=texRefOpt,texRefArg skipwhite skipnl "\v\\Cite[pt]?>\*?" + syntax match texCmdRef nextgroup=texRefOpt,texRefArg skipwhite skipnl "\v\\[cC]iteal[tp]>\*?" + syntax match texCmdRef nextgroup=texRefOpt,texRefArg skipwhite skipnl "\v\\cite%(num|text|url)>" + syntax match texCmdRef nextgroup=texRefOpt,texRefArg skipwhite skipnl "\v\\[Cc]ite%(title|author|year%(par)?|date)?%(NP)?>\*?" + + call vimtex#syntax#core#new_arg('texRefOpt', { + \ 'matcher': 'start="<" end=">"', + \ 'next': 'texRefOpt,texRefArg', + \}) +endfunction + +" }}}1 diff --git a/config/neovim/store/lazy-plugins/vimtex/autoload/vimtex/syntax/p/robust_externalize.vim b/config/neovim/store/lazy-plugins/vimtex/autoload/vimtex/syntax/p/robust_externalize.vim new file mode 100644 index 00000000..1723bf13 --- /dev/null +++ b/config/neovim/store/lazy-plugins/vimtex/autoload/vimtex/syntax/p/robust_externalize.vim @@ -0,0 +1,67 @@ +" VimTeX - LaTeX plugin for Vim +" +" Maintainer: Karl Yngve Lervåg +" Email: karl.yngve@gmail.com +" + +function! vimtex#syntax#p#robust_externalize#load(cfg) abort " {{{1 + " Match environment boundaries + syntax match texRobExtEnvBgn contained '\\begin{\%(RobExt\)\?CacheMeCode\|CacheMe}' + \ nextgroup=texRobExtEnvOpt,texRobExtEnvArg skipwhite skipnl + \ contains=texCmdEnv + call vimtex#syntax#core#new_opt('texRobExtEnvOpt', {'next': 'texRobExtEnvArg'}) + call vimtex#syntax#core#new_arg('texRobExtEnvArg', {'contains': 'texRobExtEnvArg'}) + + " Match generic environments + call vimtex#syntax#core#new_env({ + \ 'name': '\%(RobExt\)\?CacheMeCode\|CacheMe', + \ 'region': 'texRobExtZone', + \ 'contains': 'texCmdEnv,texRobExtEnvBgn', + \}) + call vimtex#syntax#core#new_env({ + \ 'name': 'PlaceholderPathFromCode', + \ 'region': 'texRobExtZone', + \ 'contains': 'texCmdEnv,texRobExtEnvBgn', + \}) + call vimtex#syntax#core#new_env({ + \ 'name': 'SetPlaceholderCode\*\?', + \ 'region': 'texRobExtZone', + \ 'contains': 'texCmdEnv,texRobExtEnvBgn', + \}) + + " Add nested syntax support for supported languages + for [l:preset, l:target] in [ + \ ['c', 'c'], + \ ['bash', 'bash'], + \ ['python', 'python'], + \ ['my python', 'python'], + \] + let l:cluster = vimtex#syntax#nested#include(l:target) + + let l:name = toupper(l:target[0]) . l:target[1:] + let l:grp_env = 'texRobExtZone' . l:name + let l:options = 'keepend' + let l:contains = 'contains=texCmdEnv,texRobExtEnvBgn' + + if empty(l:cluster) + execute 'highlight def link' l:grp_env 'texRobExtZone' + else + let l:contains .= ',' . l:cluster + endif + + " Match normal robext environments + execute 'syntax region' l:grp_env + \ 'start="\\begin{\z(\%(RobExt\)\?CacheMeCode\|CacheMe\)}\_s*{' . l:preset . '[ ,}]"' + \ 'end="\\end{\z1}"' + \ l:options + \ l:contains + endfor + + " Specify default highlight groups + highlight def link texRobExtEnvArg texSymbol + highlight def link texRobExtEnvArgOpt texOpt + highlight def link texRobExtEnvOpt texOpt + highlight def link texRobExtZone texZone +endfunction + +" }}}1 diff --git a/config/neovim/store/lazy-plugins/vimtex/test/example-markdown/after/syntax/markdown.vim b/config/neovim/store/lazy-plugins/vimtex/test/example-markdown/after/syntax/markdown.vim new file mode 100644 index 00000000..4d756bb1 --- /dev/null +++ b/config/neovim/store/lazy-plugins/vimtex/test/example-markdown/after/syntax/markdown.vim @@ -0,0 +1,12 @@ +if exists('b:_loaded_markdown_vimtex') + finish +endif +let b:_loaded_markdown_vimtex = 1 + +unlet b:current_syntax +syntax include @tex syntax/tex.vim +let b:current_syntax = 'markdown' + +syntax region mkdMath start="\\\@qall!") + +vim.g.vimtex_cache_root = "." +vim.g.vimtex_cache_persistent = false + +vim.cmd.colorscheme "morning" + +vim.api.nvim_set_hl(0, "Conceal", { bg = "NONE", fg = "blue" }) +vim.api.nvim_set_hl(0, "texCmdRef", { fg = "cyan" }) + +local au_group = vim.api.nvim_create_augroup("init", {}) +vim.api.nvim_create_autocmd("CursorMoved", { + pattern = "*", + group = au_group, + command = [[echo join(vimtex#syntax#stack(), ' -> ')]], +}) +vim.api.nvim_create_autocmd("FileType", { + pattern = "markdown", + group = au_group, + command = [[call vimtex#init()]], +}) + +vim.cmd.edit "test.md" diff --git a/config/neovim/store/lazy-plugins/vimtex/test/example-markdown/test.md b/config/neovim/store/lazy-plugins/vimtex/test/example-markdown/test.md new file mode 100644 index 00000000..4f6190df --- /dev/null +++ b/config/neovim/store/lazy-plugins/vimtex/test/example-markdown/test.md @@ -0,0 +1,7 @@ +# Title + +math here $f(x) = 1$ + +math here \(f(x) = 1\) + +**bold text** _italic text_ diff --git a/config/neovim/store/lazy-plugins/vimtex/test/test-completion-bibtex/test_apacite.tex b/config/neovim/store/lazy-plugins/vimtex/test/test-completion-bibtex/test_apacite.tex new file mode 100644 index 00000000..6c6f7d2c --- /dev/null +++ b/config/neovim/store/lazy-plugins/vimtex/test/test-completion-bibtex/test_apacite.tex @@ -0,0 +1,7 @@ +\documentclass{article} +\usepackage[backend=biber,style=authoryear]{biblatex} +\addbibresource{biblatex-examples.bib} + +\begin{document} +Test +\end{document} diff --git a/config/neovim/store/lazy-plugins/vimtex/test/test-completion-bibtex/test_apacite.vim b/config/neovim/store/lazy-plugins/vimtex/test/test-completion-bibtex/test_apacite.vim new file mode 100644 index 00000000..6e1c2e29 --- /dev/null +++ b/config/neovim/store/lazy-plugins/vimtex/test/test-completion-bibtex/test_apacite.vim @@ -0,0 +1,18 @@ +set nocompatible +let &rtp = '../..,' . &rtp +filetype plugin on + +nnoremap q :qall! + +let g:vimtex_cache_root = '.' +let g:vimtex_cache_persistent = 0 + +silent edit test_apacite.tex + +if empty($INMAKE) | finish | endif + +let s:candidates = vimtex#test#completion('\cite{', '') +call assert_true(len(s:candidates) > 0) + + +call vimtex#test#finished() diff --git a/config/neovim/store/lazy-plugins/vimtex/test/test-syntax/test-apacite.tex b/config/neovim/store/lazy-plugins/vimtex/test/test-syntax/test-apacite.tex new file mode 100644 index 00000000..176f8742 --- /dev/null +++ b/config/neovim/store/lazy-plugins/vimtex/test/test-syntax/test-apacite.tex @@ -0,0 +1,16 @@ +\documentclass{article} +\usepackage{apacite} + +\begin{document} + +\cite[p.~11]{Jone01,Ross87} +\citeA[p.~11]{Jone01,Ross87} +\citeauthor[p.~11]{Jone01,Ross87} +\citeyear[p.~11]{Jone01,Ross87} +\citeyearNP[p.~11]{Jone01,Ross87} +\citeNP[p.~11]{Jone01,Ross87} + +\bibliographystyle{plainnat} +\bibliography{../common/local1.bib} + +\end{document} diff --git a/config/neovim/store/lazy-plugins/vimtex/test/test-syntax/test-apacite.vim b/config/neovim/store/lazy-plugins/vimtex/test/test-syntax/test-apacite.vim new file mode 100644 index 00000000..c219defd --- /dev/null +++ b/config/neovim/store/lazy-plugins/vimtex/test/test-syntax/test-apacite.vim @@ -0,0 +1,7 @@ +source common.vim + +Edit test-apacite.tex + +if empty($INMAKE) | finish | endif + +call vimtex#test#finished() diff --git a/config/neovim/store/lazy-plugins/vimtex/test/test-syntax/test-robust-externalize.tex b/config/neovim/store/lazy-plugins/vimtex/test/test-syntax/test-robust-externalize.tex new file mode 100644 index 00000000..ee6925dd --- /dev/null +++ b/config/neovim/store/lazy-plugins/vimtex/test/test-syntax/test-robust-externalize.tex @@ -0,0 +1,46 @@ +\documentclass{article} +\usepackage{robust-externalize} + +\begin{document} + +\begin{CacheMeCode}{c} + int main() { + return 1; + } +\end{CacheMeCode} + +\begin{CacheMeCode}{bash, tikz terminal} + echo 'test.dat' + exit 0 +\end{CacheMeCode} +\begin{figure} + \begin{CacheMeCode}{python matplotlib, add to preamble={\def\hello#1{Hello #1!}}} + def f(p: string): + return [x + p for x in ('a', 'b')] + \end{CacheMeCode} +\end{figure} + +\begin{RobExtCacheMeCode}{my python matplotlib, + add to preamble={\def\hello#1{Hello #1!}} + } + def f(p: string): + return [x + p for x in ('a', 'b')] +\end{RobExtCacheMeCode} + +\begin{CacheMe}{tikzpicture}[scale=0.6] + \draw[gray, thick] (-1,2) -- (2,-4); + \draw[gray, thick] (-1,-1) -- (2,2); + \filldraw[black] (0,0) circle (2pt) node[anchor=west]{Intersection point}; +\end{CacheMe} + +\begin{SetPlaceholderCode*}{__PYTHON_TEMP} +def f(p: string): + return [x + p for x in ('a', 'b')] +\end{SetPlaceholderCode*} + +\begin{PlaceholderPathFromCode}[.py]{__PYTHON_TEMP} + def f(p: string): + return [x + p for x in ('a', 'b')] +\end{PlaceholderPathFromCode} + +\end{document} diff --git a/config/neovim/store/lazy-plugins/vimtex/test/test-syntax/test-robust-externalize.vim b/config/neovim/store/lazy-plugins/vimtex/test/test-syntax/test-robust-externalize.vim new file mode 100644 index 00000000..4d72fe01 --- /dev/null +++ b/config/neovim/store/lazy-plugins/vimtex/test/test-syntax/test-robust-externalize.vim @@ -0,0 +1,7 @@ +source common.vim + +Edit test-robust-externalize.tex + +if empty($INMAKE) | finish | endif + +call vimtex#test#finished() diff --git a/config/neovim/store/lazy-plugins/which-key.nvim/.editorconfig b/config/neovim/store/lazy-plugins/which-key.nvim/.editorconfig new file mode 100644 index 00000000..8b176d56 --- /dev/null +++ b/config/neovim/store/lazy-plugins/which-key.nvim/.editorconfig @@ -0,0 +1,7 @@ +root = true + +[*] +insert_final_newline = true +indent_style = space +indent_size = 2 +charset = utf-8 diff --git a/config/neovim/store/lazy-plugins/which-key.nvim/.github/.release-please-manifest.json b/config/neovim/store/lazy-plugins/which-key.nvim/.github/.release-please-manifest.json new file mode 100644 index 00000000..bf2e8da6 --- /dev/null +++ b/config/neovim/store/lazy-plugins/which-key.nvim/.github/.release-please-manifest.json @@ -0,0 +1,3 @@ +{ + ".": "3.13.2" +} diff --git a/config/neovim/store/lazy-plugins/which-key.nvim/.github/ISSUE_TEMPLATE/config.yml b/config/neovim/store/lazy-plugins/which-key.nvim/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 00000000..a615f651 --- /dev/null +++ b/config/neovim/store/lazy-plugins/which-key.nvim/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,5 @@ +blank_issues_enabled: false +contact_links: + - name: Ask a question + url: https://github.com/folke/which-key.nvim/discussions + about: Use Github discussions instead diff --git a/config/neovim/store/lazy-plugins/which-key.nvim/.github/PULL_REQUEST_TEMPLATE.md b/config/neovim/store/lazy-plugins/which-key.nvim/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 00000000..3f7c92ea --- /dev/null +++ b/config/neovim/store/lazy-plugins/which-key.nvim/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,16 @@ +## Description + + + +## Related Issue(s) + + + +## Screenshots + + + diff --git a/config/neovim/store/lazy-plugins/which-key.nvim/.github/dependabot.yml b/config/neovim/store/lazy-plugins/which-key.nvim/.github/dependabot.yml new file mode 100644 index 00000000..5ace4600 --- /dev/null +++ b/config/neovim/store/lazy-plugins/which-key.nvim/.github/dependabot.yml @@ -0,0 +1,6 @@ +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" diff --git a/config/neovim/store/lazy-plugins/which-key.nvim/.github/release-please-config.json b/config/neovim/store/lazy-plugins/which-key.nvim/.github/release-please-config.json new file mode 100644 index 00000000..57ed6fc9 --- /dev/null +++ b/config/neovim/store/lazy-plugins/which-key.nvim/.github/release-please-config.json @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json", + "packages": { + ".": { + "release-type": "simple", + "extra-files": ["lua/which-key/config.lua"] + } + } +} diff --git a/config/neovim/store/lazy-plugins/which-key.nvim/.github/workflows/labeler.yml b/config/neovim/store/lazy-plugins/which-key.nvim/.github/workflows/labeler.yml new file mode 100644 index 00000000..0908727b --- /dev/null +++ b/config/neovim/store/lazy-plugins/which-key.nvim/.github/workflows/labeler.yml @@ -0,0 +1,8 @@ +name: "PR Labeler" +on: + - pull_request_target + +jobs: + labeler: + uses: folke/github/.github/workflows/labeler.yml@main + secrets: inherit diff --git a/config/neovim/store/lazy-plugins/which-key.nvim/.github/workflows/pr.yml b/config/neovim/store/lazy-plugins/which-key.nvim/.github/workflows/pr.yml new file mode 100644 index 00000000..6d9df366 --- /dev/null +++ b/config/neovim/store/lazy-plugins/which-key.nvim/.github/workflows/pr.yml @@ -0,0 +1,18 @@ +name: PR Title + +on: + pull_request_target: + types: + - opened + - edited + - synchronize + - reopened + - ready_for_review + +permissions: + pull-requests: read + +jobs: + pr-title: + uses: folke/github/.github/workflows/pr.yml@main + secrets: inherit diff --git a/config/neovim/store/lazy-plugins/which-key.nvim/.github/workflows/stale.yml b/config/neovim/store/lazy-plugins/which-key.nvim/.github/workflows/stale.yml new file mode 100644 index 00000000..4e0273bc --- /dev/null +++ b/config/neovim/store/lazy-plugins/which-key.nvim/.github/workflows/stale.yml @@ -0,0 +1,11 @@ +name: Stale Issues & PRs + +on: + schedule: + - cron: "30 1 * * *" + +jobs: + stale: + if: contains(fromJSON('["folke", "LazyVim"]'), github.repository_owner) + uses: folke/github/.github/workflows/stale.yml@main + secrets: inherit diff --git a/config/neovim/store/lazy-plugins/which-key.nvim/.github/workflows/update.yml b/config/neovim/store/lazy-plugins/which-key.nvim/.github/workflows/update.yml new file mode 100644 index 00000000..6784ef9c --- /dev/null +++ b/config/neovim/store/lazy-plugins/which-key.nvim/.github/workflows/update.yml @@ -0,0 +1,13 @@ +name: Update Repo + +on: + workflow_dispatch: + schedule: + # Run every hour + - cron: "0 * * * *" + +jobs: + update: + if: contains(fromJSON('["folke", "LazyVim"]'), github.repository_owner) + uses: folke/github/.github/workflows/update.yml@main + secrets: inherit diff --git a/config/neovim/store/lazy-plugins/which-key.nvim/NEWS.md b/config/neovim/store/lazy-plugins/which-key.nvim/NEWS.md new file mode 100644 index 00000000..6bc019a8 --- /dev/null +++ b/config/neovim/store/lazy-plugins/which-key.nvim/NEWS.md @@ -0,0 +1,35 @@ +# 💥 What's New in 3.0? + +Major update for [which-key.nvim](https://github.com/folke/which-key.nvim)! This release includes a complete rewrite and several new features. +**which-key** was my very first plugin, so it was time for a fresh start. 🎉 + +- ✨ **Full Rewrite**: Improved performance and functionality. +- 👀 **Visual & Operator Pending Mode Integration**: Now uses `ModeChanged`, eliminating the need for operator remappings. +- 🔧 **Simplified Mappings**: Removed obscure secret mappings. +- 🔒 **Safer Auto Triggers**: Auto triggers are now never created for single keys apart from `g` and `z`. All other letters are unsafe. +- ⏱️ **Delay**: Set delay independently of `timeoutlen`. +- 🛠️ **Layout**: + - Presets: `classic`, `modern`, and `helix`. + - Enable/disable which-key for specific modes. + - Configurable sorting with options like `local`, `order`, `group`, `alphanum`, `mod`, `lower`, `icase`, `desc`, and `manual`. + - Expand groups with fewer keymaps. + - Customizable string replacements for `key` and `desc`. +- 🎨 **Icon Support**: + - Auto-detect icons for keymaps using `lazy.nvim`. + - Custom icon rules and specifications for mapping levels. +- 🚫 **Never Get in the Way**: Avoids overlapping with the cursor. +- 🗂️ **New Mapping Spec**: New and better mappings spec, more in line with `vim.keymap.set` and how you define keymaps with [lazy.nvim](https://github.com/folke/lazy.nvim) +- 🐛 New Bugs: Lots of new and exciting bugs to discover! 🐞 + +## Screenshots + +**Classic Mode** +![image](https://github.com/folke/which-key.nvim/assets/292349/14195bd3-1015-4c44-81c6-4ef8f2410c1b) + +**Modern Mode** +![image](https://github.com/folke/which-key.nvim/assets/292349/842e9311-ded9-458a-bed4-2b12f075c85f) + +**Helix Mode** +![image](https://github.com/folke/which-key.nvim/assets/292349/ca553e0c-e92d-4968-9dce-de91601c5c5c) + +For detailed configuration and usage instructions, refer to the updated README. diff --git a/config/neovim/store/lazy-plugins/which-key.nvim/lua/which-key/buf.lua b/config/neovim/store/lazy-plugins/which-key.nvim/lua/which-key/buf.lua new file mode 100644 index 00000000..9f4a5016 --- /dev/null +++ b/config/neovim/store/lazy-plugins/which-key.nvim/lua/which-key/buf.lua @@ -0,0 +1,247 @@ +local Config = require("which-key.config") +local Tree = require("which-key.tree") +local Triggers = require("which-key.triggers") +local Util = require("which-key.util") + +---@class wk.Mode +---@field buf wk.Buffer +---@field mode string +---@field tree wk.Tree +---@field triggers wk.Node[] +local Mode = {} +Mode.__index = Mode + +---@param node wk.Node +local function is_special(node) + return (node:is_plugin() or node:is_proxy()) and not node.keymap +end + +--- Checks if it's safe to add a trigger for the given node +---@param node wk.Node +---@param no_single? boolean +local function is_safe(node, no_single) + if node.keymap or is_special(node) or node:count() == 0 then + return false + end + if no_single and #node.path == 1 then + local key = node.path[1] + -- only z or g are safe + if key:match("^[a-z]$") and not key:match("^[gz]$") then + return false + end + -- only Z is safe + if key:match("^[A-Z]$") and not key:match("^[Z]$") then + return false + end + end + return true +end + +function Mode:__tostring() + return string.format("Mode(%s:%d)", self.mode, self.buf.buf) +end + +---@param buf wk.Buffer +---@param mode string +function Mode.new(buf, mode) + local self = setmetatable({}, Mode) + self.buf = buf + self.mode = mode + self.tree = Tree.new() + self.triggers = {} + self:update() + return self +end + +function Mode:attach() + self.triggers = {} + + -- NOTE: order is important for nowait to work! + -- * first add plugin mappings + -- * then add triggers + self.tree:walk(function(node) + if is_special(node) then + table.insert(self.triggers, node) + return false + end + end) + + if Config.triggers.modes[self.mode] then + -- Auto triggers + self.tree:walk(function(node) + if is_safe(node, true) then + table.insert(self.triggers, node) + return false + end + end) + end + + -- Manual triggers + for _, t in ipairs(Config.triggers.mappings) do + if self:has(t) then + local node = self.tree:find(t.lhs) + if node and is_safe(node) then + table.insert(self.triggers, node) + end + end + end + + Triggers.schedule(self) +end + +function Mode:xo() + return self.mode:find("[xo]") ~= nil +end + +function Mode:clear() + Triggers.detach(self) + self.tree:clear() +end + +---@param mode string +function Mode:is(mode) + if mode == "v" then + return self.mode == "x" or self.mode == "s" + end + return self.mode == mode +end + +---@param mapping wk.Keymap +function Mode:has(mapping) + return self:is(mapping.mode) and (not mapping.buffer or mapping.buffer == self.buf.buf) +end + +function Mode:update() + self.tree:clear() + + local mappings = vim.api.nvim_get_keymap(self.mode) + vim.list_extend(mappings, vim.api.nvim_buf_get_keymap(self.buf.buf, self.mode)) + ---@cast mappings wk.Keymap[] + + for _, mapping in ipairs(mappings) do + if mapping.desc and mapping.desc:find("which-key-trigger", 1, true) then + -- ignore which-key triggers + elseif Util.is_nop(mapping.rhs) then + self.tree:add(mapping, true) + elseif mapping.lhs:sub(1, 6) ~= "" and mapping.lhs:sub(1, 5) ~= "" then + self.tree:add(mapping) + end + end + + for _, m in ipairs(Config.mappings) do + if self:has(m) then + self.tree:add(m, true) + end + end + + self.tree:fix() + self:attach() + vim.schedule(function() + require("which-key.state").update() + end) +end + +---@class wk.Buffer +---@field buf number +---@field modes table +local Buf = {} +Buf.__index = Buf + +---@param buf? number +function Buf.new(buf) + local self = setmetatable({}, Buf) + buf = buf or 0 + self.buf = buf == 0 and vim.api.nvim_get_current_buf() or buf + self.modes = {} + return self +end + +---@param opts? wk.Filter +function Buf:clear(opts) + opts = opts or {} + assert(not opts.buf or opts.buf == self.buf, "buffer mismatch") + ---@type string[] + local modes = opts.mode and { opts.mode } or vim.tbl_keys(self.modes) + for _, m in ipairs(modes) do + local mode = self.modes[m] + if mode then + mode:clear() + self.modes[m] = nil + end + end +end + +function Buf:valid() + return vim.api.nvim_buf_is_valid(self.buf) +end + +---@param opts? wk.Filter +---@return wk.Mode? +function Buf:get(opts) + if not self:valid() then + return + end + opts = opts or {} + local mode = opts.mode or Util.mapmode() + local ret = self.modes[mode] + if not ret then + self.modes[mode] = Mode.new(self, mode) + Util.debug("new " .. tostring(self.modes[mode])) + return self.modes[mode] + elseif opts.update then + Util.debug("update " .. tostring(ret)) + ret:update() + end + return ret +end + +local M = {} +M.Buf = Buf +M.bufs = {} ---@type table + +---@param opts? wk.Filter +function M.get(opts) + M.cleanup() + opts = opts or {} + local buf = opts.buf or vim.api.nvim_get_current_buf() + + if not vim.api.nvim_buf_is_valid(buf) then + return + end + + local ft = vim.bo[buf].filetype + local bt = vim.bo[buf].buftype + + if vim.tbl_contains(Config.disable.ft, ft) then + return + end + if vim.tbl_contains(Config.disable.bt, bt) then + return + end + + M.bufs[buf] = M.bufs[buf] or Buf.new(buf) + return M.bufs[buf]:get(opts) +end + +function M.cleanup() + for buf, _ in pairs(M.bufs) do + if not vim.api.nvim_buf_is_valid(buf) then + M.bufs[buf] = nil + end + end +end + +---@param opts? wk.Filter +function M.clear(opts) + M.cleanup() + opts = opts or {} + ---@type number[] + local bufs = opts.buf and { opts.buf } or vim.tbl_keys(M.bufs) + for _, b in ipairs(bufs) do + if M.bufs[b] then + M.bufs[b]:clear(opts) + end + end +end + +return M diff --git a/config/neovim/store/lazy-plugins/which-key.nvim/lua/which-key/docs.lua b/config/neovim/store/lazy-plugins/which-key.nvim/lua/which-key/docs.lua new file mode 100644 index 00000000..b390c62f --- /dev/null +++ b/config/neovim/store/lazy-plugins/which-key.nvim/lua/which-key/docs.lua @@ -0,0 +1,21 @@ +local Docs = require("lazy.docs") + +local M = {} + +function M.update() + local config = Docs.extract("lua/which-key/config.lua", "\n(--@class wk%.Opts.-\n})") + config = config:gsub("%s*debug = false.\n", "\n") + Docs.save({ + config = config, + colors = Docs.colors({ + modname = "which-key.colors", + path = "lua/which-key/colors.lua", + name = "WhichKey", + }), + }) +end + +M.update() +print("Updated docs") + +return M diff --git a/config/neovim/store/lazy-plugins/which-key.nvim/lua/which-key/extras.lua b/config/neovim/store/lazy-plugins/which-key.nvim/lua/which-key/extras.lua new file mode 100644 index 00000000..a89ef7e0 --- /dev/null +++ b/config/neovim/store/lazy-plugins/which-key.nvim/lua/which-key/extras.lua @@ -0,0 +1,70 @@ +local M = {} + +---@type table +M.expand = {} + +---@return number[] +function M.bufs() + local current = vim.api.nvim_get_current_buf() + return vim.tbl_filter(function(buf) + return buf ~= current and vim.bo[buf].buflisted + end, vim.api.nvim_list_bufs()) +end + +function M.bufname(buf) + local name = vim.api.nvim_buf_get_name(buf) + return name == "" and "[No Name]" or vim.fn.fnamemodify(name, ":~:.") +end + +---@param spec wk.Spec[] +function M.add_keys(spec) + table.sort(spec, function(a, b) + return a.desc < b.desc + end) + spec = vim.list_slice(spec, 1, 10) + for i, v in ipairs(spec) do + v[1] = tostring(i - 1) + end + return spec +end + +function M.expand.buf() + local ret = {} ---@type wk.Spec[] + + for _, buf in ipairs(M.bufs()) do + local name = M.bufname(buf) + ret[#ret + 1] = { + "", + function() + vim.api.nvim_set_current_buf(buf) + end, + desc = name, + icon = { cat = "file", name = name }, + } + end + return M.add_keys(ret) +end + +function M.expand.win() + ---@type wk.Spec[] + local ret = {} + local current = vim.api.nvim_get_current_win() + for _, win in ipairs(vim.api.nvim_list_wins()) do + local is_float = vim.api.nvim_win_get_config(win).relative ~= "" + if win ~= current and not is_float then + local buf = vim.api.nvim_win_get_buf(win) + local name = M.bufname(buf) + ret[#ret + 1] = { + "", + function() + vim.api.nvim_set_current_win(win) + end, + desc = name, + icon = { cat = "file", name = name }, + } + end + end + return M.add_keys(ret) +end + +return M diff --git a/config/neovim/store/lazy-plugins/which-key.nvim/lua/which-key/icons.lua b/config/neovim/store/lazy-plugins/which-key.nvim/lua/which-key/icons.lua new file mode 100644 index 00000000..e1e24915 --- /dev/null +++ b/config/neovim/store/lazy-plugins/which-key.nvim/lua/which-key/icons.lua @@ -0,0 +1,209 @@ +local Config = require("which-key.config") + +local M = {} + +--- * `WhichKeyColorAzure` - azure. +--- * `WhichKeyColorBlue` - blue. +--- * `WhichKeyColorCyan` - cyan. +--- * `WhichKeyColorGreen` - green. +--- * `WhichKeyColorGrey` - grey. +--- * `WhichKeyColorOrange` - orange. +--- * `WhichKeyColorPurple` - purple. +--- * `WhichKeyColorRed` - red. +--- * `WhichKeyColorYellow` - yellow. + +---@type wk.IconRule[] +M.rules = { + { plugin = "fzf-lua", cat = "filetype", name = "fzf" }, + { plugin = "neo-tree.nvim", cat = "filetype", name = "neo-tree" }, + { plugin = "octo.nvim", cat = "filetype", name = "git" }, + { plugin = "yanky.nvim", icon = "󰅇", color = "yellow" }, + { plugin = "zen-mode.nvim", icon = "󱅻 ", color = "cyan" }, + { plugin = "telescope.nvim", pattern = "telescope", icon = "", color = "blue" }, + { plugin = "trouble.nvim", cat = "filetype", name = "trouble" }, + { plugin = "todo-comments.nvim", cat = "file", name = "TODO" }, + { plugin = "nvim-spectre", icon = "󰛔 ", color = "blue" }, + { plugin = "grug-far.nvim", pattern = "grug", icon = "󰛔 ", color = "blue" }, + { plugin = "noice.nvim", pattern = "noice", icon = "󰈸", color = "orange" }, + { plugin = "persistence.nvim", icon = " ", color = "azure" }, + { plugin = "neotest", cat = "filetype", name = "neotest-summary" }, + { plugin = "lazy.nvim", cat = "filetype", name = "lazy" }, + { plugin = "CopilotChat.nvim", icon = " ", color = "orange" }, + { pattern = "%f[%a]git", cat = "filetype", name = "git" }, + { pattern = "terminal", icon = " ", color = "red" }, + { pattern = "find", icon = " ", color = "green" }, + { pattern = "search", icon = " ", color = "green" }, + { pattern = "test", cat = "filetype", name = "neotest-summary" }, + { pattern = "lazy", cat = "filetype", name = "lazy" }, + { pattern = "buffer", icon = "󰈔", color = "cyan" }, + { pattern = "file", icon = "󰈔", color = "cyan" }, + { pattern = "window", icon = " ", color = "blue" }, + { pattern = "diagnostic", icon = "󱖫 ", color = "green" }, + { pattern = "format", icon = " ", color = "cyan" }, + { pattern = "debug", icon = "󰃤 ", color = "red" }, + { pattern = "code", icon = " ", color = "orange" }, + { pattern = "notif", icon = "󰵅 ", color = "blue" }, + { pattern = "toggle", icon = " ", color = "yellow" }, + { pattern = "session", icon = " ", color = "azure" }, + { pattern = "exit", icon = "󰈆 ", color = "red" }, + { pattern = "quit", icon = "󰈆 ", color = "red" }, + { pattern = "tab", icon = "󰓩 ", color = "purple" }, + { pattern = "%f[%a]ai", icon = " ", color = "green" }, + { pattern = "ui", icon = "󰙵 ", color = "cyan" }, +} + +---@type wk.IconProvider[] +M.providers = { + { + name = "mini.icons", + get = function(icon) + local Icons = require("mini.icons") + local ico, ico_hl, ico_def = Icons.get(icon.cat, icon.name) --[[@as string, string, boolean]] + if not ico_def then + return ico, ico_hl + end + end, + }, + { + name = "nvim-web-devicons", + get = function(icon) + local Icons = require("nvim-web-devicons") + if icon.cat == "filetype" then + return Icons.get_icon_by_filetype(icon.name, { default = false }) + elseif icon.cat == "file" then + return Icons.get_icon(icon.name, nil, { default = false }) --[[@as string, string]] + elseif icon.cat == "extension" then + return Icons.get_icon(nil, icon.name, { default = false }) --[[@as string, string]] + end + end, + }, +} + +---@return wk.IconProvider? +function M.get_provider() + for _, provider in ipairs(M.providers) do + if provider.available == nil then + provider.available = pcall(require, provider.name) + end + if provider.available then + return provider + end + end +end + +function M.have() + return M.get_provider() ~= nil +end + +---@param icon wk.Icon|string +---@return string?, string? +function M.get_icon(icon) + icon = type(icon) == "string" and { cat = "filetype", name = icon } or icon --[[@as wk.Icon]] + ---@type string?, string? + local ret, hl + if icon.icon then + ret, hl = icon.icon, icon.hl + elseif icon.cat and icon.name then + local provider = M.get_provider() + if provider then + ret, hl = provider.get(icon) + end + end + if ret then + if icon.color then + hl = "WhichKeyIcon" .. icon.color:sub(1, 1):upper() .. icon.color:sub(2) + end + if not hl or Config.icons.colors == false or icon.color == false then + hl = "WhichKeyIcon" + end + return ret, hl + end +end + +---@param rules wk.IconRule[] +---@param opts? {keymap?: wk.Keymap, desc?: string, ft?:string|string[]}|wk.Icon +---@param check_ft? boolean +---@return string?, string? +function M._get(rules, opts, check_ft) + opts = opts or {} + opts.ft = type(opts.ft) == "string" and { opts.ft } or opts.ft + + ---@type string? + local plugin + local fts = opts.ft or {} --[[@as string[] ]] + + if opts.keymap and package.loaded.lazy then + local LazyUtil = require("lazy.core.util") + local Keys = require("lazy.core.handler").handlers.keys --[[@as LazyKeysHandler]] + local keys = Keys.parse(opts.keymap.lhs, opts.keymap.mode) + plugin = Keys.managed[keys.id] + if plugin then + fts[#fts + 1] = LazyUtil.normname(plugin) + end + end + + -- plugin icons + if plugin then + for _, icon in ipairs(rules) do + if icon.plugin == plugin then + local ico, hl = M.get_icon(icon) + if ico then + return ico, hl + end + end + end + end + + -- filetype icons + if check_ft then + if opts.keymap and opts.keymap.buffer and opts.keymap.buffer ~= 0 then + pcall(function() + fts[#fts + 1] = vim.bo[opts.keymap.buffer].filetype + end) + end + for _, ft in ipairs(fts) do + local icon, hl = M.get_icon({ cat = "filetype", name = ft }) + if icon then + return icon, hl + end + end + end + + -- pattern icons + if opts.desc then + for _, icon in ipairs(rules) do + if icon.pattern and opts.desc:lower():find(icon.pattern) then + local ico, hl = M.get_icon(icon) + if ico then + return ico, hl + end + end + end + end +end + +---@param opts {keymap?: wk.Keymap, desc?: string, ft?:string|string[]}|wk.Icon|string +function M.get(opts) + if not Config.icons.mappings then + return + end + if type(opts) == "string" then + opts = { icon = opts } + end + + if opts.icon or opts.cat then + return M.get_icon(opts) + end + + if Config.icons.rules == false then + return + end + local icon, hl = M._get(Config.icons.rules, opts) + if icon then + return icon, hl + end + + return M._get(M.rules, opts, true) +end + +return M diff --git a/config/neovim/store/lazy-plugins/which-key.nvim/lua/which-key/migrate.lua b/config/neovim/store/lazy-plugins/which-key.nvim/lua/which-key/migrate.lua new file mode 100644 index 00000000..81eb51ed --- /dev/null +++ b/config/neovim/store/lazy-plugins/which-key.nvim/lua/which-key/migrate.lua @@ -0,0 +1,76 @@ +local Mappings = require("which-key.mappings") + +local M = {} + +---@param spec wk.Spec +function M.migrate(spec) + spec = vim.deepcopy(spec) + local mappings = Mappings.parse(spec, { version = 1, notify = false }) + ---@type table + local mapping_modes = {} + + for _, m in ipairs(mappings) do + m.preset = nil + m[1] = m.lhs:gsub("", "<") + m[2] = m.rhs + m.lhs = nil + m.rhs = nil + local mode = m.mode + m.mode = nil + if m.silent then + m.silent = nil + end + if m.group then + m.group = m.desc + m.desc = nil + end + local id = vim.inspect(m) + mapping_modes[id] = mapping_modes[id] or { m = m, mode = {} } + table.insert(mapping_modes[id].mode, mode) + end + + mappings = vim.tbl_map(function(v) + local m = v.m + if not vim.deep_equal(v.mode, { "n" }) then + m.mode = v.mode + end + return m + end, vim.tbl_values(mapping_modes)) + + table.sort(mappings, function(a, b) + return a[1] < b[1] + end) + + -- Group by modes + ---@type table + local modes = {} + for _, m in pairs(mappings) do + local mode = m.mode or {} + table.sort(mode) + local id = table.concat(mode) + modes[id] = modes[id] or {} + table.insert(modes[id], m) + end + local lines = {} + for mode, maps in pairs(modes) do + if #maps > 2 and mode ~= "" then + lines[#lines + 1] = " {" + lines[#lines + 1] = " mode = " .. vim.inspect(maps[1].mode) .. "," + for _, m in ipairs(maps) do + m.mode = nil + lines[#lines + 1] = " " .. vim.inspect(m):gsub("%s+", " ") .. "," + end + lines[#lines + 1] = " }," + else + for _, m in ipairs(maps) do + if m.mode and #m.mode == 1 then + m.mode = m.mode[1] + end + lines[#lines + 1] = " " .. vim.inspect(m):gsub("%s+", " ") .. "," + end + end + end + + return "{\n" .. table.concat(lines, "\n") .. "\n}" +end +return M diff --git a/config/neovim/store/lazy-plugins/which-key.nvim/lua/which-key/node.lua b/config/neovim/store/lazy-plugins/which-key.nvim/lua/which-key/node.lua new file mode 100644 index 00000000..666add4a --- /dev/null +++ b/config/neovim/store/lazy-plugins/which-key.nvim/lua/which-key/node.lua @@ -0,0 +1,205 @@ +local Util = require("which-key.util") + +---@class wk.Node +---@field _children table +local M = {} + +---@param parent? wk.Node +---@param key? string +---@return wk.Node +function M.new(parent, key) + local self = setmetatable({}, M) + self.parent = parent + self.key = key or "" + self.path = {} + self.global = true + self._children = {} + self.keys = (parent and parent.keys or "") .. self.key + for _, p in ipairs(parent and parent.path or {}) do + table.insert(self.path, p) + end + if key then + table.insert(self.path, key) + end + return self +end + +function M:is_local() + if self.path[1] == Util.norm("") then + return true + end + if self.buffer and self.buffer > 0 then + return true + end + for _, child in pairs(self._children) do + if child:is_local() then + return true + end + end + return false +end + +function M:__index(k) + if k == "mapping" or k == "keymap" then + return + end + local v = rawget(M, k) + if v ~= nil then + return v + end + for _, m in ipairs({ "mapping", "keymap" }) do + local mm = rawget(self, m) + if k == m then + return mm + end + if mm and mm[k] ~= nil then + return mm[k] + end + end +end + +function M:__tostring() + local info = { "Node(" .. self.keys .. ")" } + if self:is_plugin() then + info[#info + 1] = "Plugin(" .. self.plugin .. ")" + end + if self:is_proxy() then + info[#info + 1] = "Proxy(" .. self.mapping.proxy .. ")" + end + return table.concat(info, " ") +end + +---@param depth? number +function M:inspect(depth) + local indent = (" "):rep(depth or 0) + local ret = { indent .. tostring(self) } + for _, child in ipairs(self:children()) do + table.insert(ret, child:inspect((depth or 0) + 1)) + end + return table.concat(ret, "\n") +end + +function M:count() + return #self:children() +end + +function M:is_group() + return self:can_expand() or self:count() > 0 +end + +function M:is_proxy() + return self.mapping and self.mapping.proxy +end + +function M:is_plugin() + return self.plugin ~= nil +end + +function M:can_expand() + return self.plugin or self:is_proxy() or (self.mapping and self.mapping.expand) +end + +---@return wk.Node[] +function M:children() + return vim.tbl_values(self:expand()) +end + +---@return table +function M:expand() + if not self:can_expand() then + return self._children + end + + ---@type table + local ret = {} + + -- plugin mappings + if self.plugin then + local plugin = require("which-key.plugins").plugins[self.plugin or ""] + assert(plugin, "plugin not found") + Util.debug(("Plugin(%q).expand"):format(self.plugin)) + + for i, item in ipairs(plugin.expand()) do + item.order = i + local child = M.new(self, item.key) --[[@as wk.Node.plugin.item]] + setmetatable(child, { __index = setmetatable(item, M) }) + ret[item.key] = child + end + end + + -- proxy mappings + local proxy = self.mapping.proxy + if proxy then + local keys = Util.keys(proxy) + local root = self:root() + local node = root:find(keys, { expand = true }) + if node then + for k, v in pairs(node:expand()) do + ret[k] = v + end + end + end + + -- expand mappings + local expand = self.mapping and self.mapping.expand + if expand then + local Tree = require("which-key.tree") + local tmp = Tree.new() + local mappings = require("which-key.mappings").parse(expand()) + for _, mapping in ipairs(mappings) do + tmp:add(mapping, true) + end + for _, child in ipairs(tmp.root:children()) do + local action = child.mapping and child.mapping.rhs + if type(action) == "function" then + child.action = action + elseif type(action) == "string" then + Util.error("expand mappings only support functions as rhs:\n" .. vim.inspect(child.mapping)) + end + ret[child.key] = child + end + end + + -- custom mappings + for k, v in pairs(self._children) do + ret[k] = v + end + + return ret +end + +function M:root() + local node = self + while node.parent do + node = node.parent + end + return node +end + +---@param path string[]|string +---@param opts? { create?: boolean, expand?: boolean } +---@return wk.Node? +function M:find(path, opts) + path = (type(path) == "string" and { path } or path) --[[@as string[] ]] + opts = opts or {} + local node = self + for _, key in ipairs(path) do + local child ---@type wk.Node? + if opts.expand then + child = node:expand()[key] + else + child = node._children[key] + end + if not child then + if not opts.create then + return + end + child = M.new(node, key) + node._children[key] = child + end + node = child + end + return node +end + +return M diff --git a/config/neovim/store/lazy-plugins/which-key.nvim/lua/which-key/plugins/presets.lua b/config/neovim/store/lazy-plugins/which-key.nvim/lua/which-key/plugins/presets.lua new file mode 100644 index 00000000..dad4129c --- /dev/null +++ b/config/neovim/store/lazy-plugins/which-key.nvim/lua/which-key/plugins/presets.lua @@ -0,0 +1,215 @@ +local M = {} + +M.name = "presets" + +M.operators = { + preset = true, + mode = { "n", "x" }, + { "!", desc = "Run program" }, + { "<", desc = "Indent left" }, + { ">", desc = "Indent right" }, + { "V", desc = "Visual Line" }, + { "c", desc = "Change" }, + { "d", desc = "Delete" }, + { "gU", desc = "Uppercase" }, + { "gu", desc = "Lowercase" }, + { "g~", desc = "Toggle case" }, + { "gw", desc = "Format" }, + { "r", desc = "Replace" }, + { "v", desc = "Visual" }, + { "y", desc = "Yank" }, + { "zf", desc = "Create fold" }, + { "~", desc = "Toggle case" }, +} + +M.motions = { + mode = { "o", "x", "n" }, + preset = true, + { "$", desc = "End of line" }, + { "%", desc = "Matching (){}[]" }, + { "0", desc = "Start of line" }, + { "F", desc = "Move to prev char" }, + { "G", desc = "Last line" }, + { "T", desc = "Move before prev char" }, + { "^", desc = "Start of line (non ws)" }, + { "b", desc = "Prev word" }, + { "e", desc = "Next end of word" }, + { "f", desc = "Move to next char" }, + { "ge", desc = "Prev end of word" }, + { "gg", desc = "First line" }, + { "h", desc = "Left" }, + { "j", desc = "Down" }, + { "k", desc = "Up" }, + { "l", desc = "Right" }, + { "t", desc = "Move before next char" }, + { "w", desc = "Next word" }, + { "{", desc = "Prev empty line" }, + { "}", desc = "Next empty line" }, + { ";", desc = "Next ftFT" }, + { ",", desc = "Prev ftFT" }, + { "/", desc = "Search forward" }, + { "?", desc = "Search backward" }, + { "B", desc = "Prev WORD" }, + { "E", desc = "Next end of WORD" }, + { "W", desc = "Next WORD" }, +} + +M.text_objects = { + mode = { "o", "x" }, + preset = true, + { "a", group = "around" }, + { 'a"', desc = '" string' }, + { "a'", desc = "' string" }, + { "a(", desc = "[(]) block" }, + { "a)", desc = "[(]) block" }, + { "a<", desc = "<> block" }, + { "a>", desc = "<> block" }, + { "aB", desc = "[{]} block" }, + { "aW", desc = "WORD with ws" }, + { "a[", desc = "[] block" }, + { "a]", desc = "[] block" }, + { "a`", desc = "` string" }, + { "ab", desc = "[(]) block" }, + { "ap", desc = "paragraph" }, + { "as", desc = "sentence" }, + { "at", desc = "tag block" }, + { "aw", desc = "word with ws" }, + { "a{", desc = "[{]} block" }, + { "a}", desc = "[{]} block" }, + { "i", group = "inside" }, + { 'i"', desc = 'inner " string' }, + { "i'", desc = "inner ' string" }, + { "i(", desc = "inner [(])" }, + { "i)", desc = "inner [(])" }, + { "i<", desc = "inner <>" }, + { "i>", desc = "inner <>" }, + { "iB", desc = "inner [{]}" }, + { "iW", desc = "inner WORD" }, + { "i[", desc = "inner []" }, + { "i]", desc = "inner []" }, + { "i`", desc = "inner ` string" }, + { "ib", desc = "inner [(])" }, + { "ip", desc = "inner paragraph" }, + { "is", desc = "inner sentence" }, + { "it", desc = "inner tag block" }, + { "iw", desc = "inner word" }, + { "i{", desc = "inner [{]}" }, + { "i}", desc = "inner [{]}" }, +} + +M.windows = { + preset = true, + mode = { "n", "x" }, + { "", group = "window" }, + { "+", desc = "Increase height" }, + { "-", desc = "Decrease height" }, + { "<", desc = "Decrease width" }, + { "=", desc = "Equally high and wide" }, + { ">", desc = "Increase width" }, + { "T", desc = "Break out into a new tab" }, + { "_", desc = "Max out the height" }, + { "h", desc = "Go to the left window" }, + { "j", desc = "Go to the down window" }, + { "k", desc = "Go to the up window" }, + { "l", desc = "Go to the right window" }, + { "o", desc = "Close all other windows" }, + { "q", desc = "Quit a window" }, + { "s", desc = "Split window" }, + { "v", desc = "Split window vertically" }, + { "w", desc = "Switch windows" }, + { "x", desc = "Swap current with next" }, + { "|", desc = "Max out the width" }, +} + +M.z = { + preset = true, + { "z", desc = "Top this line" }, + { "z=", desc = "Spelling suggestions" }, + { "zA", desc = "Toggle all folds under cursor" }, + { "zC", desc = "Close all folds under cursor" }, + { "zD", desc = "Delete all folds under cursor" }, + { "zE", desc = "Delete all folds in file" }, + { "zH", desc = "Half screen to the left" }, + { "zL", desc = "Half screen to the right" }, + { "zM", desc = "Close all folds" }, + { "zO", desc = "Open all folds under cursor" }, + { "zR", desc = "Open all folds" }, + { "za", desc = "Toggle fold under cursor" }, + { "zb", desc = "Bottom this line" }, + { "zc", desc = "Close fold under cursor" }, + { "zd", desc = "Delete fold under cursor" }, + { "ze", desc = "Right this line" }, + { "zg", desc = "Add word to spell list" }, + { "zi", desc = "Toggle folding" }, + { "zm", desc = "Fold more" }, + { "zo", desc = "Open fold under cursor" }, + { "zr", desc = "Fold less" }, + { "zs", desc = "Left this line" }, + { "zt", desc = "Top this line" }, + { "zv", desc = "Show cursor line" }, + { "zw", desc = "Mark word as bad/misspelling" }, + { "zx", desc = "Update folds" }, + { "zz", desc = "Center this line" }, +} + +M.nav = { + preset = true, + { "H", desc = "Home line of window (top)" }, + { "L", desc = "Last line of window" }, + { "M", desc = "Middle line of window" }, + { "[%", desc = "Previous unmatched group" }, + { "[(", desc = "Previous (" }, + { "[<", desc = "Previous <" }, + { "[M", desc = "Previous method end" }, + { "[m", desc = "Previous method start" }, + { "[s", desc = "Previous misspelled word" }, + { "[{", desc = "Previous {" }, + { "]%", desc = "Next unmatched group" }, + { "](", desc = "Next (" }, + { "]<", desc = "Next <" }, + { "]M", desc = "Next method end" }, + { "]m", desc = "Next method start" }, + { "]s", desc = "Next misspelled word" }, + { "]{", desc = "Next {" }, +} + +M.g = { + preset = true, + { "g%", desc = "Cycle backwards through results" }, + { "gN", desc = "Search backwards and select" }, + { "gT", desc = "Go to previous tab page" }, + { "gf", desc = "Go to file under cursor" }, + { "gi", desc = "Go to last insert" }, + { "gn", desc = "Search forwards and select" }, + { "gt", desc = "Go to next tab page" }, + { "gv", desc = "Last visual selection" }, + { "gx", desc = "Open file with system app" }, +} + +function M.setup(opts) + local wk = require("which-key") + + -- Operators + if opts.operators then + wk.add(M.operators) + end + + -- Motions + if opts.motions then + wk.add(M.motions) + end + + -- Text objects + if opts.text_objects then + wk.add(M.text_objects) + end + + -- Misc + for _, preset in pairs({ "windows", "nav", "z", "g" }) do + if opts[preset] ~= false then + wk.add(M[preset]) + end + end +end + +return M diff --git a/config/neovim/store/lazy-plugins/which-key.nvim/lua/which-key/presets.lua b/config/neovim/store/lazy-plugins/which-key.nvim/lua/which-key/presets.lua new file mode 100644 index 00000000..02b1ae2a --- /dev/null +++ b/config/neovim/store/lazy-plugins/which-key.nvim/lua/which-key/presets.lua @@ -0,0 +1,38 @@ +---@type table +return { + helix = { + win = { + width = { min = 30, max = 60 }, + height = { min = 4, max = 0.75 }, + padding = { 0, 1 }, + col = -1, + row = -1, + border = "rounded", + title = true, + title_pos = "left", + }, + layout = { + width = { min = 30 }, + }, + }, + modern = { + win = { + width = 0.9, + height = { min = 4, max = 25 }, + col = 0.5, + row = -1, + border = "rounded", + title = true, + title_pos = "center", + }, + }, + classic = { + win = { + width = math.huge, + height = { min = 4, max = 25 }, + col = 0, + row = -1, + border = "none", + }, + }, +} diff --git a/config/neovim/store/lazy-plugins/which-key.nvim/lua/which-key/state.lua b/config/neovim/store/lazy-plugins/which-key.nvim/lua/which-key/state.lua new file mode 100644 index 00000000..83ffd71e --- /dev/null +++ b/config/neovim/store/lazy-plugins/which-key.nvim/lua/which-key/state.lua @@ -0,0 +1,386 @@ +local Buf = require("which-key.buf") +local Config = require("which-key.config") +local Triggers = require("which-key.triggers") +local Util = require("which-key.util") + +local uv = vim.uv or vim.loop + +local M = {} + +---@class wk.State +---@field mode wk.Mode +---@field node wk.Node +---@field filter wk.Filter +---@field started number +---@field show boolean + +---@type wk.State? +M.state = nil +M.recursion = 0 +M.recursion_timer = uv.new_timer() + +---@return boolean safe, string? reason +function M.safe(mode_change) + local old, _new = unpack(vim.split(mode_change, ":", { plain = true })) + if old == "c" then + return false, "command-mode" + elseif vim.fn.reg_recording() ~= "" then + return false, "recording" + elseif vim.fn.reg_executing() ~= "" then + return false, "executing" + elseif mode_change:lower() == "v:v" then + return false, "visual-block" + end + local pending = vim.fn.getcharstr(1) + if pending ~= "" then + return false, "pending " .. ("%q"):format(vim.fn.strtrans(pending)) + end + return true +end + +function M.setup() + local group = vim.api.nvim_create_augroup("wk", { clear = true }) + + if Config.debug then + vim.on_key(function(_raw, key) + if key and #key > 0 then + key = vim.fn.keytrans(key) + if not key:find("ScrollWheel") and not key:find("Mouse") then + Util.debug("on_key", key) + end + end + end) + end + + vim.api.nvim_create_autocmd({ "RecordingEnter", "RecordingLeave" }, { + group = group, + callback = function(ev) + Util.debug(ev.event) + if ev.event == "RecordingEnter" then + Buf.clear({ buf = ev.buf }) + M.stop() + end + end, + }) + + local hide = uv.new_timer() + vim.api.nvim_create_autocmd({ "FocusLost", "FocusGained" }, { + group = group, + callback = function(ev) + if ev.event == "FocusGained" then + hide:stop() + elseif M.state then + hide:start(5000, 0, function() + vim.api.nvim_input("") + end) + end + end, + }) + + local function defer() + local mode = vim.api.nvim_get_mode().mode + local mode_keys = Util.keys(mode) + local ctx = { + operator = mode:find("o") and vim.v.operator or nil, + mode = mode_keys[1], + } + return Config.defer(ctx) + end + + local cooldown = Util.cooldown() + -- this prevents restarting which-key in the same tick + vim.api.nvim_create_autocmd("ModeChanged", { + group = group, + callback = function(ev) + Util.trace("ModeChanged(" .. ev.match .. ")") + local mode = Buf.get() + + if cooldown() then + Util.debug("cooldown") + Util.trace() + return + end + + local safe, reason = M.safe(ev.match) + Util.debug(safe and "Safe(true)" or ("Unsafe(" .. reason .. ")")) + if not safe then + if mode then + Triggers.suspend(mode) + end + -- dont start when recording or when chars are pending + cooldown(true) -- cooldown till next tick + M.stop() + -- make sure the buffer mode exists + elseif mode and Util.xo() then + if Config.triggers.modes[mode.mode] and not M.state then + M.start({ defer = defer() }) + end + elseif not ev.match:find("c") then + M.stop() + end + Util.trace() + end, + }) + + vim.api.nvim_create_autocmd({ "LspAttach", "LspDetach" }, { + group = group, + callback = function(ev) + Util.trace(ev.event .. "(" .. ev.buf .. ")") + Buf.clear({ buf = ev.buf }) + Util.trace() + end, + }) + + vim.api.nvim_create_autocmd({ "BufReadPost", "BufNew" }, { + group = group, + callback = function(ev) + Util.trace(ev.event .. "(" .. ev.buf .. ")") + Buf.clear({ buf = ev.buf }) + Util.trace() + end, + }) + + local current_buf = vim.api.nvim_get_current_buf() + vim.api.nvim_create_autocmd({ "BufEnter" }, { + group = group, + callback = function(ev) + current_buf = ev.buf ---@type number + Util.trace(ev.event .. "(" .. ev.buf .. ")") + Buf.get() + Util.trace() + end, + }) + + -- HACK: ModeChanged does not always trigger, so we need to manually + -- check for mode changes. This seems to be due to the usage of `:norm` in autocmds. + -- See https://github.com/folke/which-key.nvim/issues/787 + local timer = uv.new_timer() + timer:start(0, 50, function() + local mode = Util.mapmode() + -- check if the mode exists for the current buffer + if Buf.bufs[current_buf] and Buf.bufs[current_buf].modes[mode] then + return + end + vim.schedule(Buf.get) + end) +end + +function M.stop() + if M.state == nil then + return + end + Util.debug("state:stop") + M.state = nil + vim.schedule(function() + if not M.state then + require("which-key.view").hide() + end + end) +end + +---@param state wk.State +---@param key? string +---@return wk.Node? node +function M.check(state, key) + local View = require("which-key.view") + local node = key == nil and state.node or (key and state.node:find(key, { expand = true })) + + local delta = uv.hrtime() / 1e6 - state.started + local timedout = vim.o.timeout and delta > vim.o.timeoutlen + + if node then + -- NOTE: a node can be both a keymap and a group + -- when it's both, we honor timeoutlen and nowait to decide what to do + local has_children = node:count() > 0 + local is_nowait = node.keymap and (node.keymap.nowait == 1 or not timedout) + local is_action = node.action ~= nil + if has_children and not is_nowait and not is_action then + Util.debug("continue", node.keys, tostring(state.mode), node.plugin) + return node + end + elseif key == "" then + if state.mode:xo() then + Util.exit() -- cancel and exit if in xo mode + end + return + elseif key == "" then + return state.node.parent or state.mode.tree.root + elseif View.valid() and key == Config.keys.scroll_down then + View.scroll(false) + return state.node + elseif View.valid() and key == Config.keys.scroll_up then + View.scroll(true) + return state.node + end + M.execute(state, key, node) +end + +---@param state wk.State +---@param key? string +---@param node? wk.Node +---@return false|wk.Node? +function M.execute(state, key, node) + Triggers.suspend(state.mode) + + if node and node.action then + return node.action() + end + + local keystr = node and node.keys or (state.node.keys .. (key or "")) + if not state.mode:xo() then + if vim.v.count > 0 and state.mode.mode ~= "i" and state.mode.mode ~= "c" then + keystr = vim.v.count .. keystr + end + if vim.v.register ~= Util.reg() and state.mode.mode ~= "i" and state.mode.mode ~= "c" then + keystr = '"' .. vim.v.register .. keystr + end + end + Util.debug("feedkeys", tostring(state.mode), keystr) + local feed = vim.api.nvim_replace_termcodes(keystr, true, true, true) + vim.api.nvim_feedkeys(feed, "mit", false) +end + +---@param state wk.State +---@return wk.Node? node, boolean? exit +function M.step(state) + vim.schedule(function() + vim.cmd.redraw() + if vim.api.nvim__redraw then + vim.api.nvim__redraw({ cursor = true }) + end + end) + Util.debug("getchar") + local ok, char = pcall(vim.fn.getcharstr) + if not ok then + Util.debug("nok", char) + return nil, true + end + local key = vim.fn.keytrans(char) + Util.debug("got", key) + + local node = M.check(state, key) + if node == state.node then + return M.step(state) -- same node, so try again (scrolling) + end + return node, key == "" +end + +---@param opts? wk.Filter +function M.start(opts) + Util.trace("State(start)", function() + local mode = opts and opts.mode or Util.mapmode() + local buf = opts and opts.buf or 0 + local keys = opts and opts.keys or "" + return { "Mode(" .. mode .. ":" .. buf .. ") Node(" .. keys .. ")", opts } + end) + + opts = opts or {} + opts.update = true + local mode = Buf.get(opts) + opts.update = nil + if not mode then + Util.debug("no mode") + Util.trace() + return false + end + local node = mode.tree:find(opts.keys or {}, { expand = true }) + if not node then + Util.debug("no node") + Util.trace() + return false + end + + local mapmode = mode.mode + M.recursion = M.recursion + 1 + M.recursion_timer:start(500, 0, function() + M.recursion = 0 + end) + + if M.recursion > 50 then + Util.error({ + "Recursion detected.", + "Are you manually loading which-key in a keymap?", + "Use `opts.triggers` instad.", + "Please check the docs.", + }) + Util.debug("recursion detected. Aborting") + Util.trace() + return false + end + + local View = require("which-key.view") + + M.state = { + mode = mode, + node = node, + filter = opts, + started = uv.hrtime() / 1e6 - (opts.waited or 0), + show = opts.defer ~= true, + } + + if not M.check(M.state) then + Util.debug("executed") + Util.trace() + return true + end + + local exit = false + + while M.state do + mode = Buf.get(opts) + if not mode or mode.mode ~= mapmode then + break + end + if M.state.show then + View.update(opts) + end + local child, _exit = M.step(M.state) + if child and M.state then + M.state.node = child + M.state.show = true + else + exit = _exit or false + break + end + end + + if opts.loop and not exit then + -- NOTE: flush pending keys to prevent a trigger loop + vim.api.nvim_feedkeys("", "x", false) + vim.schedule(function() + M.start(opts) + end) + else + M.state = nil + View.hide() + end + Util.trace() + return true +end + +function M.update() + if not M.state then + return + end + local mode = Buf.get() + if not mode or mode.mode ~= M.state.mode.mode then + return + end + local node = mode.tree:find(M.state.node.path) + if not node then + return + end + M.state.node = node + require("which-key.view").update({ schedule = false }) +end + +---@param opts {delay?:number, mode:string, keys:string, plugin?:string, waited?: number} +function M.delay(opts) + local delay = opts.delay or type(Config.delay) == "function" and Config.delay(opts) or Config.delay --[[@as number]] + if opts.waited then + delay = delay - opts.waited + end + return math.max(0, delay) +end + +return M diff --git a/config/neovim/store/lazy-plugins/which-key.nvim/lua/which-key/triggers.lua b/config/neovim/store/lazy-plugins/which-key.nvim/lua/which-key/triggers.lua new file mode 100644 index 00000000..61aeeede --- /dev/null +++ b/config/neovim/store/lazy-plugins/which-key.nvim/lua/which-key/triggers.lua @@ -0,0 +1,171 @@ +local Util = require("which-key.util") + +---@class wk.Trigger +---@field buf number +---@field mode string +---@field keys string +---@field plugin? string + +local M = {} +M._triggers = {} ---@type table +M.suspended = {} ---@type table + +M.timer = (vim.uv or vim.loop).new_timer() + +--- Checks if a mapping already exists that is not a which-key trigger. +---@param trigger wk.Trigger +function M.is_mapped(trigger) + ---@type wk.Keymap? + local km + pcall(vim.api.nvim_buf_call, trigger.buf, function() + km = vim.fn.maparg(trigger.keys, trigger.mode, false, true) --[[@as wk.Keymap]] + end) + -- not mapped + if not km or vim.tbl_isempty(km) then + return false + end + -- ignore mappings + if Util.is_nop(km.rhs) then + return false + end + -- ignore which-key triggers + if km.desc and km.desc:find("which-key-trigger", 1, true) then + return false + end + return true +end + +---@param trigger wk.Trigger +function M.add(trigger) + if M.is_mapped(trigger) then + return + end + vim.keymap.set(trigger.mode, trigger.keys, function() + require("which-key.state").start({ + keys = trigger.keys, + }) + end, { + buffer = trigger.buf, + nowait = true, + desc = "which-key-trigger" .. (trigger.plugin and " " .. trigger.plugin or ""), + }) + M._triggers[M.id(trigger)] = trigger +end + +function M.is_active() + return vim.tbl_isempty(M._triggers) +end + +---@param trigger wk.Trigger +function M.del(trigger) + M._triggers[M.id(trigger)] = nil + if not vim.api.nvim_buf_is_valid(trigger.buf) then + return + end + if M.is_mapped(trigger) then + return + end + pcall(vim.keymap.del, trigger.mode, trigger.keys, { buffer = trigger.buf }) +end + +---@param trigger wk.Trigger +function M.id(trigger) + return trigger.buf .. ":" .. trigger.mode .. ":" .. trigger.keys +end + +---@param trigger wk.Trigger +function M.has(trigger) + return M._triggers[M.id(trigger)] ~= nil +end + +---@param mode wk.Mode +---@param triggers? wk.Trigger[] +function M.update(mode, triggers) + M.cleanup() + if not mode.buf:valid() then + for _, trigger in pairs(M._triggers) do + if trigger.buf == mode.buf.buf then + M.del(trigger) + end + end + return + end + local adds = {} ---@type string[] + local dels = {} ---@type string[] + local keep = {} ---@type table + for _, node in ipairs(triggers or mode.triggers) do + ---@type wk.Trigger + local trigger = { + buf = mode.buf.buf, + mode = mode.mode, + keys = node.keys, + plugin = node.plugin, + } + local id = M.id(trigger) + keep[id] = true + if not M.has(trigger) then + adds[#adds + 1] = trigger.keys + M.add(trigger) + end + end + for id, trigger in pairs(M._triggers) do + if trigger.buf == mode.buf.buf and trigger.mode == mode.mode and not keep[id] then + M.del(trigger) + dels[#dels + 1] = trigger.keys + end + end + if #adds > 0 then + Util.debug("Trigger(add) " .. tostring(mode) .. " " .. table.concat(adds, " ")) + end + if #dels > 0 then + Util.debug("Trigger(del) " .. tostring(mode) .. " " .. table.concat(dels, " ")) + end +end + +---@param mode wk.Mode +function M.attach(mode) + if M.suspended[mode] then + return + end + M.update(mode) +end + +---@param mode wk.Mode +function M.detach(mode) + M.update(mode, {}) +end + +---@param mode? wk.Mode +function M.schedule(mode) + if mode then + M.suspended[mode] = true + end + M.timer:start( + 0, + 0, + vim.schedule_wrap(function() + for m, _ in pairs(M.suspended) do + M.suspended[m] = nil + M.attach(m) + end + end) + ) +end + +function M.cleanup() + for _, trigger in pairs(M._triggers) do + if not vim.api.nvim_buf_is_valid(trigger.buf) then + M.del(trigger) + end + end +end + +---@param mode wk.Mode +function M.suspend(mode) + Util.debug("suspend", tostring(mode)) + M.detach(mode) + M.suspended[mode] = true + M.schedule() +end + +return M diff --git a/config/neovim/store/lazy-plugins/which-key.nvim/lua/which-key/win.lua b/config/neovim/store/lazy-plugins/which-key.nvim/lua/which-key/win.lua new file mode 100644 index 00000000..5a1ccf9c --- /dev/null +++ b/config/neovim/store/lazy-plugins/which-key.nvim/lua/which-key/win.lua @@ -0,0 +1,120 @@ +local Util = require("which-key.util") + +---@class wk.Win +---@field win? number +---@field buf? number +---@field opts wk.Win.opts +local M = {} +M.__index = M + +---@class wk.Win.opts +local override = { + relative = "editor", + style = "minimal", + focusable = false, + noautocmd = true, + wo = { + scrolloff = 0, + foldenable = false, + winhighlight = "Normal:WhichKeyNormal,FloatBorder:WhichKeyBorder,FloatTitle:WhichKeyTitle", + winbar = "", + statusline = "", + wrap = false, + }, + bo = { + buftype = "nofile", + bufhidden = "wipe", + filetype = "wk", + }, +} + +---@type wk.Win.opts +local defaults = { col = 0, row = math.huge, zindex = 1000 } + +---@param opts? wk.Win.opts +function M.defaults(opts) + return vim.tbl_deep_extend("force", {}, defaults, opts or {}, override) +end + +---@param opts? wk.Win.opts +function M.new(opts) + local self = setmetatable({}, M) + self.opts = M.defaults(opts) + return self +end + +function M:valid() + return self.buf and vim.api.nvim_buf_is_valid(self.buf) and self.win and vim.api.nvim_win_is_valid(self.win) or false +end + +function M:hide() + if not (self.buf or self.win) then + return + end + + ---@type number?, number? + local buf, win = self.buf, self.win + self.buf, self.win = nil, nil + + local function try_close() + pcall(vim.api.nvim_win_close, win, true) + pcall(vim.api.nvim_buf_delete, buf, { force = true }) + win = win and vim.api.nvim_win_is_valid(win) and win or nil + buf = buf and vim.api.nvim_buf_is_valid(buf) and buf or nil + if win or buf then + vim.schedule(try_close) + end + end + + try_close() +end + +---@param opts? wk.Win.opts +function M:show(opts) + if opts then + self.opts = vim.tbl_deep_extend("force", self.opts, opts) + end + local win_opts = vim.deepcopy(self.opts) + win_opts.wo = nil + win_opts.bo = nil + win_opts.padding = nil + win_opts.no_overlap = nil + + if vim.fn.has("nvim-0.10") == 0 then + win_opts.footer = nil + end + + if self:valid() then + win_opts.noautocmd = nil + return vim.api.nvim_win_set_config(self.win, win_opts) + end + + local ei = vim.go.eventignore + vim.go.eventignore = "all" + + self.buf = vim.api.nvim_create_buf(false, true) + Util.bo(self.buf, self.opts.bo or {}) + self.win = vim.api.nvim_open_win(self.buf, false, win_opts) + Util.wo(self.win, self.opts.wo or {}) + + vim.go.eventignore = ei +end + +---@param up boolean +function M:scroll(up) + if not self:valid() then + return + end + local height = vim.api.nvim_win_get_height(self.win) + local delta = math.ceil((up and -1 or 1) * height / 2) + local view = vim.api.nvim_win_call(self.win, vim.fn.winsaveview) + local top = view.topline ---@type number + top = top + delta + top = math.max(top, 1) + top = math.min(top, vim.api.nvim_buf_line_count(self.buf) - height + 1) + vim.api.nvim_win_call(self.win, function() + vim.fn.winrestview({ topline = top, lnum = top }) + end) +end + +return M diff --git a/config/neovim/store/lazy-plugins/which-key.nvim/plugin/which-key.lua b/config/neovim/store/lazy-plugins/which-key.nvim/plugin/which-key.lua new file mode 100644 index 00000000..16e70887 --- /dev/null +++ b/config/neovim/store/lazy-plugins/which-key.nvim/plugin/which-key.lua @@ -0,0 +1,11 @@ +local timer = (vim.uv or vim.loop).new_timer() +timer:start( + 500, + 0, + vim.schedule_wrap(function() + local wk = require("which-key") + if not wk.did_setup then + wk.setup() + end + end) +) diff --git a/config/neovim/store/lazy-plugins/which-key.nvim/scripts/docs b/config/neovim/store/lazy-plugins/which-key.nvim/scripts/docs new file mode 100755 index 00000000..c961169b --- /dev/null +++ b/config/neovim/store/lazy-plugins/which-key.nvim/scripts/docs @@ -0,0 +1,3 @@ +#!/nix/store/4bj2kxdm1462fzcc2i2s4dn33g2angcc-bash-5.2p32/bin/bash + +nvim -u tests/minit.lua -l lua/which-key/docs.lua diff --git a/config/neovim/store/lazy-plugins/which-key.nvim/scripts/test b/config/neovim/store/lazy-plugins/which-key.nvim/scripts/test new file mode 100755 index 00000000..0bc1a330 --- /dev/null +++ b/config/neovim/store/lazy-plugins/which-key.nvim/scripts/test @@ -0,0 +1,3 @@ +#!/nix/store/4bj2kxdm1462fzcc2i2s4dn33g2angcc-bash-5.2p32/bin/bash + +nvim -l tests/minit.lua --minitest diff --git a/config/neovim/store/lazy-plugins/which-key.nvim/tests/buf_spec.lua b/config/neovim/store/lazy-plugins/which-key.nvim/tests/buf_spec.lua new file mode 100644 index 00000000..fd9925ba --- /dev/null +++ b/config/neovim/store/lazy-plugins/which-key.nvim/tests/buf_spec.lua @@ -0,0 +1,14 @@ +local Buf = require("which-key.buf") + +before_each(function() + require("helpers").reset() +end) + +describe("triggers", function() + it("does not create hooks for default mappings", function() + vim.keymap.set("n", "aa", "") + Buf.get({ mode = "n" }) + local m = vim.fn.maparg("a", "n", false, true) + assert.same(vim.empty_dict(), m) + end) +end) diff --git a/config/neovim/store/lazy-plugins/which-key.nvim/tests/helpers.lua b/config/neovim/store/lazy-plugins/which-key.nvim/tests/helpers.lua new file mode 100644 index 00000000..465980e9 --- /dev/null +++ b/config/neovim/store/lazy-plugins/which-key.nvim/tests/helpers.lua @@ -0,0 +1,12 @@ +local M = {} + +---@param lines? string[] +function M.reset(lines) + vim.o.showmode = false + vim.api.nvim_feedkeys(vim.keycode(""), "nx", false) + vim.cmd("enew") + vim.cmd("normal! o") + vim.api.nvim_buf_set_lines(0, 0, -1, false, lines or {}) +end + +return M diff --git a/config/neovim/store/lazy-plugins/which-key.nvim/tests/layout_spec.lua b/config/neovim/store/lazy-plugins/which-key.nvim/tests/layout_spec.lua new file mode 100644 index 00000000..019723e2 --- /dev/null +++ b/config/neovim/store/lazy-plugins/which-key.nvim/tests/layout_spec.lua @@ -0,0 +1,38 @@ +local layout = require("which-key.layout") + +describe("dim", function() + local tests = { + { 100, { 200 }, 100 }, + { 0.2, { 100 }, 20 }, + { -0.2, { 100 }, 80 }, + { -20, { 100 }, 80 }, + { 1, { 100 }, 1 }, + { 100, { 200, { min = 50 } }, 100 }, + { 100, { 200, { max = 150 } }, 100 }, + { 100, { 200, { max = 150, min = 50 } }, 100 }, + { 100, { 200, { max = 150, min = 150 } }, 150 }, + { 0.2, { 100, { max = 150, min = 20 } }, 20 }, + { 0.2, { 100, { max = 50, min = 20 } }, 20 }, + { math.huge, { 200 }, 200 }, + { -0.5, { 200 }, 100 }, + { 0.5, { 200 }, 100 }, + { 0.5, { 200, { min = 150 } }, 150 }, + { -0.5, { 200, { max = 50 } }, 50 }, + { 300, { 200, { max = 250 } }, 200 }, + { 300, { 200, { min = 250 } }, 200 }, + { -100, { 100, { max = 90, min = 20 } }, 20 }, + { -200, { 100, { max = -50, min = -50 } }, 0 }, + { 0.2, { 100, { min = 0.5 } }, 50 }, + { -200, { 100 }, 0 }, + { -1, { 100 }, 99 }, + { -0.1, { 100 }, 90 }, + { 0.1, { 100 }, 10 }, + { 14, { 212, 0.9 }, 191 }, + } + + for _, test in ipairs(tests) do + it("size=" .. test[1] .. ", parent=" .. test[2][1] .. ", result = " .. test[3], function() + assert.are.equal(test[3], layout.dim(test[1], unpack(test[2]))) + end) + end +end) diff --git a/config/neovim/store/lazy-plugins/which-key.nvim/tests/mappings_spec.lua b/config/neovim/store/lazy-plugins/which-key.nvim/tests/mappings_spec.lua new file mode 100644 index 00000000..23486ca1 --- /dev/null +++ b/config/neovim/store/lazy-plugins/which-key.nvim/tests/mappings_spec.lua @@ -0,0 +1,101 @@ +local Mappings = require("which-key.mappings") + +before_each(function() + Mappings.notifs = {} +end) + +describe("specs v1", function() + local tests = { + { + spec = { + [""] = { + name = "leader", + ["a"] = { "a" }, + ["b"] = { "b" }, + ["c"] = { "c" }, + }, + }, + mappings = { + { lhs = "", group = true, desc = "leader", mode = "n" }, + { lhs = "a", desc = "a", mode = "n" }, + { lhs = "b", desc = "b", mode = "n" }, + { lhs = "c", desc = "c", mode = "n" }, + }, + }, + { + spec = { + mode = "v", + [""] = { + name = "leader", + ["a"] = { "a" }, + ["b"] = { "b" }, + ["c"] = { "c" }, + }, + }, + mappings = { + { lhs = "", group = true, desc = "leader", mode = "v" }, + { lhs = "a", desc = "a", mode = "v" }, + { lhs = "b", desc = "b", mode = "v" }, + { lhs = "c", desc = "c", mode = "v" }, + }, + }, + { + spec = { desc = "foo", noremap = true }, + mappings = {}, + }, + { + spec = { a = { desc = "which_key_ignore" } }, + mappings = { + { lhs = "a", hidden = true, mode = "n" }, + }, + }, + { + spec = { a = { "foo", cond = false } }, + mappings = {}, + }, + { + spec = { a = { "foo", cond = true } }, + mappings = { + { desc = "foo", lhs = "a", mode = "n" }, + }, + }, + { + spec = { + a = { "a", cmd = "aa" }, + b = { "b", callback = "bb" }, + c = { "cc", "c" }, + d = { "dd", desc = "d" }, + }, + mappings = { + { lhs = "a", desc = "a", rhs = "aa", mode = "n", silent = true }, + { lhs = "b", desc = "b", rhs = "bb", mode = "n", silent = true }, + { lhs = "c", desc = "c", rhs = "cc", mode = "n", silent = true }, + { lhs = "d", desc = "dd", mode = "n" }, + }, + }, + { + spec = { + a = { "a1" }, + b = { "b1", "b2" }, + c = { "c1", desc = "c2" }, + }, + mappings = { + { lhs = "a", desc = "a1", mode = "n" }, + { lhs = "b", desc = "b2", rhs = "b1", mode = "n", silent = true }, + { lhs = "c", desc = "c1", mode = "n" }, + }, + }, + } + + -- Function to run the tests + for t, test in ipairs(tests) do + it(tostring(t), function() + local result = Mappings.parse(test.spec, { version = 1 }) + assert.same(test.mappings, result) + local errors = vim.tbl_filter(function(n) + return n.level >= vim.log.levels.ERROR + end, Mappings.notifs) + assert.same({}, errors) + end) + end +end) diff --git a/config/neovim/store/lazy-plugins/which-key.nvim/tests/minit.lua b/config/neovim/store/lazy-plugins/which-key.nvim/tests/minit.lua new file mode 100644 index 00000000..b50d8315 --- /dev/null +++ b/config/neovim/store/lazy-plugins/which-key.nvim/tests/minit.lua @@ -0,0 +1,17 @@ +#!/usr/bin/env -S nvim -l + +vim.env.LAZY_STDPATH = ".tests" +vim.env.LAZY_PATH = vim.fs.normalize("~/projects/lazy.nvim") +load(vim.fn.system("curl -s https://raw.githubusercontent.com/folke/lazy.nvim/main/bootstrap.lua"))() + +-- Setup lazy.nvim +require("lazy.minit").setup({ + spec = { + { + dir = vim.uv.cwd(), + opts = { + notify = false, + }, + }, + }, +}) diff --git a/config/neovim/store/lazy-plugins/which-key.nvim/tests/util_spec.lua b/config/neovim/store/lazy-plugins/which-key.nvim/tests/util_spec.lua new file mode 100644 index 00000000..dd3546f8 --- /dev/null +++ b/config/neovim/store/lazy-plugins/which-key.nvim/tests/util_spec.lua @@ -0,0 +1,125 @@ +---@module 'luassert' + +local Util = require("which-key.util") + +describe("parse keys", function() + local tests = { + [" Ä🔥foo"] = { + "", + "", + "", + "Ä", + "<", + "🔥", + "f", + "o", + "o", + }, + ["\1Ä🔥foo"] = { + "", + "", + "Ä", + "<", + "🔥", + "f", + "o", + "o", + }, + [""] = { "" }, + ["foo"] = { "f", "o", "o", "<", "b", "a", "z", ">" }, + ["foo"] = { "f", "o", "o", "|" }, + ["foo"] = { "f", "o", "o", "" }, + ["foo"] = { "f", "o", "o", "" }, + ["foo"] = { "f", "o", "o", "" }, + ["foo"] = { "f", "o", "o", "" }, + ["foo<"] = { "f", "o", "o", "<" }, + ["foo"] = { "f", "o", "o", ">" }, + -- test with japanese chars + ["fooあ"] = { "f", "o", "o", "あ" }, + ["fooあ"] = { "f", "o", "o", "あ", "<" }, + ["fooあbar"] = { "f", "o", "o", "あ", "<", "b", "a", "r" }, + ["fooあbar"] = { "f", "o", "o", "あ", "<", "b", "a", "r", "<" }, + ["fooあbarbaz"] = { "f", "o", "o", "あ", "<", "b", "a", "r", "<", "b", "a", "z" }, + ["fooあbarbaz"] = { "f", "o", "o", "あ", "<", "b", "a", "r", "<", "b", "a", "z", "<" }, + ["fooあbarbazqux"] = { + "f", + "o", + "o", + "あ", + "<", + "b", + "a", + "r", + "<", + "b", + "a", + "z", + "<", + "q", + "u", + "x", + }, + ["fooあbarbazqux"] = { + "f", + "o", + "o", + "あ", + "<", + "b", + "a", + "r", + "<", + "b", + "a", + "z", + "<", + "q", + "u", + "x", + "<", + }, + } + + for input, output in pairs(tests) do + it(("should parse %q"):format(input), function() + local keys = Util.keys(input) + assert.same(output, keys) + end) + end +end) + +describe("modes", function() + before_each(function() + require("helpers").reset() + end) + + local tests = { + ["gg"] = "n", + ["vl"] = "x", + ["j"] = "x", + ["gh"] = "s", + ["aa"] = "i", + ["ciw"] = "o", + ["c"] = "n", + ["terminal exit"] = "n", + } + + local inputs = vim.tbl_keys(tests) + table.sort(inputs) + for _, input in ipairs(inputs) do + local output = tests[input] + it(("should return %q for %q"):format(output, input), function() + local mode = "n" + assert.same(mode, Util.mapmode()) + vim.api.nvim_create_autocmd("ModeChanged", { + once = true, + callback = function() + mode = Util.mapmode() + end, + }) + vim.api.nvim_feedkeys(vim.keycode(input), "nitx", false) + assert.same(output, mode) + end) + end +end) diff --git a/config/neovim/store/nvim-treesitter/queries/ada/injections.scm b/config/neovim/store/nvim-treesitter/queries/ada/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/ada/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/nvim-treesitter/queries/agda/injections.scm b/config/neovim/store/nvim-treesitter/queries/agda/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/agda/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/nvim-treesitter/queries/apex/injections.scm b/config/neovim/store/nvim-treesitter/queries/apex/injections.scm new file mode 100644 index 00000000..3cd6aac8 --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/apex/injections.scm @@ -0,0 +1,5 @@ +([ + (line_comment) + (block_comment) +] @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/nvim-treesitter/queries/bibtex/injections.scm b/config/neovim/store/nvim-treesitter/queries/bibtex/injections.scm new file mode 100644 index 00000000..98ad387d --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/bibtex/injections.scm @@ -0,0 +1,2 @@ +((junk) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/nvim-treesitter/queries/blueprint/injections.scm b/config/neovim/store/nvim-treesitter/queries/blueprint/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/blueprint/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/nvim-treesitter/queries/cmake/injections.scm b/config/neovim/store/nvim-treesitter/queries/cmake/injections.scm new file mode 100644 index 00000000..eb8e2150 --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/cmake/injections.scm @@ -0,0 +1,5 @@ +([ + (bracket_comment) + (line_comment) +] @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/nvim-treesitter/queries/commonlisp/injections.scm b/config/neovim/store/nvim-treesitter/queries/commonlisp/injections.scm new file mode 100644 index 00000000..dc898205 --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/commonlisp/injections.scm @@ -0,0 +1,5 @@ +([ + (comment) + (block_comment) +] @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/nvim-treesitter/queries/cooklang/injections.scm b/config/neovim/store/nvim-treesitter/queries/cooklang/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/cooklang/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/nvim-treesitter/queries/corn/injections.scm b/config/neovim/store/nvim-treesitter/queries/corn/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/corn/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/nvim-treesitter/queries/diff/injections.scm b/config/neovim/store/nvim-treesitter/queries/diff/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/diff/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/nvim-treesitter/queries/ebnf/injections.scm b/config/neovim/store/nvim-treesitter/queries/ebnf/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/ebnf/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/nvim-treesitter/queries/editorconfig/folds.scm b/config/neovim/store/nvim-treesitter/queries/editorconfig/folds.scm new file mode 100644 index 00000000..911798f5 --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/editorconfig/folds.scm @@ -0,0 +1 @@ +(section) @fold diff --git a/config/neovim/store/nvim-treesitter/queries/editorconfig/highlights.scm b/config/neovim/store/nvim-treesitter/queries/editorconfig/highlights.scm new file mode 100644 index 00000000..fd69bc4c --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/editorconfig/highlights.scm @@ -0,0 +1,56 @@ +(comment) @comment @spell + +; consistency with toml and ini +(section + (section_name) @type) + +(character_choice + (character) @constant) + +(character_range + start: (character) @constant + end: (character) @constant) + +[ + "[" + "]" + "{" + "}" +] @punctuation.bracket + +[ + "," + ".." + (path_separator) +] @punctuation.delimiter + +[ + "-" + "=" + (negation) +] @operator + +[ + (wildcard_characters) + (wildcard_any_characters) + (wildcard_single_character) +] @character.special + +(escaped_character) @string.escape + +(pair + key: (identifier) @property + value: (_) @string) + +(boolean) @boolean + +(integer) @number + +(unset) @constant.builtin + +[ + (spelling_language) + (indent_style) + (end_of_line) + (charset) +] @string.special diff --git a/config/neovim/store/nvim-treesitter/queries/editorconfig/injections.scm b/config/neovim/store/nvim-treesitter/queries/editorconfig/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/editorconfig/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/nvim-treesitter/queries/elm/folds.scm b/config/neovim/store/nvim-treesitter/queries/elm/folds.scm new file mode 100644 index 00000000..56987d9f --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/elm/folds.scm @@ -0,0 +1,14 @@ +((function_call_expr) @_fn + (#not-has-parent? @_fn parenthesized_expr)) @fold + +[ + (case_of_branch) + (case_of_expr) + (value_declaration) + (type_declaration) + (type_alias_declaration) + (list_expr) + (record_expr) + (parenthesized_expr) + (import_clause)+ +] @fold diff --git a/config/neovim/store/nvim-treesitter/queries/erlang/injections.scm b/config/neovim/store/nvim-treesitter/queries/erlang/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/erlang/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/nvim-treesitter/queries/fortran/injections.scm b/config/neovim/store/nvim-treesitter/queries/fortran/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/fortran/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/nvim-treesitter/queries/fsh/injections.scm b/config/neovim/store/nvim-treesitter/queries/fsh/injections.scm new file mode 100644 index 00000000..7bf6d006 --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/fsh/injections.scm @@ -0,0 +1,2 @@ +((fsh_comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/nvim-treesitter/queries/func/injections.scm b/config/neovim/store/nvim-treesitter/queries/func/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/func/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/nvim-treesitter/queries/fusion/injections.scm b/config/neovim/store/nvim-treesitter/queries/fusion/injections.scm new file mode 100644 index 00000000..085cdb45 --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/fusion/injections.scm @@ -0,0 +1,5 @@ +([ + (comment) + (afx_comment) +] @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/nvim-treesitter/queries/gitignore/injections.scm b/config/neovim/store/nvim-treesitter/queries/gitignore/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/gitignore/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/nvim-treesitter/queries/glimmer/injections.scm b/config/neovim/store/nvim-treesitter/queries/glimmer/injections.scm new file mode 100644 index 00000000..d0400c30 --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/glimmer/injections.scm @@ -0,0 +1,2 @@ +((comment_statement) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/nvim-treesitter/queries/goctl/folds.scm b/config/neovim/store/nvim-treesitter/queries/goctl/folds.scm new file mode 100644 index 00000000..70492867 --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/goctl/folds.scm @@ -0,0 +1,11 @@ +[ + (typeGroupSpec) + (typeSingleSpec) + (typeStruct) + (serviceSpec) + (serviceBody) + (importStatement) + (serviceServerSpec) + (infoStatement) + (structType) +] @fold diff --git a/config/neovim/store/nvim-treesitter/queries/goctl/highlights.scm b/config/neovim/store/nvim-treesitter/queries/goctl/highlights.scm new file mode 100644 index 00000000..a4b809a1 --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/goctl/highlights.scm @@ -0,0 +1,79 @@ +; Key Symbol +"=" @operator + +[ + "." + "," + ":" + ";" +] @punctuation.delimiter + +[ + "(" + ")" + "{" + "}" + "[" + "]" +] @punctuation.bracket + +; Keywords +[ + "syntax" + "info" + "service" +] @keyword + +"import" @keyword.import + +"returns" @keyword.return + +[ + "type" + "struct" +] @keyword.type + +[ + "@doc" + "@handler" + "@server" +] @attribute + +; Service +(serviceName) @type + +; Httpmethod +(HTTPMETHOD) @keyword.operator + +; Field +(fieldType) @type.builtin + +(fieldName) @variable.member + +(anonymousField) @variable.member + +; Functions +(handlerValue) @function.method + +; Strings +(VALUE) @string + +(tag) @string.documentation + +(PATH) @string.special.path + +; Comments +(comment) @comment @spell + +(key) @variable.member + +(identValue) @string + +(DURATION) @number + +(NUMBER) @number + +; Struct +(structNameId) @type + +(body) @type diff --git a/config/neovim/store/nvim-treesitter/queries/goctl/indents.scm b/config/neovim/store/nvim-treesitter/queries/goctl/indents.scm new file mode 100644 index 00000000..ffa12690 --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/goctl/indents.scm @@ -0,0 +1,15 @@ +[ + (importGroup) + (typeGroupSpec) + (structType) + (infoStatement) + (serviceServerSpec) + (serviceSpec) +] @indent.begin + +[ + ")" + "}" +] @indent.branch @indent.end + +(comment) @indent.ignore diff --git a/config/neovim/store/nvim-treesitter/queries/goctl/injections.scm b/config/neovim/store/nvim-treesitter/queries/goctl/injections.scm new file mode 100644 index 00000000..a53abee5 --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/goctl/injections.scm @@ -0,0 +1,3 @@ +; Inject comment language for goctl +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/nvim-treesitter/queries/gotmpl/folds.scm b/config/neovim/store/nvim-treesitter/queries/gotmpl/folds.scm new file mode 100644 index 00000000..f3a22e90 --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/gotmpl/folds.scm @@ -0,0 +1,8 @@ +[ + (if_action) + (range_action) + (block_action) + (with_action) + (define_action) + (comment) +] @fold diff --git a/config/neovim/store/nvim-treesitter/queries/gotmpl/locals.scm b/config/neovim/store/nvim-treesitter/queries/gotmpl/locals.scm new file mode 100644 index 00000000..528e9fab --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/gotmpl/locals.scm @@ -0,0 +1,12 @@ +[ + (if_action) + (range_action) + (block_action) + (with_action) + (define_action) +] @local.scope + +(variable_definition + variable: (variable) @local.definition.var) + +(variable) @local.reference diff --git a/config/neovim/store/nvim-treesitter/queries/hack/injections.scm b/config/neovim/store/nvim-treesitter/queries/hack/injections.scm new file mode 100644 index 00000000..655c29ec --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/hack/injections.scm @@ -0,0 +1,5 @@ +([ + (comment) + (heredoc) +] @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/nvim-treesitter/queries/helm/folds.scm b/config/neovim/store/nvim-treesitter/queries/helm/folds.scm new file mode 100644 index 00000000..6ffb4b7d --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/helm/folds.scm @@ -0,0 +1 @@ +; inherits: gotmpl diff --git a/config/neovim/store/nvim-treesitter/queries/helm/locals.scm b/config/neovim/store/nvim-treesitter/queries/helm/locals.scm new file mode 100644 index 00000000..6ffb4b7d --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/helm/locals.scm @@ -0,0 +1 @@ +; inherits: gotmpl diff --git a/config/neovim/store/nvim-treesitter/queries/hoon/injections.scm b/config/neovim/store/nvim-treesitter/queries/hoon/injections.scm new file mode 100644 index 00000000..a004ba0b --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/hoon/injections.scm @@ -0,0 +1,2 @@ +((lineComment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/nvim-treesitter/queries/idl/indents.scm b/config/neovim/store/nvim-treesitter/queries/idl/indents.scm new file mode 100644 index 00000000..2256fb70 --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/idl/indents.scm @@ -0,0 +1,10 @@ +";" @indent.end + +"}" @indent.branch + +(definition) @indent.begin + +[ + (preproc_define) + (preproc_include) +] @indent.ignore diff --git a/config/neovim/store/nvim-treesitter/queries/ini/injections.scm b/config/neovim/store/nvim-treesitter/queries/ini/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/ini/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/nvim-treesitter/queries/jsonnet/injections.scm b/config/neovim/store/nvim-treesitter/queries/jsonnet/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/jsonnet/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/nvim-treesitter/queries/liquidsoap/injections.scm b/config/neovim/store/nvim-treesitter/queries/liquidsoap/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/liquidsoap/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/nvim-treesitter/queries/llvm/injections.scm b/config/neovim/store/nvim-treesitter/queries/llvm/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/llvm/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/nvim-treesitter/queries/mermaid/injections.scm b/config/neovim/store/nvim-treesitter/queries/mermaid/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/mermaid/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/nvim-treesitter/queries/mlir/injections.scm b/config/neovim/store/nvim-treesitter/queries/mlir/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/mlir/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/nvim-treesitter/queries/nginx/folds.scm b/config/neovim/store/nvim-treesitter/queries/nginx/folds.scm new file mode 100644 index 00000000..fd7d2399 --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/nginx/folds.scm @@ -0,0 +1 @@ +(block) @fold diff --git a/config/neovim/store/nvim-treesitter/queries/nginx/highlights.scm b/config/neovim/store/nvim-treesitter/queries/nginx/highlights.scm new file mode 100644 index 00000000..58fcc0b1 --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/nginx/highlights.scm @@ -0,0 +1,59 @@ +(comment) @comment @spell + +(value) @variable + +[ + (location_modifier) + "=" +] @operator + +[ + (keyword) + "location" +] @keyword + +[ + "if" + "map" +] @keyword.conditional + +(boolean) @boolean + +[ + (auto) + (constant) + (level) + (connection_method) + (var) + (condition) +] @variable.builtin + +[ + (file) + (mask) +] @string.special.path + +[ + (string_literal) + (quoted_string_literal) +] @string + +(directive + (variable + (keyword) @variable.parameter)) + +(location_route) @string.special + +";" @punctuation.delimiter + +[ + (numeric_literal) + (time) + (size) + (cpumask) +] @number + +[ + "{" + "}" +] @punctuation.bracket diff --git a/config/neovim/store/nvim-treesitter/queries/nginx/injections.scm b/config/neovim/store/nvim-treesitter/queries/nginx/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/nginx/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/nvim-treesitter/queries/nickel/injections.scm b/config/neovim/store/nvim-treesitter/queries/nickel/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/nickel/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/nvim-treesitter/queries/ninja/injections.scm b/config/neovim/store/nvim-treesitter/queries/ninja/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/ninja/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/nvim-treesitter/queries/nix/indents.scm b/config/neovim/store/nvim-treesitter/queries/nix/indents.scm new file mode 100644 index 00000000..757511b6 --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/nix/indents.scm @@ -0,0 +1,75 @@ +[ + (list_expression) + (indented_string_expression) + (let_expression) + (if_expression) + (binding) + (parenthesized_expression) +] @indent.begin + +((attrset_expression) @indent.begin + (#not-has-parent? @indent.begin if_expression)) + +((rec_attrset_expression) @indent.begin + (#not-has-parent? @indent.begin if_expression)) + +((binding + "=" @indent.begin) + (#set! indent.immediate 1)) + +(binding + ";" @indent.end) + +(parenthesized_expression + ")" @indent.branch @indent.end) + +(attrset_expression + "}" @indent.branch @indent.end) + +(rec_attrset_expression + "}" @indent.branch @indent.end) + +(list_expression + "]" @indent.branch @indent.dedent) + +(indented_string_expression + "''" @indent.branch @indent.end .) + +[ + "else" + "in" +] @indent.branch + +(let_expression + body: (_) @indent.end @indent.dedent) + +(string_fragment) @indent.ignore @indent.auto + +(if_expression + condition: (_) @indent.auto) + +alternative: (if_expression) @indent.dedent + +(interpolation) @indent.begin @indent.dedent + +(interpolation + "}" @indent.end @indent.branch) + +(ERROR + "then" @indent.begin) + +(ERROR + "then" + . + (formals) @indent.begin) + +(ERROR + "then" + . + (formals + "}" @indent.branch @indent.end)) + +(ERROR + "let") @indent.begin + +(comment) @indent.ignore diff --git a/config/neovim/store/nvim-treesitter/queries/powershell/folds.scm b/config/neovim/store/nvim-treesitter/queries/powershell/folds.scm new file mode 100644 index 00000000..d87e3f68 --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/powershell/folds.scm @@ -0,0 +1,13 @@ +[ + (expandable_here_string_literal) + (verbatim_here_string_characters) + (function_statement) + (param_block) + (script_block_expression) + (statement_block) + (switch_body) + (array_expression) + (hash_literal_expression) + (class_statement) + (class_method_definition) +] @fold diff --git a/config/neovim/store/nvim-treesitter/queries/powershell/highlights.scm b/config/neovim/store/nvim-treesitter/queries/powershell/highlights.scm new file mode 100644 index 00000000..3885ba83 --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/powershell/highlights.scm @@ -0,0 +1,334 @@ +; Punctuation +;------------ +[ + "(" + ")" + "[" + "]" + "{" + "}" +] @punctuation.bracket + +(hash_literal_expression + [ + "@{" + "}" + ] @punctuation.special) + +(array_expression + [ + "@(" + ")" + ] @punctuation.special) + +[ + "." + "::" + "," + ";" + (empty_statement) + (command_argument_sep) +] @punctuation.delimiter + +; Keywords +;--------- +[ + "if" + "elseif" + "else" + "switch" +] @keyword.conditional + +[ + "foreach" + "for" + "while" + "do" + "until" + "in" + "break" + "continue" +] @keyword.repeat + +[ + "function" + "filter" + "workflow" + "exit" + "trap" + "param" + "inlinescript" +] @keyword.function + +"return" @keyword.return + +[ + "class" + "enum" +] @keyword.type + +[ + "data" + (class_attribute) +] @keyword.modifier + +[ + "throw" + "try" + "catch" + "finally" +] @keyword.exception + +[ + "parallel" + "sequence" +] @keyword.coroutine + +[ + "param" + "dynamicparam" + "begin" + "process" + "end" +] @keyword + +; Operators +;---------- +[ + "-and" + "-or" + "-xor" + "-band" + "-bor" + "-bxor" + "+" + "-" + "/" + "\\" + "%" + "*" + ".." + "-not" + "-bnot" + "!" + "=" + "|" + (pre_increment_expression) + (pre_decrement_expression) + (post_increment_expression) + (post_decrement_expression) + (comparison_operator) + (assignement_operator) +] @operator + +; Generic types +;-------------- +(string_literal) @string + +(integer_literal) @number + +(real_literal) @number.float + +(variable) @variable + +((variable) @variable.builtin + (#any-of? @variable.builtin + "$$" "$?" "$^" "$_" "$args" "$ConsoleFileName" "$EnabledExperimentalFeatures" "$Error" "$Event" + "$EventArgs" "$EventSubscriber" "$ExecutionContext" "$false" "$foreach" "$HOME" "$Host" "$input" + "$IsCoreCLR" "$IsLinux" "$IsMacOS" "$IsWindows" "$LASTEXITCODE" "$Matches" "$MyInvocation" + "$NestedPromptLevel" "$null" "$PID" "$PROFILE" "$PSBoundParameters" "$PSCmdlet" "$PSCommandPath" + "$PSCulture" "$PSDebugContext" "$PSEdition" "$PSHOME" "$PSItem" "$PSScriptRoot" "$PSSenderInfo" + "$PSUICulture" "$PSVersionTable" "$PWD" "$Sender" "ShellId" "$StackTrace" "$switch" "$this" + "$true")) + +((variable) @variable.builtin + (#lua-match? @variable.builtin "^\$env:")) + +(data_name + (simple_name) @constant) + +(comment) @comment @spell + +((program + . + (comment) @keyword.directive) + (#lua-match? @keyword.directive "^#!/")) + +; Booleans +;--------- +([ + (generic_token) + (command_name) + (variable) + (command) +] @boolean + (#any-of? @boolean "True" "False" "$true" "$false")) + +; switch -regex +;-------------- +(switch_statement + (switch_parameters + (switch_parameter) @_parameter) + (switch_body + (switch_clauses + (switch_clause + (switch_clause_condition + (string_literal) @string.regexp)))) + (#eq? @_parameter "-regex") + (#offset! @string.regexp 0 1 0 -1)) + +; Multiline strings +;------------------ +([ + (verbatim_here_string_characters) + (expandable_here_string_literal) +] @markup.raw.block + (#offset! @markup.raw.block 0 2 0 -2)) + +; Type references and definitions +;-------------------------------- +(type_spec + (type_name) @type) + +(class_statement + (simple_name) @type) + +(type_spec + (type_name) @type.builtin + (#any-of? @type.builtin + "bool" "Boolean" "System.Boolean" "char" "Char" "System.Char" "string" "String" "System.String" + "int" "Int32" "System.Int32" "long" "Int64" "System.Int64" "byte" "Byte" "System.Byte" "float" + "Single" "System.Single" "double" "Double" "System.Double" "decimal" "Decimal" "System.Decimal" + "array" "Array" "System.Array" "regex" "Regex" "System.Text.RegularExpressions.Regex" "ref" + "Management.Automation.PSReference" "System.Management.Automation.PSReference" "scriptblock" + "Management.Automation.ScriptBlock" "System.Management.Automation.ScriptBlock" "datetime" + "DateTime" "System.DateTime" "enum" "Enum" "System.Enum" "IO.DirectoryInfo" + "System.IO.DirectoryInfo" "IO.FileAttributes" "System.IO.FileAttributes" "IO.FileInfo" + "System.IO.FileInfo" "IO.Path" "System.IO.Path" "Text.RegularExpressions.RegexOptions" + "System.Text.RegularExpressions.RegexOptions" "Math" "System.Math" "PSObject" "System.PSObject" + "Object" "System.Object" "ValueType" "System.ValueType" "Hashtable" + "System.Collections.Hashtable" "Collections.Stack" "System.Collections.Generic.Stack" + "Collections.Dictionary" "System.Collections.Dictionary" "Collections.DictionaryEntry" + "System.Collections.DictionaryEntry" "Collections.ArrayList" "System.Collections.ArrayList" + "Management.Automation.SwitchParameter" "System.Management.Automation.SwitchParameter" + "Management.Automation.ActionPreference" "System.Management.Automation.ActionPreference" + "Management.Automation.ConfirmImpact" "System.Management.Automation.ConfirmImpact" + "Management.Automation.CommandInfo" "System.Management.Automation.CommandInfo" + "Management.Automation.ProviderInfo" "System.Management.Automation.ProviderInfo" + "Management.Automation.PSDriveInfo" "System.Management.Automation.PSDriveInfo" + "Management.Automation.PSVariable" "System.Management.Automation.PSVariable" + "Management.Automation.AliasInfo" "System.Management.Automation.AliasInfo" + "Management.Automation.PathInfo" "System.Management.Automation.PathInfo" + "Management.Automation.PathInfoStack" "System.Management.Automation.PathInfoStack" + "Management.Automation.ApplicationInfo" "System.Management.Automation.ApplicationInfo" + "Management.Automation.CmdletInfo" "System.Management.Automation.CmdletInfo" + "Management.Automation.ExternalScriptInfo" "System.Management.Automation.ExternalScriptInfo" + "Management.Automation.FunctionInfo" "System.Management.Automation.FunctionInfo" + "Management.Automation.CommandTypes" "System.Management.CommandTypes" + "Management.Automation.ScopedItemOptions" "System.Management.Automation.ScopedItemOptions" + "Management.Automation.PSTypeName" "System.Management.Automation.PSTypeName" + "Management.Automation.ParameterMetadata" "System.Management.Automation.ParameterMetadata" + "Management.Automation.CommandParameterSetInfo" + "System.Management.Automation.CommandParameterSetInfo" + "Management.Automation.SessionStateEntryVisibility" + "System.Management.Automation.SessionStateEntryVisibility" "Management.Automation.FilterInfo" + "System.Management.Automation.FilterInfo" "Management.Automation.ModuleType" + "System.Management.Automation.ModuleType" "Management.Automation.PSModuleInfo" + "System.Management.Automation.PSModuleInfo" "Management.Automation.PSCustomObject" + "System.Management.Automation.PSCustomObject" "Management.Automation.PSScriptCmdlet" + "System.Management.Automation.PSScriptCmdlet" "Management.Automation.ErrorRecord" + "System.Management.Automation.ErrorRecord" "Management.Automation.PSCredential" + "System.Management.Automation.PSCredential" "Management.Automation.PSMethod" + "System.Management.Automation.PSMethod") + ) + +; Function definitions +;--------------------- +(function_statement + (function_name) @function) + +; Classes, fields and methods definitions +;---------------------------------------- +(class_property_definition + (variable) @variable.member) + +(class_method_definition + (simple_name) @function.method) + +(class_statement + (simple_name) @_class_name + (class_method_definition + (simple_name) @constructor) + (#eq? @constructor @_class_name)) + +(key_expression) @property + +; Functions, methods calls and properties access +;-------------------------- +(command_invokation_operator) @operator + +(invokation_expression + (member_name) @function.call) + +(invokation_expression + (member_name) @constructor + (#eq? @constructor "new")) + +(member_access + (member_name + [ + (simple_name) + (variable) + ] @variable.member)) + +; Commands execution +;------------------- +(command + command_name: (command_name) @function.call) + +(command + command_name: (command_name) @function.builtin + (#any-of? @function.builtin + ; Locations & Paths + "cd" "cd.." "cd\\" "cd~" "help" "Get-Location" "Pop-Location" "Push-Location" "Set-Location" + "Convert-Path" "Join-Path" "Resolve-Path" "Split-Path" "Test-Path" + ; Files & Directories + "Clear-Item" "Clear-ItemProperty" "Copy-Item" "Copy-ItemProperty" "Get-Item" "Get-ItemProperty" + "Get-ItemPropertyValue" "Invoke-Item" "Move-Item" "Move-ItemProperty" "New-Item" + "New-ItemProperty" "Remove-Item" "Remove-ItemProperty" "Rename-Item" "Rename-ItemProperty" + "Set-Item" "Set-ItemProperty" + ; Aliases + "New-Alias" "Get-Alias" "Set-Alias" "Remove-Alias" "Import-Alias" "Export-Alias" + ; Host (prompt) + "prompt" "cls" "echo" "Clear-Host" "Get-Host" "Out-Host" "Read-Host" "Write-Host" "Out-String" + ; Expressions + "Invoke-Expression" + ; Objects + "Compare-Object" "ForEach-Object" "Group-Object" "Measure-Object" "New-Object" "Select-Object" + "Sort-Object" "Tee-Object" "Where-Object" + ; Modules + "Export-ModuleMember" "Find-Module" "Get-Module" "Import-Module" "Install-Module" "New-Module" + "New-ModuleManifest" "Publish-Module" "Remove-Module" "Save-Module" "Test-ModuleManifest" + "Uninstall-Module" "Update-Module" "Update-ModuleManifest")) + +; Parameters and call arguments +;------------------------------ +(command_elements + (generic_token) @variable.parameter) + +(switch_parameter) @variable.parameter.builtin + +(command_parameter) @variable.parameter.builtin + +(script_parameter + (variable) @variable.parameter) + +(class_method_parameter + (variable) @variable.parameter) + +; Document encoding +;------------------ +((program + . + (comment) @keyword.directive @nospell) + (#lua-match? @keyword.directive "Encoding$")) diff --git a/config/neovim/store/nvim-treesitter/queries/powershell/indents.scm b/config/neovim/store/nvim-treesitter/queries/powershell/indents.scm new file mode 100644 index 00000000..3be2ed16 --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/powershell/indents.scm @@ -0,0 +1,41 @@ +(function_statement + "}" @indent.branch) @indent.begin + +(param_block + [ + "param" + "(" + ")" + ] @indent.branch) @indent.begin + +(script_block_expression + "}" @indent.branch) @indent.begin + +(statement_block + "}" @indent.branch) @indent.begin + +(switch_body + "}" @indent.branch) @indent.begin + +(array_expression + ")" @indent.branch) @indent.begin + +(hash_literal_expression + "}" @indent.branch) @indent.begin + +(class_statement + "}" @indent.branch) @indent.begin + +(class_method_definition + "}" @indent.branch) @indent.begin + +[ + "}" + ")" +] @indent.end + +[ + (comment) + (string_literal) + (ERROR) +] @indent.auto diff --git a/config/neovim/store/nvim-treesitter/queries/powershell/injections.scm b/config/neovim/store/nvim-treesitter/queries/powershell/injections.scm new file mode 100644 index 00000000..677e8b26 --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/powershell/injections.scm @@ -0,0 +1,27 @@ +; comments and block-comments +((comment) @injection.content + (#set! injection.language "comment")) + +; dynamic invocation like & "$env:ChocolateyInstall\bin\choco.exe" +(command + (command_invokation_operator) @_operator + (command_name_expr + (string_literal) @injection.content) + (#eq? @_operator "&") + (#set! injection.language "powershell") + (#offset! @injection.content 0 1 0 -1) + (#set! injection.include-children)) + +; switch -regex +(switch_statement + (switch_parameters + (switch_parameter) @_parameter) + (switch_body + (switch_clauses + (switch_clause + (switch_clause_condition + (string_literal) @injection.content)))) + (#eq? @_parameter "-regex") + (#set! injection.language "regex") + (#offset! @injection.content 0 1 0 -1) + (#set! injection.include-children)) diff --git a/config/neovim/store/nvim-treesitter/queries/powershell/locals.scm b/config/neovim/store/nvim-treesitter/queries/powershell/locals.scm new file mode 100644 index 00000000..e9841099 --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/powershell/locals.scm @@ -0,0 +1,85 @@ +; Scopes +;------- +(class_statement) @local.scope + +(class_method_definition) @local.scope + +(statement_block) @local.scope + +(function_statement) @local.scope + +; Definitions +;------------ +(class_statement + (simple_name) @local.definition.type + (#set! definition.var.scope "parent")) + +(class_property_definition + (variable) @local.definition.field + (#set! definition.var.scope "parent")) + +(class_method_definition + (simple_name) @local.definition.method + (#set! definition.var.scope "parent")) + +(function_statement + (function_name) @local.definition.function + (#set! definition.var.scope "parent")) + +; function, script block parameters +(parameter_list + (script_parameter + (attribute_list + (attribute + (type_literal + (type_spec) @local.definition.associated))) + (variable) @local.definition.parameter)) + +; variable assignment +(assignment_expression + (left_assignment_expression + (logical_expression + (bitwise_expression + (comparison_expression + (additive_expression + (multiplicative_expression + (format_expression + (range_expression + (array_literal_expression + (unary_expression + (variable) @local.definition.var))))))))))) + +; variable with type assignment +(assignment_expression + (left_assignment_expression + (logical_expression + (bitwise_expression + (comparison_expression + (additive_expression + (multiplicative_expression + (format_expression + (range_expression + (array_literal_expression + (unary_expression + (expression_with_unary_operator + (cast_expression + (type_literal + (type_spec) @local.definition.associated) + (unary_expression + (variable) @local.definition.var)))))))))))))) + +; data sections +(data_name + (simple_name) @local.definition.var) + +; References +;----------- +(variable) @local.reference + +(command_name) @local.reference + +(invokation_expression + (variable) @_variable + (member_name + (simple_name) @local.reference) + (#eq? @_variable "$this")) diff --git a/config/neovim/store/nvim-treesitter/queries/prisma/injections.scm b/config/neovim/store/nvim-treesitter/queries/prisma/injections.scm new file mode 100644 index 00000000..ac427dd6 --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/prisma/injections.scm @@ -0,0 +1,5 @@ +([ + (comment) + (developer_comment) +] @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/nvim-treesitter/queries/problog/folds.scm b/config/neovim/store/nvim-treesitter/queries/problog/folds.scm new file mode 100644 index 00000000..76871820 --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/problog/folds.scm @@ -0,0 +1 @@ +; inherits: prolog diff --git a/config/neovim/store/nvim-treesitter/queries/problog/highlights.scm b/config/neovim/store/nvim-treesitter/queries/problog/highlights.scm new file mode 100644 index 00000000..de171566 --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/problog/highlights.scm @@ -0,0 +1,4 @@ +; inherits: prolog + +(probability_label + _ @attribute) diff --git a/config/neovim/store/nvim-treesitter/queries/problog/indents.scm b/config/neovim/store/nvim-treesitter/queries/problog/indents.scm new file mode 100644 index 00000000..76871820 --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/problog/indents.scm @@ -0,0 +1 @@ +; inherits: prolog diff --git a/config/neovim/store/nvim-treesitter/queries/problog/injections.scm b/config/neovim/store/nvim-treesitter/queries/problog/injections.scm new file mode 100644 index 00000000..76871820 --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/problog/injections.scm @@ -0,0 +1 @@ +; inherits: prolog diff --git a/config/neovim/store/nvim-treesitter/queries/prolog/folds.scm b/config/neovim/store/nvim-treesitter/queries/prolog/folds.scm new file mode 100644 index 00000000..70a40151 --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/prolog/folds.scm @@ -0,0 +1,6 @@ +[ + (directive_term) + (clause_term) + (arg_list) + (list_notation) +] @fold diff --git a/config/neovim/store/nvim-treesitter/queries/prolog/highlights.scm b/config/neovim/store/nvim-treesitter/queries/prolog/highlights.scm new file mode 100644 index 00000000..fc89b6fe --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/prolog/highlights.scm @@ -0,0 +1,43 @@ +(comment) @comment @spell + +(atom) @constant + +((atom) @boolean + (#any-of? @boolean "true" "false")) + +(functional_notation + function: (atom) @function.call) + +(integer) @number + +(float_number) @number.float + +(directive_head) @operator + +(operator_notation + operator: _ @operator) + +[ + (open) + (open_ct) + (close) + (open_list) + "|" + (close_list) + (open_curly) + (close_curly) +] @punctuation.bracket + +[ + (arg_list_separator) + (comma) + (end) + (list_notation_separator) +] @punctuation.delimiter + +(operator_notation + operator: (semicolon) @punctuation.delimiter) + +(double_quoted_list_notation) @string + +(variable_term) @variable diff --git a/config/neovim/store/nvim-treesitter/queries/prolog/indents.scm b/config/neovim/store/nvim-treesitter/queries/prolog/indents.scm new file mode 100644 index 00000000..a7f9b038 --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/prolog/indents.scm @@ -0,0 +1,16 @@ +(directive_term) @indent.zero + +(clause_term) @indent.zero + +(functional_notation + (atom) + (open_ct) @indent.begin + (close) @indent.end) + +(list_notation + (open_list) @indent.begin + (close_list) @indent.end) + +(curly_bracketed_notation + (open_curly) @indent.begin + (close_curly) @indent.end) diff --git a/config/neovim/store/nvim-treesitter/queries/prolog/injections.scm b/config/neovim/store/nvim-treesitter/queries/prolog/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/prolog/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/nvim-treesitter/queries/proto/injections.scm b/config/neovim/store/nvim-treesitter/queries/proto/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/proto/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/nvim-treesitter/queries/ralph/highlights.scm b/config/neovim/store/nvim-treesitter/queries/ralph/highlights.scm new file mode 100644 index 00000000..e56ffa5a --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/ralph/highlights.scm @@ -0,0 +1,137 @@ +(type_identifier) @type + +(identifier) @variable + +[ + (primitive_type) + (alph_token_id) +] @type.builtin + +(var_declaration) @variable + +(struct_field + (identifier) @variable.member) + +(arg_def + (identifier) @variable.parameter) + +(event_field + (identifier) @variable.parameter) + +(struct_constructor_field + (identifier) @variable.parameter) + +[ + (hex_num) + (integer) + (typed_num) +] @number + +[ + (bool) + (bytes) + (address) +] @constant.builtin + +(func_id + [ + (identifier) + "!" + ] @function) + +(annotation + [ + "@" + (identifier) + ] @attribute) + +(map_def + (identifier) @variable.parameter) + +"fn" @keyword.function + +[ + "Contract" + "TxScript" + "Interface" + "AssetScript" + "struct" + "enum" + "event" + "mapping" +] @keyword.type + +[ + "pub" + "Abstract" + (mutable) +] @keyword.modifier + +[ + "while" + "for" +] @keyword.repeat + +"return" @keyword.return + +[ + "if" + "else" +] @keyword.conditional + +[ + "const" + "let" + "emit" + "extends" + "embeds" + "implements" +] @keyword + +[ + "(" + ")" + "[" + "]" + "{" + "}" +] @punctuation.bracket + +[ + "." + "," + ":" + ";" +] @punctuation.delimiter + +[ + "=" + "->" + (op_byte_vec_add) + (op_add) + (op_sub) + (op_mul) + (op_exp) + (op_mod_exp) + (op_div) + (op_mod) + (op_mod_add) + (op_mod_sub) + (op_mod_mul) + (op_shl) + (op_shr) + (op_bit_and) + (op_xor) + (op_bit_or) + (op_eq) + (op_ne) + (op_lt) + (op_le) + (op_gt) + (op_ge) + (op_and) + (op_or) + (op_not) +] @operator + +(line_comment) @comment @spell diff --git a/config/neovim/store/nvim-treesitter/queries/ralph/injections.scm b/config/neovim/store/nvim-treesitter/queries/ralph/injections.scm new file mode 100644 index 00000000..36849c87 --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/ralph/injections.scm @@ -0,0 +1,2 @@ +((line_comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/nvim-treesitter/queries/rescript/folds.scm b/config/neovim/store/nvim-treesitter/queries/rescript/folds.scm new file mode 100644 index 00000000..4e658a57 --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/rescript/folds.scm @@ -0,0 +1,12 @@ +[ + (block) + (function) + (module_declaration) + (type_declaration) + (external_declaration) + (call_expression) + (switch_expression) + (parenthesized_expression) + (record) + (include_statement)+ +] @fold diff --git a/config/neovim/store/nvim-treesitter/queries/rescript/highlights.scm b/config/neovim/store/nvim-treesitter/queries/rescript/highlights.scm new file mode 100644 index 00000000..e7cba9be --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/rescript/highlights.scm @@ -0,0 +1,335 @@ +(comment) @comment @spell + +; Identifiers +;------------ +; Escaped identifiers like \"+." +((value_identifier) @constant.macro + (#lua-match? @constant.macro "^%.*$")) + +(value_identifier) @variable + +[ + (type_identifier) + (unit_type) + (list) + (list_pattern) +] @type + +((type_identifier) @type.builtin + (#any-of? @type.builtin "int" "char" "string" "float" "bool" "unit")) + +[ + (variant_identifier) + (polyvar_identifier) +] @constructor + +(record_type_field + (property_identifier) @property) + +(record_field + (property_identifier) @property) + +(object + (field + (property_identifier) @property)) + +(object_type + (field + (property_identifier) @property)) + +(module_identifier) @module + +(member_expression + (property_identifier) @variable.member) + +(value_identifier_path + (module_identifier) + (value_identifier) @variable) + +(record_pattern + (value_identifier_path + (value_identifier) @variable.member)) + +(record_pattern + (value_identifier) @variable) + +(labeled_argument + label: (value_identifier) @variable.parameter) + +; Parameters +;---------------- +(list_pattern + (value_identifier) @variable.parameter) + +(spread_pattern + (value_identifier) @variable.parameter) + +; String literals +;---------------- +[ + (string) + (template_string) +] @string + +(character) @character + +(escape_sequence) @string.escape + +; Other literals +;--------------- +[ + (true) + (false) +] @boolean + +(number) @number + +(polyvar) @constructor + +(polyvar_string) @constructor + +; Functions +;---------- +; parameter(s) in parens +(parameter + (value_identifier) @variable.parameter) + +(labeled_parameter + (value_identifier) @variable.parameter) + +; single parameter with no parens +(function + parameter: (value_identifier) @variable.parameter) + +(parameter + (tuple_pattern + (tuple_item_pattern + (value_identifier) @variable.parameter))) + +(parameter + (array_pattern + (value_identifier) @variable.parameter)) + +(parameter + (record_pattern + (value_identifier) @variable.parameter)) + +; function identifier in let binding +(let_binding + pattern: (value_identifier) @function + body: (function)) + +; function calls +(call_expression + function: (value_identifier_path + (value_identifier) @function.method.call .)) + +(call_expression + function: (value_identifier) @function.call) + +; highlight the right-hand side of a pipe operator as a function call +(pipe_expression + (value_identifier) @function.call .) + +(pipe_expression + (value_identifier_path + (value_identifier) @function.method.call .) .) + +; Meta +;----- +(decorator_identifier) @attribute + +(extension_identifier) @keyword + +"%" @keyword + +; Misc +;----- +(polyvar_type_pattern + "#" @constructor) + +[ + "include" + "open" +] @keyword.import + +[ + "private" + "mutable" + "rec" +] @keyword.modifier + +"type" @keyword.type + +[ + "and" + "with" + "as" +] @keyword.operator + +[ + "export" + "external" + "let" + "module" + "assert" + "await" + "lazy" + "constraint" +] @keyword + +"await" @keyword.coroutine + +(function + "async" @keyword.coroutine) + +(module_unpack + "unpack" @keyword) + +[ + "if" + "else" + "switch" + "when" +] @keyword.conditional + +[ + "exception" + "try" + "catch" +] @keyword.exception + +(call_expression + function: (value_identifier) @keyword.exception + (#eq? @keyword.exception "raise")) + +[ + "for" + "in" + "to" + "downto" + "while" +] @keyword.repeat + +[ + "." + "," + "|" + ":" +] @punctuation.delimiter + +[ + "++" + "+" + "+." + "-" + "-." + "*" + "**" + "*." + "/." + "<=" + "==" + "===" + "!" + "!=" + "!==" + ">=" + "&&" + "||" + "=" + ":=" + "->" + "|>" + ":>" + "+=" + "=>" + (uncurry) +] @operator + +; Explicitly enclose these operators with binary_expression +; to avoid confusion with JSX tag delimiters +(binary_expression + [ + "<" + ">" + "/" + ] @operator) + +[ + "(" + ")" + "{" + "}" + "[" + "]" + "<" + ">" +] @punctuation.bracket + +(unit + [ + "(" + ")" + ] @constant.builtin) + +(template_substitution + "${" @punctuation.special + "}" @punctuation.special) @none + +(polyvar_type + [ + "[" + "[>" + "[<" + "]" + ] @punctuation.bracket) + +[ + "~" + "?" + ".." + "..." +] @punctuation.special + +(ternary_expression + [ + "?" + ":" + ] @keyword.conditional.ternary) + +; JSX +;---------- +(jsx_identifier) @tag + +(jsx_element + open_tag: (jsx_opening_element + [ + "<" + ">" + ] @tag.delimiter)) + +(jsx_element + close_tag: (jsx_closing_element + [ + "<" + "/" + ">" + ] @tag.delimiter)) + +(jsx_self_closing_element + [ + "/" + ">" + "<" + ] @tag.delimiter) + +(jsx_fragment + [ + ">" + "<" + "/" + ] @tag.delimiter) + +(jsx_attribute + (property_identifier) @tag.attribute) diff --git a/config/neovim/store/nvim-treesitter/queries/rescript/indents.scm b/config/neovim/store/nvim-treesitter/queries/rescript/indents.scm new file mode 100644 index 00000000..0b635dd4 --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/rescript/indents.scm @@ -0,0 +1,36 @@ +[ + (block) + (record_type) + (record) + (parenthesized_expression) + (call_expression) + (function_type_parameters) + (function) + (switch_match) + (let_declaration) + (jsx_element) + (jsx_fragment) + (jsx_self_closing_element) + (object_type) +] @indent.begin + +[ + "}" + ")" + (jsx_closing_element) +] @indent.branch @indent.end + +(jsx_self_closing_element + "/" @indent.branch + ">"? @indent.end) + +; is captured as 3 different anonymous nodes +(jsx_fragment + "<" + "<" @indent.branch) + +(jsx_fragment + ">" + ">" @indent.end) + +(comment) @indent.auto diff --git a/config/neovim/store/nvim-treesitter/queries/rescript/injections.scm b/config/neovim/store/nvim-treesitter/queries/rescript/injections.scm new file mode 100644 index 00000000..434404be --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/rescript/injections.scm @@ -0,0 +1,33 @@ +((comment) @injection.content + (#set! injection.language "comment")) + +(extension_expression + (extension_identifier) @_name + (#eq? @_name "re") + (expression_statement + (_) @injection.content + (#set! injection.language "regex"))) + +(extension_expression + (extension_identifier) @_name + (#eq? @_name "raw") + (expression_statement + (_ + (_) @injection.content + (#set! injection.language "javascript")))) + +(extension_expression + (extension_identifier) @_name + (#eq? @_name "graphql") + (expression_statement + (_ + (_) @injection.content + (#set! injection.language "graphql")))) + +(extension_expression + (extension_identifier) @_name + (#eq? @_name "relay") + (expression_statement + (_ + (_) @injection.content + (#set! injection.language "graphql")))) diff --git a/config/neovim/store/nvim-treesitter/queries/rescript/locals.scm b/config/neovim/store/nvim-treesitter/queries/rescript/locals.scm new file mode 100644 index 00000000..10a663bd --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/rescript/locals.scm @@ -0,0 +1,9 @@ +(switch_expression) @local.scope + +; Definitions +;------------ +(type_declaration) @local.definition.type + +(let_binding) @local.definition.var + +(module_declaration) @local.definition.namespace diff --git a/config/neovim/store/nvim-treesitter/queries/robot/injections.scm b/config/neovim/store/nvim-treesitter/queries/robot/injections.scm new file mode 100644 index 00000000..56e37005 --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/robot/injections.scm @@ -0,0 +1,5 @@ +([ + (comment) + (extra_text) +] @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/nvim-treesitter/queries/robots/highlights.scm b/config/neovim/store/nvim-treesitter/queries/robots/highlights.scm new file mode 100644 index 00000000..a2c55c74 --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/robots/highlights.scm @@ -0,0 +1,7 @@ +(comment) @comment @spell + +(directive) @property + +(value) @string + +":" @punctuation.delimiter diff --git a/config/neovim/store/nvim-treesitter/queries/robots/injections.scm b/config/neovim/store/nvim-treesitter/queries/robots/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/robots/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/nvim-treesitter/queries/scss/injections.scm b/config/neovim/store/nvim-treesitter/queries/scss/injections.scm new file mode 100644 index 00000000..c3a252a7 --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/scss/injections.scm @@ -0,0 +1,2 @@ +((single_line_comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/nvim-treesitter/queries/smithy/injections.scm b/config/neovim/store/nvim-treesitter/queries/smithy/injections.scm new file mode 100644 index 00000000..cb85ecaa --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/smithy/injections.scm @@ -0,0 +1,5 @@ +([ + (comment) + (documentation_comment) +] @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/nvim-treesitter/queries/solidity/injections.scm b/config/neovim/store/nvim-treesitter/queries/solidity/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/solidity/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/nvim-treesitter/queries/swift/injections.scm b/config/neovim/store/nvim-treesitter/queries/swift/injections.scm new file mode 100644 index 00000000..19aae904 --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/swift/injections.scm @@ -0,0 +1,5 @@ +([ + (comment) + (multiline_comment) +] @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/nvim-treesitter/queries/systemverilog/folds.scm b/config/neovim/store/nvim-treesitter/queries/systemverilog/folds.scm new file mode 100644 index 00000000..ea52476a --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/systemverilog/folds.scm @@ -0,0 +1,23 @@ +[ + (seq_block) + (function_body_declaration) + (task_body_declaration) + (generate_block) + (always_construct) + (property_declaration) + (checker_declaration) + (class_declaration) + (config_declaration) + (covergroup_declaration) + (clocking_declaration) + (interface_declaration) + (module_declaration) + (package_declaration) + (module_instantiation) + (program_declaration) + (specify_block) + (generate_region) + (package_import_declaration) + (text_macro_definition) + (include_compiler_directive)+ +] @fold diff --git a/config/neovim/store/nvim-treesitter/queries/systemverilog/highlights.scm b/config/neovim/store/nvim-treesitter/queries/systemverilog/highlights.scm new file mode 100644 index 00000000..c8cff453 --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/systemverilog/highlights.scm @@ -0,0 +1,595 @@ +; Keywords +[ + "begin" + "end" + "generate" + "endgenerate" + (module_keyword) + "endmodule" + "program" + "endprogram" + "package" + "endpackage" + "checker" + "endchecker" + "config" + "endconfig" + "pure" + "virtual" + "extends" + "implements" + "super" + (class_item_qualifier) + "parameter" + "localparam" + "defparam" + "assign" + "modport" + "fork" + "join" + "join_none" + "join_any" + "default" + "break" + "tagged" + "extern" + "alias" + "posedge" + "negedge" + "bind" + "expect" + "type" + "void" + "coverpoint" + "cross" + "nettype" + "export" + "force" + "release" + "timeunit" + "timeprecision" + "sequence" + "endsequence" + "property" + "endproperty" + "clocking" + "endclocking" + "covergroup" + "endgroup" + "specify" + "endspecify" + "primitive" + "endprimitive" + "wait" + "wait_order" + "const" + "constraint" + "unique" + "do" + "genvar" + "inside" + "rand" + "continue" + "randc" + "event" + "global" + "ref" + "initial" + (unique_priority) + (bins_keyword) + (always_keyword) +] @keyword + +[ + "class" + "endclass" + "interface" + "endinterface" + "enum" + "struct" + "union" + "typedef" +] @keyword.type + +[ + "function" + "endfunction" + "task" + "endtask" +] @keyword.function + +"return" @keyword.return + +[ + "for" + "foreach" + "repeat" + "forever" + "while" +] @keyword.repeat + +; for +(loop_generate_construct + (generate_block + [ + "begin" + "end" + ] @keyword.conditional)) + +; foreach +(loop_statement + (statement + (statement_item + (seq_block + [ + "begin" + "end" + ] @keyword.conditional)))) + +; repeat forever while +(loop_statement + (statement_or_null + (statement + (statement_item + (seq_block + [ + "begin" + "end" + ] @keyword.conditional))))) + +[ + "if" + "else" + "iff" + (case_keyword) + "endcase" +] @keyword.conditional + +[ + "=" + "-" + "+" + "/" + "*" + "^" + "&" + "|" + "&&" + "||" + "<=" + "==" + "!=" + "===" + "!==" + "-:" + "<" + ">" + ">=" + "%" + ">>" + "<<" + "|=" + "|=>" + "|->" + ">>>" + "<<<" + "->>" + "->" + "=>" + "*>" + ".*" + (unary_operator) + (inc_or_dec_operator) + (queue_dimension) +] @operator + +"#" @constructor + +[ + ";" + "::" + "," + "." + ":" +] @punctuation.delimiter + +(conditional_expression + [ + "?" + ":" + ] @keyword.conditional.ternary) + +[ + "[" + "]" + "(" + ")" + "{" + "}" + "'{" +] @punctuation.bracket + +[ + "or" + "and" +] @keyword.operator + +[ + "input" + "output" + "inout" + "signed" + "unsigned" + "assert" + "cover" + "assume" + "disable" + "automatic" + "static" + (dpi_function_import_property) + (dpi_task_import_property) +] @keyword.modifier + +[ + "include" + "import" + "directive_include" +] @keyword.import + +(comment) @comment @spell + +[ + "@" + (cycle_delay_range) + (delay_control) + (cycle_delay) + (attribute_instance) +] @attribute + +(attribute_instance + (attr_spec + (simple_identifier) @property)) + +[ + (integral_number) + (unbased_unsized_literal) + (fixed_point_number) + (unsigned_number) +] @number + +[ + (net_type) + (data_type) + (time_unit) +] @type.builtin + +; variable +(list_of_variable_decl_assignments + (variable_decl_assignment + name: (simple_identifier) @variable)) + +(hierarchical_identifier + (simple_identifier) @variable) + +(tf_port_item + (simple_identifier) @variable) + +port_name: (simple_identifier) @variable + +(port + (simple_identifier) @variable) + +(list_of_port_identifiers + (simple_identifier) @variable) + +(net_lvalue + (simple_identifier) @variable) + +(sequence_port_item + (simple_identifier) @variable) + +(property_port_item + (simple_identifier) @variable) + +(net_decl_assignment + (simple_identifier) @variable) + +(ERROR + (simple_identifier) @variable) + +; variable.member +(hierarchical_identifier + (simple_identifier) + (simple_identifier) @variable.member) + +(select + (simple_identifier) @variable.member) + +(named_port_connection + port_name: (simple_identifier) @variable.member) + +(ordered_port_connection + (expression + (primary + (hierarchical_identifier + (simple_identifier) @variable.member)))) + +(coverage_option + (simple_identifier) @variable.member) + +; variable.builtin +(method_call_body + arguments: (list_of_arguments + (expression) @variable.builtin + (#any-of? @variable.builtin "this"))) + +(implicit_class_handle) @variable.builtin + +; variable.parameter +(named_parameter_assignment + (simple_identifier) @variable.parameter) + +(parameter_declaration + (list_of_param_assignments + (param_assignment + (simple_identifier) @variable.parameter))) + +(local_parameter_declaration + (list_of_param_assignments + (param_assignment + (simple_identifier) @variable.parameter))) + +; function builtin +[ + (simulation_control_task) + (system_tf_identifier) + (severity_system_task) + (randomize_call) + (array_or_queue_method_name) + "new" +] @function.builtin + +; declaration +(task_body_declaration + . + name: (simple_identifier) @function + (simple_identifier)? @label) + +(function_body_declaration + . + name: (simple_identifier) @function + (simple_identifier)? @label) + +(function_body_declaration + . + (data_type_or_void) + name: (simple_identifier) @function + (simple_identifier)? @label) + +(clocking_declaration + . + name: (simple_identifier) @constructor + (simple_identifier)? @label) + +(sequence_declaration + . + name: (simple_identifier) @constructor + (simple_identifier)? @label) + +(property_declaration + . + name: (simple_identifier) @constructor + (simple_identifier)? @label) + +(class_declaration + . + name: (simple_identifier) @constructor + (simple_identifier)? @label) + +(interface_class_declaration + . + name: (simple_identifier) @constructor + (simple_identifier)? @label) + +(covergroup_declaration + . + name: (simple_identifier) @constructor + (simple_identifier)? @label) + +(package_declaration + . + name: (simple_identifier) @constructor + (simple_identifier)? @label) + +(checker_declaration + . + name: (simple_identifier) @constructor + (simple_identifier)? @label) + +(interface_declaration + . + [ + (simple_identifier) @constructor + (interface_nonansi_header + (simple_identifier) @constructor) + (interface_ansi_header + (simple_identifier) @constructor) + ] + (simple_identifier)? @label) + +(module_declaration + . + [ + (simple_identifier) @constructor + (module_nonansi_header + (simple_identifier) @constructor) + (module_ansi_header + (simple_identifier) @constructor) + ] + (simple_identifier)? @label) + +(program_declaration + . + [ + (simple_identifier) @constructor + (program_nonansi_header + (simple_identifier) @constructor) + (program_ansi_header + (simple_identifier) @constructor) + ] + (simple_identifier)? @label) + +; function.call +(method_call_body + name: (simple_identifier) @function.call) + +(tf_call + (hierarchical_identifier + (simple_identifier) @function.call)) + +; instance +(module_instantiation + instance_type: (simple_identifier) @constructor) + +(name_of_instance + instance_name: (simple_identifier) @module) + +(sequence_instance + (hierarchical_identifier + (simple_identifier) @module)) + +(udp_instantiation + (simple_identifier) @constructor) + +(ansi_port_declaration + (interface_port_header + interface_name: (simple_identifier) @variable + modport_name: (simple_identifier) @variable.member) + port_name: (simple_identifier) @variable) + +; bind +(bind_directive + (bind_target_scope + (simple_identifier) @constructor)) + +(bind_target_instance + (hierarchical_identifier + (simple_identifier) @module)) + +; assertion +(concurrent_assertion_item + (simple_identifier) @label) + +; converge +(cover_point + name: (simple_identifier) @label) + +(cover_cross + name: (simple_identifier) @module) + +(list_of_cross_items + (simple_identifier) @constructor) + +;package +(package_import_item + (simple_identifier) @constructor) + +; label +(seq_block + (simple_identifier) @label) + +(statement + block_name: (simple_identifier) @label) + +; dpi +(dpi_spec_string) @string + +c_name: (c_identifier) @function + +(dpi_import_export + name: (simple_identifier) @function) + +; type def +(class_type + (simple_identifier) @constructor) + +(class_type + (simple_identifier) + (simple_identifier) @type) + +(data_type + (class_scope + (class_type + (simple_identifier) @constructor))) + +(task_prototype + name: (simple_identifier) @function) + +(function_prototype + name: (simple_identifier) @function) + +(type_assignment + name: (simple_identifier) @type.definition) + +(interface_class_type + (simple_identifier) @type.definition) + +(package_scope + (simple_identifier) @constructor) + +(data_declaration + (type_declaration + type_name: (simple_identifier) @type.definition)) + +(net_declaration + (simple_identifier) @type) + +(constraint_declaration + (simple_identifier) @constructor) + +(method_call + (primary + (hierarchical_identifier + (simple_identifier) @constructor))) + +(string_literal + (quoted_string) @string) + +; include +(include_statement + (file_path_spec) @string.special.path) + +; directive +[ + "directive_define" + "directive_default_nettype" + "directive_resetall" + "directive_timescale" + "directive_undef" + "directive_undefineall" + "directive_ifdef" + "directive_elsif" + "directive_endif" + "directive_else" +] @keyword.directive.define + +(include_compiler_directive + (quoted_string) @string.special.path) + +(include_compiler_directive + (system_lib_string) @string) + +(default_nettype_compiler_directive + (default_nettype_value) @type.builtin) + +(text_macro_definition + (text_macro_name + (simple_identifier) @keyword.directive)) + +(text_macro_usage) @keyword.directive + +(ifdef_condition + (simple_identifier) @keyword.directive) + +(undefine_compiler_directive + (simple_identifier) @keyword.directive) diff --git a/config/neovim/store/nvim-treesitter/queries/systemverilog/injections.scm b/config/neovim/store/nvim-treesitter/queries/systemverilog/injections.scm new file mode 100644 index 00000000..b6d2d472 --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/systemverilog/injections.scm @@ -0,0 +1,5 @@ +((comment) @injection.content + (#set! injection.language "comment")) + +((macro_text) @injection.content + (#set! injection.language "systemverilog")) diff --git a/config/neovim/store/nvim-treesitter/queries/tcl/injections.scm b/config/neovim/store/nvim-treesitter/queries/tcl/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/tcl/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/nvim-treesitter/queries/templ/folds.scm b/config/neovim/store/nvim-treesitter/queries/templ/folds.scm new file mode 100644 index 00000000..adbbb103 --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/templ/folds.scm @@ -0,0 +1,15 @@ +[ + (component_block) + (css_declaration) + (script_declaration) + (element) + (style_element) + (script_element) + (component_switch_statement) + (field_declaration_list) + (block) + (interface_type) + (comment) + (const_declaration) + (var_declaration) +] @fold diff --git a/config/neovim/store/nvim-treesitter/queries/textproto/injections.scm b/config/neovim/store/nvim-treesitter/queries/textproto/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/textproto/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/nvim-treesitter/queries/usd/injections.scm b/config/neovim/store/nvim-treesitter/queries/usd/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/usd/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/nvim-treesitter/queries/vala/injections.scm b/config/neovim/store/nvim-treesitter/queries/vala/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/vala/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/nvim-treesitter/queries/vhdl/folds.scm b/config/neovim/store/nvim-treesitter/queries/vhdl/folds.scm new file mode 100644 index 00000000..9fc6deaf --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/vhdl/folds.scm @@ -0,0 +1,46 @@ +[ + (block_comment) + (architecture_definition) + (architecture_head) + (concurrent_block) + (configuration_declaration) + (component_instantiation_statement) + (generic_map_aspect) + (port_map_aspect) + (process_statement) + (process_head) + (sequential_block) + (block_configuration) + (block_statement) + (block_head) + (component_declaration) + (component_configuration) + (generic_clause) + (port_clause) + (entity_declaration) + (entity_head) + (entity_body) + (package_declaration) + (package_definition) + (function_specification) + (subprogram_declaration) + (subprogram_definition) + (subprogram_head) + (procedure_specification) + (sequential_block) + (loop_statement) + (if_statement_block) + (if_statement) + (elsif_statement) + (else_statement) + (case_statement) + (case_statement_alternative) + (for_generate_statement) + (if_generate_statement) + (if_generate) + (elsif_generate) + (else_generate) + (case_generate_statement) + (case_generate_alternative) + (type_declaration) +] @fold diff --git a/config/neovim/store/nvim-treesitter/queries/vhdl/highlights.scm b/config/neovim/store/nvim-treesitter/queries/vhdl/highlights.scm new file mode 100644 index 00000000..36cd5620 --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/vhdl/highlights.scm @@ -0,0 +1,427 @@ +(line_comment + (comment_content) @spell) @comment + +(block_comment + (comment_content) @spell) @comment.documentation + +(identifier) @variable + +[ + "access" + "after" + "alias" + "architecture" + "array" + ; "assume" + "attribute" + "block" + "body" + "component" + "configuration" + "context" + ; "cover" + "disconnect" + "entity" + ; "fairness" + "file" + "force" + "generate" + "generic" + "group" + "label" + "literal" + "map" + "new" + "package" + "parameter" + "port" + "property" + "range" + "reject" + "release" + ; "restrict" + "sequence" + "transport" + "unaffected" + "view" + ; "vmode" + ; "vpkg" + ; "vprop" + "vunit" +] @keyword + +[ + (ALL) + (OTHERS) + "<>" + (DEFAULT) + (OPEN) +] @constant.builtin + +[ + "is" + "begin" + "end" +] @keyword + +(parameter_specification + "in" @keyword) + +[ + "process" + "wait" + "on" + "until" +] @keyword.coroutine + +(end_process + "end" @keyword.coroutine) + +(timeout_clause + "for" @keyword.coroutine) + +[ + "function" + "procedure" +] @keyword.function + +(subprogram_end + "end" @keyword.function) + +[ + "to" + "downto" + "of" +] @keyword.operator + +[ + "library" + "use" +] @keyword.import + +[ + "subtype" + "type" + "record" + "units" + "constant" + "signal" + "variable" +] @keyword.type + +[ + "protected" + "private" + "pure" + "impure" + "inertial" + "postponed" + ; "strong" + "guarded" + "out" + "inout" + "linkage" + "buffer" + "register" + "bus" + "shared" +] @keyword.modifier + +(mode + "in" @keyword.modifier) + +(force_mode + "in" @keyword.modifier) + +[ + "while" + "loop" + "next" + "exit" +] @keyword.repeat + +(end_loop + "end" @keyword.repeat) + +(for_loop + "for" @keyword.repeat) + +(block_configuration + "for" @keyword) + +(configuration_specification + "for" @keyword) + +(component_configuration + "for" @keyword) + +(end_for + "for" @keyword) + +"return" @keyword.return + +[ + "assert" + "report" + "severity" +] @keyword.debug + +[ + "if" + "then" + "elsif" + "case" +] @keyword.conditional + +(end_if + "end" @keyword.conditional) + +(end_case + "end" @keyword.conditional) + +(when_element + "when" @keyword.conditional) + +(case_generate_alternative + "when" @keyword.conditional) + +(else_statement + "else" @keyword.conditional) + +(else_generate + "else" @keyword.conditional) + +[ + "with" + "select" +] @keyword.conditional.ternary + +(when_expression + "when" @keyword.conditional.ternary) + +(else_expression + "else" @keyword.conditional.ternary) + +(else_waveform + "else" @keyword.conditional.ternary) + +(else_expression_or_unaffected + "else" @keyword.conditional.ternary) + +"null" @constant.builtin + +(user_directive) @keyword.directive + +(protect_directive) @keyword.directive + +(warning_directive) @keyword.directive + +(error_directive) @keyword.directive + +(if_conditional_analysis + "if" @keyword.directive) + +(if_conditional_analysis + "then" @keyword.directive) + +(elsif_conditional_analysis + "elsif" @keyword.directive) + +(else_conditional_analysis + "else" @keyword.directive) + +(end_conditional_analysis + "end" @keyword.directive) + +(end_conditional_analysis + "if" @keyword.directive) + +(directive_body) @keyword.directive + +(directive_constant_builtin) @constant.macro + +(directive_error) @comment.error + +(directive_protect) @keyword.directive + +(directive_warning) @comment.warning + +[ + (condition_conversion) + (relational_operator) + (sign) + (adding_operator) + (exponentiate) + (variable_assignment) + (signal_assignment) + "*" + "/" + ":" + "=>" +] @operator + +[ + (unary_operator) + (logical_operator) + (shift_operator) + "mod" + "not" + "rem" +] @keyword.operator + +[ + "'" + "," + "." + ";" +] @punctuation.delimiter + +[ + "(" + ")" + "[" + "]" + "<<" + ">>" +] @punctuation.bracket + +"@" @punctuation.special + +[ + (decimal_integer) + (string_literal_std_logic) +] @number + +(decimal_float) @number.float + +(bit_string_length) @property + +(bit_string_base) @type.builtin + +(bit_string_value) @number + +(based_literal + (based_base) @type.builtin + (based_integer) @number) + +(based_literal + (based_base) @type.builtin + (based_float) @number.float) + +(string_literal) @string @spell + +(character_literal) @character + +(library_constant_std_logic) @constant.builtin + +(library_constant) @constant.builtin + +(library_function) @function.builtin + +(library_constant_boolean) @boolean + +(library_constant_character) @character + +(library_constant_debug) @keyword.debug + +(unit) @keyword.modifier + +(library_constant_unit) @keyword.modifier + +(label) @label + +(generic_map_aspect + "generic" @constructor + "map" @constructor) + +(port_map_aspect + "port" @constructor + "map" @constructor) + +(selection + (identifier) @variable.member) + +(_ + view: (_) @type) + +(_ + type: (_) @type) + +(_ + library: (_) @module) + +(_ + package: (_) @module) + +(_ + entity: (_) @module) + +(_ + component: (_) @module) + +(_ + configuration: (_) @property) + +(_ + architecture: (_) @property) + +(_ + function: (_) @function) + +(_ + procedure: (_) @function.method) + +(_ + attribute: (_) @attribute) + +(_ + constant: (_) @constant) + +(_ + generic: (_) @variable.parameter) + +(_ + view: (name + (_)) @type) + +(_ + type: (name + (_)) @type) + +(_ + entity: (name + (_)) @module) + +(_ + component: (name + (_)) @module) + +(_ + configuration: (name + (_)) @module) + +(library_type) @type.builtin + +[ + (attribute_function) + (attribute_impure_function) + (attribute_mode_view) + (attribute_pure_function) + (attribute_range) + (attribute_signal) + (attribute_subtype) + (attribute_type) + (attribute_value) + (library_attribute) +] @attribute.builtin + +(library_namespace) @module.builtin + +(subtype_declaration + (identifier) @type.definition) + +(type_declaration + (identifier) @type.definition) + +(mode_view_declaration + (identifier) @type.definition) diff --git a/config/neovim/store/nvim-treesitter/queries/vhdl/injections.scm b/config/neovim/store/nvim-treesitter/queries/vhdl/injections.scm new file mode 100644 index 00000000..5cbc06cb --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/vhdl/injections.scm @@ -0,0 +1,7 @@ +(line_comment + (comment_content) @injection.content + (#set! injection.language "comment")) + +(block_comment + (comment_content) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/nvim-treesitter/queries/vhs/injections.scm b/config/neovim/store/nvim-treesitter/queries/vhs/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/vhs/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/nvim-treesitter/queries/vrl/folds.scm b/config/neovim/store/nvim-treesitter/queries/vrl/folds.scm new file mode 100644 index 00000000..6c6d587d --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/vrl/folds.scm @@ -0,0 +1,6 @@ +[ + (block) + (object) + (array) + (arguments) +] @fold diff --git a/config/neovim/store/nvim-treesitter/queries/vrl/highlights.scm b/config/neovim/store/nvim-treesitter/queries/vrl/highlights.scm new file mode 100644 index 00000000..f74d6dd5 --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/vrl/highlights.scm @@ -0,0 +1,108 @@ +(comment) @comment @spell + +(null) @constant.builtin + +(timestamp) @constant + +(closure_variables + (ident) @variable.parameter) + +(integer) @number + +(float) @number.float + +[ + (string) + (raw_string) +] @string + +[ + (raw_string_escape_sequence) + (escape_sequence) + (regex_escape_sequence) +] @string.escape + +(string_template + "{{" @punctuation.special + (_) + "}}" @punctuation.special) + +(regex) @string.regexp + +(boolean) @boolean + +(ident) @variable + +(noop) @variable.builtin + +(function_call + (ident) @function.call) + +; VRL queries +(query + [ + (event) + (metadata) + ] @variable.builtin) + +(query + (path + [ + (field) @variable + (string) @string + (index) @number + "." @punctuation.delimiter + ])) + +"return" @keyword.return + +"abort" @keyword.exception + +[ + "if" + "else" +] @keyword.conditional + +[ + "=" + "==" + "!=" + "|=" + ">" + ">=" + "<" + "<=" + "+" + "-" + "*" + "/" + "&&" + "||" + "??" + "|" + "!" +] @operator + +[ + "->" + ":" + ";" + "," +] @punctuation.delimiter + +[ + "(" + ")" + "[" + "]" + "{" + "}" +] @punctuation.bracket + +(closure_variables + "|" @punctuation.bracket) + +(function_call + (ident) @keyword.exception + "!" + (#any-of? @keyword.exception "assert" "assert_eq")) diff --git a/config/neovim/store/nvim-treesitter/queries/vrl/indents.scm b/config/neovim/store/nvim-treesitter/queries/vrl/indents.scm new file mode 100644 index 00000000..1fc1249e --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/vrl/indents.scm @@ -0,0 +1,24 @@ +[ + (block) + (object) + (array) + (arguments) +] @indent.begin + +(block + "}" @indent.end) + +(object + "}" @indent.end) + +(array + "]" @indent.end) + +(arguments + ")" @indent.end) + +[ + ")" + "]" + "}" +] @indent.branch diff --git a/config/neovim/store/nvim-treesitter/queries/vrl/injections.scm b/config/neovim/store/nvim-treesitter/queries/vrl/injections.scm new file mode 100644 index 00000000..5aaf9bcd --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/vrl/injections.scm @@ -0,0 +1,6 @@ +((comment) @injection.content + (#set! injection.language "comment")) + +((regex) @injection.content + (#offset! @injection.content 0 2 0 -1) + (#set! injection.language "regex")) diff --git a/config/neovim/store/nvim-treesitter/queries/vrl/locals.scm b/config/neovim/store/nvim-treesitter/queries/vrl/locals.scm new file mode 100644 index 00000000..786da98c --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/vrl/locals.scm @@ -0,0 +1,16 @@ +(closure_variables + (ident) @local.definition.parameter) + +[ + (ident) + (metadata) +] @local.reference + +(query + (event) @local.reference) + +[ + (block) + (closure) + (if_statement) +] @local.scope diff --git a/config/neovim/store/nvim-treesitter/queries/wgsl/injections.scm b/config/neovim/store/nvim-treesitter/queries/wgsl/injections.scm new file mode 100644 index 00000000..3cd6aac8 --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/wgsl/injections.scm @@ -0,0 +1,5 @@ +([ + (line_comment) + (block_comment) +] @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/nvim-treesitter/queries/wing/injections.scm b/config/neovim/store/nvim-treesitter/queries/wing/injections.scm new file mode 100644 index 00000000..2f0e58eb --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/wing/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/config/neovim/store/nvim-treesitter/queries/wit/folds.scm b/config/neovim/store/nvim-treesitter/queries/wit/folds.scm new file mode 100644 index 00000000..7f84ddd2 --- /dev/null +++ b/config/neovim/store/nvim-treesitter/queries/wit/folds.scm @@ -0,0 +1,12 @@ +[ + (world_items) + (world_body) + (interface_items) + (interface_body) +] @fold + +(world_items + [ + (use_item) + (import_item) + ])+ @fold diff --git a/config/neovim/store/nvim-treesitter/tests/indent/angular/defer.html b/config/neovim/store/nvim-treesitter/tests/indent/angular/defer.html new file mode 100644 index 00000000..a8531398 --- /dev/null +++ b/config/neovim/store/nvim-treesitter/tests/indent/angular/defer.html @@ -0,0 +1,9 @@ +@defer (on viewport) { + +} @placeholder (minimum 100ms) { + +} @loading (after 100s; minimum 200ms){ + +} @error { + +} diff --git a/config/neovim/store/nvim-treesitter/tests/indent/angular/for.html b/config/neovim/store/nvim-treesitter/tests/indent/angular/for.html new file mode 100644 index 00000000..591472e2 --- /dev/null +++ b/config/neovim/store/nvim-treesitter/tests/indent/angular/for.html @@ -0,0 +1,5 @@ +@for (item of items; track item.id) { +
  • {{ item.name }}
  • +} @empty { +

    No items

    +} diff --git a/config/neovim/store/nvim-treesitter/tests/indent/angular/if-else.html b/config/neovim/store/nvim-treesitter/tests/indent/angular/if-else.html new file mode 100644 index 00000000..7854e1bc --- /dev/null +++ b/config/neovim/store/nvim-treesitter/tests/indent/angular/if-else.html @@ -0,0 +1,15 @@ +@if (someCondition) { +

    someCondition is true

    +} @else { +

    someCondition is false

    +} + +
    + @if (someOther) { + True + + @if (nestedCondition) { + Nested + } + } +
    diff --git a/config/neovim/store/nvim-treesitter/tests/indent/angular/switch-case.html b/config/neovim/store/nvim-treesitter/tests/indent/angular/switch-case.html new file mode 100644 index 00000000..17df9660 --- /dev/null +++ b/config/neovim/store/nvim-treesitter/tests/indent/angular/switch-case.html @@ -0,0 +1,13 @@ +
    + @switch (obj.property) { + @case (1) { +

    Case 1

    + } + @case (2) { +

    Case 2

    + } + @default { +

    Default

    + } + } +
    diff --git a/config/neovim/store/nvim-treesitter/tests/indent/angular_spec.lua b/config/neovim/store/nvim-treesitter/tests/indent/angular_spec.lua new file mode 100644 index 00000000..2090420c --- /dev/null +++ b/config/neovim/store/nvim-treesitter/tests/indent/angular_spec.lua @@ -0,0 +1,70 @@ +local Runner = require("tests.indent.common").Runner +local runner = Runner:new(it, "tests/indent/angular", { + tabstop = 2, + shiftwidth = 2, + expandtab = true, + filetype = "htmlangular", +}) + +describe("indent HTML Angular:", function() + describe("whole file:", function() + runner:whole_file "." + end) + + describe("new line:", function() + for _, info in ipairs { + { 1, 2 }, + { 2, 2 }, + { 3, 2 }, + { 4, 2 }, + { 6, 0 }, + { 7, 2 }, + { 8, 4 }, + { 10, 4 }, + { 11, 6 }, + { 12, 6 }, + { 13, 4 }, + { 14, 2 }, + } do + runner:new_line("if-else.html", { on_line = info[1], text = "//", indent = info[2] }) + end + + for _, info in ipairs { + { 1, 2 }, + { 2, 4 }, + { 3, 6 }, + { 4, 6 }, + { 6, 6 }, + { 7, 6 }, + { 9, 6 }, + { 10, 6 }, + { 12, 2 }, + } do + runner:new_line("switch-case.html", { on_line = info[1], text = "//", indent = info[2] }) + end + + for _, info in ipairs { + { 1, 2 }, + { 2, 2 }, + { 3, 2 }, + { 4, 2 }, + { 5, 0 }, + } do + runner:new_line("for.html", { on_line = info[1], text = "//", indent = info[2] }) + end + + for _, info in ipairs { + { 1, 2 }, + { 2, 2 }, + { 3, 2 }, + { 4, 2 }, + { 5, 2 }, + { 6, 2 }, + { 7, 2 }, + { 8, 2 }, + { 9, 0 }, + } do + runner:new_line("defer.html", { on_line = info[1], text = "//", indent = info[2] }) + end + end) +end) diff --git a/config/neovim/store/nvim-treesitter/tests/indent/nix/conds.nix b/config/neovim/store/nvim-treesitter/tests/indent/nix/conds.nix new file mode 100644 index 00000000..4307fc84 --- /dev/null +++ b/config/neovim/store/nvim-treesitter/tests/indent/nix/conds.nix @@ -0,0 +1,134 @@ +{ lib }: +with lib.lists; +with lib.types; +with lib.attrsets; +with lib.strings; { + doubleFromSystem = { cpu, kernel, abi, ... }: + if abi == abis.cygnus then + "${cpu.name}-cygwin" + else if kernel.families ? darwin then + "${cpu.name}-darwin" + else + "${cpu.name}-${kernelName kernel}"; + + tripleFromSystem = { cpu, vendor, kernel, abi, ... }@sys: + assert isSystem sys; + let + optExecFormat = lib.optionalString (kernel.name == "netbsd" + && gnuNetBSDDefaultExecFormat cpu != kernel.execFormat) + kernel.execFormat.name; + optAbi = lib.optionalString (abi != abis.unknown) "-${abi.name}"; + in "${cpu.name}-${vendor.name}-${ + kernelName kernel + }${optExecFormat}${optAbi}"; + + mkSystemFromSkeleton = { cpu, + # Optional, but fallback too complex for here. + # Inferred below instead. + vendor ? assert false; null, kernel, + # Also inferred below + abi ? assert false; null, }@args: + let + getCpu = name: cpuTypes.${name} or (throw "Unknown CPU type: ${name}"); + getVendor = name: vendors.${name} or (throw "Unknown vendor: ${name}"); + getKernel = name: kernels.${name} or (throw "Unknown kernel: ${name}"); + getAbi = name: abis.${name} or (throw "Unknown ABI: ${name}"); + + parsed = { + cpu = getCpu args.cpu; + vendor = if args ? vendor then + getVendor args.vendor + else if isDarwin parsed then + vendors.apple + else if isWindows parsed then + vendors.pc + else + vendors.unknown; + kernel = if hasPrefix "darwin" args.kernel then + getKernel "darwin" + else if hasPrefix "netbsd" args.kernel then + getKernel "netbsd" + else + getKernel args.kernel; + abi = if args ? abi then + getAbi args.abi + else if isLinux parsed || isWindows parsed then + if isAarch32 parsed then + if lib.versionAtLeast (parsed.cpu.version or "0") "6" then + abis.gnueabihf + else + abis.gnueabi + else if isPower64 parsed && isBigEndian parsed then + abis.gnuabielfv2 + else + abis.gnu + else + abis.unknown; + }; + in mkSystem parsed; + + mkSkeletonFromList = l: + { + "1" = if elemAt l 0 == "avr" then { + cpu = elemAt l 0; + kernel = "none"; + abi = "unknown"; + } else + throw "Target specification with 1 components is ambiguous"; + "2" = # We only do 2-part hacks for things Nix already supports + if elemAt l 1 == "cygwin" then { + cpu = elemAt l 0; + kernel = "windows"; + abi = "cygnus"; + } else if elemAt l 1 == "windows" then { + cpu = elemAt l 0; + kernel = "windows"; + abi = "msvc"; + } else if (elemAt l 1) == "elf" then { + cpu = elemAt l 0; + vendor = "unknown"; + kernel = "none"; + abi = elemAt l 1; + } else { + cpu = elemAt l 0; + kernel = elemAt l 1; + }; + "3" = + # cpu-kernel-environment + if elemAt l 1 == "linux" + || elem (elemAt l 2) [ "eabi" "eabihf" "elf" "gnu" ] then { + cpu = elemAt l 0; + kernel = elemAt l 1; + abi = elemAt l 2; + vendor = "unknown"; + } else if elemAt l 1 == "apple" + || elem (elemAt l 2) [ "wasi" "redox" "mmixware" "ghcjs" "mingw32" ] + || hasPrefix "freebsd" (elemAt l 2) || hasPrefix "netbsd" (elemAt l 2) + || hasPrefix "genode" (elemAt l 2) then { + cpu = elemAt l 0; + vendor = elemAt l 1; + kernel = if elemAt l 2 == "mingw32" then + "windows" # autotools breaks on -gnu for window + else + elemAt l 2; + } else + throw "Target specification with 3 components is ambiguous"; + "4" = { + cpu = elemAt l 0; + vendor = elemAt l 1; + kernel = elemAt l 2; + abi = elemAt l 3; + }; + }.${toString (length l)} or (throw + "system string has invalid number of hyphen-separated components"); + + # GNU build systems assume that older NetBSD architectures are using a.out. + gnuNetBSDDefaultExecFormat = cpu: + if (cpu.family == "arm" && cpu.bits == 32) + || (cpu.family == "sparc" && cpu.bits == 32) + || (cpu.family == "m68k" && cpu.bits == 32) + || (cpu.family == "x86" && cpu.bits == 32) then + execFormats.aout + else + execFormats.elf; +} diff --git a/config/neovim/store/nvim-treesitter/tests/indent/nix/general.nix b/config/neovim/store/nvim-treesitter/tests/indent/nix/general.nix new file mode 100644 index 00000000..f79214ba --- /dev/null +++ b/config/neovim/store/nvim-treesitter/tests/indent/nix/general.nix @@ -0,0 +1,130 @@ +{ lib }: +with lib.lists; +with lib.types; +with lib.attrsets; +with lib.strings; +with (import ./inspect.nix { inherit lib; }).predicates; + +let + inherit (lib.options) mergeOneOption; + + setTypes = type: + mapAttrs (name: value: + assert type.check value; + setType type.name ({ inherit name; } // value)); + +in rec { + + ################################################################################ + + types.openSignificantByte = mkOptionType { + name = "significant-byte"; + description = "Endianness"; + merge = mergeOneOption; + }; + + types.significantByte = enum (attrValues significantBytes); + + significantBytes = setTypes types.openSignificantByte { + bigEndian = { }; + littleEndian = { }; + }; + + ################################################################################ + + # Reasonable power of 2 + types.bitWidth = enum [ 8 16 32 64 128 ]; + + ################################################################################ + + types.openCpuType = mkOptionType { + name = "cpu-type"; + description = "instruction set architecture name and information"; + merge = mergeOneOption; + check = x: + types.bitWidth.check x.bits && (if 8 < x.bits then + types.significantByte.check x.significantByte + else + !(x ? significantByte)); + }; + + types.cpuType = enum (attrValues cpuTypes); + + cpuTypes = with significantBytes; + setTypes types.openCpuType { + arm = { + bits = 32; + significantByte = littleEndian; + family = "arm"; + }; + armv5tel = { + bits = 32; + significantByte = littleEndian; + family = "arm"; + version = "5"; + arch = "armv5t"; + }; + }; + + isCompatible = a: b: + with cpuTypes; + lib.any lib.id [ + # x86 + (b == i386 && isCompatible a i486) + (b == i486 && isCompatible a i586) + (b == i586 && isCompatible a i686) + + # ARMv6 + (b == armv6l && isCompatible a armv6m) + (b == armv6m && isCompatible a armv7l) + ]; + + ################################################################################ + + types.openVendor = mkOptionType { + name = "vendor"; + description = "vendor for the platform"; + merge = mergeOneOption; + }; + + abis = setTypes types.openAbi { + cygnus = { }; + msvc = { }; + + # Other architectures should use ELF in embedded situations. + elf = { }; + + androideabi = { }; + android = { + assertions = [{ + assertion = platform: !platform.isAarch32; + message = '' + The "android" ABI is not for 32-bit ARM. Use "androideabi" instead. + ''; + }]; + }; + }; + + ################################################################################ + + types.parsedPlatform = mkOptionType { + name = "system"; + description = + "fully parsed representation of llvm- or nix-style platform tuple"; + merge = mergeOneOption; + check = { cpu, vendor, kernel, abi, }: + types.cpuType.check cpu && types.vendor.check vendor + && types.kernel.check kernel && types.abi.check abi; + }; + + isSystem = isType "system"; + + mkSystem = components: + assert types.parsedPlatform.check components; + setType "system" components; + + mkSystemFromString = s: + mkSystemFromSkeleton (mkSkeletonFromList (lib.splitString "-" s)); + + ################################################################################ +} diff --git a/config/neovim/store/nvim-treesitter/tests/indent/nix_spec.lua b/config/neovim/store/nvim-treesitter/tests/indent/nix_spec.lua new file mode 100644 index 00000000..709a0a10 --- /dev/null +++ b/config/neovim/store/nvim-treesitter/tests/indent/nix_spec.lua @@ -0,0 +1,40 @@ +local Runner = require("tests.indent.common").Runner + +local runner = Runner:new(it, "tests/indent/nix", { + tabstop = 2, + shiftwidth = 2, + softtabstop = 2, + expandtab = true, +}) + +describe("indent Nix:", function() + describe("whole file:", function() + runner:whole_file(".", { + expected_failures = {}, + }) + end) + + describe("new line:", function() + for _, info in ipairs { + { 14, 2 }, + { 16, 2 }, + { 48, 4 }, + { 112, 6 }, + } do + runner:new_line("general.nix", { on_line = info[1], text = "x = 1;", indent = info[2] }) + end + + for _, info in ipairs { + { 115, 6 }, + { 113, 10 }, + { 6, 4 }, + { 12, 2 }, + { 16, 6 }, + { 35, 6 }, + { 23, 2 }, + { 21, 6 }, + } do + runner:new_line("conds.nix", { on_line = info[1], text = "x = 1;", indent = info[2] }) + end + end) +end) diff --git a/config/neovim/store/nvim-treesitter/tests/indent/php/issue-6888.php b/config/neovim/store/nvim-treesitter/tests/indent/php/issue-6888.php new file mode 100644 index 00000000..a0bcb371 --- /dev/null +++ b/config/neovim/store/nvim-treesitter/tests/indent/php/issue-6888.php @@ -0,0 +1,12 @@ + diff --git a/config/neovim/store/nvim-treesitter/tests/indent/python/parenthesized_conditions.py b/config/neovim/store/nvim-treesitter/tests/indent/python/parenthesized_conditions.py new file mode 100644 index 00000000..d30f2b1a --- /dev/null +++ b/config/neovim/store/nvim-treesitter/tests/indent/python/parenthesized_conditions.py @@ -0,0 +1,35 @@ +if ( + True + or 1 + or False +): + pass + +if ( + True + or 1 + or False): + pass + +if (True + or 1 + or False): + pass + +while ( + False + or 1 + or False +): + pass + +while ( + False + or 1 + or False): + pass + +while (False + or 1 + or False): + pass diff --git a/config/neovim/store/nvim-treesitter/tests/indent/r/incomplete_pipe.R b/config/neovim/store/nvim-treesitter/tests/indent/r/incomplete_pipe.R new file mode 100644 index 00000000..199cc83f --- /dev/null +++ b/config/neovim/store/nvim-treesitter/tests/indent/r/incomplete_pipe.R @@ -0,0 +1,2 @@ +mtcars %>% + head() %>% diff --git a/config/neovim/store/nvim-treesitter/tests/indent/rescript/basic.res b/config/neovim/store/nvim-treesitter/tests/indent/rescript/basic.res new file mode 100644 index 00000000..c5138a7b --- /dev/null +++ b/config/neovim/store/nvim-treesitter/tests/indent/rescript/basic.res @@ -0,0 +1,23 @@ +@genType +type person = { + name: string, + age: int, +} + +@genType +type renderMe<'a> = React.component<{ + "randomString": string, + "poly": 'a, +}> + +@genType.import("./hookExample") @react.component +external make: ( + ~person: person, + ~children: React.element, + ~renderMe: renderMe<'a>, +) => React.element = "makeRenamed" + +@genType.import("./hookExample") +external foo: (~person: person) => string = "foo" + +let hi = 'a' diff --git a/config/neovim/store/nvim-treesitter/tests/indent/rescript/complex.res b/config/neovim/store/nvim-treesitter/tests/indent/rescript/complex.res new file mode 100644 index 00000000..1f21c336 --- /dev/null +++ b/config/neovim/store/nvim-treesitter/tests/indent/rescript/complex.res @@ -0,0 +1,151 @@ +let hit = ({hit, children}: DocSearch.hitComponent) => { + let toTitle = str => + str->Js.String2.charAt(0)->Js.String2.toUpperCase ++ Js.String2.sliceToEnd(str, ~from=1) + + let description = switch hit.url + ->Js.String2.split("/") + ->Js.Array2.sliceFrom(1) + ->Belt.List.fromArray { + | list{"blog" as r | "community" as r, ..._} => r->toTitle + | list{"docs", doc, version, ...rest} => + let path = rest->Belt.List.toArray + + let info = + path + ->Js.Array2.slice(~start=0, ~end_=Js.Array2.length(path) - 1) + ->Js.Array2.map(path => + switch path { + | "api" => "API" + | other => toTitle(other) + } + ) + + [doc->toTitle, version->toTitle]->Js.Array2.concat(info)->Js.Array2.joinWith(" / ") + | _ => "" + } + + + + {description->React.string} + + children + +} + +let transformItems = (items: DocSearch.transformItems) => { + items->Belt.Array.keepMap(item => { + let url = try Webapi.URL.make(item.url)->Some catch { + | Js.Exn.Error(obj) => + Js.Console.error2(`Failed to parse URL ${item.url}`, obj) + None + } + switch url { + | Some({pathname, hash}) => {...item, url: pathname ++ hash}->Some + | None => None + } + }) +} + +@react.component +let make = () => { + let (state, setState) = React.useState(_ => Inactive) + let router = Next.Router.useRouter() + + let version = switch Url.parse(router.route).version { + | Version(v) => v + | _ => "latest" + } + + let handleCloseModal = () => { + let () = switch ReactDOM.querySelector(".DocSearch-Modal") { + | Some(modal) => + switch ReactDOM.querySelector("body") { + | Some(body) => + open Webapi + body->Element.classList->ClassList.remove("DocSearch--active") + modal->Element.addEventListener("transitionend", () => { + setState(_ => Inactive) + }) + | None => setState(_ => Inactive) + } + | None => () + } + } + + React.useEffect(() => { + let isEditableTag = el => + switch el->tagName { + | "TEXTAREA" | "SELECT" | "INPUT" => true + | _ => false + } + + let focusSearch = e => { + switch activeElement { + | Some(el) if el->isEditableTag || el->isContentEditable => () + | _ => + setState(_ => Active) + e->keyboardEventPreventDefault + } + } + + let handleGlobalKeyDown = e => { + switch e.key { + | "/" => focusSearch(e) + | "k" if e.ctrlKey || e.metaKey => focusSearch(e) + | "Escape" => handleCloseModal() + | _ => () + } + } + addKeyboardEventListener("keydown", handleGlobalKeyDown) + Some(() => removeKeyboardEventListener("keydown", handleGlobalKeyDown)) + }, [setState]) + + let onClick = _ => { + setState(_ => Active) + } + + let onClose = React.useCallback(() => { + handleCloseModal() + }, [setState]) + + <> + + {switch state { + | Active => + switch ReactDOM.querySelector("body") { + | Some(element) => + ReactDOM.createPortal( + scrollY} + transformItems={transformItems} + hitComponent=hit + /> + element, + ) + | None => React.null + } + | Inactive => React.null + }} + +} + +let comparable = (type key, ~cmp) => { + module N = MakeComparable({ + type t = key + let cmp = cmp + }) + module(N: Comparable with type t = key) +} + + + + {description->React.string} + children + diff --git a/config/neovim/store/nvim-treesitter/tests/indent/rescript/conditional.res b/config/neovim/store/nvim-treesitter/tests/indent/rescript/conditional.res new file mode 100644 index 00000000..db8328f2 --- /dev/null +++ b/config/neovim/store/nvim-treesitter/tests/indent/rescript/conditional.res @@ -0,0 +1,104 @@ +include UseClient +include UseQuery +include UseMutation +include UseSubscription + +type hookResponse<'ret> = Types.Hooks.hookResponse<'ret> = { + operation: Types.operation, + fetching: bool, + data: option<'ret>, + error: option, + response: Types.Hooks.response<'ret>, + extensions: option, + stale: bool, +} + +Js.Array2.slice(~start=0, ~end_=Js.Array2.length(moduleRoute) - 1) + +let pathModule = Path.join([dir, version, `${moduleName}.json`]) + +let {Api.LocMsg.row: row, column, shortMsg} = locMsg + +let message = `${"error"->red}: failed to compile examples from ${kind} ${test.id->cyan}\n${errorMessage}` + +let version = (evt->ReactEvent.Form.target)["value"] + +let rehypePlugins = + [Rehype.WithOptions([Plugin(Rehype.slug), SlugOption({prefix: slugPrefix ++ "-"})])]->Some + +module Item = { + type t = { + name: string, + sellIn: int, + quality: int, + } + + let make = (~name, ~sellIn, ~quality): t => { + name, + sellIn, + quality, + } +} + +let updateQuality = (items: array) => { + items->Js.Array2.map(item => { + let newItem = ref(item) + + call( + asdf, + asdf + ) + + if ( + newItem.contents.name != "Aged Brie" && 5 > 2 && + newItem.contents.name != "Backstage passes to a TAFKAL80ETC concert" + ) { + if newItem.contents.quality > 0 { + if newItem.contents.name != "Sulfuras, Hand of Ragnaros" { + newItem := {...newItem.contents, quality: newItem.contents.quality - 1} + } + } + } else if newItem.contents.quality < 50 { + newItem := {...newItem.contents, quality: newItem.contents.quality + 1} + + if newItem.contents.name == "Backstage passes to a TAFKAL80ETC concert" { + if newItem.contents.sellIn < 11 { + if newItem.contents.quality < 50 { + newItem := {...newItem.contents, quality: newItem.contents.quality + 1} + } + } + + if newItem.contents.sellIn < 6 { + if newItem.contents.quality < 50 { + newItem := {...newItem.contents, quality: newItem.contents.quality + 1} + } + } + } + } + + if newItem.contents.name != "Sulfuras, Hand of Ragnaros" { + newItem := {...newItem.contents, sellIn: newItem.contents.sellIn - 1} + } + + if newItem.contents.sellIn < 0 { + if newItem.contents.name != "Aged Brie" { + if newItem.contents.name != "Backstage passes to a TAFKAL80ETC concert" { + if newItem.contents.quality > 0 { + if newItem.contents.name != "Sulfuras, Hand of Ragnaros" { + newItem := {...newItem.contents, quality: newItem.contents.quality - 1} + } + } + } else { + newItem := { + ...newItem.contents, + quality: newItem.contents.quality - newItem.contents.quality, + } + } + } else if newItem.contents.quality < 50 { + newItem := {...newItem.contents, quality: newItem.contents.quality + 1} + } + } + + newItem.contents + }) +} diff --git a/config/neovim/store/nvim-treesitter/tests/indent/rescript_spec.lua b/config/neovim/store/nvim-treesitter/tests/indent/rescript_spec.lua new file mode 100644 index 00000000..5b1f06ab --- /dev/null +++ b/config/neovim/store/nvim-treesitter/tests/indent/rescript_spec.lua @@ -0,0 +1,33 @@ +local Runner = require("tests.indent.common").Runner + +local run = Runner:new(it, "tests/indent/rescript", { + tabstop = 2, + shiftwidth = 2, + softtabstop = 0, + expandtab = true, +}) + +describe("indent ReScript:", function() + describe("whole file:", function() + run:whole_file(".", {}) + end) + + describe("new line:", function() + run:new_line("basic.res", { on_line = 5, text = "x", indent = 0 }) + run:new_line("basic.res", { on_line = 9, text = '"another": here,', indent = 2 }) + run:new_line("basic.res", { on_line = 10, text = "}", indent = 0 }) + run:new_line("basic.res", { on_line = 14, text = "~test: test,", indent = 2 }) + run:new_line("basic.res", { on_line = 18, text = "x", indent = 0 }) + + run:new_line("complex.res", { on_line = 3, text = "x", indent = 2 }) + run:new_line("complex.res", { on_line = 5, text = "x", indent = 4 }) + run:new_line("complex.res", { on_line = 17, text = "|", indent = 10 }) + run:new_line("complex.res", { on_line = 25, text = "x", indent = 2 }) + run:new_line("complex.res", { on_line = 60, text = "x", indent = 6 }) + run:new_line("complex.res", { on_line = 120, text = "x", indent = 14 }) + run:new_line("complex.res", { on_line = 136, text = "x", indent = 2 }) + + run:new_line("conditional.res", { on_line = 6, text = "test: bool,", indent = 2 }) + run:new_line("conditional.res", { on_line = 95, text = "x", indent = 10 }) + end) +end) diff --git a/config/neovim/store/nvim-treesitter/tests/query/injections/query/test-query-injections.scm b/config/neovim/store/nvim-treesitter/tests/query/injections/query/test-query-injections.scm new file mode 100644 index 00000000..f382eddd --- /dev/null +++ b/config/neovim/store/nvim-treesitter/tests/query/injections/query/test-query-injections.scm @@ -0,0 +1,27 @@ +; vim: ft=query +; format-ignore +(((symbol) @constant + (#not-lua-match? @constant "^_*[A-Z][A-Z0-9_]*$")) +; ^ @luap +) + +; format-ignore +(((tag + (attributes + (attribute + (attribute_name) @keyword))) + (#match? @keyword "^(:|v-bind|v-|\\@)")) +; ^ @regex +) + +((comment) @injection.language + . + [ + (string_expression + (string_fragment) @injection.content) + (indented_string_expression + (string_fragment) @injection.content) + ] + (#gsub! @injection.language "#%s*([%w%p]+)%s*" "%1") + ; ^ @luap + (#set! injection.combined)) diff --git a/config/neovim/store/treesitter-parsers/parser/editorconfig.so b/config/neovim/store/treesitter-parsers/parser/editorconfig.so new file mode 100755 index 0000000000000000000000000000000000000000..e288cd9f448466f7e508c755a0b2e1ca8b3f6f55 GIT binary patch literal 29088 zcmeHwdwf*Yz3-YlFa*dB3JQWcC~9~O3C~18GkL&(K`9T*6>%7n2?-{XI5Xj4tE5f_ zOfj0{)vDJ%=(WAIdaU$uB~YUAftS6xJ*0XlS;qhiuW^0T-~0cL2pEm&{eJJFgiqPIrtOpk1Vy z>5*x|h*vhb^m`(sRbmt;-5Ki+zk1_=dyeiMwQ73qTldcS-Dc1I58Zb<0oI7ea&Rsl zhD-T%4}(+s!{M_>z(c^#M$UU@;sOWdgO2Zj2=CK4*`;FvE(jO1RGje*h!XCeq3~q+ zY59J`{;#!sp_ad&4f*}s8k<7?NHh?R`u)Pca{X$5O)wnXRv(E5!|PXjPUG zf{Hgh$6viG;IFL@1sdva35sYq81zT#qcGqP*3?Iv!qrWo+WKuHGW@|^kcGBCQXL3| zpjI6Y2BITd8mdqej6}mtyFW(~l+@=D4~FYMJ$u7CmDFme-x`V5RL`2_i8Of@2}B!{ zSKF$q{Sk^45niqE6;&(C%Kh^^^E?a1+)(|lxe*j(aPGoD&CZ&J`6b)t-&7Kqx4rP@ zK+TT&aHyev$Aa+U=AAWjwvmZB^E~rQ<}92y7m+I*+S_aE8|otUH`i=yToAe`GVhi} z4S}t@=GWg`a&t}L;>CeEaAi)>e9wGO;T))vy4d*tADS^%fG#%8UruY zAGo zTNjn$isH4MoL*(oDf>obsIuri`!Ot6d>zZiuc072mx7Xk=tP*lO`9H_=(8?rCEe$A z2zi-q$HIRhnHi^j?ft%I-oMKC%s{5k^@8u$r=t^KV6`@oljy6pE<)X6ee%C`*|)$J zEweWGV#{*r(%1e@bgXaxvI`M8u`-cJoT$O+h3po@U7Mksrf=^AQ~Tq+4mt8}sOp&W z)`dcN*L&MP+OW>o{-672`P$!1tShMX#{ROx+LsLtuXX78mDLq-QRO<3%vWr1t=0A$ z+{xHr*lNo_)lmM%-V4MAC+}PY<432!L+he8oXJyI%{h61<6W02u(rKCE3q!W)B6tX%a;2f)MBWhmkoi}5H z%Uh07f^%Tvsr1~d|I^HVPvVcQ}QP2i;-oY#tv*K#vR?v2xF_F7r4%!=D!QM$C=wVzCv z+sJYotoSopj@HrkT}ip39$&|}i?HI?_uV=)!CUgK)wUT~_r-cLe6fM4E$_w#M_X;R zR2qYB#Z&ju+P7VswaDyZM6?}M>{fi0=FcVmc?N&A6`!g3D~SK`V7k87YP*-RFo<$< zX~AGsJdXrx5pkpg z_AQ!C%PM=t5IgbfHJ`e1`*H{WJum9LweJeeUq<}1Qhe{vsWqS#)K;`_q8e}Kg6XW! zMOJ+9FDjE)lJYMQN%6f$E=cOHlllh#Fl9*DzgqGiP1BDJF0$g^()O<+``gp_-mXiM z`m#k*1Burv1=%*eM@va(|Cx3lQ0+eeLif9z*iR$ktap`G{AJBY7b)!T4CVhs^J$p0 z_Za+Zt@u5fznu8~6#wva0MdU|iZzl|Dvn&rxGMcBjmvzkv*KmiULo1DQuZW&r4_$e z^NWc8r%#gk@jf+G8?MkL_5qmapQzrKTk&@hqjH!>dWRf(-RQRU{k}<-^byia^^c^F za(Yzj&nNwzDSc@l{I6^N0^)z!!Kd5bsF^eev9CbHVPDtxRa#^biJX_x_a2=FMAgS? z>EHS3`sCj=R@*)~grI+QX+u=6>|gyyvOWx=@$N@mi46vJ`ugH6jrq`LKM-|)N z%zCofw@22^+EDu%tk4lzK7uD$}TJH+d+mq6Z4HiWsvB6@Lf|j6#jJ;V$ zCQ)RKj+{-AaveFBB8zmyOOY8mLJioSsw3of=P{VU8Do$98$ z+$k;O&~0r)l%z<$A2VHC-GG)SHBWE0+U{0Ym@vGdxR^1#qORudoZ#y^{aaM(J&8n> z^>Dux+XGujgSx$w4`JMp^O2WO%qP#0?N-l0rdw^FVA(;llZuiLT5Ob_b!fI1lkRF* zW4$j!&oPgIWb_}kfe9_|c{`SW92;=$uqxxHqPfWCCb*ula|*{n6&t+vu^jfdXw{O(w~&n52^Bn{#??Jy+0auVPG0L*D=vT zg;-Uc^%H48-EZWF24UG*(0az(jXp=%{c?sz{R282M}LCsc&+=6!D_B`Uys*)Ecz>y z{U03jm+nlhP|+@1+{wq~{WI*qfZN*lO{_S5T>@>75~YgZweGu_~~V89|E^_VsYgk^dv9bmWXgdUDvF zDNUA&!}LHv`YB7t{);RI%wv*xN-Ji61Y^qoE?VTLs*e4<)-!PF|K1h2C3Y9-c6Onz zI`!_$mnEp~y48wmT+RzV?4y*)gHFV*jeF ziY4=I{SAbDR@Lc~uhw=B?-x3{Cs2UHIdU@`k-m~QKcdNN(wiR4r%z5*%HJV6oY+$stw+v}fBWWwa1)9DW-jz^Ci^4AlWy+5B_9^5N*Zk?Q zWzV1q7xzcrqv%3(y;SY#U1TU#pSqdtsGobcq0sHu(C{(-{G2KwRSaIgJesEOJ(A)l zYnHY5QnK(3SnwVmm(*7^a(lXdSBlT=({1g22f4DZgZ|TbPF$khHdQm=@lScDw*LmGXTgi91UB5DLXEK+lf$NDEjR>Qil5Ccp1P*yeg-k3wp? z-P3|LC2PMZT__b@={RiQu3Ss$^q_A~m2VeKmK^$bvVJ8pPG7gRQ>`g0`3ca(S~S$Gnf-oy0dLFudd{q=PHt`y%+RhD;zR#%Y6xcee*3HpU&i3G+RJpnr;Zv@v`Yww3B zJz2l?%v#M0&XL`9g%F2n#Fln>R7JJ_9_}|%D6#JTHYyjc=I)_RdfXmr1DKTDiTlZQ zs{2wHupg&MC_TSClC;OA=CR_ZWlr=cO%LttTUovD3PEhq(PuXT#ZQq5<$$6#yuuQ0wGLdV=e^08XWZkeo`N(M>d^q}y;?E`* z|Hb6zMxUobu-aNwp`dM7K^_>|b{SoDEdR3{l3u6sQ~mkQbCI502z))wp1dV%RdTY^ zxe07)zc7cX`a0ZDyAt)B`*WRty8>d#qQ8XvoF|cP`9SV6Cs#fKnBYX@Gs+AlPu;J5 z>O)x`@?pTc>UtjGZ{Qk^paMJrXuz~}d1P~w{IyC~W~f|UQ}eMG z;EoV31=}8%Of^&nYw~-scg~6(TWntqEhLG4QrK6i>zQ;tAJ77aI6~cP5EF(IpttUFF^%j?CDMAl{1t+z> za@^V0TQkJ|%$DNTTU{bLF*bmey))cTFKd; z85?j%--l?_jt%7EImN)Z=u4bJ%Q5gzToM~7-kI;C-UI`waQUo82hShce7m1gZ5vkwO(<#?ACwC|3 zPf`s@kux$^`(_&bk3Oa;b@ysJoiUmp6q$VFG5HQG`PK{Ind3|eoGF1bCGh`w2@JfI zNVwllBuYV@|C&g2fnEa*fI9z>NUZriFob=e{1b^pA!rTg4p1F# z*be$J=$}FV0hxaW^+Ub@{Cr@ApdQ3GB5Vac0_p|zL#`LJ25E2nw?twW=mF3{P%o$- zln*}&$uCed5o~sX4uX0?CqOyxCK6kapH|QTP!FgNB;G+@L2E#DpjOZ$pyQwupd8pQ z0F{E8DgW^0ASMd^pgPzr#MI0E@6ZPwKwO-JKM4DfWSX9iZjN(`jIrAtVau zkmLWAaJj?Q2FLYh+1&j(WZ4$mZ-j0b`I?D5jln%4>Oh>Y|EnR{W*c8~Tr>8!4B7sJ zNaxeKsF`B2m@6(6SK-?_o5TchgSbR&7Uznuh|BO@i;IPO*l#_gERz0gQ82^?>E9}5 z!p1b%n3hs7u5!gWVjRBdF;h%}of)umkys{5;Lio{XCnMr3V+UnKbOPaEZEC{y$pCc zUMvBP5o6__VKy0M`_u46AWmbBSSUP5TbC$2!cj*W;Tf8}MzF zYJ7X879Ka?TPIEMGy+ef$Zdd;a7#(uP0(}D=%ok{- z>2Z2K=j5vzI@C|tfsvs&^oPY^2RPSjmy7B-efvWlu1tDRBSlo0Ne^5c@eG6SGV+;C zuU1E;>}TkF=>%LE^t1*38gbdafDOgbu7IcfHOuK@X^;7W+pR?Dq*_1oUD*qPWu@$8 z=ys6wN5uv8C28p@zqJ_j=gSm0F3@w*!Esjxy~lUn7ZsOs5K7%I#^ERMq@VJ>IO194 zH+_Fc9j*+Wz6M+w`aW_zi~66;l)Ou&!}bMwX*$@Rz_{X!yE5saTXxbPfqqo-lM3_! zkd%J{V_SNBmJv_)mrEe!4?RG3+SBzanI1j(Pw|uGm*msKt`r|nc#Jqb+j8>N{gmJc zCu*UUpaxJU=x3nUK&L=?NOuOP0(2v27wB%#V<37?at!n`=uOZcK?9&HIGqog3Zl0n zOF-9v0-!J`2HFpL5JXRjp8$1(ehH$Fw*DUUC(y?r8nDKI#)Bqc~-6@eCl zN}go;DwksxWzQg zRxT0Kp>rAJbA^R-7G@YOjJy+Z9tSNKTFhje3otUfFozg}vj;sv24)CXKsFOKu1L&7 z3Zw9M7RK<=ur$W7M&E26hjhu>ML4HhJL@y8(Y%O!yBz1S=nKdi*%;A}`~Rzf=hq8+pk}lTXQ&qU^KM z?!{PXX_P3FY58PYxj1{o)k9LLG*TIrR$@wP^$;zyd`4k*NBQ~^&e@pVQSQdc6elKY z%(@{dT`i@*jB^%dvBT+HZ|G#}bW{psKO==4)K9WaHF<{Eg0qm{xi3bWaG^d?{mFoT z({P@JJ99b0*_d6s#MTkY)Fo<0*n>-;oZJBHZW1^yUu3(n)kS8+aD zEWmj_`l<|EErl0DCFZ3`xWsLcq8S3EpM}3x@P)V?=PZ4%-QcNv8#iQCn)@J|E!uG& zgFaHFoF(>4v_qnuIG^p{sk-&wfnqGcc@BD5PUF5|(@@s$hivu`I}Z+P=b7q=)K*i9W-M#|Hvl) z(KW}N*UTR-{Iv8^JPe-5RW^Evztu4sJ;*eSu2T(z(`4KNXSjpPj%sZtS~~UOL~3t_ z;X?A3iS#~8#wknkMD(VMNX1o1AJZYiY+2&YYx-yx^VJGFQ_CrNT5*!zXdNO*@|_sr zLl2kEJ@s^>lCz1i=oj-)d-BmIoQ)bkL6VB`oaTZda~k!OU?%$V*=UU(%v1{HTxCAy zEA&ibF?toXPGmnkNZo@yTZ$1DPJ;yN^^R;?^LVl?o&N?9xAS6 z=$?_*Fb5id{09pf^v_7@BFS=c)wQ&kk{qf#9D-z$D(adNb{dziC>iOKOvZ82EU6?* zVdzLib0G_T*Lc)~b3hZ(7oCSV&1vcH0{mSh|1QQzq5ej`{|j*c7vcUFV|2d)v#+JN z*H?;Qs7Blr+%4oT9-<|5Q>bZYNK`j9HU>jc;cuu91^v;cn}VStJZ#%6cGfr4R0qN} z{_46wI8cqPHzFx45ZXN~9;pv)YY3)TqB#()^GAZsFoBIJL=gLFGzT3v@hopPp5=Kw zqCON2ZVQG*D7Y;Ut#1mUPA`LceVCnU2}OcY5or!Kz}0R3hCparOJG}2Y;9_42x6Cx z`cMrrf=xu-bC{C3qz(#WL0K>0^QH(VApCoT(-CH&mCQz1hwvkW&jbHnZz3@r z@vJxT4gui=gx^H?vp&3MLHInv*Ac#gupi;u2x&d4R?SHBmbJpQE8jI`>{&UT;M15x zdedX z^6$#1%$wAaxiZgvXI4dC!QO0dUSVuh#_hRz1r>Sjvb;%^rkMGVh`utrT<=wCklr;yM~cqUmp1p3!(fxbPAxFYlAUBA{;T6}=YR1(=7~8@V zqO>?zXO1%^aHa&#l)#x1I8y>=O5jWhoGF1bC2*z$&XmBJ5;#)=sS;4H*F_I4MjZ$5 ztNH8-1@gX}ybq^CH0_f0c>hh_Z@_v!LKP2n({*S!hqZ#u4jU4j+jAqFDCw^AQ`y+Dt zy#FEZcgXu2@_vTAeEkXq zct1Yge~kdeolU{}^2%pi zU@@P{osMR@5jgM#pe70r>NwpKItKIuD|$~vN5AIhs;Kyij?=R`I@G6k)P1J-aX+2a zy{7P>HpG5RqGy6Qbdc0npNdQQi|@Zl|8(()(>mU%?cqB}X?%PXTgIcBk8hjG_(ql7 z-~4=h^A|L^<+JsuY^Z!^favynK!qTBcT@_x9(04I8xh_D`l_be5Ym&|73JkuxC`*4 zaE4p$G7bFG4l3siq{{6?KDz}*!vlSm#;w~We|m~OwMp`&y1w%Lovm?hck&r6F!~f2 z+1auH7dU(>z}ppVU*iQD$5sYXzE6F8Ecq_9QsUIQL(DTK*-L*X5R@<%v&ksXi?% zM774bKV7cG#SXSpp#Uy7>gUKG?pG}>|80$PKdXyD(AT|XInxcr5mkZw>>SmrHTr&O zSiAyx!dnge4;nY;FN4zld7^HMvVf>OMx+0tPi1gFsbNtFob1aA&mh93Qht2$cPyB- zN#d4RP{oJ}>w(kTZ2mn6=6+Sm~1;eMXEcS}4cwK2P9+$Zf!Nd7(s z%hMO)>C+dSU&bGm_{3zt%y`Fx;p+3`5=0*nh6OUd+8IdHOL{?0;F z<8JE2a3Cl0=+Lz7{H4)Jm zX!a~HQBQSKLyZQd#5{Q}lIKDZXxZhD>~6$QIi$bL)UQ_^@A&Yp)UUMWYjespzj4J+ z4ZtD1(v9GSvHZ~oL?exXhKA1s{qQ`cjCZ1Vn;Ibio^5Sv@Y7pI8OMv+h8i;pWq+gr zFHjvKgyF?$xL$$UPGc|{s0l;^4%0g25Pru3@3I@|XDIymsfIv=eNvG~@aC3aNGCys z-q?g+jUYQietrTk(xW4>RCYMG;rhlvcsKoiMl|TJ#|=#Vc!odP=&z=q&xi=Wzotpv z9e7rQx8)H(?iszHZ*B-igEgMQ;U(xNHR}C=a5%7Amc(vR8%8nuYg!r`cSFSy^FuP4 zChGSuU+Z06>94$|f_~V;k3rX8>C>REVl5>ZY4X9y|Nq< z_yG_$u%hbPGH;dt+U3jFRj&81_m)*v`aj3-XMFx2=zvD@*E9TSzc5nj{B4Yper;sv zUHyz775N;QaX9uVKbZ2@dxp-cJ0sKrwkh|~#B z&F&DyR2U5l4{>(jqaO4r2WP|&UO3ngAO+!}Y9u_(4eI3C)`W{F+K2GS3gQVj$;Rgi z*6G?;R|9>H2~Vgg8kE+X!%fY>aCEmascNP&!q;SoQie_GWuURX8W+^IJzFCYfv!n? zfW_JIe!*+{b^xs6VJa}B-^$D$Ou(3=N>mSq?94^&*roM*pNp&@M zX8nGB!C{Ub=qNq9klLe1ci{bhZQb4ZImr~jo|pTlQ(p{xyXx@=FaBU1V2c^QYi zE@yc&|Fqtq^tt?#A0I4K8s{77yA_-~$8hD;=XoTD4M|CLVW$6ghW;I^lpKc#$++X- za%1QrT+nkG_J5?`QDb>i|3_fZGa#;C{QE&1n(`dy@CbBi?ZEmxPv?;3AR-TrbNB*K z$|CFYdWu7u$2t$UGlJ{ifT-@X7_aj=#J43EJEJI=I z78M)N1xL+b7Kr`f{+FJ8uGuUho=7j1xnLI A3;+NC literal 0 HcmV?d00001 diff --git a/config/neovim/store/treesitter-parsers/parser/goctl.so b/config/neovim/store/treesitter-parsers/parser/goctl.so new file mode 100755 index 0000000000000000000000000000000000000000..0c8f487af9f0511f31b01da7aad411e17c17d1f4 GIT binary patch literal 57016 zcmeHw2YgjUx9{u}44@pu2GT-r5)u%l2?FLA8)75(zownplXDcm``!2M`#rXWF0hSx{muQ7Wq5Q5J;tV)bxt#+q{5sGzD=s;rTK6lV>EOl3qa*BsNZ?TY$o&4C{K5i%Ng%yA;P*5CkTJvjnOVhIIk_c)tl}}l zlJg1+vc{xO$;%SD&>DY6S-L+vw;(+)cTN@y6lZ1mOL7Bn;Lj<{2;{N6+$kl2%#1Ew z;z|nR&LJ^hr*bkf{3RqM5S}6M!9#}(O!jw=>mJvWbt}j%>sAsdEY9lIGd*)wW?qlp zIX$NLPVYV~enxuc%-rIFyxf^*7oS@+E3<13x#-$Gu1D{#J-c^<(8tIT3iZ zYvGBr1m4lY_e(j=!mFPY_9HDkah<@&Tli9GKiR@pNPMb=&tEP46j^vf8J}tk-@jJa ztNNHdX5mvLKGMRcN_@P97fO7xh0m1uR13dM;zbr-A@MQ` zzfR)wE&NuAUv1&{N_?q>KP>TO7XFaLS6KLJi9clF>m|O{!Z%C2%EF(Kc(sM^lK4&w ze_7&tEc`8r@3ruEB);Fm-<9}53;$5!hb(-b#E)3`#}a2Rd&mDliN{#@mlAJi;Xg>c zv4#I8@mLG5k$6W7kJ%vV5pUrQCEm-z$4ETU!W&6E&BDKx_(%&sRpR3<{7i{Yw(xcm zpK9SRZ_|+DEp2U}0c#_1IS@?GnUt!@X5`W0T2T6Rbg{Mip z%ECuWyxPLYNqnb;kC*r!3%^w2do4U$;`=SUK;j22e4fM)S@R5}wT17L_)ZIdQ{sCpe80r^TKLxz-*4f+Nc^CMM^}k{KV;#j zO8kh0x0g7R_n&J2(?jAh7Ji<@8(R2ai8r?J(Grif@JSNyXyMZ(9&h2ZB;L!y=Sw`% z!Yd`7X5ot@KGMQ(l=yfHzenPeE&L9NPqpwzC0=CV8zo+5;jc=3zJ(u<_|+EvtHhUD zcq4gVzRbegNqmKc_m=oW7Jh-m*IKw=;#C%2Eb(d!ze3_{k9S>F^8Qx^PWRl7Nb>VR z12^x}4;eV!+pFVhRm zz>mHbzonIb9g}u#^v7!$ORKC7MAYm_D}O#_JFi4d&qn~)w0jI^U&}8MHq`mD=9A5RdHMUY7mbdp z8Qm~x8{IumNLh4fV$!8a6O$$-yq>Tt;c!AtYC?5t!miYW*HaVT-@d7j%5(u``fAs< z-U=w;UdsQNbH%!(@;?%NOMd8%_En+A$)L!j@~@MI`d02QxmCmkmFFdHJrm{fn#Q#j%Di#UrVzmn_y)HbnQRLB z;q^zJ5?`eQm99=JRL9LDmZtI2Fj(8C0(wtE}U zt*9Y2ID64_6*1rS^R(CHVZ6Qq3-=;2ds;b2S(L%OCK0-|r>-sc>vkb@8+}GWg{3Ug z{o}j7A*pz{z712_Bv`oapEWgA%7F;H`xaryBwC<4BjBs}WZ0(J-Diz`{)m=?Mem*?y`{EwraM(V$Ru$|Fy|{1K{k@buOI<>^hB zh}NASa;TyI$JwtH{4rSy*oPN}Gx<-3i5vERiVc}+wnGShy0>IZoU90}u*V$nr zbshOSBaE+NU&RnzuOEI_Ej-vGbgUA|*UMzKNezXRMQTF9S8k$;)++65d6;_r1Pk{H zoOBcQ6vxEQ*7={03tg9Wlz#wDn^jfhdRG2NnXh657CFQno|xS7HShb$Up9 z+7=(W_YT9ty^_qfsY(S`D)>s)OZ=tU*NtIn^$7XuiBlB}jP=QFMHqsDT74bQS6;Pl z)%7imf>JI1ZUBO=h+Z)BS8#m)@QZ3;OqdoXlCPJ^ zEQGHjU&RDm_e8x`XZT)qiS|_#rd|(`uO2w*aOrth>Z^DM z>$Rv=L+xonm|9IDPwwGRqXC}Q>k+;KCh&>fPO~s0{8aLE56o(>Zy4XViyoZqt7xU? zU$ORiPM9^b8W!#a;e5WU*MyGR)6p=aVkUWV$V?CW;QYg=ctZE&2S2NphTHdaCSU7e zR=cI}v`^RSM(ycfm|E?Jg*%-*d1tcdy-_;Y9k_&vM}eBjt`T zwf+(oZYfUNbbh{PbJIoEEMLXxqUs1|dlAmrzRDrcqD~i6>FbnbWe6r6MCse-xp{LLI)|dqQ96BrM}87LO+)D?Ular0fFu$w4p|? z7buVBZ%CtivwW4a1-gZ7Kh=P`$j@1YjmGLa|u0PpqakPT>`~T7<127Xhn*c*i(HKlSB&l8TSZFEIG`r zrz|TM36w|SC!`UD3}0o5K^6H4R@*|B(UF3`PRs4xw@hvIC zD5S>%z`HFW>T3H>Flh5ol-JN?_imR(|TM*vr*!n${#igPh%b6_2AtZnI9fs7EeZYQt}^ zN8pB)Hw*onq_3egHEh#B1WrA_(edjLY+qy5z60oa-;#N}A5{F3;Kq($S5XX)-!fIq zjZ{pqf6`m(__a{}ALjm_^u+JuZ)*GB4Gh;F?!TAvU+ndtahCSqQ2B4d{m+KR=>HJ@ z^9}!dkw)-Z`zmNJk5nJu!tYwacNI-(9KVY()0^jUA0|doO-6O_98JfwM=+kJqCSgL z+Wu00B+9p7URUlFqccD$;CsrC)b%YmjI9Al&y*i&GP42d>qps5eG6avI@tDps<2y= zco$+J4VKqhw_o?)07TZeq`Rm8u7p3k|MHD8_9Bgv6MYpophmvyXTvXKjJlOn!}34+ z`YINSR7YQBDM~=k+&}~DZse?}#v>Z+D}XH~>>6NI*jgL+NpOK-ey<1v+&0GO1=hz` zx&JF_s(fD8nI_`}qB4cP%9prq>rLder$*Nav@M}6si;~Tv9o;@Pl|N}o1-gWj-s$R zDy7w;3ccxhXz06YH!R%oIO#hMee(iO*YS}=xA{G_r|Gyth4NHRo*D?VVqaxFq!5$^ zRMS$8{`4hB=^JO)4|Lm!Nby@o<1yMU7>QbcM{_7dtP`=%X z7HGDwvO=Jf$o4y=Q3B8cfnwM)_g#TvgE(HG9SGg7(SZUTM(ApRX8S5`!X^Q}ut{$% z^lM4KSm+CUl_v^xE}^qDdiWr3c_N|d8r?6@azZcA=t}}EBebVR*9mkMp)Cc9xpKEa zFC?_Cw!K=Qmk|0R(x`8~ud-O6G;iDwHF~K)vj}}rp%wRvn4>-YgdR&Cb05_D8!#2% z75ZjEpG^9NLJzc#Kr!>t{~A5?1&;!*S?GU(qF(O_6bm?WQw55#@Vr1{X)JWp=;H!y zMrad_E)(b;@(`)fs|3n7$KN20`r>KH0o*Ggh0!!c==o^ct@M>c1$sI8+NjZU1bPvn z_i8j&pjQ)mtw1p@>Irlqp``*vdw%+yx1DcY{Tls9pnU8O(dbTrzDyo^2o!#w6zD00 zHrMEKfj&j(2?8zhRW1-{I-%bqjTQqf66jDu-xnyx&?N#LPv{F8O%dn>Lf0s?Vup@h zTcMv%`s9sGWVKxJT#DX%agBH?VNa zaC(OF8&`@;XX*?P#t&J%uWT@-&@19sZblftGyHi@X>3 z9nA-%DgUFMui|y2^ltD?n7Zd7Yn93*BmWqz_zPYhW$wpaMmcMY0k#kT?Mz?6GO2c^ zhk&7=GGApOnIGP|go=1iqZbRb0in+ebf&K|S)h0-#@xp>+Et)K2&KZ|7tbZm5NHvh zS83D{D2;YEPoP-FzuM31fcr`2j??H{0?i{dQKQcYl!k%ZS)&gNl;(hYszz@T=wL#R zB8{4%w95sGeKB(nYBWcn&lCDOq1$4RG&%^GFsB(`67(P@`h!5X)|GDc+a}a?iS~MP7_T3| z!p$MGr@EKuI zUhFksnT($VBroR zugZb!(=L=%zX%DwH_G!>Jc=PIdbf`D->g~ac#R?d`#yv(ediT?Zvst-OP6>rx>U+5UclZP!Zt5ObRA3O-G_FKU2xGzDpMg1zY_usZm=5d@>6$O49LlfgUAk+E)v`;vF@$247uut)A4rV#4@hS8=+?@>>Jvt{ddfHE)L*!wpcFdppc@@buetJjhNLp0M@#MMp7D`+P)4 zvBuN4n_=Oml9{evaFxTn_*IX&SnX?EnEDlvuV434kJKK&@YO}P^-VJ3tHC2-HiWIo z*J_yQYU!xq?c)Glt828U$zf`>7Zz>?PPL;3PlcF&BL0cm(}pmfmXN0=I8|Yy7(I^s z*m~YB=0T6Z<&e<}Q$;WI@>Nvm{`lY>)$Z@ZY#=*R8S7!jzk94*5FFzIcuhwy}N7k<@iUOnxzW0;XVo_rp7D~!*(bU#$X z1m$4oITIJaP_1u3o^B86DF@#M=zf@~Jv|m?zwRcIaW9CfqW z4ruL&U}RsZYac-wdF_{lsr^V;xbMFi$`c0l5bdc7Cc;xe7*BP`(+%M~U9LS9XiuMp z*>gM%3wLlxPgt9GV;w+Eup@4(J)MdDZm7N~CQpC95$e%8=EysExhFim2NTh{_%La8S?!e%o*vM3TB<#@4>Q|7f`yw)W>xeAjiy_0&x2MC*B(B>$PU%2<>a9QnQaPs z5c~3zfz}=qSW)NdwtoA%YHPUo_apx=!c1Q<^a}}iTBF-~zxMQ7m>ty*uy8NOsS3q= zR~C$}H5e1V>rclm2x5=5da)QIJ@AAW>%U$y_adviKAe-YxsycgWS({sjV#&;?Oxp? zAfa}e=)t-=KL2`6#V0e&NN)x=?t?I^!eH^Xithh({uJCGh3dZ#VBzM}&hL%}R(mzi z_f?c)6%!*hUVHyM%ynTNd9O=mdLRVH7krg#U!U$#E&VNwukPe)E6lVjz4BrtjKv5S zwYo!l8X2a|2VvoskeQx9!5s~D(Sxxj3SYyuuZl3&gXQF_1DS2X>MCat-ysSQCu$F! zF)Tv$z$N72vsbZqRu04+y!#qqXqM>J>A|nqtDt~)Tn7&0_BfQ!I^^>PGJ9G%PQXmY(Wz#oex*u{)5RUel8Q>9xEFRCRj(kccvW0IJhJ@i zboD)h`~(EA@9Sg52vObg#w&c>n$eBzF={;&&s$WShriEt&Mi3HwW- zzuTiQ>*A?W`Q zBzLZ<|Hz}?L;4A(ew#`p{`is+hjAW#8tLCK_2+o>9ZCO`sXyJLk0Jd{rv5O5U>puYa!Z6h z*s^`xh9<^NkM(A`3(hj_WK;%t#!e$llCIfEAg@paCfz{K}LF|Z9f{SCP25-KkklD8na zleKb(M_EP6WSsQ8U**v+BYhiFzrdp}BYmW)&-UoYlm5U?!~Yg#y)N1$@cP5tK(jP{d0!_@Ea=&MMdZ0c8e^vg)!#?&wH z=*vhSY3j2*`thVcu)}P>N8gL|+f99YkG?VKSDN}d9{mxh+;UU@IRvBqq|Y$*J3RU- z(kGkxRUZ8^(zh}73q1NV(np&5Y>$3C=?}bMw%?=gMf&ZgzP(4^nDi@6eI1Yf2vlyl zss9{;(SFirnED+aeHH1GP5mm5ei`Z8nEC}CeHrN^O?|dUKc4glo;Ta?(f1<#c2nQp zqi;<5m8QOqM}Gt=x7^f!4#8+Y=`&3I4v)Ty^vR}vl}Epf^leQ20*}6o^pU1M+oK;( z`UBg|_IvcbNWb0GxA*89lYXVCujA1lfyym6^`Ap9+E4lnQ@_KbuOfZ2sbA&MFC%>$ zQ@_BYFC%@Vsn7Q4$CLiRb7uQJ`d*~pZtB~6^o>cs($v@S=#N0v;4> zpmNJi{pS#j_LDxt)bH@? zWb=@Td``%%Ch|2Q6(({j`6)J$CWK7p$kuUWKSrcSQ92E23{^RZwr^AQk2gKsO_nW8 zM4 zi0X5hiMV7l%|z&*-Eha7$aiEj$VBMDyL&cAw)!dEQKWedn~5}UZ$puuL^e@Kt1s|p z*28p+#qYnisz`p0l#a%GWdA0RV9ZBo%co7t&1CtAi5wwhnTh;P$O02-PHhaB$oFJ3 z#YBE1WTc7wKuCWRsY8CwGLa|A=1dcLpO6?6d7O~LPaEyMgOE>6WIrLVn@Bw>tJ*|X zklhoQgz3f z$ZdqAn8?S3bT^R?35hikymw%30~4WV%kCeWjNbon_ zqQ5tUjAv055&&-fhEg4n0=k>hO+~s3x%MF~suj&q*Nk6{oV{&#qMSIvRejn>A$Z{*n$=jDVl9!AD{g$V-D zpJ!8nh$rP1D8+M_-oESC3CnI*j73dOx}q=6F}@{t0~M{SFN%eypSY#+^f@GVhBo_@ zE9t6`p|L$ksa|>>Y4tpNar7o!Q?~2B6Q%z$6e4!~I39uH5jY-!;}Q6OHUb0iNtKK{tUe2jze+ z1oZ{A1NlI|V*7spv>UV$bQ|bO&~(sP&;U>;Pz|=qXX2@O6zE$#J>Cn7NBTMN`#@KL z@<8K2iJ;D)Q$a`Zr1c=^bu@@VfxblEtH8&B@<1aYKLolFbQy@=0K5s>26_l_ zz7aGB@2xUH!$EPN#-Iq$*La2VHt2Pvp9ZZ0Ed|lry@Q~sD0>vBA8gu#8iEd?%=bXg zgB}Mh1KkXK9%w3P6sQ{X2Vtj-Z33+XrGqYn&Ij6ty3YgAFL|bccD;u& z0{V3y>_HFUd#4Q0s~^KZ=!|!2YTm+^ZoNOk`1%krz=0evSbOXK)qfgt~eNaIyV3S5K|MhiA^%CBKT(ILK(`|{BS0&G^+fwm+fq~W>}JGjBgO>iW9*x6AzEKk zGX(Th71{_|zX9_Hl)J8`rX}dDr)p}h1wD%Ve$WNTTLb+NB)dlT(5_v!~Kq;UvJy6tZD;8$z%uY(CL6$VSYI}k^=7$jBr8O!2>&8v3I3ha04rv5*)z6F zk4!$N;E#r8uo{-leuj@fkn0Smgq`FB*dbQRe)QPe0_8uCT_48B>DouQdUR$_^L9;O z&(-pg&kp=;T`0eb&0qWQ*5z_m&6`58r8Z1u9i4pE-YH=9(e}1ZDLc_w&t~%2hp*$& zzpWqjUq^O>_H!0{Ro1tQL;W}z|H`bYiyd2%|0;hU_Am7OZXW+cb{3=dE1xtzrr^H} zb}9Px0<^D#lgmc1eAW(aEJeM0VT`mv|D-}1#K#HMgW4SGz#S+*@D&q3jDJ#>|NALQ zc2FBSl#KWMmVApPzir9%e8S96&pk|;o^V0tXFB!dsbG1wOkYQu_B$;39U*Inw_Eyi zxE#UH@DougQ=%MtLPN*jGM`IE^k`0 zST}Tbmdy3F%N2fW*E1Y0%B}53lwTVc^{9=D`l$Lj&Nxwj2`E|DOY1MP?8aKM)N>T^ zalCr`%c@+X>l4N=WArqP@^gk$E1u9IqqirfzO|))%hG3B@|l*r+R9JQhE4z8_~2g_ zw)E*j=4a%KEcNKMtn_josP?JxuVluWd;Br>sMnt(*9qy5F?t>vtgjO>gUh=Aq|DeY zFv7odD+8(Q7<)Smj`bv@J=T?wIMx^7(mm?%1h0o`mlNS#-yEk%==mA>ESa%bPkzSe z*{$ini%0K7T;|a$S&uiV=YBo)7x}ndAKnh5T~36+Yulkcrkz9Yy@KUC zQr2;kGGpC^ovxQHn%-B61ds}v#;g@`LSE^QRYYRBasN6?N6)L(eOWTi_}#jJ5QZ6X9LA z9mk$GKCeA?;&cT4(fcw}Ug(jXNa0V{SFS${`#UqA6M2zWj=Izl2g5MWPeMx{jc}v8Jp*kohYkc94lTC z1HJaq-u5|>-u`eRhI;H7yU8OvjunrH(O!M@C`-26W9>8Q*!mKlUymb4#nZmtEc2G* zNIgfXKfLx%#D!k_6YO%Wbx>aquJq(%%qu%FwjZ&NQRB;T?CYYp{~7Dy@$W>;<+5(S zlo`Xk@T@!5{I2V*hZ8Z$>k;X#w-aHtE7BgH*7$YAK3CUI$_)4YbOiflnpchx<4ot1GS6q!m*KgK*UtqW znX!94vJ)}FE9>#hVbo{5rT5x1+`-eK>dn{|OFqq#>DwLC{uPhxIQG8lPLH0kw>+{F z;Vs{Z6#cF0<3x(_s^uuZCqI+-ky;-y*`s$N27Bcwub#1IJ$l9(S@K3pKG`EXkr#Vp z#u{33V~^}Ow!O8UMcMl0p8Sl}^~g@d6pzeU1538XVN|+D??l+;t@7v@yU&un^M&D= z5gjW2jLo;?6D+yNBRf$OJTk-cM>>N3y!S_pwYT&gEP1;nUvJ6Q^~%Y!^ygY~oJV%> zl#PyH{VuiSu^u^sOQwCUN6*+SOHQ!lXiMI0$!#sU!je@DILuFdai+VPCqQ3=Iyj6? z0o?`K3pxc^Qb0374}jhPIgyNY15E_Y13d`Z1Nt7+D2lPZpvjJ1tTnhv@WbQ9QhJz-6ia_)?3>JZI0o@B)1KI+55%dP=Gtl>-6EM9_0ks5m0i6p< z28{)!gGxZZ2n zS_HZS^Z@8d&{oiH(EFgTK)-_O;+FFiP;*cRPy(ngC>1mo7W4U3eeS{TRx6qEs)2ATmX16=`H09p*X8FVM; zKG4IUwV;ilZJ-xGuYleFy$AXjbP)6%=rHI{P!yKM`k+RjCZJeQ2T&ZSC#WAN8FW7A zLeO}SACwKs2L(WLL05qmftG@91KkaJ0Hlr+StPbm@$595o3b--ZpND6+#Hg_V!<8O z3ioslOJGqrm$El-9){=c5o|cSi1~qz#9nF?8_iC^e=%6^>#_RmM0OHZb|0=TC*ulr z3Z4d@hC81#SYvoU6IxMfTli|qI^f)lb;h|l>xy$M>O-aWz&U|ima@r6hc30%KQ8rH z+Di5Nt5W}YTaTqw5#cFe+xpK-75&!>9-Fd0I5%VcaBhybV-)8^oDQ9(#mE zzlJLHpGWvuO8vXG9($>E<$N8F=rzN8HixyqNO7<(_;GH7x3Laui+61l;c*y2O)-1N zV8$QYYS0|LQ_r&wi4{n!I@$0Vfv2NX<}{q!@bX9M73kRKgldJD4PqXM8IZ@l7jW+n z;5<^#gMS_)G0%(OB^qxTDP94bTVV%7(Rm!_;cP9=7h|Ly>w2kbE_~PaS_Xg7()XJG zu&VE9I4wYInz5^K zPQY6-njgpR$tOM4MZQSvI~-OAI}ZnS_Tk(PyAKC195LY8a$O_J}N zhjH%9M_@l(ks?_Ez9za1?+NQ5rY#Yv4)~I#vz`sK&UWH$OknGH&W$*mIagab)hfOj zcFpkJ4qZRD;hX?F2iMJ;alVM%h4WZkt*TB`gXV zv2bnfbWFAW7fK8j@7lEv)mwZ1aqicVqZyt+QmOCY9BQQ0E?ccrAMqR?;~|3d|9RPeZ}*A z!}A^D`F=d6e6>qD%srhIraaZE-(VGqJ4CU5t9APbR%eEpZ~|)IUa!V&m9(Qy#7dJZ1Wpq|mXPI0NP1U6_a<;`j6%UeNO)VFCmG?|fUW!T_tc2gyh)XnU z#%s_L=f12p&izofnnlXeToc=Id%BA(!gy4cs=N-Kh;+hAsWhFS@zzoGWfypiV%=~? zRqZHB3hx&N?{DF%Kg2!I zM8p-5MSQxUca^V1E04klhQU)TT*Ye;S{KdIcpGV#GnNfTKMcmzA)w2;z{;zxbi5CjMpn{9*En zTomdXeomobRk(O)uR_&f12G6%}Rn81vP6;okFhn_}Rz6kE ztT6cOF!dHe89?cjLSA@$3q$do-qlBf1=U2x;vZ=an8*&5ZEz zUKrB;S{}DWM%$zsJp;05}W@yf0x8mHFEyKAVyTOUTTnX0rj*w;D%{?v;;qe2E zn0{;p^a*Sw&fRhCB#(5rBSup%cnr>URmTUp#|I3L%KmhZy{fsGkq;wRG`@s(SQ(?8 zRUXzwQOcuSvl{0(>_;Q;g?b4rg>DVkJ%MuqcB?d}#XMGdMXq(+s@%#e%B@7M*^E~C zZ1yBCSJieyh!%uul^Hvgw<<(lv)7c}XxNDeCg?VadeIY^GQKa*lJQV^=7z{4=Kf~1 zGYZd^X?rLJC(;DqMU8qx*F#MPhY7#=9;4VKRgI|NtvxE%o4FcLB;DkjVPaDHhzy9MB(Y5gPE*qC7x285A0Hn{m5HNca~Fidp?q-s(e4g zrZxKo=k7Y+uRPz&$VX3_#rXf-%J(O?S;2iPUo_)duo`IS-c#gjV71bT@UE$mmK<%# zCqSk?RAtn~=OhXINyJ6EjQY|>m3flo!)NJFhL32S`xHp@8xc|8(>%H}AVq0i6OXQ` zN7o!u&`V2?Wh;*~2T=-^-o~SA2dRrLuLGo@&rXo~Xk8ab!J2i26!h86W0~O5_3%hN zJ<{*!xnK$BdUU-ZMd;G|LJD3N&x6!T>jppy)+`B9a7Uc%$(IVLrOr1PQn2kqAhpoC z3p~;=kL3tR!M0!M(T#=_tmjxrL7x|Sq>CX1>oNgSoGyJLB>HYuj1WJhpwDzj!PaJY zbXkys{g(qNSbDBUnhq)GB_C2Nlqe1=+c~EHLfZ+{JbS(2bB0>pm9?zG|0Nd9?@aMY z0gn23Cj0LnK0L*(eNf9oAFtvmcN6^A4NrB4gOA2efPs?m-(Mf2@nlqdfA-gQLQ5qa z%W)ly=nnYri0(u283HGKj)E~2B+5%MB%(CgQJQSXzv5<^A|%EKjflS|JEG)^Nco{O zJ!Mfiapf0Djw?>MX{T&WOxY-I>P&mm(_!juS?S2uCbCsNR9eZ(HWaQf;`X8PDNcHo zCaw+}Q?jY2w8}$VwO!fTGTECL$;viVe!}Rmxj_HfnaWj%nI_DXRapu*WtHFL;q(eu z+{`1=bY+Xg_@^grl!`_=-1jG^$nQ_+ePMH~=Pg+**6LQ+@w5fC$GIc^>x?VeS$KvQ zhxr|kt3`MIY_2DNIv0zlbA7N=?}y)cw&ZVylGs3KQt;Mj5T3-O@wZ7A;QnJ6)}9gi z+n6!9CmDyQ`{S|my9Do_&V!Fh{CO(f576(Jvv3ENgOUeef7}!IfBF3VLlNFP72}RC zfUg!Vz*E>uu;-tH`@E63|ConovQ)dPu-C6(mDu|(#QpjrJQ2SZeX$tt4z9;u>jr%3 zdlTL*+=8|3Hnt3JeePg);;qkJ>~8#qWCgy@y$|m=?q?6MRk+`J2={`I;2p?gY&G5| zufdz@CvcDP6y9*GXB*f?yzknCCq{ST?ZsBSyLg6G<9pQS@H^h;@q4}G?kVVAz%SIEsoi~lhtTEjf5-o*iTQuXTIt%FmjBDre;08}Z_ck1 zj`97vcYd|z^NXIX(i=2-G8}$>(bI1=zxwO>mHdzA*QL1o2{pf_;;w5N?s`MbubG%% zWpaL9#$ne2bvHYxp02`8$I(!TpK6co^)KRRoggv*u zgyrLZ+<~Tz88dQN>X@_oNQ6&pNa%*7*9S$aWX!R-9P(h{LJY`IlQAibDtxP-6=h4kX$^w}ed zN9Q5l(v~{INDfcW&l)1jq%`^=JF7UWAcN3AdJe`A!X~>c*mMQ(9_0;G2!&Fnxj&ia z(U<8I^m{NlJZqMc(&Si>N+}u!qY6tg@TLX=MIx1(iBT~!J-3+2VZ_rM9haV03RB@x z2%=v_8e>l+iYWK=tl2DO?5LzMLq-f|DHjh<8a5=^KQd`d8cQBAY}kn5B8@@hFU~5; zN)II11IfbqIM7%?jSLEuM(w`Q3Nc}*kAjexGM@ap?b^zSfyRQd&=9p)3)Dz0I87t_ z#$$D*J@n1lH8n%Q?*|WnuLFMtydtNjhW1f6uf^X90zVZ*hcjmsbIKYzO;0=_W+|?S zZGkldB_bdH1xJI1gBmnG-&cQD%zQTB%)Xs_v~5lKD1Qp5Bkbsnq&oT`LB9kz1ibDL zBnCEUxFjOALF2`dLmI?h7nRhY7OhCbcqWiJQc zpC$d0>4NC%q83Lk!RPn>8Grhi=_O^i}+1AWV#1c z_muPwa{i;jD0Ye9)z=7~D1Oe)_U{sMxO4TB(te%bOQpO*^7*R;-cZ&roS%P+?_c}Z zIr^*@`u>uqN5}J2ULbj?E$uE^W zTk-Vexu~~NPdUpk4nB#@>eB4Ao;J7H`*lX*-rA_l3yUXU-DwfuaI1= zWjP|dUfX6`@_b8{%N^c!isOFCPn4X+iUfU2Ku5=Ef;SP2?b#_3O{J`!A)YDay;9%I z($h0NI*Mo^#_{vfnnL0$q)gBM=ol|QI-qYK=-4Us`129`m?0ZZ&m8G!EExYLfs#94 z6##t`LB|nUu&U>L*)Z`PN-%#5VUG7%;`kkZ=AKe2&PS!ZSNg+W!1m}5N%Z=j-EsR)j@HHz$=afl<61e0dUE zDss0KjQxw;S+d+65>J%-liwiI z@g|7kruHjxda-XMuJ$jD$QTD+af>+1{mf)pF8#|dzf3n7s!)0$*RLby6wza~z{4Rw06a&i$Oq?D_j0$MHLC z*wTL>jtGfL?#E%%1@`|}Gkg-}$So1b1h+mF}6fh>P+W(mv03*DUD z61ejR^8Fckg$1zm`!fsuIeCRs;6F1^SX|;yFD;W_00go!vHpg%@Mq^1`+soy_nRMN0if9miQzaPd}?ft1~5==`OMMahr`o()p z#*1Ry3-imDvalF4ELk}iJaojsq@n&1g9eRG9pfL9G;nAtxy>j`r@RQ%oUFvbLx&7Z z_IHo#9@movinFr(CAk5LL{4EwAdmTnj2Y$+#s|JBI%9aR`~5lj=mmPc9-!)ysS2dW zkj0^UF;c(-#ez>&shon+xT)zSQ(0W*>;jkxj!!7!NQ2KIN-#t`f*-o#th{u}z~U%| zEUqX|oZ@l{kqBg!;Y=L?%R)YW;l9xq4XHdVdAfYHzv~K&e5>-+^-^)Q zFN6s{$cK6Kgg|>Xm0#`C6hBcKtNJTD#Ro!9dq5?teW2p8GQVAa3G=@$N;;Ka?MoG( zFZZRYe6?^i)8%rpz39+2XzxpWBbZ#h< zif2PM^T)>u1I1N+Wj5V^3a8DonLknHSNz}*l~Zt4u0m;BXy#YfTg7GglsUfn^d56% zeieWGWLX@NUuTscE7gjXBSGb>{Az!o_}R)(a=ZK+to+q-f1&suE5C}Hg6~9v?rBu{ zOXa>r@pxq@xt;%U;0-`(e5w05#cg{fD^A7vjQncOtG|D?DIjB=yOZ73bkc8K~<=YLfw)cqpe2bhP-ulNU0n)&5Fd!hG( z%1-&POqH+pd77(?l2cjc@dX6JYW1@mIBLJH@~HeKS7S%n5RaAlV`bpZ1l9qh r>aW%xx?fgxM^Yb&bVGro+;XnU6CBVxfrw z3Ivd12L(k%#e#AL6%`c~-S3&1Gs(_mWA?t^oB#j&{k~jyc6QD=bDlY8=H9(~cka!c z*nYi2EQ_hF6zj_JYmCK^V#Bq+nHr+ zZh%dd;j+qjA35Th$#!Phn(S1m+TC{6oA{r!i>G!|n@B#h97TMp6gh-!AlmWxg54^T z;UMBO^Qh{_u9AkTl)YlC6vPn#SM!+50BXA$Z^{DPhTB&F$^pE8ci4mEm^SfBtQ0=6!a!}CDEU9 zY{Nk*Xut`vy$WzYk%vT;C6fGWlE;&Myi~IxB;RsC3V8m-=5mcsO;2-WdEJ>_my5aj z4DRnr^kjO*Cuey*nS=ZHNJ&rg40ex8@km`@jVocQ+m)1@=1xhT?qS|ckH?jj?1ckY z+W6$OsRbo2&s1n(@5)MWr=`I#A=Bgb254K*GSQRe%}k#bj8pDBC_7JPav^;W$e(A9 zPN$@#Coq@Got5Q53X|N)DJ($>laL3Nk~}WUo0!m|MO0RLR0m#7&3iXKA;Fc!YtdYu zAmzRL_37Tj)h4Paydkeb@?nPjT9S`75C!H~Bh zd4?fxNAjtLyerA)8uD%=Ut-APNxs^U4IGvsL`KV`_XNPfnU&mj3ZLq4D67Y+Ghl3zCDD@o2e$%&`t)jcE+ zH{|O{UeS)aU4nGew^ePhWulaPc`J9lYFir|C;1W47ob4t~TU?JABHRWGQ`B6h2L+88440#6CPZ{#LA4)%G4EX~jKWE6#oRsz#4S6o*;j$sWOnw+$ z&r|2y8%Q2*$XP>~pNfV&zMkZ5YREfM9$Fjn?j#>;$RkflKP*O{|Ek`R?77zeT3L*r zoL}owTb!SqUprG<=7Klj-zW4 zi_dLfEGIW^Mb$+-5y;f5FEh3*G$ihUxE0m5;C-BR%y$N~7I%Nl^Uop?+ z+*#i;Z`q_Hu_vOKJs$l(5_^ujJKuF#>^b=6eslMN?&Z*sh?jFa#a_vdgl0jmC8)Xj zQBw0D?S^o%Aog6yf?4P4PJVU4tSjNOOXIb?c#X^!O!Jui_dhV3btQUsCA@Z;Bg9WK z`x}Ut#a_uduy-rZ{)(`$78uN&Bj;*wU~FNo?C4X>-Yc6^&*w1vc?cq2ial$edW12! ztS_0KwCpv~bd(f?Fnhk%)?)S~)pniM_G!x=YPRiVwr#K4j+Jd2NSZdxt|d(yO2MO+ zT}BFKNWn^G|M9oTLEr?PmdaNC32MgdLlDaZZI%gIc!NyPmG$`vdXCu-!%pPmDCEdT ze!mt-$IWFoo@I8X6tt9rXPE7lf+#82$n1D2Xe9+tGy7&K=qv>bm>nerE-Bc=?AlTg zI5tN9{A0u5+gDUMEpgyw`q`)f$HJCj}3R-*lJdT#)HO%fT#epNNBb6~C!Vz+MU(f8TAQnAu zWA^;}zl@%rmV&_U_dzLV!3%O0jHxLz_1n7qS+K#f?}we>I{>*h3ua08l$gfMPWd;! zTcuK)j2kVxqjI01xo^$vI{`lO zFX^p`jC3xuEv30$(>!L`-~J(zLdUA|%>FwnL^6A}(mW$I z9;tc9vJ;hNm8Pl8?7m8qt!WxDyS37cl$r_BTODR!qcq*5CS7Xo#{B=CLT{pJu4DF> zN>g6b)MfTjrTOIn5qgI7w%@W}P@0dVW|Gu2WcEEuvrlR=rRExDPgj~JHBCKck5!sw zQbPyFw=KJu(oB*XI!fkR_Vr3LRMXUCc4ejMqG_&W_T}Fw2Mwf#My@)uKU12kHBB{U zzos-l-Y;^HKiZp==A_h2m629t_G+bhMQU1zLpgomwP1Dz^q4r>;q5ug9%i(3ZwI$SpoP{=Q^$ zJ9xTQdEy^hW#k6~KAJ+5zm`GyyIRb*GGb`U&*t+jQp~sf9&i0cguuMjp;Vur;*2^P z`#+Q-G5hWbCNc68mO6_VhN$LqjphNqN*sy3s3z1!noy0mn-l7y|Ae}V)M7$?_cNbR z7crqO{@XW)gWSxRP|sNQb5bn(PoKj0UT`nOBK+JndiVkRe@XTK67~P7ZD#*3`S*V@ zsYU;ri~e6i|1Z`4mmQ*1;Qn9ui3X8Rmi+#ogjml1qWh1A`Coh1Nq=-I(Sg~^q(IG& z0uu>egeIsyh{@BQ*+Uik{JV?HUOxL%mR-kWFJCnKcNZxGiv1%9MC_qKvC~%^%=rz{ zQ~uY0RZ^g0=O^;{Uqv%DUd$P{;$41MFj429*fo`&DCeD+U0vrbkaL{SUHZ{K>KmE; z6$B#c3QpJ`x9m;QQ$G8HQlO#^#6H<%_bB$&xDw-kybZ9wAd3_`PF=4z*=rTee)$I@ z_HQ8&u~!a?oxYHcXZ8!qQv-BL1VRe{{FN`F>F~COnh`gn!@aU!7?;Z3M3s%0^K!?1!Pq(uI}5#E>9A>oS?WBv=NQVp!^gp(nE&2g~sH1&X0*Pz-eD z-W}(EXozuT-lDSfkYYHzBA6`EH-Ik89v3V_C&iHHgkd_fS+EQro~JB@IAOSt+3V3T zs4QhGh7HRdWN96<_1xIf!96v!@2jaI0dN?u4N$ zzW)Ww@V!kj)NsO(#_Si-FsPAUrWjsY>L5!KasC@DLo>xN*a^clW?wuPWDG}OC`S6{ zoM2)|l1IL~n7uMs29IJ`?S$bLW?wHE(j?_-T>lN0^5<_UsM<~_$1-~t8U{7=s};j5 zOM*$;cp1Z5oc{&O5TzJ~J7IW~*}r}hWDIY?Pz?R=i-U+Scaa8A>9eX1I#WPEW?*y zQw-&uFbu-=KQs(#f0(Nnp2aU`MW5tSmg1P*TQbl!r)*|-2$r(EqU`8|@-}9l_$tVt zo`s5X{|T0%k7DpTVd%~5ior5``z6ItIVc9Y$Mv6J87_W747HpvJdEEz&@iYO zzfv*mn(rWn$+-R#EW`DRVQ5ecbRm2Qvwy+rfuLe|1BPN8ew`Og4EdMZ?+TV-f?`kFo!L*LVNi2vwqkf@j)N=>V|Hw?4A&`!-a#?Ykt-3`e?AQ|hTSj}BYk#uFfkB= zhuQOjWf-Oy76ipWKRQiicHLkZemhMu)C-D%4(9`zy$2108tHo!!@gO;WQiEoGkavP z3~dy{XeSJ}V*SS_LB?MMr+P8c4<`kzxl#*hm`G1BL!Ifx;i*^7f^7^4_+oG`eU-6&Xw zD<4t}O`I?!Vf_Od1~t-a6~m#a!DNZP)C|DyAHgzoR167D82U2X_d$>`d;mi+(v}m3 z9ytFGmcgqS9+?tMmgxIKXRQAUmZ7p@=n@nIt%zFA?2k?cnWZf-6j}OYaxgJy%O7Up z_$PU^^$1vRFd|s`XhlCND0-9U=MzDO`8o_mn3uAH2~*>F*0Prd%i~r&%Y))6`Ws|L z<*>8iuvEdt2_nEMhFxeOcIUl%A_CZnLxtaO%2@I+?|sVSb4K&9LTDBmcBKok8&$L& zx|6@`?DBhJ?SHU91WQNHW@*bw?o|G^ zLhgU%C%m9PbTxlp?5}#JFF@>|{JDejXRcrT{WyhJ-)Mey!S0AO{F$kDyG%hlbeq=p zE@Sq6ieSIdux!DGg5W{Ju3RB@lMK7^1?{x)=<>H5k0EI1x4h@KW0Zh;hQA60{fYkl zF-cEAL?L#^4ZDhk*ga#|RVu`8o?%zH5WC@qU6q1%7$9>k@sICP8fqHNvHad#y(H4` zbB3OVYK7RnVc1<$h}~m`UG+ljrW^@G{^KxAw zcH0cQ+J)FHHSFpXVmHpPt6PZOjfP!hA$FAwyLyG#eV3-kTfY#y14Y|mTGBet$FTnQ zZJLldM#Bb$5a6kI+VQkuA$FY%yGDiBRWj@v7h-3p>by+~vD{QosYhj9OkNsvwii*I7kmptTc%rk4HIQ6oj? zFUbf>=>$)}PNeAFWCtl4X4w->f~7?87##VfsD~m*b3(8m>%UEcW<=0UC;0LRMNr-e zL8N6rgNE9EaP$|MqBFQn(=UQ~ir_iOgWeBLF+0vA7*7Oqbb?4laElXy?{WTr*odGs z5!BHM_Q6gJ@^|AML~y5N-)Ry&`Lj&X9ysz#(HKRLhH9d=^WFL{Cqi5S1b{U2xuMq1)`gxPaU#`PCv5?_L6ziBX3 zG0u0w_yO*JlZ>?V@*wViGa0WZ#-2Lk*@F~gMJJ4Z!KMeT?;gCc*tguo;g0ra`9aicB!*ZsnRes-#7 z*~!O@bSVV31Dm%U+70juV0(nY|kgwNd}*JDH-NTv`NoD}p_c z2R-T+nLXSjm`Vhzb%JO`Fv$b+5+%Pf14Nic~Ba&&^`ieQKnf|WS`dBupJA`vvz30{Yt z81+k|f{B3cnRwN*SDOTzzm+LE0!MzMK0y(zaYFD4)<2m91Bf6=C%8%xv~fakzh%F( z+ep#(-^d8Ubb_Z~CsK5Lq=OV)W7(-D!Ez#a0*?Gr6srg_oDh7;>~bbS3nJ*D6MVgk zB8YH8u!GspqM^1Qym3~h=*tmW1Pc_w3y>GRAJ8ni*|PhZ1j$4&Pba9a2>LrA_zA!N z?=&I^CxS?wU_b1{AYT|BOaye=KgY6{m;_IMEmO1)j{F9BtRh(EgrKcuH!%r%5y2Rp z!1ppm(A){Z0n0v&hT0&X{Ypmg_b@Gj^@`wi$cr9iO3_fu_Lu|h&_xkUa6<4J zvqMdS21L+VCpi5QrRXXr1bZy|aWvFYbl^*wqK}7aDVm`Oo`O8+6un~E-Aw{F5lqtw zYAS+QCj>_<`->e$1dIr3=mfi9C-#G{Z+8&ELzX?)BzWWtnWC5B$ZtOwrU(`|A=qu% zbxne8Cpi9z-ab`U{h%YMit*!{Uo(R*;@H^^CvV7(K9_nCd8 zNiduUCg}u~6+ss#1d}cMqisftE`KH?sHhWcg`G&z>DwHnsEuV$H3{w~g3WN`m!fz@ zFvAJK3%LK=Bw0A-<(6WzjHd1u)6B$9cPVfxuM2b$tJ4n%R%g!(fRuRF| zaO9VwI7N`DlBh@h8F@a+o}L1iZd33&by8fyE&+aJpmoxN3y;7&!b74o3> z1CM3*HwjXRV4+UXND;(4AsBDj7oPXO#MH^MKY>6C>Cca3NR@TQ?XVN0{@DNrA)UbU zpG<-WiC`-n`HlJ@MKCKU0=nt;PTc>5hWXb5-e7jP$=HM#Z`K*lJVzmwb;1~K*-xXP zmb1gBWX?Y8uZ1*65p06I=xIP9{ln~DCV__tX6XcV6hR*+1Qjg%?6XD$p+s<!T5i(suHI0SjogG>>WwQRRZFqa4(&b<&a%6rVg3d2W|rO3Wb8+b zi8^DLVr(50BVBQCf#3f(8X=uOAww#q6FdPsv17d3Czz0kAQr#>n*>XV;4wJz+cA15 zf;1-t4e344IT1VoM}9j-tRl#8LeR*v%b5f%h@gi~@bzO9L4*^6iFp1k8fqze;~klz zFMDVaEKme5Kpym{_s8{blOUN0=II3W6+wR|1OqJFe$)$59({IZZ?Smt~K_06JmIXyXD>nXMb`z7J7ZHrn349wUg62UH&;vMjG5atY zYJ+_CEg8Yz-LweSD}vV{FM5!P;9Xq*HVGCI!8)Cwiz1ldgkZX5hnfTph@i7haQYES z(N#_eR^$3N8fqyz@TN@B$1z%pW+;NEAP+i42bkU6BybbKG@YQPB8YWD&>h#m*BcQq zBB-Gg?1G)x55B(HK?J37{o5pXWuXc7!3f=N0-Wkt}% z3Bi51{{4`VqRU5Q1Qm6Ht*{d*I(?Ia6#b6%ZzjS0M6el-{8ALJ2xd4TxP4cy%u79JUwjZ24EK~G-XDx!2ieMMyMehf+eC0u0|3*W6(WUiycUX2$ zDWLm+Kg09y%`Ob0F5IDap{(jc2Pa+FY}xNUXvFx_AsOS9E`iD_{1Mh7vzZrPJe zg4IN@5sv((K_5lnbwaQL&wnxrS`k5So#5O96hRdy1cxnqGa72s;GNfGioWTjMX*>A zY=b=LX|Thx2bct@M6gIFXsieZIw1(L?C_s=2`Y~li=Bd zGDQdB$ZwDn6~QVe1Pd&?g-Ott2*&9Ir4&Jw6M{*2{{4MMitGb20!t@&40a+#Z{Oe` zMPD;J*(6v(1RLPUFGbxHL5dTC^SJ(P5;P%#n{|RS_fiC9oe=EC^N-L_+Yb)!mnr(J zgBHOYMX(9-p!b7P`1=ngfrkiY=>&BYK_4dsH{kmBJw^nfL~xx>um^Txkk7Su5J3d4 zf13o4=gJhl0!My>JW3HPc0%wcvm2NM-HBj?PVmP13Ez`MUd!(V69~{lb|jU+@KSjx|>o|$_YVBT>nNx zEk%3x$`pOjR!h+oMerEpL8oXGu78^Zqlq9}C%8rtbaO($u>SilBZ4b?WCT@pf*r6E z`@xwu4kB<{_DqxDAtKlgM}GUkU_~&;3BiYW{;f%HBM}VJ34U2k5!7))(8{uRqoFp) zAH6D5^i#AJ!QF~r59C1)awYuz7n5Kr5v2|GmnHpgIw>(g}{iP7Ly2 ztsO*g9sd58N$}DuGDYvek>4PvD}uF72yV3O4kp16B1qKvb2nIVLcpK0EUT#DXK?F^7 zf}^k#gZxWN2NBe_>{TYg3p-_s4#Sb(AdgoBcRL}t$FieLg8oF{(FsZ`f@miM$(H^0 zG9yJ7UX~Gr>I6^1PNeAA^$t?B2Y>(1Bv?iSkHe8)ih3%7bSDHpJpb7wXify(b%L*! zQUn#85Ol%cKS4u$Rj0dY)>!s~5NJEb&X;7)js*G z)_lMN4kOv*oEx7(|5-cQwbvi*8 zMKHk$!AxBLHVGOKL1&%d^b$(ZRZa*Jas3+&wG9>POc5+_LhvxIf13ndiQsmf;P*Qzg8EJfqOkrO4Yfi3beoLe*Ctv7_bGz?kQY73 zl%gMS{o5p%Nd))k1nm{USSJK8{F*a|z5qSK8Wq-Yzi zf13pN6TxOU@=H;?BADTX-~z6Hn*<$*V1Q2W;{uAHrW1lK%zg3EqO8806m@IEbJJ)_ z+g^|_)xX%f}Z}|JaCc!`=NY)9;D1!D*2+Cpo_dFv-7oV3AgzE&)z)qy- zMEzh=M5issvHsg6SVaU+!;xQ#;uJxa6M}t~9bpng5kW7V;M=(rL1iZdTd@8c4YmE? z?dN2Q&eqc+xKj~qg}mtffKs#<>%UEc6e3ut6Eso;@lFU{#`^C$Mg(Pvpn*>C8tlX% z{}|~Yf|o3NnMtteS(%~(aO5}035sB)6M|Zn-P|PTLj-P}AVd+gbVBesvtOTWr0Cox z83EG?9)+Dq(OY#Lq$u68Czu3_iQo}9@=H;SBADoeAl|aCG6@??*#zkk33VBe;B>7Qusx;5EpL9%M?IBskL5vfE zRLed+%}CK-Ps#|Y=mamqPNeAbnhqj(#Ik3Y1Z#<48yxxV2e&DL*-i-3EW4&j(1{2J z>I6Ser3h*}A@~G;{|*hc{ovFSGDR1!)grh{5xfd{(1ZLUvxk`kQ;1-dPS9ErjC4X! z(XxM^VnlEa5k%<(@4`+D@}D&vM38CO_n8Dc9+xS48;<-2IZY8f=!D=b{{DwaFqjBZ zbb|7VpraFlt@!(AlZ_Pp@|cXEtWNM8>_mz_tnMI1eJwl7B)FRhHo=i!if&N^lbsM$ z#q&>1f@mV>qZ53WO%YUcLU0++KSe`rKREWNOwqY(v+nW8;# zx0SR7$`X74!tOEa*=pYFE*A_zks*oJ)^k{WAz4pg+;liP=4+AbfUdh|A9| zhu26if8SZQDaY)3(uDqs%Z*t7t9selA^V3Z{_N#(|Bn=qYjEv=Km>NCyq*pdf6V&zfirr(INW>6a5nq!t6s*KnVcXix7we zd|pmZK&yfYKwwcau;%#tx6)Ir7(99aSW{*vO0o9GlQ!b|r=po!G|iFN%M9E3uFGOC z$F0DhFj*0{9=~%(yc`-5@p5jb*eltQ&@9Nca&k#Mhtx?qu_x>=??BA4mqQlJx?F4W ztLU@VmuGPO0|p}G3uS`|*^F>L_iuRJg!3Qe^*-lbXX5X_2k`o=Wmi*PV}kOkh5DRj ze~?U}T1NBM1xHsqUc7y;JYJkFqaDxgRQ|R??tjRSF6a+AqQ4Sxn%Vu)P$Nhof`vLk zBSjEz5VR>sp!vIw{I%2lot!`kV1~c8MfiK`9+`lzuhtTYxrwlgum;_Ur*iN+3^%_MZ;f*BK)0RBjddkuEl$=@|O#_f4nyo;cq$ldqVdY ztNdjc{yG-n?{AJCsQAUJTRYjVZ$4tE*-HPN1D%yxGd% z2E$*sBK)P0zlFNLM#^8j;jeoU{;nf`?R0-96DVG0`0G*7pZH8X6{_c@XCZc547=EZ zcK86G1u@4gyB|8D9k3^^k_lY^M}7%ys5*SBLC~upf#$Ck`D?5DJ28$D;47sE*1HIQ zZ?2U6`wH#+`nOQ|+iduYE5hFl^0!9!*G~C!8UFed;jabx>!JJm+D-9B82_^>6)VmX= z{Ixdx^)JHTmE|(Ls=B`&V<}x{EIqsd1^tPWKK@mu)9lK4jS*jAMu=BB(RtId6P3eN zhQnJ6I@AIlNgd2WJHPo>Rr$Nw@E2dupV)z`8+HQ=vHKCH*#6@=sGyzJzgL#Y1ip`U ze*N>hD1o>br}?|B2!9jF-vZrVL-Kcikbma}7vZc9IqRT1`*4ix-1)GbP_Wmd--~`d z`nPD`!KBqg;&RU7i^ZX7jEz1RQI{?F$C}(DHv0AR)siCW_GGMQr}t)$Z1zrU&VH_G zl=IVZyZegJtNZZp9HB>gE{hNCRB`slu<9Ri>(OTKz-Y=ReOKJ{Zgg&^>T{ZO8X6k$ zaIT_@jn0MV*y#5TCPhWmUC6t_c4C-V00X68aI-bJw=gntuL0nF3 z_=?cVosLFy-=7m3dj2`?cjV}9qoVUNbr8vy`PmzZ7U!5>O?HPk{wgR5sjos>U1Nvm($%e%afkJ7me zDEEe_YFy62b7Q!-W!0u|4>_Ml{}z|i11YQ${oc8TT$6KZBnCrFG!;*`A$@XAb{jl| zXFhJhh45vi7hEpmowO)7yIOQ^+=AD_c_O-v&KpAvQe4jOzT0bb%Xtk(pMb`9TgChy zE-SU*a-_G`g3DKD58lgr34?BMSr&^}*cXPKV?(_iG52zYu%w`hKjW64P@B|X8--@7u?VZ^$y*=%-mHfDC7 zg3VyF7;Mw=2SeT2-gK6bk)7(!n#i&|DV_u`%Sca2VG}21dqCp6ON2YwoyjI;r+Yn#t}FzeHr|zz?Db^2QU9 zt~+=LehpoTo)q^qhE7dHyQ~S>-o*4NX)Yca5-lRkbY*(7(o?d

    `WJIUQ1DGs~N$ z8e_cDkZBB3o+u+TIUPyM^PicLoSN))rKR(9Vd&h6uGI9zZ1Fx}qDUIcNaj-|Ez9dp z^J0=@CcDQ$?@IGbNl8w_o8+`aj21)3MVXbJotfZ~O=*TP*SPe=Y0Q;Br{rAAtLIG` z&Yql_kmOjnXq+e7gG^i%IOtNKa1lX8Fsrvor^M zDEZ8jwCS1C{B4yoAsv&(uVe0{q~tV=s3seS+3HU4`pYss-t5dYe~Bk;vR380lq)4& z@$=NXyc04#m=hUDnZGSMu4PB;ul}LsjVvZ*hR5xV7Q>QP;ltxs$;f-}Di}_l&N#?f zEQFQ9m6I@5nq9@h+12>Tuq-Rb%CibAf>mUdSY=j)Rb|!KHLN z*#wr%?m)W~APvX>GFcY$vTQb)O<_~nG&UWF)S2);o6TW!**rF%Eno}TA|o$U<<}UP zW%2*~jeMW?Dkc7}!cy9E;~@Vl|3u-}3NDCRdiGNV<=nqN&fn(+ke3139}2L5LqkiQ z7iPwLRR85a4>|8YPkhlE%>6b{`qk81{5J3}TMtdguh`^oA=pd&w*=G^Fl&q6|dp^e}&_nzJEmoy?>R{_OA*>>|cBzi^0Cu9sTUdVp%VSAAeXM{Oiv8vHsWtZe{Uo zAREMPV}qHK{c9rjuT<<`>Da#}6|#TL^4q_X#r}0CTg;ZQ9JZ7#W6RkJwvw%4tJz)b zZnlQq!|rAGvHRHr>_N7cJ;c_rhuM1e2wvBr_BeZjJ;|P8PqU5e8MX;l&#~v(3v4rd zZDm8^aFwf%&$kfB1%}}|UAtR+z8`=w{d~SXK-d00-*Vt%;1bY!fX|l#Yy`dr{sC&- z>hrY$MgvoTyMSkbL%`?2A3&9OpRXm*8*l?NfO~<>!0W(Qz~4aifj(a}a0}o8)&b{% zvV(lS7QkpA@;3AvcpUfza1ZwRHUMLXKzF;(w;s4|sLyu~P9L42;0_*H?i$xNcK~kzQ7-raO5yhv4{!u%h98%f0pA0+ z;&-{NKo$HRnGKu+`r^mg=YR_MQTlO!{}?|WcpYegg$*l!AAx~b)Uh3?hQ%yXfRBLA zSjh7*-~-%P40RA_gk@ce0UNj_)#rO2h)DDKCIRmQ?bCg}`++}zkr^02pzb7}ZyxX! z5Q}xfuL0L*AveHTpgb0cw+FnyI^Z>+E-vh*1N(q~fX29^zy&M@HUmDO32v~s6_^4% z0vrKKw{lGrpTOeYF&vygh z0u}?Cfe(Q`Gkv~IKv~@Imjb*EM9ud3Rsk1*fpdJmZ9tW|hzU3ebeIR0V=KZ`7(j`fp)7f?}6Wdp{sqqoxrts`FzuXPk@{5#<&Cj z0IoIIFM)dZ_F!eZHl@d7$3|m={2W2Qh}gF`)Ze%s-&o zLl`>XL!je2pYK87PhjN3*av{x>oIP?MPT3~$Rki?1M&!*1Ufv5c!A5n@W+rxpw{C) z-%Q|B;MOM)FHq@8#0$I+w0jEi0>1%6pGLgEwHpyH@Ck6!Gl&=X2XJjdyg?H!00_#B9N3F8Zdyo~V$UIQBK^!e@tz6IiT`Fzg+Wp?{~6M?sYmaq7HD}f(@ z_*b$21C{sScnbUm4Bd-(fou06Uf>hprd-4e`~$f5BVM510mKV@1@t_Kc!AQdAzt7p z(CiS#7dQ{}JB;xKDjdQ10>^;pqdwo=z%Rhy*L}Vnz%_4R-vmwpo!<2M)&hS4qu#=C z0jTq~&o>7+19W@G=X(q&^{&sC2pj?$AH#kJoCEqC$36#?eGmH_@HPj=p?G11a z-vnpw&Dpa!tA7UP^&4^K@ifjX7T^pc2j}54a3;P9uPbq>Vii93m*TvC4O*>1+cs!h z7UwM$^6cI0D9+dS;f(!yE1CU;bBV52D%*>5iPv#1@hQ&Mvn($Qv$C1jn!>tS%J0AT z??&_~2Hys5$9Y*Y{C9)@5qLL}O~ki?G-%Rs){}wWX5ma|3ci7GzxnYwZ_oP^g=qV; z$8a|EIL@$Uf^#O$vYueK0ONs)KqB-LfGl7NFb%+FVM8I$ySU)rHgz_u&R|7T(O|21 z&993SXZp^-Rqdo+yz-aLM!mnRD*}99;#*#|K>J~aKFO%RVAP*C>ivv*N28u-)Dw() zoKctO;Q9T1&d`rF>YI%EGe&)*QSWKgpEl}G8TC=JP93sBMu>WdQ5WL^nfg|t?8Nv4 zlw+K@ynr8!S3rA=dq6qHFQ6Rb7*LM!3@FFA29#rb1IjVZ0p%F)fO3p`Ksm-gpd9lc zpd9ldpnPm0a?Fo__LwID<(Mx4<(M}C<(NMK<(NkS<(N;9=kMQ9+WcbpKFPOyeFdYA z1<{&5!l;)s>P?I~ZZyND{96|7|LBvDmvYNeR+**hN*^*;*Q+||8LlevEzf_5;ZN0- zzfeQ3>Uny;|K)%Cw?e6|^rc*qPrSlX)s;Tf(5rf$eyZL+lg_G6D}AYCU9aj&f7NX0L-X^i>PjCvN7t*m(w8>+uj+YvBmUAx{9)XGSU$h1tM*|= z|5QCsZ;Wpk)${bm{0cMY*ByF(LaDCWml_RyNPhoRUFkzpjP_Jl`Y_sGgcatosw;hH zn$e!>dHPI4Pj#g)W%yThr4OBAw5NKWJ{$T{`SFEPJx`xuwAbql*Od6CjyHTR>Gg+= zx@o`8&_86<*NS@H=d^{-Rcw|uo=Q>RrMpq@rPT}C-=OP57KnNt57mWVr#?JP^i zsr;FB#vax9th{zYjDAd#dRfKm7+D9m+$ayKinDgU<*D&~LexoMg)9{H5b+8-sxxi} z8`V#S-y8hf@$-EDx)maSZ^(<6>cUR*GgoWJ*ao9+=12Nf{je-q7}KW_c=h~Ww|-}2*}C+flvIP&@#BIT;i@Xd*D`E~s`#cen0fsz$wrQEy|^s~L5gM;J4?RX6mtWSz7O*X8+^XHM_)>x-p6Pf*jS zw=(K{U9$i9HZ|(BpXd3b<9=R!i(%i`sHYos{d0}s*9pGm&#(K9dW=zDZqy$z>iXw8 z!!N3Q%lEIJmofaps_RpYy8b!I@N1`TKg+1|^A!K_;pYwh{H=|81EXGFt6QZ^|Lb+V zrSBh>m1yV_jQTjO&RC>Yx2%y`o#9tpzUAjnKMv*{uk+@E>3^uv-ec5<%er{wFUw>- z&)*8IZdv+#vT%iqZ~6T*`~R$_w=BuWh5U%ikA9B=9{^>**%inHo&r7wDj>k_z+_+( z@EK6K6l1-B>A(xXm%ufljP(U(1KWUafSO^94FKi?F9F{HbxJcf2)Gm24g3JqzY3pn zz*1l@@H5aDUq8nI4*4}o8R2z>2q3G@Qoz)av?;053ia2mJ>gqOj{0v&+9z&KzE zumpGrcn;VLd;ok8_<$;98EXV|0{Q|YfjfX1z;fVW;CWyV@HX%%@ICN1P`(^vwSZY^z+7Mjuoie4coEnSyaRj!oCAIZLdwGzP!nhZv;(>U1Avjh1Rxuj53B;# z0nY$00SAF&z^A}>!0$k41;#1?b$}K?M<5m$1h{|{U>a~Ium;!wJP+&!jsPcsFMuC_ zKY-HsnqLXH4rl_j0d5BR0z-jBU=lDJSOz=*JPB+A_5p7J9|7M0zW`VW!pZ|RfhK_3 z!o<0_CB6}bV%3O+^%-kW<7Ydi#0rvoagFsVtR`tu56~9v7O21E+ z)|egw(-3&&eD{lUc**wQe~C?xtAgNpSc~hCVquC9Opj_zj~5G5MZxr>U+$hR7M@Ci z=NUhqXN!fWGGz`2G@5zElea2@=Xt+)HWy1gRRzyhKc4Ny!c$G~?C|4xxmb9v5j^4^ zJsO`^iiM}T;MwCB&%R>esUdjw`|%ts7M^Pb&mljaBgMi~Q}Dd*$Ma^f@YE7KZ~O7Q zTP!@+37+GAJnt6^Pi?_-(vRoEV&SPHcs}yu`J`BQ>I$Au{dhhv7M@7K^MxPJSH;3p zPw<@e_@GAJ0|A z!qYFT^PFwug!6H43F_fyz*6b7OrQ;;?=`$L!Cc@98I6^%a(#1>1Z!z+lsRIZ(8?NyH`dDO>-0Y`2M4ozZH(7=__1 za4XfjuEPJ#!oCk)J!~LmCcm3%h|xRMg4+(ql`hU8TijMi3;pvkMzmXk*F-inz${kQ z(q}*N*^P2F+~`fHHWRuF-=p9)Oq*-XaZecktzBK;6Dvtu%B!ti@9=N^RDMQkeU`Q3xMuj#^WCg}zWUyBT1bA-)6;f4DeUWl*T zgziqfj$`xSk>9VVvkev&58`zeTL24w$CExvLxja5XkRclLxt`R z!LW=N^gi(XF2ucyJdVKmT>+L5wn{`jT-YfOcR?1))(8#%1RRdF))wwsRC>AR$kA*L zjT@hl+)CHWPg8E?#=VmT^|C#`w&}*5m4)f~wOlvml)ql~?_SYA-ZSizc%5hDc&yOe zkL>XIpz{Bqh;5x{>lX9CjBCBnZNO^_j4=1E+RC^SgzPc+<@dPhxNFXA-}_pBCd z^OEp3F@R>LXp<5^vs<)D4WM~dXwm{`_6kjU08OsYWCYM05SmFsqmE|$Y-u=Khn(@F znVz%Pgnd>3PltuZ8$feZXtD!n-VmC}0W@z3&6EI|cZ6nY0L?LI!m#e8;0U}Y+Ds3i zIUzJNNb><|7CVL4Q2ZKeVGY#G0Buf-HnRd~J`6I_&mZzNa__$kO)IR-DX95Vv{@EFa|N0qxc{_Zn}0-`6#+DS`O*;FEmE*e2sB~h zT*&NOsL=592vbv9XzmK22^X5X18B+!&6)t3a?pf}&w7)m0yIO!_a#$PQE2W9;H|RI z+%Gh0zkWc}s)hvGudji981C8SQ7ZejqE>_KmGmJYt!YTt3F&o)^kE^b6Ob`d^l-hf zP`)1#wfX_=>xdq15El9|={li#G=Qe2&^#7E(-4|gxYwuPs5XYCKJNA@sA&ofeq9fs zX%0;b+}B*N&Gka_bO22hGy`x4R>3x{p=pKtv!urVnA8TETX2U~!8TQ)3B!F|1vTxU zX@L8z3u-zDp63H-Izm$)_hlDsb0ajRaqm$<%}v7F7NN0NSJeDB%kTS#l=CAk|HtT+ zOZ7I=PJdOcR9pYny5)ab%lG`BdMLUb7Vuy#1(xSv!{V8|tt?hT{HGgV+#$D0I5SiK zs^NJb)$qIz`R`gh_2XJR^`kbvFYv7%W=132*VhdHuwDgMXc%T5-=guX54l2A&Uh@j zL95#I%1i%^KSSg;;0fSypf?ccAJ)Z)fB9{1z`Vc;9?Hc{`3gK!q&uE7@}F(7dClUm zzo>r$u)ht!w+8udFjjsJ#*;`!;5?acWAQyP39D#R#2T%1+`*{U{!YamhH{l1x06qh zD2`n4>+*%qi+P;`hQK2!hw*!lnB zK617A{QsZ-OkI^X8qVGn=RQ)V*!GdT{`LIASqAd0i!&Exi!B%V{a5e!?~_>TE)ar} zL)8P7%0`ueZ2tFT{H~&Q0AKA947mNj*#*+$_5d-X_*pCeE~CJ0)qADm<-eWHb9=t= zb143vpI7qyb6@fsk{l0IvGKDDzVXsTVRF3~srsDH zk+0L=DL?sA6*rgge5jmox$L*hyRzdY2Y>QQR%Sx0tOPe6beb8Jz`Us$k@dPn4j9s} zAN2pWc{4p8S5~r@Kb$pfd~(`UmuD*8r{RIG4U zBgzbvH6Fq9m{9Uf-Yti#1k>^B)6|Mqt#Vg|uZFH6bo@@Orr;cll2xeKt3r*w5oM=@ z&t*5)?A*LS4Czt6bg6-lfpF68lCfbDwVC~yU`20X6r6)G+d=~JP`ouztK zh+GgFvb0Qv8sP6sIk0M zw+fMWhIXsabU|3}3atm0sn8UHZWU^P437K2G4~sfHi^iyxJyv@9U}ZfB{qHxi3IpQ z+MEf2&bh zkIEKQs&O{UR-{*@sV}N-&Ld^tu?SveXO`WlU0*5(Q8|LjBr4OW^isKqN;O|sQC-c) zN2&fSm0PLYMdh1R9;fnSDnF<4Ybw<^{z-M!|MKt4{HuCxqu$D>-%RyERHjh5kjgbw zZlUrhm8Yq^NM*?JC{lx0jusn57cmUBOp@&~9qb5hoGsUMd~ zzJW@{FQ{URuP5!y*N()~ok~+*SUvKT)JX4mJ`lZ8^+`s3hEdO|Yk2-SIh#1<(F zajg|^pF1q;^66~2-bs0pPd8If+r@Kmq#5f-dVXD(Z|Yhvzjn#Dj1XD=`j0Q2zsse% z`rTpz8S-oOV&emdO($8}8cZhtxI@Dg-{e{QZa}lMJ{X_N36o}8zU!?j8(*HsAhsf`LyO_{L z^-TBNAyU?RQF%L+NmNdzk_EfP1m;oAyW!0Uzzs|XHW7B9ta5G6-bLJZ1bz*yi8AOlzoPz7iTGzVG(ZGg5wdw@SHts~G07!HgA#t<@5dVxj2 z3Sbp*7qAA{2y6nj0Na4=zz$#+u!nFACC3@y3*Zkz7!E+?fC!)>z@Nd^6le~#2HF5^ zf%X7@E?XDED3qfC7vKga5f-52SOhEuRsySmyMcRw2Z6P~I>LICj{uJYPXHT%O~4Dl zF5nm;3CX7Yt2Ke*eI2HlRftA2&;BH_eunE`> z>;QHFdkCMR{0uk)d;$Cf{0xNRgQXl$0jLO625tnp5cu=rI0gf^11`V~Ob6xwi-7xp zwZK+jJMapyhmec%Fksy%J7y--z<^oHA)xd6G53mogfeXM7z%RhBz;D2x1io~9A3u4+2}m_8KCc1P z1|or2AP(pc!~;Wt;e?SWIYtv)C}#n4ffs?7fLDRNgaasF0}cak0mp#%fe(OBfHS}a z;Ah|x@EdRim=q~72PMa9U>y)rPvR<+9A$tiKsCa(C~E@^35`*5G$k}g*%D|4bOLSy zZU$n3KEMFN0+b5@{$u~wz&|K=r3#2h<0a0Ly?kfMdXM;C;eLlpg^<1J*{IhXY~2RX`b_98e#K z0kVMkz;@tg;CJ9J!rv(W0m?js@c~)`y@0X6Okg3f4S1Ju2IbelH^7g;pTIu=KcQ?2 z!~orap1>`@SYR?RoiH2aW?(B}2g;X#UBDh7mv8_j$0xw2z!~5>;Ah|xU_Fa*1+E4v z0F{7ifJmS*&=iOQS_311Q9v?~0elJIh9ZH-Kg8z`umv~_yb1gTus?8o`V;oRM*#jj z6e|r>0jdMF33X961)2jLfR4aTKvzNx%5FdppeN7^*b2N4bom>{3t$y+H*f^F2>b

    czyaV0@CNWM@E-6X@G)>2K&Eidy(OMd+8AY1fIr)V zKS6;%jpAmYKM)V_`>p2!fASLdKdl2c0LK7U%3^hamOu>99q0qZ1KGe_;9+0`a1b~O zybG{U$bl`u`@kvSFMx$vtO?K>NB}Z`>A*~2DX<*48@LC!7q}mI6nGri3Ty{<0j~hB z0<5&fI$VXm0YiYXz<6LTun1TTYyq|by8#xC`^|uGLK&3pfg6C1z)ggkQ4Rsd0+WHc zzn$@j66-^ogTCoB1#tmJpHlHbWnekUvWovh?{vXbA)N`5CR`JJrfce3L7 zolJfID*1h^WZh!Py2X-pizVw8OV%xxtXnKuw^*`nv1Hw1$-2dob&DnI7XN3~E%xrw z*A6``Ae_QP@|`yI)e-FBS5tOx<7FI#g=b3V8*l?k6or z#8?uIK2%`pe$%^2{tEd~_or5rZrB@SukKgnw>t3cGl2V1_pcHy`-SA{zSY6p7#o(c z3VU^5E0+Cf$)}J!W~7u)CHX3n=T6Y= zpGKAES=~=7o)rj+7lb|Xb4K#T$O3;wh{pYZ6f7qBezK4JLJInk{0PbCl01gwZ<9Qi z5zI`O*RoPs+Z}^-Pv#-fs-FM9Iq2k*w%FpkzetV=W!*MSoA1`%Z z@&l;zt)7w-FaCU#*xHa>-FJMH>~AKyy5AT}IK?)CWUu7>{!NQj#{zxb{(Z;P;5_0r9Qb}a_ zx$sksnfJAxBmZjuRjn=w`89d>2P=6Q93U$5d38`q;z@A>$yXnif?6aW2YG#Z?_cnH zOu3&8?f9g$jC8VUMd9s+xm6+}tpOQWfk3miJ zre|ik+}TrELV9XOipT3o#L+#Vg)1pJE!pMH%ydt4dD6U@(^yibJJsV#%uY?6h9-VB z7c9M+sW;1&H7#{qdWtIzZL(N?J=LAzU-Nj~iEgi(i;|K(DT(>^vI=uoR!VY$^pP*) zJxZ2BJdD*1I?tqRPa4^!rKh=&gw$mI=vS#H-i*xTRCneySC-f9^|+D~vlx=W`-*^) zQ#{F86I|Z(iJr7Ju7nBhOm_lLWtPY5ie|!QN_u8uK+R-#W{~nWJk}J?RE8c!wP)OU zLVB9lot%~>MD4_DTk+aPyhgJWciQ-D_jnJ+3XL<|nOPo}*F7%9BT|{_PDv?J=u!y~ zjS*OKItXP~T&d}Jt}U+=d|ockQz0rjz}&CP6+b9;@ZjODUPA`-7~JR90WMcmbU-Pe zY`q3`>mTci9njO|LJg-GuGlyd#`PQoQDRoQYl1s15%Gyx$ixI=uAajObnD-z2P_8n z@1Y#@?sseVZv9-h_Ud(8>|od6Zr%IEx>yiT^38vaZxF^vk2f=&Py2+aZr&&H1mKw7 z{rYt8;c64r1_K$Km%N7uyIk%pbiwONawn%~juJ4O=?R)B2;ckx$Jj$Xo_}x1GClv1 z`vkP}VmSH??(fP!%3v7yF=nusiZ0jqRP1-yvk(k!HxEurFcyqV#6Ua)Np{ zJ}oR=?rHf-ulxG4R#U>=eiK?-vv~;gW@MUDCXJCw`NpJE9C!MJG+!3dTPtjF( zYH|YJ@IzYExU4J|h2v~04p#n$_5b*NU9`kw4)9qmH}yOZRjSWVe2j@LoJxFLh>d@a z{)T5=sP?(^MwROP%4|=~@mH1@?jy_RXUdRDI&EZ}kADO!esvz)5;AV8_|@}9RH>dX z0u!;($N2xL>kM@w27)kL6dFxJRw7TK35qvBfT%e~f<+)Iktp;j?g4lJ9sq+pi{c5+ z^Zz^Zwab#*r2Thh=ik|G_nMtcIz_DCa&j&Y_~h>Z&(e}%VFzBR-MK-K$qxdS4MKnDFQIMTuRUrJblr*9#1#xJtpjcfVrS3&k) z*t71Dr{r`0hOcZ%e7wOju>2K=XUX;tpZzs>*V*^}UpxLT_vhffJ8uf}hH9hAu@3xS z=e{3YVVKzS-=%lD1lA|{guvb&8T=5}=@j6TZwSOrCbb}gpVImg;S-00=YF^~r8IR{ zcRIXw;1hp4wkHSp+bJyf7#`sN0wHXuumAu6 literal 0 HcmV?d00001 diff --git a/config/neovim/store/treesitter-parsers/parser/powershell.so b/config/neovim/store/treesitter-parsers/parser/powershell.so new file mode 100755 index 0000000000000000000000000000000000000000..2c80f1d3314559b1f821a25749224162166a4c66 GIT binary patch literal 787064 zcmcFs37k!38$b8lxnpcuk|Z+L$TrrCUl8DL^MWqtrd*1WB?>+B*=DlXlJ@ff~U-!)a`M>XZ{{Q!R&prE{+Ol0MI}otc zzo6CBa{scdWEp61KEI+M*1*b#|1E8ma=3BfNY;e|H3?InR$=;EtRo~Aljv{$dE}Fz z6HuReJ6fMwYvgCw&3T-5>QiqQkCD}%laAHjM}Af=LU|;~Pu0#wShSn{9r0)X8u^(d z2>4HZCeWXj$V&Xb@@C@mPcB=v>-b|@zgXI}m+hu~KK$%nxE|@QGKeK5~ErG|1Z`r#$V~iMJq4x};wcwMu1`fM#c(2iEy+@_>>Sgt6)9JQe{rZpUKXCBqwEm+y z-FC~+`-b=L)Vt5n{uDDudi5ROyVroh!+Q@MJh8u(HmZOBUZV%6VF$fN+&8ZOsL_M^ z4;>l>?$v)h@~~yE(S3UlAC67>j_Th#Em|*G>HYeTP8)UKgdBG-R+Dpb|51Z4C(4*k zxXs|v<3^9@-M7Crba0>1Y5n?Ety*LBeKqQfKZk{v2KMdSYqa>QmcaWG-nw0zn{Vk= zyGHFA^{kr12am5gI_-M#tTUux@7nh!jqKfT?BG$uhYlWFchrp| z#`UW{P;^nfc8xj>tJkYt6aTnLYklv4!9xd)9z3$&z+rWV4;fv1V*R1L`;4zMcx1zo z{gQ6Hv3GS$rFyM8HR{wzs*X)XbF1tB;UCtbjsFW|`Jb5Q0qY^GZMFRwQ*tm)aobuV z3tw%|!`qWu*ctxYAh+`h-<(AFW`@%i$+EUHJkHrtS=Mfb7m)Y?hF6gIVTLD5{5Zqg zOZ+s$$4mSy!FU;_h5--8<(-Kc)c!>agV^n5%vc!`ZK1kvX z7`{;A$qe5h@f3z1l6ZTDTQ=p>mEnmJPi1&Di4S6UV~LMocvFdwXLz#2r!o9yiO*(u zONlRJc#6cAF#J}DFK77e5?{&i4iaC@@QxDS!0;{--^}oC65r17yCuGx;i(co!0>(& zKg{rf5C{}_oUFnof<3p0GO#7i)In#2#2YaDVTmU*{4t5AFnp=R+cSK*#Je*51&OCJ{1u50V)z>pAHndqB|e_v??`+a z!#|MtY=(a*@r4ZECGjN;-z)Lu4Bs#Dl?*>9@zo4JBJm9jKQ8gj4F6T)+Zq0s#CJ3N zoWu_>JRwNirNay_D)HkCFD>!Y48LCDXBl2g;?@t5_1{q92@G!{@xlymF7Xl!Zz=Ia zhPRh^WrlZ_coM_AOS}QYdr3T*;r%3@!tfyyZ_n@%67S0J@e)sE_+*I>V)%54k6`!$ ziH~Ra6B3`s@D&oD&G1zcU&!z^5?{jbcO<@?;aeoWlHr*WU(N8H65qh^Jrdu{@Gm94 zo#6*1zMJ8PC4PY6ze@Zt!_P?kIK%&w_-TgciKBURmf?jZZXJ!R|EnaP!0?h1FU;_= z5--8<3KCCb`1KO6%&`UC7!_W zo)Rz2@V*i+!SGQMPh|LHiC1R$42dT(e6GYBFnqqmlNtW7#8Vi)SmNy&{)EK4GW;ot zr!xFGi4S78GcdX2N+&BUhe-eytKrRGrW?-Pcyux#LqIkmc*?e zBkR9`#1j}kNaBSVzC_|B7_N?&6B(|Kmn$>;BiT<9!?#Ji0mHwMcrwFPKPe3VP4e3_ z{CA0WWq95^8d_2QTNqic^t4e$}!)r=>A;arSdm!zW2Rk>S%NUYX&uB%Z|Z2PEEr;d3RP%<%aV zPhq$^KhvJ!3njlR!xu|DmElVyK8WG(OMC>wzmWKNhJP#ZX$(Im@!1SNBk_d{4<^t& zUBd80i7#h(Gl{QccpHhYW_UM=Z(#TkiEn23G>LC#_>&Uf&G7XSKfv&v5hV&yn?CPT~m+uO;!q48K|8B^cgA;)x6&Ch^J)PnUQS!{cmPf33t57+zK4g&E#J;w2bipjEb$bE&y;w3hA)$NSBAeT z@l=Mdm-rxtZNPCGiFfuOsnfhPRV=3d8$K zygkDwO1vw>ACY(}!(Wy7Ack*|_y~r7E%EUTKP&NR46j^F)<45LOMD^2@0IuxhR>4t za)vLH_)3PqEAiC~-z)JA3_mXM%?vMm73II3;dLdxo8j#wet_ZqBz~CTlO%qe;Y%cb zn&IzA{4B$FOWZmcS^uXbp1|<<;-srG!`1dGiQ#JhssY2*{#!D`FP5hMQy8v}AKNor z9fx*hxH=9>Ww<(S8pLpQd^CdL>NtHo!_{&9G={6=?%51axQ=u!WcZa5-_G#FvUK0^ zZiX)}>)hpR9bkBJJmH5KzIh6*_c+JpePE{XmrEboGyFM;Ph%5l^7b-JNaJR}&4coKD&DTeFlcXM-t$Z7F*$rWL~u zTFMR*E*&0Fs7wpDy~uxBlY-dR8dJ4%%FHGqH)&s4Eh2O8>w9>E=DavNWl75XtKPunl)&ywho`;oB$IZ=7M2`6HMB91JGIk_7i7y>z67h1o$Vap3+Dp7Fe=76&*!8lfm7*abF z$L?l2UDz|<7riza`})i&7gEPuMfw7A%^w8d#6_e|xiD#r%4S0d_7gTajQtdXt%OYp zWABFG4Z?0ti^m@Ngd@+}@F+!YaUy-gk-0WZqDTuT(k~o&$cEk&Y3W4zha=l;Xibq; zPGmqh@{SGFDU#wu28AQ<+HfUB+BlKH;mB$m{zX49-}X*qL^!h0hVLnIrxO_!j=XHc z#}w)4L`H`rD{Od`BAuK_S~#-ahKDKA*@=t^M-JF9jv{wCk#XV31{?0CNd5F;m|?@I zYD|6#z%3Y=KIOu4ERVEnaUp*qE)>OuRI!j37cO1IS;YqU;{fENE)&wlAQg1}n;2eY zdkcQK;MkGuM7pOJK-N9Z>L-R*9|*!n$SSnXnNzTHYtTYgKEARJ7A(_fD-=zs=wt(C zDZFu$mG8ts)Rw0kU=tkGshq1|LbXN}e~3ays~H8fhiD6}gq$fMD& zKw4(TL7WsglbkKBSe9GbQYHA7Rs{7e?YXNXx3sVQi*ctr+|mkiMe~-npas(fm2GK< z5yrP{W8$GBMshIURsEd{L0Rf6vZmSg0L?ge)=49YZDNiG;4nq3v}%}U8E1RYFg+2M z?@lX;|DEU{Q_|HcpNWT6*g{Q-wVTW()YXCqG}=Q^Xt!CAs?i2Up*6Fhp+-xNLhENi zQH^#@6j~z-PWQ~8D6|v{?$BsmqR`q} zP+6nZR5Ue8e}*6d<2Ziq#_W#}ocY_8eg1v6F>7bTK8#1SL2R?uCX=_h)`I2Krd)VK zyUc28*9N-jdp(&+6W7} zYP4QaX!luAOQSW2LMvxMKBQqqxK;U52>$-l!Q7GC6M!EGs}!!R=R@!rVO7G|n<03Y zFn2UphTuiQ+>v`N1d9lZ*ojUjEcVfSAp|#3AMR-4x+)>2Dz*B%=Fu!~!KFX4T5*D~ z2rKpz7GcF!!Xjk9L0E+BrG!Puet@vpWxp7LTd0o+*)JH1>;yqu2WwJ;B~^>0$Ck`CkSg4E}GXvkU^O1-e?O(5|-tltfB>7 zDCFHR_H~b{@?%%ZqoPU`qm8uS*lCw`Vm%WdkKcb7NAd3VYK{%733G=8caopd`gvaU z!&cYPf-xFxaunL#7Tm7UI!B>3u;6-)RwD|noduRg%M*px$%3y>xmFxrXRfL)7Oc@| z??j=swqTw{Tcl{}%ej^XLoklUx_kIfS#TF&5ysx4_0!hSPkG+YQVR+h`Z@obtIk&a zumQT=f_)n8+qGsBnp^O?MteI7?G_8}*J$&j(ArqgOQQ{lLc7(11{$qd6j~1pifFVF zNXyJPtnKxSWx3aXKi&lqd45F%^}T*^pNC+m^DFCq#kkWQ?)3|DE%RP~RUCgoWqbYO z2#eT8_9e`42l>4M74xRQ4`D3+xeL$jD6 zg1Q-PnHf)E*E5~&&6Mf+PGZJIdrd{Rtc9I zI(XxB)1mwNc=+?UtLNMsLeCjZk64y^W@phOg1VjoOwSVRdZyDI>JjA2>cI{AK+!-P zp!(2LUej}fqvx!qM=VP{C9>!dL0!+^c$c%jwcq};&?8u=M|?y%$5RB4{{?l*g^2k( zhcF+7i6=c;P$xCzS(y^JlBUjbPvaTe-SJQqTd0D)W|bJ=3z)jv$cbfX$UrIAy}TfT zx*;u@A?tq!jkF5by$4&)|LEFczblNJQ(uJ zG1rjaUloSLX@-bpX~-pfh$+$#5!4O&PBN4s3$W{%PIqXCAV;YaG^C%PGDF%E=FgD) z)QRUh`QoT+%QvqGTM{%|#Im#{C5tU0sM{i*n$x!@TUIVoqHPl1M|u#f-6ZwggKY+9snFxALih> z>vypeC2z}1LS8XVo>-Rh3T2Teg1S8M`T>1n^b+|w-Jv`|j2!zk1Ubs+)x_&xg39K7bHaR#9-fZ4 zaLAPxbmW!7MAX-xSeEjNWRWL=y1Y~PQWbslp2eVJAx71J4P0)i4nyPb^D$Yw=E@$k7u)UEX5JP@`8-_O zSF=tmOY3?_W8BS_2jb%`x$q0)9fAiOOCqfMl&}cvHV|g8?rDs8 zux@4?45hxJScf+S+)9L~)>Xy0vaa?s!ny{Ubz)gsH|-+Tlxv*`>ek&O8ER7P-Y={Z zEVNF1M5(&k7Q7&+>|EZ%ghg04g)nX%o?q%q5g$_!&)Q#yohUOZJ}t~>jA^Saj98Xt z{P`a@Lj-j*_DF^@W9wJK48cM(#7A^9mIx{{V-{f%W{e=rU`7{;_%ovjcB0HEu}qke zjA<(~#IiJFKo&DZP&cCmGh^MC!VJMeGsH(D^P~#k`F}xWW{e{&!i>IzMciL`2VsW$ zE9+6jaDU~s6fxXi8K8*a{>q>CIXUvXknsM>T@*3gU-=eA4EI+)K@r3Kl~XBVxWBSL zMGW^>-bxX}{gt&SVz|HZYKj={ul(-|N2#IYj$$MSn=W?7yn_X=P?xG!#a)((;Y+`G zf8|_?XLEmLKV+$59rC0o))rV+s#wLcEY^nS`OFnTy;!f73^jA}iUgeQuvi5-da)kb z>(~?V4X}f-h+A3ccbfvjrWQKobIqZ1(~iEWVtP(iUrLm z*NF10N?1fGUQL+cD$akOJ8FF!hqo}Sp{}wq?m=WJ;}$O6}0 zHV$u0Nye^}C9NM3mUP18)pvwgmX@sjn_D7+x+RMxLs|0Ur@|7!LQBL)bW7e9RA$MG zghg1gh%kdC<0+CGmQ=^ClqGc+3ro6U^2!piEG@CKSR#VDC5Qit+%E0iDJ&5zv_yPF zIU!QRf|mr9S+bZg!$W5*8tp_j&&f9T~MY@v#4^Mj(e24NYfO`}+r#r4@~UR)xm z7uRc&p^EDsk&M$F7MCDLDXzR0)SdO`!J`VQ?(F_GQks=-nE(Ketg1cj`D7c|o!HH#AaPR-d3r+;}f?FyXs^EV8 zP!ybCVZn)yCAuQrRqY7bsxZ4Jx5Ji-AF`p*EClNl{J50u`9J%+K?eE8IQ@UDiO=l zlKZ7#_tb_6>X!6lmUO|cXFA=XC4wBql6)3a6;x)))r3V@5+p2QQ+4Wnr>)^o;!BF~ zNsq^9?@`3Jf%q)+2m zV4=<8qq=!A7Qp%!RA%#P!Xj*biZFiEk2kB&z=($}->f)jPkkw?jRz6<5O@`$MZH3p z7vsvn!ZU?|(@?51P%KLWKLBo^2cDln)|!d-p#!)KL2{TJ~4j3*5`ceGc#ir7KCe0bMNlun36h~ou&P+K(;b$eAYWyk!$tA=H_9^Nkm2Np9NDPGHZC6C#THq{p4p6# z-!CQ_-yb;`fC&`2-0kZH@cjqGqGtls2>|hoLnG%IhsMrn0P5pz=NX54oZI0eUQbX6 z`%pt!e5$a0wr0CnmbUl%iQ6uMy6rbhhO+(b^}=?+Lfgd$?Knry2Q!a2< z{=n=16rrtHB}Yq@@T(TSh=W@&uC%mG7g`>~wW<;l%TmkPAGsD0)U|vi8A{9XbwZ0^ zp%(E$C3IOW_?Y&aqM3MVLyQVNg;FJ5JbBW{IXTnV_y`d`c`^apDJ9dUunG2W2)a?f z?gZN%fR=>08@sV2kg8?BZO_=+b>aQWlOPKqV@-=w=Yps*Jl9=;7Lp2eOhu}@> z!+lEgR0x(KrnIe?EJkS|`l&`qEXz?^bc~OZ2qCCB}He7t$O)rG$;b6JnGtY+L5XPM$RWb+T`(Ly+dnO4IH zx}@(ULrJ<%tj_5UB?)pB^R}xPKL0|QMQpp02#eVNC`FiZCFcXn=IRg&_Pphop}xRP zx5DF#kzPfX8u2v~g*{6&d&IJ|Cpn8fBBcySd6Y%{Hghf15--57e;XRu*AxI*u zdKlXj52XlmHww51lt7rfQCNb{KfLJ}k!8=~I=ugrLJ?kmOjv}MZxZI)%b^wwpsr$k z8ly6{Rvy5#B5$EW(G$gk{l}XhClZMQnF&Bh0sE++DM=E2SW>LBS8N zIi4hiN8?NYJ|iqb!MlWIQElkUlP1u#v(R_5)ktj*4ipV*h zuq-*_G4P339ofD!!=vKm*pfhFO6*CE`x_&ek9z|!o7Uud@nIaK5$28&9^$1U z=0WO~IH*CrTvqBheE%WQ=t!-yBdm%eOg~balqTLeIwkzZOHAnVm9DU_?i1gjEAYEc zeS?Z+`3>6QYrbP4g8DaTImu8v7HQb^Os6~i1{GvFevY<9=I6}T2BEf=Ttg?hm0EIQ zStge!OL8KpC->ul$i1HZFNx#?3zHKck*D>_L^pQ^TE-aHq^XeEwUD zPo}v02B3HG`llA}$>SL|)Ds!%uk@R2L0PR$WolD3JarTDKtPKpP~6>h&YuU4yy*1V zERE~quY+A4g0;w1`Zf*|mGK(dq$)!!OY?u(&nrU&b@R7NhN_J2A`PcIG+&TQk9}RO zsspYHWxHwbi-Q|HqH+SmdFv0a{-uqP5VmXa&nbRW*ss!gV5Js+!w{cM>r|VJ=vM*`hM=d`S6|-O zlNL0lzM6&C|9B886Q;JE;wk>@*Y#HrPCw`B{%5eG+tu}i1-mgWWj~5R@oEFc|{-`~ z6N4Nt-1V2k{eLaKlgBFuVTBfdmB(vf{cG`g7|+aDt!*&HvfN<)yO(b;MNr>h?w1U; z!K{K^&vd%O4W=Mp;~b278zQ_2b!53~!SR8P1rbBP1>;x_-ulI%pQH7=koSw_J2;kp zv3zT3{WhR}-BUcXZ78C}OBmw6KjY|ecdhaDh2J5jHU-B9I3Bot&a&Zs-e#r^FKca9 zQyX`;?)MPPQEkNjRle~4)#(u2r?nhQE&GHg#Ww-CLyLFe@%%Q_)Z+Dd`~u$ppv8+* z+`ayt9tWqMW)3`O!MBJh2Y%@9I8fDjPrdu4`%VDXQcM1YQ_O~?TKngyeRHRM@369z z0F2RClg+G_s9$4sF|%d{pbF)}Z`~P)`nC4O&FxzS0G7FmPxo^a^Nbte`@b~S4l`?c z0G4U270AlWc>AKeUnG|0G{5t6KFvi?pXN!Dp{DuG*!4`OJDlc%T*%!oYG_XA&Hxk; zt)^VK!x@76!b31M0DnB?M7lbW@!`mj035)GDuM6&8VzY4fHfNH9W!fo03Os>i_NTA z0T`gMhM8G+1t3{twKlW9vY@2KDr;sf3c#7AuEz6yj2ib@@R`Q?(#*O)04p`t8)nuE zc>jaOnqy{_2|!Pc)z{40kMFYcmjdvS#@cCS zl?%Yr8tVl!Yh?h&YpkheR)qlEsj<45S)W-@O=HzDvtABByv8bMW>v)Z-#_6x@pG!t ziO=!1_pYV;a2mf6%Pyl*stU+d0u>dsEST~zlg931s#wulI6%N3u$K1UBzT236kpO(6v38qT zMFa4>#(Krf`V;Se&{(s~tX25_V~ur>ne|uzYH6$nX4YT${%eg@)Xe(Ff*&7sojBQ3 zl*~pPTy;J}EX$H9xt*7c2cT&YL-C5OUZB=4fuIiNR z$h|Bjg8Hg9dLcqpW? zikn%#!~-mLwVdwmXyI$ziobuQv38hQKj8fz8f%4_^`!;lG*-HqwHxn$)>vJM#czWj z5QM78!qMY5p$`l~5v_d*bNk6bII+lS&ue5dL}C&HrLoWB%QPum@S_EO(}6 z0M=84_uMlG%e0W)Qw#;A;G-i&0}n5Z=*Po6W4$AS~8cPnubMgD^~ErI}f2L1?Y9Za1^W2BECR zs%&O`9D?%?xf*RVYdik_nZ`QU+2};x0KB2G)|pu!;Q0@Ywb0B;!22IH*1cxd!T>bU zSS`$~wE?(VV_j!v)epe$^Ia#-b~0-08GxM{YphQum1t)52*95YxK5nA-Kg>T0PNCO`^>DS0eDGc ztunJ-48U}aHQUUp6@VTZtB;vgI{@`GR%0`(4xazkSjCCe*4bj;8{T67YXRKvI&u0o z$BA1V){rpkHw(6EtQ}_7Y5e^IjkUte`W=sdG*-Hq^#>mRXsoVg)){>MPh-_Kv;M~C z|20+tV)5hM`*Hs-!-~ZKEh0Uz80XRC-b>f${MkksD;C+qt zk(pIK0FP^|r_HQ&`1?N^YrL7Y0pEYBvF;=mKOeIy1Qj(_H8bn&5L}w!YK%9t+63Th zjdi$<;{;!0$pE~ivEDVa-mqZ4#(IQUyrOr6V4%htZe~piLUWCkVrH!k!L=HzoS8Kv z2!Bm?ow$(VXykdVu;6oz^_7`*$by%Vh2QV|S>et>SfI6k%-nuJ00wKU5oXp(y#HNe zwKcQ8x1hAfs$gc#4ZuIsT=f@Q8`aOl^FJEvfSL7d0AAHtYs{<%@%~?p^`Mz`1mFLy zu?Cn~^8?UOVS^y?# ztQlt3>jCJjv3ix}^9)mVkitkt;vOLv|4rKRHp-(%eqg7=YywcgG7 zR+gydwcO0g2*7BKHPOtP9)R04Rwpy-fdE{uv1*uEj|U*2 zu@cOzy94m;WY>uwZZSG>58nTwu{N4nz3}|M#(K=mO2zG;#u{N}^$x%-8mld_3`ek~ zHC6>Pt1)i>Cb=3f-t1`PeT~EIpT;_1X1!&>s~T&KnKcx*e;VsSGb=d&y)@PUGwT-I z{%NdaGphw||1?%fVs&t4?a1(~?H`0+C%R6YY3?||S$72?Q)7K*W(^L)vl?q9vG|_! z@pzb|v1XWAC-DAfjn&i4f_SK@vFe*yC*vWn#wu)P?F_-u39b{rBs)&<>|e0peU0^z znROU{|3hOvZDz#FjT-0R^-qoUm6>%O_y083YBMVsfSDR=u9;=w^&gGZ&&;|WuYYN*ro`e`Z1UuR zA{wiNne|Z!PK^$(O#(K)k+GfFh8f&bX zbuFI%(^&1zthM<5FO7ABnN=Lm|E0Mal1wbRbwqO zvv%O~Um9zunY9z&|E;lFnOS=*xJF|onpt}-_;a-D#JQV{8o$8zKWnUgX4ZOq|F6bc zWoEr=!E}u^+sxXC_djT?K4#V?3+idC#%9(Q{QYl@Rou)vi0A)CxlWvJ=s3Y&Q$Ggp zf7Mt!h}Ff}pBNk7pE!%>|1{PLV)2*YRl)238Y`Vx{5I4N@%pdE>S|`K#`Av~t2VLt z(aGTugfvzGV)1*I@nM!#S%{$HcWS)oNDF#EGs=3HejlH zI?=LWlGb_#wYJ!kcX$_eXN}cUu~aYk2xvVm-k8U4wc#o)UJB#W-rxTp-p>@i`Ft1N z|2x7tl*>1Uz4_u}oc|b7XFCtwXl(sl-8Me{#$F^$K1L>l-8dF zptRPyg1Pm%`^>s`;Po#IDcwKSH|pLPrS(oc{?}TsG`CKV()v@p{;jpX*W5Z8DVZ4` zU370u6U*{$u_Mp&8`DHkzgujRWT+d{ejko;r#rk`Opv4eF31M~*e0m#B?fBJ4Z59)ix4&Io)B^3UWj9t2Z{|{qH0p;)MzqhB&e!s`fZx z5mmd7FkZFi@cwU#@Tz?opZ})_ui8EVxSt}tYH!5%-%x~CZ7IC}og%z8+XkQkMR;w# zh`;|u5nh3BUC<5!5RvQ!-Qq{X1AxkYHg2iI3ghf=)BEk$6 zG@c@c3c80Ph6-vy5km#tKoLU)6{d)xg8m-l=rUB$L5dhE=tGJaDrhA|3>EYcMGO^` zMv>g8peopvs-UEr#tMo@N@m7x9BXw;w^)`Hbp2Djf<#cSppay!3R*uQ`K~?*eS62(Ok3@vw>_{JRi;7vK?!@H)cZ1(-+?{#}T_3y?|?UPt)50Ie|M z;msHqLQstQQuSqg2?*}1{@UNMgTIgQIDY?8#KT*&pT!oc4p&w))?qqQGBfsJ#i%+I z%d!qHJ;Ccx1ob-nPBK&-))YB9-C-RHa+EsUg4=(R6Y*Vmx}PIHq7DxdW~jptDZ=Zp zY&@)_h@lQ2qKKgm(Fp$#}u-$1VMdW~jqkDdM3HufZ0o4ij%M*5TiML>(T`>QF4pI^6#_uR{^k z>u{}Ps5*QJyPN5Bhjl2(QR?u+08AECwmlp~SVSFmBFs>SH&KMwA#M*7DPpL@c#7~k z>=_Rydpr5?I>hbaUWyp%a05jQb@((z40Sk*B8ED=mm-EbY)=tG9oEN)hdR6%f;j5y zvUP|@z~7}hb{Oh#D@8oi;ltQM)!~xsjdeI2DVZ4uwK^2bvJT&Pl-HpM>UB6@GE^Ow z5ji^DVI2x`lseps&;Ryvghp%+4-*zqho2H=sKYfBG1TD_iWurJog%yr@q4)+MR*aY<-Jk()cY@zC~a7AMs{&csf!^0Qd?`5$p>+pfaybeWBufzV5q3ZB)>~5yh9oC^B zN2$Y)@c2(q+4it2VG(uMf-plJ-arvU9TujDp$`A<>8zF4VV`(7ND*F#xIO%kB8EC# zNfARGK12~i9i~ylP>0ESqV**e6ta=VCTsKd7?;-Lv&#joZ5dzwcj;0fWnRX1{2Y*(9A{bbkCb`s3#-LBnV0seW*v;p0@*by>8%;o zW4`cNJ$!rp_U?{X?wg`J+VD1E?z?J`q-^XO`dIZQWFVQaT2ViB{(^2f)bKSd zobola&g;d{xtJCCoNgzFyL~ML`#ZZiA1dWN=g1d5VS(JQbvWPHp`G0}yo4enLz|~5C5DK>0w4k;h|umhvI|Yqi*o9hhWCwVR>rzfAKK$PS?ZF zuJPm{N^xHtwmTjsV^@f|kBsJthe3q7j~gM@i7@x26Nn`fHX^)lf><@e(sZl@VKtm@ zC-u5Iv0?XIn4fiUvi-l9Itu$%g*l;wFH^6lG;=}lckTawf~RBOO7QHfJqgatIEiyc zoii27awdwO;w!X1&UR;_2O3xL;1V( zcHysJVZP!cYQ7_psr(&(l}CTiV$UjHu`KhQlqFvg)bs7e@;z~z$XBp1U-1z&-z~^g z`ED=fG2aW=v&vU2%Y5@^$yWsRd|_7PH%TKWU%|qB#Yfb9i)i_l@S3l6$<0?R%Y2v0 zY~1-Kf_lCaSibYx34a9(^A#Ua^X-jHRlZ_b=KJ1EKHo%8&-V$*Q1h*-ldoW5zT$&^iiGc3 z;Pxz_<(uF&-vZdP%2zDQd~eN?uL$b-R$=*0YAgH|EX-GYnEk~oa2=3|{)!vdW}Xhr z+MHH(Udsz}KKvj*=8-Z#G$L<)D`igR@vcRJ76#Qp?KAOEf*OjmD^LcbSx>ZFW|yxp zrlf?5WhwNz8GK+wP!~E)GSt8gOGU{p${aG(EAE=p*5+YBeXt7 zJqay_DJh|1SqlAkIu|N}y3qZSp@hDiB7_PS3Kbvb5j`D%se&mE_Qg*wsQvty4ruFP zPipQpF62>p3CvL`7t2z4vnDSxB2P%c=gTzo`To*|gIqP!9Iq?F%$g-7M3 zFh`|aEKB7X)A*Q+psu{HWT-J;+e#=GEL1K&qAH&!n7N|7IrgNKrxf(4JP~tL%Ehu& zzH=&9E`qx9mnB0ff3KxbE?B5sd_-0Luwdqj^48dsQhs{@kIE}xj!L;$mdcA{Q7(eI z@>A*LjZ(g)g-|Y7s9bzRRsOhO=8E#$uqUOwQ+|)iD`SpIxmcFU?~=OQeHancmDgj+ zGj9>f1q+pnkEqI*31+S+?}$Aq<=yjnR9+2pRLaG&RK9EquXYjCl~0lkHRii+7Rm(+ zm5Yz4%AXg^Tv6T)ds50%^LkXCggGkZVp%FbI+-gML0$P4$xzC_XfBis7AhAX=C5!3 zR(n}6b47VC>`5sfkl;~yUCdD_7t2z4l`P6dP*JbLE{2Js5~AuH^A(aX0a?akD0_rTLg8@9VJ7J_K(ekX2C+u;=?@JsQEp?^r?9q z_MtSV$9vL@t9H+wJ%jJRrgYqMXNZ*`%sqF8SR7&QxiiF0H+7`A=gts2h?q+4XvkA) znHh~Qxx*or<#1G*$cIA&_2Gz<3^g2GL}pHRI2?kEFS14D{GjHq094cRt>Z0UZsn0C zjvWzJ?jkJ0%6ABhu<`}MBCLFvuzt=(FZaE=f8z5`6fwxT8zaj8esP}ckC1akJQSss zxN;D?h+ZPkm4nzXgt>AM`-(7E4q_i7hN(q696NG8pL00&Nsu3<%%O(PQOZJ$dN@jn z(6l5Dno?e_Cd6(a%+-Wgal%|ph}nd>nh^V~k>f`$9FVNQp47m-YR4{eXB>2+q+F4R zwIs|HiC8VdT#<;CCd?IySYE<>ZKXfH$(8qMz>~bo)XeMuQq4SyJw_hFch=U|)7$#6 zW^!RX_ce3{e`|RX>?Gjh8?l?V>Qv*ZgV|jytm3U1W?Vgd0R=D8?8k4wh^d!19<~zZ zRwZI@5aw>%E(TyJVQ!@&?*YQxN=0lmVQ!@&){8K8$tJs}DgO&Vb!tIBoJ^N@T1C0; zIMBInKQVmW9(ADAWJg$kjIdm|g!Cl!^nbZ#))f0zrndagm#Kf&b4h&|7kg@j9Ns+|mB! zZ0wqzjDscERfHzQW)bF&b_kz;Cd}1|yq<))IuT1D%+-llUBYrY+Hp46)FK!5jW*!v z5H&G2{o~83Vb~S7svBVuwzMQH!j@WuMc7iBuv`%NMNL=aH-E=2a#tM8#;zhnB9=y& zTMv0`NF~e_j=Xk+xxx`^K$t5Wu?mFcv>xJZ_@joCm9N8sRoI8BgtdS9GN~`6<8BC0 z)E$IH7}AKa2t%$XEW(g03G*fI^Xjg=ug-XqcbRR_`jfN`dIo!pJnHGCt#5$0^Q@mkdGU4*$` zSqbs*4qDsw_gS z|1bNcYj1E1W#jLrLWw$B-1d91E5sr!?m}3E#WxccVQ~$@A}lURScJv#gmH@t+HkUp zv-TJ*UPZ0{FBad4eXF_H?X)k8^C*$do$k)@al`bOZip0Dzi_brFM@kx-%9YHQ(gtT z)Ao4_ic^|yO)bacAHv+4LhQHe9XW1IA@&VnZcQP!jWD;S5L-hSuPJSCd{=2u?u+N z9w)GC31Y_ybBhA8eS~pKisJi^DB^3!YAp7l%$Rb*s~N8F?eS2R(s6|&b~RzHaKwUy zxxx`URi4!XV&4+Rg-CXLu&!rY`0>r9xNG-AyObITO5 z>V)y6ud?Avj9}8ywq3Q4(6*~2>WSP5|E8>~_Q>(r)#7$#0d|Fx%~gxoB*I*^hz%sn zRf||h!d$h8H6x6xEp9_aisZs}>RY_0Ne%W7KgTW~w;>C$s|fjsO(x8hkJuo>T=|G~ zBFvSKSTbQ;{?#^AqKL0;(hp@^;qa4J;nmX`qg20VlW_~tLrbHNw=^zO?zbGGa<7U# zMwa`D>s;A?{ODD7E)?9oS^^_uNWjN2=c&@J_P>vrw1=V{bK+pT&pwy3VFh-Dn7XNz z-Z!M~NyhjrZB_Gptg5sP4YOI*H59kJJ|udilJ`5Zk) z+Coe2R%3GUml-PearU-0{ClmFT-4{pzoxkRn0gr-K1NJ!6+ivK``E=*vY}m$R#-_}VRauXtZ2ixS33%uhKmI2GLtY>w_@Y& zzF7j_#{3e+-3f<@FGfsx@Z_P`J;0PwsC##n8v{^Rr6is;uMobe0h1|dNG4uOrl99! zZVG#mV#9mI9eo6sCo>IJ>!u;HK8yoJUc9!!VfpX5ap@Q?M|2@tY zVq&`b0>yRQf?VZi+wZ*k86n~9RgQ$_&W(A!!$O+daEKzhkmmAs5?4rXb|Xnk8(yS# zITA7vxk||NgT92+Gz+PV@BfZb$alr${H}!Kmd%K~iCiUQ!?(VK44~EWw;NT#`A-pj zM6xd}9FbxkgdD%p6>{nuUqY5)SLhsn850VbNfFONZl!iPDy=e_kV^i9>?>*%(hR@< zDB@Yj3~HAnAzhHGO6%^geT_(dS}lLoRVy2QFXBk_EaV+(mm?wbk*kC}a=@36n`yQD z&0O_us2rn^(}i>Qo9@p8H`+2S|h&nCFDA@ zkj6H|#VF*{f;pcf%aN;uytL1kkj}JP{yWSyY-mIg&m$7_AY^|5SID6+d*5>ks+%YV1GrVUreDCGORIiKurAy)}`cegJggJ`w< z=T>j9;dY969+Bc6g#41=3iL$A zkft_lq=;uBv#4E;gmgu&Dy?3h`5KXeW+7E=_%q&-=vl~n)GkLt79dv%d2E+2AuVXN z{2jA5+i*jSLjDNle6nvtt`f5AQ(r`-BguMKTFCll)YWXXmtJ~0oBA!PiS0awW3?Y@LOgk9kr z;X-ilH;p2mg*2viIV!Efnvkpg3HjJ^gz#T{tZc)p6!9!%G_}i-kk-gmrFDCzuMxR$ z>7p2sEbkDv;RlL%7V-+U%aM?D-Hxk_`3kf+zn&gPrd1 z-35YtjeK{3xNOugJ!cn3@C^2yq91XoEeEIKDN_QM`Rl4b0y{79qwFD2T9X#)*cJxE9snK;&^Xsbd8rD>;^ZSjR=ZSU`gR<)m zW3zJY%gJ{e{tjy7P`# zHTg=P6O&J{aPo-{`sEFE&0GA6WukN0uV?tOAO2eI&;Lf$y!+gFckNev-6zM_24O9> zP(!kDvnP`>Gg2@wwW$%yQthUCT&)P|YL`idQd?8x?R1A~1-X30rX~kEe#JMQDjjDw znRMX02QNR^?|W;8BjDama+?i9vxh>WS{BQpGOboL}Df=KLu( zocY@w`19|_F1IV5|HQ6vRkY>L=Ul~)y4oq)YG?Ua?Oit1rq#MPYM`p?2+L>u2@t$D z;^JR2Rdr(lrvD3KY6|?mF?J^~rDv%7h#NKL5th%{>Qo4CbugKchGg#6lIiC;8TT%S zi8d6a?%gkU^yebJkQs-{+c)TB8@5q9eTdCBYT!DaM6UAl+4sEq86n{gS}ng(W3&zR zvI@!mMvZYc{P$;;T8%1X4|0`|1Mm70azCw>3mJg#KcI*{A~_OL*MpD*O-LbsLf-$w z@sHoA(F6DYD549={zeTPks;JBN2S#axoSjOz2j>{&iw8O;WuiakZ&mBS;%wLE=NMf zB3B8SvcZ>-s%9Z0Z733>kgxGA^K5$_b&kA_TqWe~^}dAkq1EymHOAxpZxr!7B85E& zId;kwa$=n?Ax~ge=pVmPV-W8DQ^d27*3>RXrFE?)q?|t?yMJ?p@EbL7MAlKnvygOZ zmm?u}B3G4Gx3#`TBoD2Y->5OhhF^bmBzhLImfGb=$QmJ1ndLxmWH zoW!5N$mwL?j9euo^DSRO#?WfHkl{A;por%YDepnZKPOxv7uWa_@)~x9{_z_%Qf*j7 z5zj)pQ@b3MRt-%^J%2)u{^AJXH)`Ny|AZo*g*;5{awMcba#d*!ebd*7lr#&u7w`X% zQOI`4`5bu)xk||Mt9=RSK&#~=GQ@@(DdKrVF5xdv<#e)tfm|izn>Tz3nN6$ZH)`~@ zVK_xR3#soxNIp$S5r0B9{p|S1?{Dad&%aQ_vyfrbE=O~uIdavAq^$BaB7gs66f)L^ zgB0;BWCgX$k&yAoRYIn|?n_8@vyc(^{BMjxzWp)hbL0)=Dk1A$^ChGot(KS8-8QtP zi02V0>Osg)__KaW$gi*Z60#J#!fgz{Q6tTU=@juSqz$#pQE8RdgjDb+WbaW&2*1Cf zj}03r;#tTvYL_D+osg?Wq{l11MkKFUNPinn{oqLSEMz^k%aM?I$W=lXz3fX!GOd=6 zNIyLP8KaQjj^uo@e~4Tqh>Zw?kS5J@N zPpC#-D;7ch>gguQP*+cX{}z=x-Qm?!L5}4{4LpPWvgjxB`d8HRrBjfrl+Sw3lX6@| z#I>B-v|4X7_GRo&}(Ri0fq^L5T$ z*p6J~!spAqx+a%$wQ85WXzxf-uS!U0#_>1RyxqGphp z(O#R4Vp-0{#rS)!k+V?*_1QR5GSqDBi&@Ncy2IHh$e!{Ul6O@~;PI;v*T zA%eP&yiCW^{X&Oep$_p8%U0z^eE$>nqXxM9)1F4f*%(DmFuX6q);i2H@ zDUZV0HCt+IRwP<8O#k}ub@Is;wE4<)qP>r<=ElLrFXgN^{{Uqr=UM+M>Ee#NYR-)e zjhtyaIZe1ZCHxzs8{^<@>`4vJdrz5c$(g=waWGgVWqy;9N=n?$LFr6l>3k6f6}5D# z8Ph2m&2FXQucamxQJY~l?pt+|EO>sOv{v0(k;j4sh^g)$Gj@Mvw5+guezp9x4NYk! z{FLYdy#7HEe*Wa34f!ade?w${g*_02y>|_Sl@q&AvmfngJiC~R?UaiHm-uz@HyaAYn8^O!ZX$;s_nQdVa6fj4rO(gYe2@3P zP{gxWb+r^5`A%`K4M#tZt@K~Tc52YpJm%M{oi=ojF_CgwB2|1R^05tjK8wwfC$ODz zWcj0h9od8Tf5ezbVJ(rXeJApZ4V!kw=EwusPC4?>BYquu%7*$eCUWspH<6I5m)#luqUkU5g0MEYup z-0M4$AMpOq7!&zshwI3Zhy6OT)`mIQVJwbx&=TqDJCSvG{XfP;wtwO}^7%r)j=W*R zIP5SMN1ADgwDO(EN*jLL9$O;ou$|hVy}!V(BmdgaKgL9=Yl+nLoJb32SG-?%SA2a4 z4rV%zbaoiWv5Bg2XYu*G!* zX8UzypA8RVhp{-)O-m%zcOpO8kPu@cyEnUz?0>+oBcI^?@7Q51j;uOUevjsk5bU6c=Wn4!*iL!% zM21(dc#0cC&^*RO@@k0`_MONMy#MR{*s5n5wo{HgFw3hW{4tCVY^WJyBL8f36S+9k zYa%JmzVV>&zVY`Vco92{WnvH45*gz=ku4!89b+OtzUMk}a)w_=wuj&m>@XHbdTNRE z^_|GiHsq&7_`dNxeE;pcv8DJ9wo_%idAeV(-m_s4CBo0K|A_Cui!sIGT8gDTr^ug5 z`4oTu;T^{-p5ifl{|!a>0pouB{-=oN4QDrOr~FNw=G9-G{ImG|A7diBH@J!HpXxV} zUHJWv9mX;#T5E~i?mLmg`2D{=wnRR_c4}xoPWS6bCVv0Nm`FV>k;c9g`ND={>tb`{ zHEgFGd25PaN1njvzhX?Jyq3rfz7zSzhP`WJbL2^EryO~9vR_C3u%S(ii4@TiDd9Vj zCvDjLc5IH!#&*h)1(W=nB2y-Mb%ZDK zRR}7^n8>edTu07K@R|s}593!Gp27~%5q=!8+=dwx>FVq~jt}oWZo%(=ig^B_Owy9S z(RcEDL-75Zu?^=-*iIGrs_}kZw1Utj#zd~u5~=7rkz*m)wK_IO9>sRbk*CJ_b>xr@ zEn-ZhfR@OWz7yGwzkl;aY>v#tcFK{tWBodE2H$@}iSU`W2!H=8#uN{)a#Q?yjNcSr zv|#~u7|Z7IE-jIJd?)fczW+4FL_T}nb>z!5zm9xn!xZcg9l6cf2)aLlxhe#GDdKq} zSXE20w&xUiB0t5$H?PGuXwP9gRp2j=_UaW+2&%`J$X_qJiCh@r zH<2$wumU@bWm7j)OJua~M4qwX+87f#y3%#zm;3xW@;AQ!0y~Vwk?vX|y?rP0unl=* zOk~eXt|JGA`*q}k4b!m0SR6^w61l^7B2U}!&x^4ovI*O%>AP*1Uq}AI_dmp#NPR7l zCY}@FXYnrD@Z$@yIr2KTQ;xhn)T<*rkxMr8j4_c4S|U|_C$h|jFIL3n$Wm;l9C>bt zUq`;e_aDTVNKq}3Ydj~y-(T=u2(~;Qn@b#1e19#G zp}rH@7lL9jCUS7O>&Vf8ejWMFhI!awERJ;466x+ckuUN2_ZSn|@r>)po&kOxnQy}c z>@XHbnrn%q_)g>z8%{qRTOu2ibS)9X|iGEH+18 z#CFP&*ZcW(?P`1`j@V{>E%wo{JG>EqQAp2&F{YQ>nyzfZb}SiTeaCIl<7!&o+GBeX=u_4exs z-b!00#zcO8!gb`gRKJP5hQI%c9me9wJz66DeJAoD-v1n9B3~|X9XZ&`uOsi{{m}ECwqiRqeRtgB*O5*5`=>D`a+8)wbKi+gMn@TJLSkDJ-j-?pNTjSg2pi>5~n4S-*+NkhTyHmu{kmc+bKt8boc5Af7<+T z2yTcmkv|r>iTvBmYa*VnQ_a*?H`lnjVwZUrgtyh%K`5rJ?povOu8OugH9E(-noNn> z%=vZ`?+Ix*RlNeEkPQz$?7FXif)aZBDB?ujPd~AAXP@e^Dr9 zeyDqU{B@=|na6L&bzx9t@=QF~S|)kDWrB`GTi-8t(E9e?#n-oJp{x7}jBd;L5_1m7 zUlSUTnH*Oc6rJ3LCQaP;}Myoi#rIyW`UA|f1=6$4#r@Wm6%x`h2?5w(q z_EH(cTU>f+s~%un_0`!~R@2z5M0U;2b~XvUCc9=^jLk}B*KDq_*|pg<>u79ND!XQ- zjLk|%Yleg9{-)5CLD(_ht%p6GOg81LtE+-A6}!rvBCV$-)!0W;#e(q5gEFbMn40?S zC{e_TX$|nd<2)~jasdTWOHS!ubH z{lR%|_DApZl)aON@6AsSErCA91jqK0SZG1%!8il{du)c266g0#L?{!4KOb=Q zox9znFUQ@l#I7Q`PYl8%)P1yx(6JRwgr&IVSSLa)O+f=63Lc7spYCT0%HsRa2+M_u zFdKVP6}{j#lhx&-jihSU)mt;C0(0pbVMm6W{hoH7vUk$(JrUYy3A8sRP(GS{n1DMG zX5;T4&SK+S5x@TtQ#Sv8t4UvuyMKmvUnvOlsQYLWq3ta+5f3-hH(o%%JY0O@!vjG!f?Dnq!>^Wi$nq zd?;8L2m7WmgQ^E%Ghw+f5yoOq%IYbtO;%TmHj=7YD{swmb0Tb*>Sn*Gm8a};XCmCF zCD7EE!1dAWi+zXFXS7uc{DVZEA9@TC@RB&Ce=PJ(Oa|J$-AzWcOzp0HL}Y)&RetG$$Rn`*YBB)O@7zRF7I~Un&nR3AEmi@ z?`&ksJ1M)oAMw^Kck(Wv<$a|wfm+$+eefoe+^EfRC+|+9UB7!66R4eC-W9wx%bmQR z8s+Bwd_$9Qb+XHQsJCXhllQTaZr&#vnDVZhUEXhdYnD5CSJU#YV@#l4c6nd8(Ihu& zv)su$ZG`LhBx3^gv&*}Mw`RGM_s09&ytmdj8FyoLc|Yi_S?=T=r{$gBm_UQ<^4?d^ zB)4I9&6XLP-IQIk0mf#HvTIh;*sO7O&Cb>}X={>Qvn|GEO|xq@*VwFCcFj5(n+ko^$B&;0axd$W7HJ#EAK1`C6R z7M~z8QYZf=(uNklRNO`<-$Mzr@uwPge#lgn=q5|;tLoq;oeTX&1JZYP7L^zJFa$(MVb~+Smaer3X&WNDg6hPsQ@Ge}{J#4E^ z4rf_OxiDueTQS(OY;7ew%Yt&NT2`E^x{PhrBg0wtQ$;)CpkdBfHYCQfEGYs2gc#THZLMqrM_kEprTqK@D7@>f$${_bgf^Y)v{~74LFl2w@ zU}btqs0#feNp<>d4iwpRs(GWb%`1YJKt6W9vbucau6|;W_J}6u>hCU+C+m`!81ps5 zgXvxUlcxH=^%!0=yk~$V>7#OXl12sVD9njPa$#csY6b+bO?)@-78fatCA>%B-}4JS z@2CEjreDiSX%gYqK`I-#jV>|^OQhktaBw};;Gz(r4ZXX5h;Ph3?IKtDMK)&Nf;iT! zJIW|Imw*W3iyZ;3Q-p8@Ik@6#aEJO*e?+)9;r<6K;hQ!5JK>AR|TB=3QMHn z)npJe}6&G26CDP9I;NbeJ!R0^%aW!zA zi(KzUv8Ca5Kpbn%@< zGm9xXSJxiy4HqdEA>4(o7Tk|TmEcxDDi{!=bI-WQBrK73t}O@GQ4Q|aV-!wY1mEf+ z=deT?ZWF|@W_`Vgl5_nLL43&NdKYOOAzTg)E}t6Qo=2&3BHRluvJp$9olAx|=3IJV zCFjc6!)zc9CURBJEs% z4sM7VTs}k)pP~fL{n?RXOT+DfIM%Emx zcLCNaM^T6^tC&YRSYp4(t0ZFB_J=%5VwXWG5GyXX?S${YVF@ob{Gt)GY-@~jOzf}iEwQ)mQxdxg zQh``;g$%?lz!GV(JuuEOu?8nLmzvmJ(Y9ibxyU*!krq1?;~W!P6!NhN>cQMfEqk;b z6)P?;o^+9|SRyTUBE~r;wkqUfV(a8m5_`Ta6)P@Re&iw_VTrWZg&60U*yfOriEWot zN$hWJs916N6I%8(mPm_Tk8zHP?F#vr*xosm#JUkpT(SJZMSgBgZIBlGHpV$7HV*PJ zvBR?~i7kd`qS%jJ27?rg|lMULOv$;1-Fve#}Q3jRD}uZAuN#=d#|~(V&8;( zOzd_;No+i#iDD1BNJlJ@7F)n!vHO}?Vh_8N#EyehaJndpJ>((-u|!&I1&niS%${s& zi9H*oBz7L80@-iM`Uq5_?@&68kKq0-$HYGRuaek14X9Z03dRR6auG|U#lDJhj*0CD`Iy+)J4#~n z+Kb)iB7fAUHb{$oALASoI}-9Su^Im;i7kt0V#|K$BH1Gpd%PYs$uY6hAs-X_MdoU|9#f3ZZmWxucMtk`9ckBMFLx02Wnh$dd1+U+7Wu|!(zpLLuSy9x3!v9I4! z65AiqM6vLxr!|&Hi_PJ%*j=?Pv3vhg5}N|4;Mgl(KHK3UJ+MSt>;o9**qA+9%M$zL zpGsn%fK(t>yc`EDI}}T##n!?&$HbnmX^Fl3hmzRkkP5^~OB#T2j!DYRNh+uyX_-Mj ztPz={xfth|q{fhsO*XA=M&3&By@Fq=Q%T|#x$7=+0!#Sz3x7opzHzV?T7F|iYVRT5hX(ZtJ-Aojip#h$D}O>#`^EXc>iF1Vp2wh5w%Vz0SK zX)NK#Y?fN~N@Zuou7-R}?7HhpV!I%kc=_?Bi`2ssX|exQa#rkXkdKMo`iqj-!H6ba ze!S!&?Xg5!Y#xWj?x|>r{pgyK*mOt*CkW!@M`+o;SRyU948}P&W?b68rPdN@AaeR5oINfcGC^iL}^}E)1Blag3S&AjnV*6p7V`6i1V)Lts{h%xrD_(v)>mn~=iL}^}80VPSl8}$h#^s4p z%YIRYiWM(X!34DvOQgk4$2iBt)`omc>_b1m9iE4Bi#RwCDLLyVVq-PdqF-XcHm_tvAGaUy!`mBi~RZ^wLx0!E{tNsft~4EdPY%u7mQ>mZsa_BR(PiY3x5d;S4u#Xbf3 znAnxyD~WA~XrkDwE>aasq{aSL!dbB!ARiO^%0(ryy%9|m`?ZTS#}a9=ZimIbQ`{1} z`#UAE!yy%%L5Y_iZ@5TTERhyl4C5Rdvxn}t#C~=`N$eCz1!BdEROjIPzgQwIwi?Dc zCiYA*OYFt-N@5p7DjTui!SfHWL|SYMjB`xvFGVe}f1Fbi`vRo05qrT!=3 zF|j%)HoKbG?M0|q@$%z&SpUTmX|eGb=a|?+kdMvACB9W^*~5jYSn-P785emIOQgk) z!#KypR)Ty?Y|XPuV$T+`6$_tw_F;*%*m)S|nAj$ekBM!4MoH}Tf>f+{`SFyCoWv4o zvCm?hV`95NJ|?!uH%elo5KX-N2rYZ10JT9{>{}S;nApLPkBJ@nwUXGv5lZ?tKefU! zNedw#leGMF?Uzp2 zX-^IJfVv4kH%;jdB`Ge{1M)95n`%hI+lpJ6_; za1edW-^8hT5)aNg@bA5Q*WKjX+?@U|rSywJmO?5UA=wNv9!sQ!w8FS72`R)0DWN9h za4srDyp(47EEE%Jbb zkQ>=8A%A_QB;-X%1%q9@be+Q>^RYx)NOz3OQj1jLgw#|MayA)_$raq$5@<3dw1Z+7Sx5 z<<9zGKMMOYAzvO<67mFAD+?g5ATFA2)mn9*iVP7U>{3l96D%uOlWsuwv3ONy# z^)d1??8}6_d00uvK&)15k=zDpizU)6l1oC!dEF9n`H+&3<&X*vh~j0}D1%JI5@{iA zFfL17s|Y8gq?(W;8Wkd5i~83^wqS|0kO>%5SEiE#fvv z-3W!;zMb{Kehl_yLQa0DBqS576)zbY21&va>8@2rLWr9al3Pv4yMI&v#LI!2LDpl5 zw2)yKm!+=N4EAL$(sr*>i~M@aRtTK^euX8{Le^nimV~6kzD&r(50r#d#%jgOc>lor zPa+g@>aVPikyl|~CS=PVB_T0bt$2wJS|l1vq+8@Z2_fJ8X$iUVzLJoYkSdZhszDf+ zr4Ce=!)>g9d(};T{39~lH!&_txS6mo>n8JdNAB*^8fk>pikArL8RWr0A>l6(JY+uLKAa`EM>x2yYH)Xdr*Ps@ehGtI!V(@X{8BzRw;AGC zv%dYVl5??$Ag*cy+`|#V<>latsKFihjXEd7)iKDcSR(CQ8pJW@ChSsjt`Z`M%jk^^ za$kgSCx5lz&hAu#n+K_2K!{7@l?{@LCDP6{;^11U!CkvS;l$-`aPCVik%oH);#jk8 z*rDWHS40pOOdA-aVT5pZuUl|#HMqAS6*Q{|SH&PtV~MnLu^im6?MluSv4^W^kUPIn zY-zXy5XYMJ$U91K6A(dMJ}zyLmyd^esxx)wGAJ zZID6{!kr}+-1l!O!7YJQFd#(dO2YjgSR(CQOAfBR8r;n*6i!^StZ$HSutXYe1H`dr zedSFh=XxW8xad{ZAk8C$b8~RH)!^R!kvb>BRe<#$ERl9@7{oE>M!lirTuFPl@&<85 z2zTVN1^314N^sL56$}V*39y_&60t}4gflOYuh7Ex@pL55%n-ygFiwkpOsCia^Pme}uJ zQWE{yI* zOl(ES$Hdmys3i8xSt?dsu6!7te~2a0V&`ItIYY&Y%b(D)C$L0X z>{^U-Ol)V!$HaEupd?mDG;zhUhe3Y)hT0%4_Dzg)Ol%C~V`3AZR}xzY(L}Kw408MH z$i(i$ILE}MK|UsS!g?jKl@Lu7+Xb$FL@4&;X=;*VVrM}1X^_%b zBHfLzeC4dz)sT;gUH6=l*e-}BE~>%=RS!#~#r|{3S+TD{J|=eSvr1wIBbq4o5reeH z5^1q{92UFhq$T#FwMt^sAr+i1ieft&q%W38i!Fn3j*Z#RPgr74KcggeHlzZv;_`bd zgCt{#wAlI>=a|?_Us_^+UZW)TX-EZP#dY7N2APH>(qbRRILE~P^@Sz&?$b(QH$y5L zu{{m46icMV_QN>G#OCD0=2sK@!RNMOA2Y~{SRyTUB*r-=wj|_ZvvK*=N-g`vaa*y? z46+kTq{U9hILE}+hI~xyL#vd;{_q(UD_#!iZjd8bA}w|q#yKXoE#zZjJFZj`d+Qh# zD_+59ZIE+VA}w|k#yKXo7vy7N2d+>Oo6BBoJA?fCDYZdb>@JLROl%V5V`5X6D~Wv& z(ZrT*YY-zsu}6^p}ovAY*5i5(89 z;0#K;Y|I`yWQqOkDJ8K}AQgxeFULX4#$k!H*lHN(nAkH1EwL9D zDT!SSsX(l>q&^tun568Sq`V4}mK)^#k0X;b3*#J<)By6a$)?%D$Xn^KL4Nv(N)oTg zjW)<}EaBTP{1v$|23d`9SrLo5!@L8h1LR|3A6uX#_TK}xV&e_+J(fs|eGTIr6Wbs1 zF|kADD~ZjAXyWC^z6SYoe+1naT6Pb{IVLs*@-eYv<|&CShiKyEM-ZDMLb0Fkqb4~f z_6f+x#Lk(kB(@=a>&QTJ~Ky2>?4RKUVa>FkXl$G zE%vXy&We2r@-eY*JgFph0HTSP9~0sEhgc#lHmAd4-~GT6`{8UQv7;aroFIsoAE9M? zVu`fak{IXMnEiB*CHBNDC9yLg6^IotQl%SY7?wzjt&MSxiM{Z?CHBXeN@7<)DjTsw z4KfK!q{X(yILE~PzS|OeJ5x#Q%aF=OY_dTXVTrWZUKrt^bDnzJ@zgYD_*3632GabNQ<3}agK?t4*8hadQT{c{ce}7 z*kJ}ah$YfupTaoD#I}TdOl#CAtC zQEY#MG{zEXvAV-zx4dnM-8oT7Y$BwBGbr)$W12xaV~MobLKx@Rm_4x75_@EVlGq85 z3dD*RsRqOMf3ZYbY$c3yOzc-%EV1XtD~VkIscgi?86*u$q{TMDILE~P^p+*|*KtZ> z*Fh>9u|o_p3rnQMcELEu#QyuHCDu?AyA@J_Sn={>EUf=xiL}_k80VPSe4N;#W0hL= zqc^Bn@rv9)gS>_%(qhvw&M~p&ARjyQR2`!v_VnwvV&PNI9xRa-I~(I16Wb8-F|o}v zl*InLnTi!JKlU-m=U5^w_GyfBOzb0&kBRM?t|a#EYgDXw`4L+75|&7d-HdULi5&p> znAo^9C9(Mc$)7^vm83p!^P;MUaU#{fbfltxpr+`L|gI5AzP3lP_7|XH))L@QLvKcc>1| zC9?D&xh5Q1YiTqGUeB{@ljY6ck+R-s849oGX~9(;9YNLRdymS}ci)uHCh!HXO{ucURM`}tvfT#B#wp9Afauo9?u`^NJAHM~ee|b=>(aZS@(mkawn!;LNMfo6eYffivcR>ICaE z(_v2uXENdWPiF22oGAiv%$btIB%O%|4a^zycds)S&WoeTEaaWp?)(WDd|LFK1rVPxG{XSwuOqNGd1Ko4`t{N3wP@c@_1 zLf)lY@akQDWDN(3%vt7M;F9^DGSnrxlf+&IDQo629kD-a!&#;Z^@TrN3=W)ePCsY) zay~)I7XT>doAhSG^Y0-QY-{1$c2Xx3a2uNft3r9{jPmfaa>j%3vr0xW_*p%p0Q_v4 zksE$a&hWs`DZU(IG|~WbXuhM|lLjfnVOLheKJ_fc9_*`f7d-zDw<%#y#Tsi`;%XqJC=ACEkKe z40Olf$U$4VNP=TfB{-h4j(8H@N(Bp$52W{^nQy~?Me9O^pE;1aqIpAn%4z!X2Xa{)z`APw_hl_lO z+Z+HL2boyYPaP=hsO4T~7pd+T)WsDR6d523Wxd09l|fcPDrn}GzG>%{i)7+9xzjp$ zA$2E=%lhn!H8iCkCvAq^Kg%tdQ3^6w8ssfV{v|$t=XlEYV-K zHLdg2hAwh=8I|ckzn=z~Sihg$PZrARPT+HWgp&68&QhnuY=ulr%&xwXi-EB*6rtqA zz}Tqen3x}ySYodBkrgwB>R%R)8uVMcj@-y|>tMYG3cjoyrkK zQX!QyPF3WfYDhy_pDd>uLOf6`1W68z_rV<6&>pI8Z!t(-M3Zp)+XY@R;X6>4KFckHe5~&;@2)Co zt3jGEK>JlLiO(Ou&9~70?k0;S-V(nK?*E5`a(#OgMmW~DOL3AaDoa{#kYn?l>f19R z6YB``AD4AoymNb!i_}9jiN38fF%I?ZEpshNJG(j{X)q*oW+o}Zp_Nodd(9vp&5`Zf z%P_*RzTFn`u@2PnF;%xW!}GtNbjt0QArnJ;^HEte@eb!_4bmIYB>Hv*CdQ$@eR8%X z>1-EONpBluCM1-b9J^tJV;v}plaxbQ(sS_slUYu6prMe7b)b~as%~#HND;@-j?T2u zzU-um_9lG)5faLEghw#Kv5xR}rX@*Jmh_fEUWSCu%-e%Fw1kebZi`dGC2cTB69%Y!26*EM3+=BCvS{MH(Alz)b&yc5Z;!+X$NF|j zPEvU%BpsdZRNtNfnOH}d`>?9pb6lhjqDl1ad()il+iyZXCTV+n2P6$*fXaQl5QkPm z8BNbd_D_}V+ejNRn7 z!yunQIRiY^Mi!7Ilw3mW$3ux1a9}yH2?y0WVkmjP;I5kwCVKs19>HBVufaCv(bm?o z9;97VQ?2_;5`FiV7*V7Rt6X_*yfwi>zSl|?S>kx}6jTH~%dr`-B?sPK8r*>u z%01&P=RRs_=UjSL?{!XxROXoVt)9cZ&M~-6ql?vS_?UM&SEhG4SK;m(nIzoh{3YD~ z#lclpfP=f7PmQB+48gqp%mRhGoVR1SMpx3a1UC~R*f5#jLdv;=vr^%HEOwWd`MdWn zuaq6)U0!A(f0tKh?;h+fue)PG7flCud6_$xpm%xI7Oo`xrjrxqp21hO`MU}6s}#-X z&F41FG7mB_nW^%m|e6q?V`*V^MKMcu!~NGXy(PNW>Q{2LhH`TFLY85L7Mr-&p!D63vRP+ zTZB=O3${tzTKl0vzRn2Q^!yTgn5KUUGBLR;n?^48fI-?ZDDi&Z(peva8i$ij0cXEK z-btq(S@#K?(#i9{8Iw|mu);Nr|t{j5s$6y=tuUC`E{R3bF(_3BRbA#MS zqaq>%-ipzFz|X-p2K-`UDd2;%#>1#&vz+<6cdS>2H$VH2b+eEk>mKhOY^)bE$!Izl z>*mgK_p<)(BBw@shk*SkuS^d_Rp^XoGs;&(G;?8HBPkbPlv}roJ{d*2AV?%l1UHH1 zWir_L+Q$a@C)I+Bl7_QxbNU4C|AABhY~7dgw~MUBZS1_xyrG-jK5E|39YZgii+2zI z_6l(_OFSgo29`{CK2fe+Vq%6ih+GVG!@`k>fo}Ni zNbkT8{~;rcm}QWOiCI%$R*ZE=(LXxrz@QY4eFleNwk~GeWE|RPcQoy67SKAr-i0-8y&L zApZ`f+rr;@w%$!XhkaR-ovvx;LY7fxW3?8_*YNx&+-9ATLzRPYTTObCAv+SAO+UaV z?6`+C!o9+a_{Jc)VP7Vqpn?ckE&VVt(9hR#TX+-@_XORh%LcCQ~3i05q$=ruk^LOuu)iWE# z536P&|6z5PcMtYqbp%jk(sb}))!aERU6SKB$)1xw{Os_O{mpR>XxAuksPlZ_4N5)l=Y5=H6d|}5^ zZc@sGkwUl@Ya!gMtcvg#eE$U!${`Hr5JoE_Omvg`r4fD{Y`O4DB~=&NyU9vODCa^v zhcH4J;cs~Ut2DxQF_sHgDyq6L$xRkRLOB-(aR>>@2tD28K52wAgDe*=R#0_ev75|; zgmNzQ;Sge!5vsdMHfe;D11%TMmREJ*Hk|)MLOB<@aR_~t5tg`#E{*Wn0Lz6_-zPXMb6Q!w|s^Q^(7yy0F|$#!Dl#=McImBh+-0Kl;hKupc6r z3!juxbzy~@q)8*R;t(EIMyTy3*Za!4@IFK^7Y>wGbz!BOBugVS;SgFYBh+;h(nr>X z9T34>*i%Z?h5BxiD2-5`Lue|EAig-NoSS^#JHQ2Y;UdU+_ZEm?F6?|z)&&uvyqgS` zMySalG*CvU;3nVpl6B!Vh+r;kEvf24MK|dujZm3GsHKcB*iF9bDeJ8VK+I_UDk!CA%eNE zzPPFjMct%>G(r&$p`e*j|ns7 zj`*e3huq|9S6b4A-jFiVx5|9gAYWh!zn&8Ydp$%j?3aqFVkf)FV~8MPH*%8(_SnA| zq=Ym!dCbDTQA8HI9d$0==iHATvKkT!pK`)Dm&hTER7Uv8LkdeHeE+EB!cT=&UD)p? zOCh103xhd?p~?ss-6XFx!na*47cLc2b>WUd7C=Hd7y5AsvC0U4!24gN5x(kdxp1za ztPA3cN)ugVHY5ZW#IH;Zb&+H&k(gzgaB!`a;U>EX=|thgr&Tm|lh3e3#GdLR?_h}p zb|yry$#Gr*RZpk8NL@q_zdk(MO^QjwUG8YXUCXZuSH?|NKtj20AIBjKS4QaLA_WjZ zY`nfMa_bRUxQ`)%HQuNBRQ>7aB4ZFi>~l@rq(7F3*aKXowKR5K4!ejl_8=G8(}6lC z_PIH3vJp!p21FV}Fi$7sRrPeZip~_(Fc;?KP<0^#&VQs4G!7w~ zGQwCFd9$^w3sWG1xiB-kstX^vNp)$2+pR1FT^ZqVH+cmT%AM%f zO>Q@{g=_657qFx!jTz&MNpX{pu|xuUIYh9D?irV?ry}+=7ilYvke@>+ri?JqMfNt8 z?c9qXg1N9FO4Wr?F49~YAs2^GKpA1Ci@e)J)`d9`!CZJsS9KxQMIMqyaB~Q`l@Z3c z$hO9^F3f-k=E7V})&=o{<8y9OM;hT?BMZT!jPR(Nya5U2ru)epLMD9O^W#}3|Gjrl z?=XMXA^30N!B$47o9aau+PFzIX@tKYvRu%V5xTp{%aBmcg|QsM6nIaVnhQPLq=GcU z?+q;%ZvU%_(92CWKteeeQaOZi$_Vq}{$FW?YYi+HZr)LKp^uxag@kf04CfF=DMmSl=a^dVPRTo;g$xKKn z=R!9Qp|3PTCwdY;!gms%5AOe!M)<6@<-)1IWL*#u3c&rpkWkKr&KyE_WrTum@=q;U zgu@WQPTY?Fsp>)@xc^rgp*@GtMH!(8-2Yos)`k5L!Cd&{4^H1Lr1{3mlkol{ERp!Y`vOETe_p*Q>yHTcv72<0Mkvi8R8mH$1=qi; z%l49IA%eNE@pn}h3^(a4jZmCJD5H#!*G&#rlXYPgL@*bg`%Tq_?+nsj8lez}P(m5u z0XNxSRn~TO635UO4lePUtUn?gyd)%# zG{V^mmOtNLRYjQLBJ&}k+$nEg4q>n|g6<~Sr4de*w_N!4XH^$wxydX@DCa_V4xyhi z!Vou!l14aQ&T`?apHy9#;wIA|p_~g{ID{U`2vgnUPFY!mPauL#TAveD7hG;KK^oy< z4&hN{glTT_XBk-+4nPER;m8$L7nZt7x->#-4xxiG!gM#eQCil8JrKcM_~=Jf7oKpF zks|0|79g+r(w^Ws*LcYn|x71)`j&D!CZLhqN)qy;rmb02qig$^2!Jk z+~jC+Sr^to1asl}?^Iow>?V&$BNXKj9#lq{2lv0+FYCf`h+r-}b3xUGMQ+ko8X-T2 zP)r%2znknWChNi?h+rim&`sVgD(k`=h+r-}bxzfVL2mMp zG=iH$$gPYJ<0jjR$ht5CBA5$vzm;`Cyq6AcSF0n9aIdh1;88{x1^2%|Lb(rglR1RU zv#Ks6!2K`M2!9u{T+oye9)|m0AfcQKV>yH=XH;Ey1nz&4M)=M(D^PJg$uJvxoehPu7Kl5W!qH_LZs& z#6!kPBedfXIw>Pu^^o85%DV6&L@*Z)olZgMS;tPAf!1ao2E zNmUnC!S^4f5gKs_Eu|5}D-}arM;f6bhfqTq zp`@Ff%qi=_3lPCvc=dBt7fQhWFVYC5IfP2e2o2!=mmIP#JPQ%bg^kB$T@b$m?#f0w zOCuEL5XvYcz*~(EXP0$h6+|!>p8HJIg}ZS7i!?$Z4xxlH!U4GdC7Y}ZOCW-|u=<#) z3lm(Vl{7*g4xz9z0=#qieUGdQ^C5z{u=G<^7vf!{i8MlX4k52H!bBI@;g)q_7DO-? z793S|0p49)Um78bL&%|w@T)<#7_u%*g9zrr>?5i!{08^GNF&^FSqLs=gx}%)w~$co zW9U}&EQ5q{F2r&O!;}%O86=-H!nwPa3qO3M>cVw{EQEw|F7)RRhA1Q4Fi1{m zgwy|8E}TE0>cTyPJP8TqTQ5%JH%vP$woK%{WdMJUf=tIo1BMjOwZ*H?Q95Du|}0t z^eKT#7I6tz*d`noLP=R4?@Ms~8+omFV1KTYTDZ+p3>r${wkp2ZE%5z6+-AKi`(@Do zH`Q;wX$ssrkK1x&G&DV%YQA{wzNuB=XX%Xc67SG{5uSgDnKb&MVD=ipLXgR?p+~`9 z%{`NKYQ}wHa~mr+@iAmthj>P{H!>E+f=RC1mFL}Oku2uhrO5;BR+`S ziVg7nXRJ`{^GO=H_m|M;pZvn6?pzJ zR%N|^{IpKW;5Jb=ypS>*17nj6!2bTHrTg~#k?RJSmmw7>w))R&Zn7M=*}zQ15^LfC zm_!a{q%@38C53G&(YZ>pOIH$fwtn>w%g8Oe?Tj2BY>s37ZlZ12gm7VPZNnyp3(IXA zHYr@#$@lEE1r37^5!AAAH!aJi+NPZxj^<&xFiI2tozB(ieBG2Dm?zW2ne|ff-3IyK zcZ>VuckS$$5{~;R+pwwO!ur^TO$!%R#x`tvxUipg*=c(sT-e)kVa~Kkwco5ZscQ=` zBOLcXJMH9Vh6_7j8#Xgs*h1T|S>eKZ$%TQr;=^*X>E!MW%PhBY!YxtcbuQty9dX zTM#bn;yZShEDRU+np_xk1na%H2|DTfi`7X7+ooC+j-ZNd*i*s6fIxg`{rejE{F=pa zdYhdSG6_q1$aF5@lgbHKMv+=v!iKg97YCDkFnSJq!O0x&3r^0%>!I`RFrxDA*xNYz z&KP*X$sGO#Cwslc>;)%Vufkbh^c;A>$(+1ncd=8MH{Z51DkugxpVRkA?K3wS2uWG0 zc-vGMYyoXZNpZE3oC9LwkllM_gm~N zSsgBHvu)VZ;ljq)hOG$~*1|UInQ&p*Y{S+D3xj^jUdR3*{LWtIQUHFB$uQp!H+ZV~ z>3-rg_6h5Zn=B!;FMkEkwadJr&)l0)ZGQBfx%>9yf`Qjzq5G|uvuhpZ9=x*pElq<$ z7P!ts`e5Km2qZC38u)ZL=Qz*8`~R+3WA4VAcGW!_%oaB0cG-qK7cOjuZP>bSVV!Kl z)`tr#WE=K;xUg^Eu(M=CxUfyOVK0OW8)X}|FC^17WRFNF(R zW*hc$urL@;*7C}6owU9zEL{;dse#*C`HmsiVEqTTS<4akYs8J)*h-xIn%)&R`S1tt z>XEs;Q--b%mY>Ro?R7VK9?IE(czLs(Ls^shvzzo{Rh8zdGAEe9zIg&Ftj$&UkV1t& zxycWgs5Wao=_{Rlj@y`0b2ZfR6jqhCV7axB1K`iXHs-;`*CO`-kh)=dtIFLvX~B?8 zFUtESTYxEV1Cx(~DJl)q#Mh^Of%o5iPyK1>+cpL6f52^W$AyUonSgOxMnw=&maaII zrz;MFXrG$M_o*(hFY~jv~;X=!t|1RseZ^OO} z_uZFead9=gEN%AkbfL*_WcT8d5427GO0ZdzF;$cc0}HJa@f&V(;({gb%u9CiUJXaE zQ7#M!tg#MLb~hk^ZAw#i9!^DJTb$RzsW`XEPW z7xRO4iMN;y)^g{~!MYd*>*5N2gS8l#$j(>o&Q#xl``^!5js44uQhE-_E)x+SGM0<%#`(n$}^+ag0i*E zgDI%cUy&jaU52~y; z0tQnyb`2^U1nmCG9^{l&kW~gfK+}G1JwJM*S6R&fWgB^Ac?D(9e`6}!2+B4FRW=3o zfg@BfWow^CWiy`_m9@h_`kA;Blm>n#4$&LoP>9N2_9{C8?@IUYjW6@c-tiW*-gxk9 zQ`yU)?B$@!UVwc$i z24$OrDmx7Ogiv;66)HQvPE@uS1F5oAP%5Pi);&=D%*~MRN4DbDy0k-YEjuXudhQA}{Q%m6ZXY<+T))B3+EaX=wPD%yyDzP-e`Sr7jR&LmvJSG> z+d=A-5C`>MzJnC-7PAf#50z&|?}ZMs7q6xS>);cXVmF8dLjP`1hU2d+#}9^7^EK}- zot*lDb_46O+-DxL54Y748t}d-@-mjx%rKYLq?>U#Mr#?pAeuF!*`(NvWv7}=S}w9C z%>%h%NYRl|_-Uyog-R{?$30~K=hTuRKAXOw~knX?=6j7Fx;#1I;IMCus%8u57yhD7XO2F2FEZ-n!!2>{jHNKp&2@O8EOYG z-1x-u;jbmKK3EL*N0ApXRWKh8%taqILoNP3By$Yu3Jlq!NSV+Kt-K7C0~oFxwtTn_ z>#%YM$ZGVv71m)APM=mmLYv94a1@z>RR!~D?Hu%JCQ$hM)Q)59B+b~GGRFGOUA}|+ zzYkH-!AJ^tNp3$SlDvz7^qlHLD3x)q4ix?)qbkQ(N11W3hkX4}$dPet zCX!r$%d7q*>oJgyjF+HPt=$qln>&x3`pj*#D zUH(025J!@rOcL)Q_k|{@?j-FKmy3Bxv;dO57)bl_!8xj)4Dygsp-C1^M^DB=UH+alyd=SW5WGHL;gdod9E z|14FvfN@l4l0{Rz{U7S`cdH>s(p;LPEj^!%^PNw&h5rA3NKXte$<>)6$z}}1{tu;c z{a++$2mL=Z$;8R%$&dh&vK&bjWs>n8^7-zNp4^y(B&Rb)PgY|f^<*8Cs(BLaArFTp zN%WFD8bFeVBPpy*(#AvHe=npbXD6a32WE(#%)~(I$$ThP^W+H+sTZ20o0p_X0Lkrl zsRT-*E0fgmkXJBausQG01oY&sCqz$DIg)Wus^&>^4=ELzq=lEHVgSkIU6v=;rmK=H z^N&oUaFU^^iBAB*Yc# zV`I>*?Ndaz#$q6KYYLRAxz*Z3Dj=iysqi5W$rYNhs+X}q0OJ?$SaZVHlT{hthv(m5 z!eDd4`V4ey4%Fp8Cv@OQ9#bY+>mhwZlZ;P8PX-5&l;%h( zDUPeGypd`b5B1&`ll>O_J&*=@URwj3X(fOmf&w4sH(V$>kB~$+2|NlSLRvJy`*zYM$KZAA z{Qq*uUXaI2^5-a#WIF~@AK!;kHIi{K|A!`-ITSrf4j`${k~FNO5vb|R8o zOc6cVfPvJLSD;kQlfKaZLzAR>N%{nk6yr!rDU+mn$iYn^J-M8Ko*Ww~da?)usV6I- zRLzqGF#m@p8Q>*p7eHcgB)ODHo`U)R#gLwS5s#j{n=E=V5d*0wPe7@fCzU*;N@$V} zUXt1YBsVrv36$io5vnAK9o~(>TPo_d${+_hpNTQWV;F|Ka=WUPQa83D3C<$>E z_uF7({AQTQxCR61sCphs<;J(@R%Z`+Bs9q|FG<$`l6)LVQDu@^9`eEZke-~2K~Fv& zDta;-1F0tqp;XP2#c=;0B((XQU&=#Dgl25wWh@)OcyXQ8%SoaGj7u`#+SbwRL0Y z|Dj2Sc}cnkkmTb?iYk-zg8u((NKeiU@b>?B(UaL2i2WZ*)jUaq{vVp8hnJ*T0Lh)T zRxfuclMM8b*B~MEtuFK!JkoazegmF=hE)aa|NXuFKTdS3562h-rD|>gW46#F6}=>R z0!WTMW4U#5h$_i^xc?Or+KKa% z_y4}${vRun%*H_M|4=H|q9VyQc>Z~4k{(`?W&tF3p0--lrA+cT^nXkktaU!=gPv?1 zEP9g0kxYP6IZwnD?swdzOlXo;UXscIBv)2jo?MSnCHdM-R$;JUKH+)e|_hkZ)@f^trWs+iW|7&QHx?Ymv0VLlnvpo5(pQ4Ccwp-O!W8 zP?x_aT{)88(j?-F`qLhAZ)wOL`=FP^6F~AY2GSn;XKJmlvkAw9|ICHbw7NU{|JsVBRjRBjZDo>cdc*w7@?yP_w<0!S)zB(;=D zW_rk1i$i+y=VM56uD9sPa~McHc@awGJn2e5L!|mXLwxHdT|$#2dr5i(kQCxbN+^>o zgy%mz71EQ7kD@1^^b$Rphk?|SB~Ys7Nm&nR9Gaw$m!wqyiN=v+lO}nbw$5l@>#T(P z{}zSx2FNUkoV5-7>V1Niz@ma85{1EY!PY5>Vkvn@}4?V?ID8}5I?guy)78I7K-hr0Y{w!s|9 zP-T*;aQ{|R@0o3L1NoS6vyD~|A5BXjRY38cDu+ zMD%1022xL+hf+09n!@$J&?LjWBwYhY@^K_Zl}QS~^^Ye)dUCE6dh&4x(UaL2NIh8y zrD~o$3fKQall1VCGz%cPGo4DHBrau=j&S`069${vK52=bY<*btB#k4P0Htc4RDtJz zgeGa_C8-=ha%Gz3$@TWKB;p;O@Xg9qm@t?p+gqR~&p}=OGut4JBte;^2|WKJG)Z+Y zNudCe6H_fu&P1zvG99jeV8URYY-o<2%!9i8J?Y4iJg!Vq8=n6$CFCeB<|WYrNcLhN z9Xkix$$BDwfAX}Oj0#P%s2O@P7V7f%q#;MrT$$t~y#Hr%NKXte$f8eLqdGy!f@1ofmHge}l&X4gN9TnQ*}S*yny9YQnSJ5ActD zZt5*&k9{5qm1jmDfX6-`C_`VOY57&s?`?r)8=+srfpF&DF{bt9>5B(j(G%8!*q-e6OhV5U+HLx0or-9B(Q;1WFHu zR@&$xR64z7kR7 z*&=o0MR@+nSn7tB(G_sm!@AA)s+Z0%AJbhnqY?Zpmtj76y#nokRi>I9lYg)JM7rI2 z@;U$xg{-W(Qkq8&xY0u%KtSt7cBX#Z#&Bx`P-*(C^0M@i^9Kr&uWjdRMb&&Sc#+254LvDH6FvZ|>aRvWAby1be?0g*5} zWTBmY9A#sZskMb<(p&=mMmlG60hSXTDX*qKA?u7LKkhv*KYZAr0Q+u0y; z*NVDGBBXNCwIUo^Nd>f$E^=g~vuKkbA3I%`Q9p9m%DG5whtV!1TWCMliyW!cD zPBv&Xht^pEt(J@29^ow7tB{X1=$5*&uI0#R20rDa=fw9-jr7#?Yn_y1vdrTvJ6mL@ zsqi_*#bM_B|AhIuhfE&sb>9vX&Z`DMIde0vj;xzZccebTDgK!xFCg;{PVo=IHU@R9 zwk%YQ4D*C2OJ^g4u%ci`xssLf$ejQT@<%zHQ;}U-g=0swiNh>2pQvSL=3BwmTUZ-( zlnVp*t#`I|i6Xa#S_JoM+7WCCM{vkCY-_MEAh13wo%fKjKmgln(7~_zwv^)@Qjt?s zLmJIGdCr}UoJpi;)@RW5@cb9tR+FC1v-L?22pHh|kN^Vp=G61mB6liJHu4xk`Sr!74Afi#4cZqA<6c>6S`udg->4cn@K*+T4pIS@AMiZf z7H06o<6c<;Zo~n%lm@mwu1wU(wILMPv5Dwe$j2IgV-;C1Ewmyo(#>JCC=M-$0@?#E zvLn`6*M>qq=2}YS$XzSzA`du>c66|X_GP8W(JH&h6OhWugI*mDt&sv+O&7Tw<1E@r z$j2J=*^08RS#Q=V7DYNajP}nU3oS|-O?-XRC$Rnv3BxvPYx)5v@KtxQ!a6XVM)czV zV=KsdCq7aCsE6dp3Lv|tX)aXr@8TOA2)JvY<>21(vVh{_uMd03Fi05IK?%TO9AGJF zK=Db0rL&QP1DpjM2l?3Wm|9NOLGi0o$Kd?eVZc-UEx>Qf$^wetPdNhje?meho45f7 z*i0HwyxE~(6uH#T3uu0H=3i1N(eKtn4%VzMm63JLv2&37IgHY_7;lI8oTkysMmc?# zjbP2eXQl0QZ3~gGwC^+07x4TCNM-f|-?rc2{dZjYRE6|kddPz|>2tz1i3`(D z802&xOYiwok?TF-Aq%-w%N0_c^pG}?%Fnu69#RvwNobp4kUPCCZ7v0%Q}F$7NaY9g z2Ymk-wn+eG8e{|ql=ficW`E@&r9~icC^whBpl$khg7sZCl+Tv5qY4@ZmNfBo?~>Wb zyk3^$OQcgdw(R8MFmgtKVcz7xmKV*N97@wGIhE<_<*U%w%kwumOs2EQ6yGee+aNP~ zT0YEuz|PX`;aZ}bTo_O`_q9Y`7tuI^Y__R(gd;d!!VY|AxUi??!T>x6eWyBG7dPLj zUYg#lQJF5LR-spy`I|K+)2quh3VeuidQ%xm8?B7X@@; z;T|xD0|w-?$AlH}jvVIW(wH`fv%kApx;5K`yTY~S;rs3EdN*9yQroci!iDv>4ci?q zth{a5`{BZ_6|>W}CtTQe+prJ9g-x>!+Z!&dgKgM{;llFUhV2U%_DxYcOZEo~gWg=t zHxRRDBXhc19quW$RLvn3q_?KE+%8guOJ7?deU5D8++*Ic*bypWQ-*nC8(zJyOy~S6 zbk47ql{tSA3T|U7hAM+M7mj^@T znb9Wz`9yPiGcdhzXrL^{X@+syi*Y#s<1~+PP{8=Qvx#vUFivwArwU5Cah746^=iJ&QH-;IaTXeo^`pmRF)lES3to)X0T>r}j0pn9kxr%?7XafzR{PO=23cW7 z1-}i5pGd0HiKGU-bFnEsSFt&HjD~#7g3bjbTjCP4;F8yZlPko2d5O1RySJG2%R?Pa z3od~Lm(YS>C*{(zQXn&vH738LtSd~`6|bxo0kW>}vPucEetpE0bp>Qy$!g2Or1l;} zG30&uB$2N&xXL4M_7=02XhD&$0`k?YB131)ZbmuS8FzNDEchU=qy;ya z1vk7FWDl_525$jbh7K_cnnLB7(Koyb&OtTF;7%r@XT$msDeJ=86d)gzc>uvR2iq$ z4q&(~z>#nk)Uypc8ZPWkPCL0l!<>Nk}bfe;ket$g#ov957I>s`K=9|1FWU! z(*`+*+rr<400+XYurHf0cIB|MFsK3%WvGbqwL!Y$HosdbTH>}aw^H1XdxaMP_aR+t zZHc&DB$N14h3FdWbCn0aAD(Z!;XgwYb_TBea-=wb~UqH+Uv4&>GNRR08rDnGN@%EDUb@bi7&|VZ$q}@Y>rH9(;^pwXQRF0)uzBokl&nTk&!-+T6RUD;tkmZKn<@i>;omp06#t~F zDu#qhAtAJ_jk)8ws-{U-Ws|THm$0U7!Y_jLNY==I!MS|k*Ymy%7q-_n>_oV*xpHA( zqhlTCpGLlR{@J|~IJCoczNmA!&YyMe?O)up!`vS_EOa-xnN1tGKW`~5^R7O&ZFHT( zKNn8STdJL=wQKyv)c#eDMbG`vEU7T}*Uw3tg+`7?=I-sV&^Xv`epjP$zNz29US0A& zcBslR*lFCEjtiT8R%dVHqSGoh?rr3Kb}y?fy3St699`#&{fRa6mYQjjXgi_tG@Bh* zdFviM^KP%&z17TX89h48{k_iK4s-uXoZH^G*DK%rrkVGej(s%q-js}{kL&P+?%yGqhg1-=l7V&?{&{k_Z-*kk-RV5NjpFHO8+Id1XsJnD%>R|QR4Xl@9Eg6;`{3;knOC!S$UKmJ zKm7f_fBxsd{~Y+A1OId2e-4NaB&5V^aid0#Oi0Pl;uGSMM#d(`B&B2|3{6OjNlwa0 zNQ+I@h9!)T4OW(x00C@ANS-i0H8v$ac1UtUOnOFIQp!+P7?Uw-L_$g(R)3iN;OnIL zPniASi@RCcufA5ctX3X&4U?~dO}=3XX~D&C`GW3eipk1;rkJekS3isUHPFT;qz#G9 zNE*r7B5qi0T5KG&YC6;D+k>a)c1uqhnF?*05<4I zYh{{i)tYNnn`^b2YZaPnEwmObw7TZMEwp;(zb&--=D#hp2Ijvlw1(!tEwrlUzb&+8 z@Uvna*c*P-Gk?@Ke>5h4DZd6J}Y*LE( zYr<&wF*L#akpVxF&EJxfM$rG58%D-v#0`W0rkGn&MrClJ@RxT__>JvnWll>-O^%H- z!_rfsziTzjs?3_qiju56N#^z>vml9b3!;-Zc>BG|C2j)-I z%9q#557NrF)XK+bV`I~j=;-ziXaB$JYD1uZCB(KWeIX%Ugy)vCmBU#(8ZWi;^)0%1&LaVG*(W-0l6QIK< z#o?wQ2}8lO)U;7?3F+zDByEb8l&B>nrzd#-qot2aqP;2&X3gJ!+hP)D$~+4My19;)1<>OODnB4(JHW(sWEEE@C36RYgEvNCB?)12Rp;8 z8mGl2$3l-tNEtH{W+FI{)`0e_G2Z+!g#I~%{%UThrq$4DX#=#XTFsht{Ap!iCm4QO zH7Kf~m9MO|f`2DzO`2!}O}~;-#*P{Rm5fS>@pcf?ku>Om<|gmpgJ~UXrh@}|#z<({ z45$lw>QER@8awhrF8|}Xe|zzV9H9g_xMt>$5bTIg4+*A=T5MWc?1UKWZ{NT-4;r`! zun$c^+)=4;W?{mbLm(y%`b!#EY)bQ$j7&&_aW~Yy5E>WSDk+^00H0tovl95`Alm=J z%qtpp`IsTeqvA&3T)_WsPEO!wdIsB%P7QR*@&@`g#Kb2g#*Tqmn9mq9WK{eF&9osN z(_%7igGOscr>tg09P4k2U^TmzFfuh`0{3@PBKHT*Q8Ca<$G`;SowB@t(!bd6F?6N? zG+#yDIW2I5Pi8vX#kYlRfEg(sraG9haAJ%x+nDwM@88r5@9zxG?@tzpg)mxKLN*jE zPPWCOfGr%h`Bzd3;KU{;O@!Ig{M#>I3_Zy;yCR);xlsJu+Btp{SIA~%yG>N9+3DaP z-+n$o=pUd9dcWzAIgy(@8EK=Exm2`0xB*WmajqPubM7xXvHO~t{|o1Q9F?@|cxQjs z@a92)OGN*q^z=9H44NJT2aHkU65{DGgUy}k*n{~U{SF>nT2s1t7~wXt0}8h(H7Pa0 zJoaeG35gjoFtNg9L8mrr-qY;2#<0*BI1Nl@2LtwBXnx;R>YH4$bo}yVpq2z2IQ)uf zWBIluB-3dw-8$j%Zt?BmJF7`gNVWE2TiKz9nQfiOv!j}CPj2o^hoir5BK7?a!uVWZ;B$m4f zn3R*?oE8R%Py&;JdF0^Y(_&MG`UT_R&3oA6_Z*WF3xkmh#c^+Kh=H@iVKKOyum8c3 z9QtKk8XgU;o#Eh}U``N$1#lASM+l7uA0_;&hSTn3I1_}{g7f8J3F$E7#q((CV}|g5 zq9(3#zatj6eOPSzFlb^p2KqOL-*!5y(=AXroNkUt@Uta#6!6{&u5w%g6yo9&9QTicb;6F0xJy7bh9I4wR2reO1w)A}H1p3kui>6&jU@w(-k zS*!xuVAh{@v22^)`KJHLD4YkTCd6j21te%@IK{SGXTts10ur~M&H1Y@sb9}$HTh;e zs?E2rsfRy{^A-4JIRE|qPs6Oe>8D0(YE2hQU^+F=+kBh(1G~7@+k7yP7(9Pq#$&aw z$m~aEKM!J{_4$qElH0$o?;vM7<*PN|_~|QQ$24}-3@BjTBL)tZzCt#nSu}&?j)9g- z!4Gu4e5NZfKIs8cJnZ>5DDGpmHmliwdtLeg(K_DwDh!xCeI>x*lWfgr{t&*A$wz5H zhN*8KYZ#idp3P=fFJ~R~CHN0ri_%=0p}94WmQBm9<$xuOTv~4JJ}r-ySIej6*9vF_ zwL)59t%z1sE2iBK-w-UJJ)o7;9@I*~C+#xu`Mn&h%~pV=g-Ue&r7C<}t_~lVYr;q7 z+8QhlYW1}GS_7@2_K?;{YYd;wo5H%GxzyNFYo)c;+GuUHcJOkI_S(Z*2kjB9qt;35 ztaZ^I)gIHjYL9E(wC-9Dt*6#Y>#glz_G<^UkF<}qgW4hOu=a^|L_4Z|svXll(~g7hUua)yC$y8=DeWum zwDz_3jdn&mt9`4T)6Q!bwC}Ww+V|Qe?Fa3$_M>)1Bic{e&)QY(n)Zu!UAv+Es{N+@ zuHDrB(Eil^(r#&gYqzz3v^(0r+Fk9Qrs=vKrMq-Pck3QKo1R_Iq36_d>ACg$^gMcA zJ)fRmFQ6CH3+aXRB6?B1n0~)rTrZ(NpqJDi)Jy55^)h-{y_{ZNub@}dE9sT>DtcAD znqFP6q1V)F>9zGbdR@JqUSDsZH`E`}8|jVpCVEr7nciG)p|{jq>8Ll0IA?p(pDj^%Q-So~n=5)AV#bLm#7$)yL`M^$Ge!eUd&|pQ2CI zr|Hx6C-fP5ran`jrO(!%)aU4P&6@(Oe{^uj`q$bH&e4DQE%-aXKkoCtpS)M-57-C4 z`2P8SY7tb;nlIQdfneUo#X#&5;gSSPp2h8Ejp!0qmxZ5ZM7Z5BC%;?Z7QXa9{oMyF zFh~mzr`o3iG7EM2iX8vNY{CEXA8T>TcQ%s_mw3z%k$(SxIq<(I_`eJOZ@~ZE|Hs~$ zfZtSg0e|m18Zw2*l$m6RN`(xWQ^=4EWuE7dd1yvTNm5cMiO5vuLMoM{R6zR5buSd2DJ_~5)Nx4sbR)+$7k*YP7e zQpC<}`5VI5sQn)0JqvQg{tMZw7E2c=e^%1suHKPjcHXS^%El>|m6ZSg@Bc^O|D6ap z>+>+-0EeV=J$_U4ZxV?KDeMEW@Am`Dg|HD)MKo&nvS&_qHnAsa9GQ zwyM~#PCo0^N^i_-RbHFf-Zba6IqUPVyFPF8AJ^xtPg|e239QfCx$E;b?)tnlYxqvA z-$$^5@4(94TH_D1SN=m;pHF7>KY%rUch>!VC}FMo+uCOXd??ELeh906D_0k6Jc({T zB|CH0Fdw-KDT|R8lfI0!WoVrB`D#|_D_Nhfwb$p?8r_Q0X8yMF=S2T?``voo!QW2% z&(Vb0wzix!XWNsl_4#4e=U@1*hgh>8ve)M)Sfl^IpY?j2^||$Dy<3vCK6eOdXUkfj z$L;lbHr{hU3@K*6W<|EPtiK$r&$IEGOPw&?s>reCnYTt|fm-S)2S-nNBJ$P~_^)9FEBJ8|Djob0; zNBnsT>$~)C)NdlA%(e8#Kr5P@#}DmN&EYI#lMhvirJ&t?Hp2>Wa{n{MCf3?5(Q7H3&7dx9WwOhOP-Ub6>Bqw_Dj#Q#-YptF@$S?DST4x+7a9t+K87bIMxVp1r2N zRjaI($Fl5Lcgm%6TlO3qRxM6lRvyQyRfpxLRd=h<0^5e;x0iEi=wZgm&5N_Fs3~Der`KhbpK8p-)2x`8(wPwNXcGxeeDctnK6c^ zIh^@yFuK;vY`vJ{`ZDu%U{<@C`7IirY|n1i^^Fnk{Arat9_ntFi-rd?BlfaO3~KRA`+7pp}r1!?=%y1j#gqh*l zq)k?{ZK*pg?aKCoa0gyzhDVd5GjzhD)s_*oWhA~X2wTUPc4|#{2=+(OA}hunk-Moa zVe2|m58j7TT75B|DJG1yQllozR`AXb;3@2JG$pYy6~PW zVzsstt$LEp8coJJyPtOb&k67_&Pww87 ztWMcnkt=zx8L@h&xh@{58>yhKj?^cmVPq)QnxLsqo~!Mx7Q9!Fv_L;pwIy}5YGS8c zNq#4-Ci%KWy4#j(MvC)yB^t|uRZI2AkjT(Tb3H6FJTfA3Yh)y^qxrivGR~GJ+9~5A z6C-!pX%pER?WT>6-0%NA6q(82Ec?}YpA~rs*-Cfbovnu=&$@q0Bg@!Y7Wi{?>mwT? zZPliT^|v{)1vW=s4ZRw9E%JI~d*qGCn`pZcn{MhIdus%J)D}LB?1_97*&Epx*&i9J zKZzU)-Kh_TK8qZR9FBY*`6BXV&OXP`hnNB^x`j(Un9Roen)o_ z&99MUB*mYK>gZ&pqdmgW=xp{a9nDILrO6R3&+)x|I8U^!?h!7l*D&tN>w?kt;ezBY zLa7De3!-m_OGHaXOYyfST$Zh}(F>y$qC3JBcrO*L61_NDHF~GMBzhCamg>>VqdUW` zbq&&6=(5q;yjSP1EF~JFtuaOe**Yt=g{`}ZBYkzsSSilm&C$-->l*DA zZLNAldq&%--n{mW_KV)k>p-;qc<;&IFy5(I^&_n_`T9l2MaM@cL?=ckMQ@9a(sxAf zjNTQ!J9>$%aD*jtUI`zbdux-Pn&oEvScGtoQ{-OBbhO1ws%?Z}g( zZ;?J)?_}$K>U|`-JNiC$ABgV3!c5!J$H)h;Gco!Z{)~@)jwd7a-FWvEsZ*lIsCg81 z&&9?M(I2BfMSqSqiToPSCK`%`V?Xj9i^XGEVp(I^V%cNoKu)&e zu{>z=#`47sRtm%l#?FuZ8Z8_v5-S=j7CRX&9xD+m87mbl9V-(n8!HzpANwI%A$AdE zE5$0us>CjiRgG1P{YJ^lC}Wk%hb|SZhRq`AipA=YrwV!V#2R7ADtAq+S?t=_b+P8L z7O@bvD&ULdNf=92-Q1~YC0k?FS00bbP)BL}_%YfS>m^}eY!IchladXonBB6Xwv{Zg z0<evgh7h`K;Yh&wT>th>Y8+qM`=6SZa#$F-+y4XUr z+u42-X-Dks*iKS**(G+nCH7$5D)T%!7Q*(}LAJM(w%z`-tbgU^U2La6AN$_UyPf)e ziTz5QzmvX!d{$m-%kpF`^;vdfam#Mjc((XDG%I5{;|pWCchcE=h}u2FoeZW3=w{af+vy7+RU)-ry5e5baomya*h z7sa1pb-h&Aj(3W$wO7%bk+%ib&dzG~BUY;Wb=mk{*2TN@u=qQyli!Suj6bPIQ}P#2%w9kH_c6 z*Rax_7oSgim$AZLte>Uav)Elh)OXW&3m6YOv1^?fY_shyW%az#wYv$so8y~Vaj%VS zi@!?DUyrY)%xn6s_^w#`T)=Nnd{6wN_}=)w_=oYg;vaHev|s#`@z@^cbq z4BH#k}&sPoG?#RO_-I{@aNKm>3&(lyiq-2 z%3PT+v$&%>&Jz#{@oB)nz>hWZ+ z&miA533CaLh_jxVw}z((?rcsRTVU(@g!u%X=8>ekbMZ%CM>(3Gb{ z_k}6&5*&aFdA9aU_zWuY4DnGg8+JpiL&B7W4sbub0>8p}9kC0y!wKlniT1-|umSeN zNhriG6x4tYkc753)5owAbmxS*3OwD=2CHB%q@Z-qgt-QWz%1AVhapR^gsBW| zU<}NI*P&`}#yyOOr{GQa4)XV5KY^}r4=jWC;ScE1m-fJg{kUfy7Q-(11q%14eb5{3 zgPl-r05U9sqfl=kj~$1tP)DP#BXJPfYvY?o`l!n7~~n5Fqgwka0e`gUGNJO9z`6WH{1uSVIQ17 zI$`QSPgn>$;0Gu$hW!`1!xUH!AHpdpF*acu!$5cl*26)Fj!T$};CdJdb732N4Y|fA zObZwRb6_hRg&Y&uSD`&jgoUsJet-fK@d3KS6j%-)!YQaZiLnFsz%qCr{(uW^V_t&( z@F1*(0}#HQ@dPbk1k8c0a1?Uffe+9gCc;A40Y5;2JMjU!!xUH!AHpdpaTjrbf$$Kl zhl3Ekn>fJrFcRj%HuxHH-NXJ29pN@u1Uum;IDayI0X^YfSP36N5=u>BUV_2!Fl>ZF z5TD9;fYvY?o`l!n805K^@c=i$9k3X7!7osF8sh~hZ)Z>H!Naq zf!5D*tc3Vt=5?43?=K<#OA}_mGVDB0KP_kffPpL6*H#iY7{7}4ucnXT^%v-$7x8%w zbIn@fzK(rrJ>y^l@!ZJ%x{3aM3145P-J268w1v41ZrjSf{t9#OHu~UI+6~!WBR_0{ zX4{$1-oVbAwBarM*unn%He&$FzQgfw7svN^>D%|P4{A4YfmLwf2h5=#;^&@(Y4j1t zuD$gAK92YM8NVNMjQE6O*#XAqrwNmQI}S1yVEAXulhEN1{SS{F#<$NoX28TR5~kmm zjJ+eQ1EASaVhD4-V($E!cznb02R0u|n91KV4v#aZpI}~rrQb3BzvuY(1F`-wVcvyD ze`3AzGh_A_=6`tUSJoN7v9J7|Fa`f$oWYWl#O+kV)JibElN>AHkyOHTF|=DH&C9S( zCr$5A(uBfE(-~&LPKZR3tcjB5!f4X`0OeyzGYnpZQ}9hZX}V@fnxEmetVz=#Thipn zo-}*l$#asXPmZLinloum!nRyVGc9-0w9S(=#m-H#R!N!_d6Q;zzNEQ2f6`<>FKIr2 zxdoD@SHYyIa(>eM4qFQ)&D6q4)4E8~6e*fCU&8anl4j%uNmI9Y(qt`x|IoW6zLZLu z+@+IdESy&cUttOS0xy+KntRJ7%_oqze9~M44?~3ulV&}94=pMr%{dn(&2qS+B6Y)r zN=Xy1j2*b7O44kCh8HKzJJ7Cb(tHMet0m2kF!mB+c4^Yw2j^Wz44{1Vq*)1VE>D^R z(CZ3(zA|ZEhZZ%GW-oNDNi1Plt)xl7T~{Sd&e}=y2o$fAG>hTdx=HgP++2^?!H}zy z<`1~Ne$td_kTh?=T@5MMh;mT8G3B6Ilcd=Q4Vu!YaKkl8a}fG8qfg=aYm?^k>yl;* zG;N+VyP;!?q)EX&Es5v#NwXSiwMv@Tpn2=0`3SnSNt&PZ}XCCv;d+&gKWhDv>sW)0NoOFZEEeo3<*y7y0-Z=vIWqsWoe4`m}@H4C#!+tiFSV7ToN%I6GVe@$UWdh>{%1%t0MG%`rTVUvI#1yLB z&VB>A?ns*VV9cG2FSz0^#xX?hPMSxd#yymQAK}8uj9)ke-KL<2LQ{zk?1rrOvX8-5 zxOy7>0wmBc4pGt1T$d=gdR?sD`5yMf^%mj&3JeLjzP&s@BQf0i`~WSPtbA+@q($(B~7`d z*oUsm*zaJ@^YrI(_IJ2t1%16TX_i9MRY`LM?pRH|FC@)VQ1(UQxrR8e#UAWmmo(eg z6Q>RI*T$r|e-q>NCH#4r_HQOGTNp!InM+@x-?t^rukiV+N%QV&%#p7%PPQ|Dyunz0 zlkxKw@z{|x&ECeJoy;@u&=0$k#=!1(>CgA*=iT)G`$;q41N!5`q-nH=dGaIt+eml?Y0^wSm^33kV>}*W9z4wa@;T%53*z%-(u9vNKfr;b?5|%X z&DyWo$G#!H$C!`5W!xTToSjIThv3@pi1YVJb2sQ8@Ducpl!J$UV&3=}zkf-Z6R`GI z=8fNo?yMg2Aq>JS#zY!Gf+Qg%6tanbEQn7 z+$pmb+T=-@AK?CTQ|6+)Df0&O%$G8u{3-J!)H;v);MM{uleb{XtbpszPnmDvo8 zx^T)Yf(k`ara;k@i4?;ge0o93>?ocx>q?}|!jdU7qg2XFER8>9Ql@>`lxb8hWiBb7 zGQ}@UnH&{T<|G`wC}lpVm@-={rOfk{Q)W(;l$m^S%8aO*GTo}BOp8nK=hBq9@UoOS zuX@UaFHf00u=t9UnRR8#+)*QChSW@%n`))ZHCLs~<+bszPRit|n=&alRxf4tUY#

    8oJV?T&?NjC>7}FtTW_F}qorv*G zDRbiHl!!&0WhaN0KlA7IX{DN}tU zeve9-PhjNelsR`y%6tiv#uATl_z7Fbr%a~_DN|)4^}^gqDRaebDf2!Ix;@3QfOf+r zcc#n{c=9g#^={e*9qwU_O-`9EQ|P~`j0>24FL9p67`P7~;jQ~qX61BzeIR9;J(x24 zq3;aFGAw$CKA)K~??H!$>62N+9&$XAGP~iX*(p=<(Uf@C&{@au8LAq=0J zGQYu?C+H8D^d#eE9`S~(^XY%cwSe&n`JYOe*--fDlz9S5ETmmf?wOQX0+kjq{^62m zQ)UfZxj1DuL7gQj^9nS4j<`azrHmK2XIaYBem-S>flZ*+LYM>_1C4$>(F$4%DfFNHqdrxyOHq>9XAnI==xI1d;z^* zX8(kNn^Wd{7`7#4euam&5~EjAW+$}VM*qPLud;tbr`J;EAar}3{)ax>*yVb{wQS*!^FMJL;KhtAj|%gxfgPNoH7qWzE9ZipwI!vBNYEMWuAhv z2bm9`;%6zd9I72+Jirx)*?*z-=Zt4)@I}gOhikqh9?UlR}L z^9}KULB~=i`?u_Gkmor2G!!_IGLJ#g@7V95)c4G{aN!Tk%TVP<<{P-|C-zUM`7`l= zdcP14X#6Yjfa`uE9?<%C;sNddARf^9B=LZrr&8uC=$~M}grQ01Cm5Mx{)F)+#mx!E z+yOCd%oI2$WXyE<9jb(lxf=|$j2JUGYRs6J;d-($H^+@R2BWeVa{w;QYD|Av0Q(?! zHe-6j6L3LxV{U-^;8i#U)y^?yHGBglau{hZ@G!g$;oQd5 zfV*H5<`<}Vo-y6wF?bKM z6fmX^+zQL!3n*OBm{xGr`NljC^$HpD4m?=cm~lmnxu~cylVLMtD~2B4h4=-=)P~<+ zMR8+}LbVdayQDEkU`r|LEp5#3GR8D7YfSla_*&kWPhic3JXNuRF)v+&t%}BcSjm|E zm5n)A1^+L`_o~>aW=y|Jj5z_fTx!g(@YrR>l&)^fVYvHp`s4~@UVz$H8uJFUszE-O zR1;ro5hEyel`+pkwc5lU#?&FLE@@D$9`S}oSK|kCs838_Py@yb+}@CQH==z|qcMFA zeVWk5rpC;I;@23n1TJl6%*)W^T4Q!Yr|a+^hBP-OUkk8^#Gd(UyESkPm9LBOkQ9k$ljjJ+XjM9f)H`E;qq>os5|W4Q`^(;KrL-Lc!gg zN$Wxy+}M?P!QI`6S9j9j#vY`>fS$w)CiNm-z3G3rq7Qupz4{U_7}L*~NPjL{LBRp+ z4^VL+eF$|28S@sj8BD)HpCQKl2;+vb|J`ED15jv~F;7F~;f!IpdIV!0Zn%{;L%)&6 z{0tLDF+N8dGXsi@G3FV#c&srSpusr&h8xG@Hw>77-!N$+eovyGq1bKoDO9_iK7~ei z81og}c_;Sa)4LcWcN??k9%DvMrq8Ar^8*~5YRt}ijTt-5m=^aLQ|f-kG|ZT8Or-}X z1Kl4qCIyeqpxi^odO^b0GnjtfQ~t2N<=UxWGvm zyMgfzUqio*hI1yy*Cz78xR;36%lNyQK7k2a3=<1;;#Ok@!qZUZ71{w=x3Mq6Dd_d8 zF>B!jlzEMK!0F%JE}^3Fl4@P7l-i|BtCpcM>OiclIvOpN9luQpwm&su&Nmx9)3rCt5;9@S#Ykl==W4MsX+PC$10Ud><}S z$KCpWq5f$2Vs%tI_J?r~q+|E=c6r;y)$Ul@{yy7&IqqIex9vghw)AZOi0yUy&)Q|R z>Gbw^b!B@0`}G%&|GV|SPy1tTeBaN|{)ZzMsqcvGYWmh{|BI1})pzvk*YxW*^y@MD z^;`P&IQ@Epe*HLBOVy6cy73hS{oaujzs6Fd9m!p z=f%2!NzLQe2AqFqxBuMVv_BvF^RYi4`||_#OY!aE(tHEa@!cA4<4c+Fwa+{oCb(^UZkf2eIbT3EUG>h%qpOd%PdwF7KJ@Qtp$!j60>P zbFcL2W5Aj>Pw#hc+w<>i_Wz0P)8m)f{%!wb|8L`Nng2dEXY=2Q{iOe3J3R(6#n&l+ z``;?>?faFuWB%-IO4lpGj9yYg4Cvf7kw<+~fD(+YkDF`r6dm zH~wtwPUE>C-m%MB6aV$KuVw$w#^ztQpN@Ij?;1Q6#EP|bKH#m{&*opSyyMq@F8}w= z9Zv6aZ?4Srp7t-Z{h*)Dc}WfRgnRCj9#@%c2gld{tM(t@-gRsKvG%`T?D;42-19Tz ztAKspc=qF;Grqj@MR~56DTXC@!pvW<{|@%e1Z%gmtttMy`n~nHHTOElX=~2?-aTJE zNxT27-n|*lm7O)eoR4G-{`$Gy-#@lmb(Q2<0p(Pf^W}W;I_hM2tjZs6tjck}Q@O~s zs#0VCv{Y3hL!h-P78wR@Rkg?nXs0ShMuPPDbouo2esAupq~0ZF*_fk0)_=C2mQ=;K zZm^rN_gbW!dOc!|y~=7A=deGx*9TsS)Kyy|9aYwF7xjK*tXdZxuQo*Ism+n>#WzQ~ zfJtpWtB)mB`rOl6_tjEQ#jJBm%g#KtfOEbDobxT?CYN^tp zx~g%g3r~QUr%Hvg7cUj+0wz_8-s zdp6heoP%$;m-8E*NY;V!9ds*h%)14+UlgB5*}hu-%769MVC)aZ{&?(<$Nn+wAH)8) z*#8#$8?nC;`$NNnpp}YYH-_Dj^yA2IeKmygLv&Mho$d?QstS4lT*uSH2EzaS^{aLL z)w=fStzQp__3P>DcW?drXV+fket+h5S1-;^`~Ob;*829}tlwK-XI}qU$J2kZ#`?4M z+yA%!zm30lEbpmevEC{k>kk8A2n>f&DtoMlI>0`8AmbeHXXXD>S!;}2=S;PEVqs67 zF=*Yn-5&j|^G@II z>Zof%jn!qL-f*p|85#gB)m5P(&{|at4TH9-ZfFFwQ#C>(!LsZ9%e21kqF&Pf)*3sL z{eR20)rLB1JnipI`+L*=fwX@h?H^402h;wWY5&c%{}$SR3+*33`v?4K`~O}4{@MDy zxbi;#Ey^0x`uuk?=gCufD#_`e`~J!~*?+$7Zhh`slc##5ufN~LIdztB7t+S6^-*s; z$oJyP`~2ZQ)&Ix;uzv6JhyPUnZ+}|oa5Ni}T`* zRU_t`MqHn{mg_Uua($*bb53)v&s@dznX9-yb3NB*uIKtpGp^4xJL|O%%m319ntT2{ zgY)Ooq0SOSJ!GxBcU2zjb}8C++V^`}@=W{4(f)pa(*FD0_CG}XAE5oS-0KIQ)BewC|JSttYubN|_8+7D`)U7v+JA!f zpP>C;(f+T_+WvZ~Wwa|aSKXq6poJP4<*7v1@+V&==nn}DB3wHY<+*HlKLgqNR5c~f_ds> zG<)%r(Jo+8C!@@-jFl|(M;7`cC;gF={>V*#f78?2|5xizQh$>AlhmL5 zFY50^{5xfc|6i>?Mg1x2=gCE>)PGTbH|p>959&A6Z>Zl;zxfOGmtg#r$T0r?+xRQ4 zrz@_fE3T*W&|&^%9)FiG{x3Og{O4u-=Vko&r~Umiw7(GJuh3r@f13I=^=src-eVe*E_8zyf!<7W?E{3@$hI9)DExhUnLl#ANmtE-^? z-uLO|o#nf9-kf#%yY;<2$NpdcKHWT(`MY$d+x509sqFE3>bhuGxLSQ2=?3-HCz0;Z zPz~dlHZ0mmO%3;g#wy0KEf#I6l99e}jp`cZ`HCFt;vDPZ9P18ntUJK5E(^!dEF42` z zdf@Lc{2g}Ib7w1tl~gX`zmRdUkp5m2=?Bf#vynm2S}ltV125K@-YcndDgO-RpP~F> z$}gt;63Q>3{PUE5{!hy1_=o+U`ycuLf3xqbc>dYvFZFp=VRvY%T15N8wW>P%Vs-Y# zZ`c>Vi75SHrfxYS%^L*XLfezAjMjEqe$+0TmLC`LGj@Nb_0I}H4Ggu_Y~67wriN z|GpLV_Yw8y5cYBkIhT-g3;A3jud=&5?cckizMt&-4AS}^g}g|#=NTc_67jAn#An=iZL&6nNr=F9GQ^JRCu`La9SeEBA)eXgu|{yO zvCI28K=Fz?8eKN-FW%38!umW(Z z|By3YeS3?AJWAwm5s1H1t%W~ro&5Hz_2SCD{ap5z_T^$CzqEI~u-{V16`k_Fy(&U} zPt-R@=-Z0;xw3Dsxv1|tk$-_>-?nPK3>N#>>q1TnxvZFfz7zAugJOT)Bg&T(<^K@* z^Nac7xUfG|W7`*Tr#sIWg- z$h$@PFGTr8LVrZ)4+;5Ok-w~{&z-M)|Az$f>(G%v`*c{!U7h^)EAw2~m3@070_BzZ zK=@Zp^lt}|e@@UJ{k_od7WTdh_UD;)IUt5S8i=^Q^ZrgI$4n9h8dF`eTo>HK&4%Z5S>j*BR59 zw=NnFSyyFDXML41opn~mbkY(sn9g}i#&ph4GNyB$ zk};k0m5k|}w`5G`{3T;L=P?=6IiJax&Us75bk1K$Pp=;@KssG+=N#|sR7>-)-BrHm z$$r8tNAJrI3b}->N!Qm@*mGsS{3D|L10w(PVtsIlSic<=$HP~|@jIW$f2ojv7Wtj) z*uHz}Yhk~q$lqG5-zo~ZjgZ?4`351MC;Thm$i73xMSSau{#z*G=gNNhc_Q9Vi2QGe zcvlksd?n(sNW?>n{FR0LyUZ`z|Glt(i^!i{WF2Yd*t2#u{`s<7UWZ!+^`7k8Z|ms2{Q3*Wj{R!w*RJg8!=gS< z_Vl6pjyz?_l|?*UD?xz8U*#8?CXX9Ay@YF;ihcahZ@HZPxkdzJWkiUvZoJyEc|z6U*FQ+ zaz)m|uI%d@3cV})`s;<>l|6k##MhI3eVbtUh%5Vg5&wuQd;0JV!Sb#g^7Q&6r~Ukz zjkRI#EWB%x?j28bSk&jqzP-JUJ^R(Nz&5e7z@o z`j9mqP8-jj>=od130v>w4~zcyWKXa6*)8#kYftv{VatE(*JGW3+LOHm)yLlQ;-~n1 zb?aYRp6KRzI9eseu&-<3W4{4RS?@5;XY zZqD)0%O9>C%_sj^OaE0g`NP{5uJ2lGprxmsM0hzWVVSf4nb=lRWbpSzKk zJBsy7C*fZmVZT72eM*(ETamVRlPG_)kQ<2nmkN2Ev@hzvK*&#v_AU`}ago2eXz#Vc zzpF(4g2JD2!rx}1dU&nmi-kNy$b*GENXY$!+*ioG9ocJNShP>dx%VEAp=q@?ep_xfpNVMf+|S`Og>r7Z>BDn<(E!$aO^iCPH2%?DrD&_Yv|U(Z1(| z+*{;tB-%St_}5b8KTr5`f$(>x=xgh5W3r-$Rt|BjkZX?kMCALT)eQ$3*+) z3jG`*&ld8dqWnEVKUT;igxpy4PaPqzb?nk-_w(QF z_~*;diT1g&ug_y|dHbvNjXCR|uU69Dox=V&A=h=v`vw{cd9J80w`kua5nosK?cFEp zn=bPIA>t$D?}YwIQU6*Ye=G907xBJV`18Ay-)^<_;>y1N=Zf~1cH-mbm-eO#`%{E` zg;U9oF`|rlnm)&^!vKvodcH`;Gy&eC2*^QSk z%Xqo|`FiP}8y{cq#>bc4`1rCr9(~!}AAQ-~AAQ-~AAQ-~AAPxxXpg(U`TA1!mLG2A zj&ENt$9G+k-`&6b{O+-^glZLx1DOed@b}tMft-*-$&>t3%QPvZxr(5LcU(evxHn# z$QKEDq>w8J`C%cq5^_-?cNX%^LcT)Cb3}aH@5|V!){Fan8DAb{Z>9GK_xm!w-u?cI zFU#-0ED-bWUeTZK_fh=v*NOSe{XUGZcfSwg%kKr|Q>}A2vajDP=1W)h^-G1`m3{pt zp?76pzf$O>{IobeEpht84``9V^?V)5E&Q(|;^jP-#w)I)KjBHv)7A$S#r5+3f%?w0 z-$d9S6UeW4zKzw?^m^n;M|Rt<^@YOU%N^NsP~9KMuhbO*yRI)Jk{EXf4ZKtjR*GIKs~|!(fVe) zMz305b`!MjBJ@IzS@TM6s|x#{4hQEY9g^$jOM>kRe@D4<{CFvKv7`6u4-5Z1+1Gat z`WJR(&mpxy)ED$ehedll*|V>OeJO`5|4$niQEOeqJnNPB+GppoULLkJzFx#fhlPKx zeY+8q_U0km4wig7UcG)jv+a7$EJyn3<-Go~b7RlzPgmwM32|JyEpAoe)vLINH7GwG z=s%_AiTz9J9~1c>4ai#GWP9Sd8zr@P@$kdp~68qV&$iu)(ii1DCxX= z394bxpUCe*e}^O6uU7dYL3>%;`1$sD2q6E`{r#J;UtN^9{5v=8UlvQwpO(X}zh3>e z{=Bq4i&K+Vy^c$N&JWff7xmflY4ydWJ!`(om##1LtL=$jUrdajb1eIX()pv7d|LdY zapd&6O2_2*=o+*i4eE7RjPEmKF<$KbGf&!|u-m_OE%+6a{)zU4^9%n)|JmhF>%Ul5 z^5^yY-`~G%E7TVa_K)_)r>FP&+m)5ND6qf!vX|eBzbBs&ui$vr+C46M`Mv$em)-rx zlfC}*WU)VMZ#;PVxI11v+1p<{*&AP;9CGFpyOGv72|3^6wXYwN$N#+iPt%!qGv?>I zM#glmZ)8m8I!DHI=JAZ_%;y=?nYS~hb6wI(_r{;!E;k*W^)DR<)*l(|lp+)VMgBAG zp3M)ABN^>-Jjs||*RJo({%ClXbgs_?{0rXCp(E~b#q-~rhdkMvCp=jP&mXimk9m6U zI24dM4h3Y6E1v8fcRX3lLt5^~-hS@o7xS$4j+>s|o0omrnrE1|12XfjCr90R#gpxM zo_WQSz2lxIM?`*c+|u5>>*W{6J?+hFo<1!4$D0>Dy*H0~@)^gykXYATFXU-r9&=^a zo>F%?dSAXn$dyF-pse*lXTR~w|18eihKus9?B^dQ>bphAR?&o>F-u*n!m)+0ve7U|DAMWRQ zzTW*j&zDO$>n2}zzaQYs?)L+H+5LWiFT39l@MZV=0ls{#=x_J?0lvPVy_IfnIpKdZ zQQrN2fM33z$nSnXz}LIq5AbF8^GIKIKaccf_wz_!cE2y;%kK9@eA)fJh%dX}7xCq| zh_Cy75nta)w9oy%h_83QFXGE3M0?%ui}-r?`y#&FK;(D7FXHRh*<0!OyPx0tdiV2t zUv@vg_ht9JDB_w##S-$lkx0Um?^F%C% z)ABV!-sl{!?N(VY#f1K#&_Ck%>*wzzj=$9cek#>o$n!<{Hln^APXGD#_lf*Rg?_ux zcM$&667_c%@@!H5HDUjtkS`GaUhb?He1BI8`(;J^8VdjJ6ZvzC`sN7#>WTWdi~OGn znJPpBm753X0ZMk4GzE&O>?=-(CkuY|s`6A!=sM@0Qv+%}p1;~LJKc_Z{(45bd;WSxI{RBj`|^C$^ONzE zF~560dWQW{cIQ&W{^zy#%y!nb^PQRA@GR->d8B7oryTpfT*j`_t5>N@M86-ltMZO( zTFd-(MgBuhe$Rf$o!^A46y*Z(aq=ledD8v*&RQNnGnU8SjOioJlK=CwCO zH$m2~LzX{$ROIPB*{a0;cY|opjkZ183G_NN)-6dK*g7+v=YVERkJ|Be3;TBbkXjch77O{Y#!R)AKvy$1R_Z3-ffw z{LI&+yV;3ke|s}67Zm;eo$z<9@b~G!=h2GavbDO;v!``A$G)53%T^})UwudKiHi2{ z&nwU8mSP;-BJ_F0@vVS3zFsZt-{q9|{0Uzf&}&cj9oXUMz5KdZK=$`TKmP#7Utj(; zAZuMzlGrX%$e5q?1?g^f=7}oyraxZ@S@BymR#VdX%ZmK2?6-HDi2riYzLx{-*Sd7T zzEVLw_ge+V8}~m2%AYCUAIR_9_Zq-6lmqPv$@*Qrn_qi+zx3+Jhoobc4BB=Ld zSI=`r9KA137jioxe<`U`Q#{-GbpOtj9}xNXiu|tZ`lrL9y{>#_oGC|{Gvj== zbo?g27gwd;6Mi`Inf1`VjP;x?o%ROm8H{v#y-S^X?Nm#%O!)D#-K4aiQXb&UuYUP{ z!hTZNPYC;4g?%YI&)N0NYhB*4Z@Fs!6ZZ!Ty$)3n`R51fJ5#?RpjXP3z3S9Pp?76p z@7}-X%M+dazC2mT*9iZH3jI?;?kZ$?KXPTqp8ZNchg{jO|29#6LO|B~ke$=(?=xiY z`(?iUf$mmqXPmk9=xB30-M1rTrO3}ew=jOX{p#Bd_OsTaU7qaK7ZLRdS*f~qeRgB5 zdP5W3n%woaU+J*935#yc$aLqvSMex;n%4&SfO9J_9U)~@X9OWGPQzf!fF>o0yn zWpVu{D%$abl__eu zu8?04@GDsA^7};jFGcxTBL8%e|FFov zK;)k!^6wD&9~1ds7x^y|@@yx+-ym1ETWP&)7xr!z?SD(?FBkfy!oDlpxvZD-g#Ujy z{q5`53;UCW{~wF;%Y{7Hw&XWY{VMct3VX$cJYMAgUg&oV{XEfLSN7X8QsjR}*!xE4 z9~Jgo*|&F6HbzxIe*XSWeSQTioczAtm3{pq!u~FiznY`>^RE_qSN8QiME;c`zbpIs ziwJ+6=Z^bo_c`S0`E#h9KRrJ?>t3bU?kAvx+Json=&n(Y=Zk2cA0WUia`K;qC-p!~(&huM% z&Wo@cO!xZP%b&LE7H2~6Yck8yEOj9h2E1reO96OWKSOzdRO-S4NZ1kVgF*w8z0(D_x+S| z7GYP&N)@(?diInmBKF_fVqQDy#NVq>xzA(tW%v1uz8rl1qK-QK;ngQ)rG6Cl-QO$l z?YX~C;LCgn#y`)VQs0U4Joh%Bcb^aLm*;u5mfm{dpN{QR|3u68Y$~tt5T|PZ79NF$SG=8;eW}w|#yZ3$j8LkWN-`;co zeLr3flvmz7>g!(-eoA?sU6Ws(dP(G$vin?kw}95)+BK!y>0C!tihShp;}??G7psZy zUz8N%<9Wv~zaIB~c~|CnH=^AmMESP^<&~-_@@EnG&vW#C+@w6inXf#5-0R<*KZ)-# zc-Q04mW~~4cyZxASrLc(gkL2C{h{?q+e1GL>iK|PogwEJ?Q&(W9rmX8D7j$fYL&_!%T)APG;r<|A<9s6lJB^^6%JxY*hbDw$8Sn__Q~he=Ojf54tnHEey_FE0*d?8c_khr1TppV&&L zd-=J~pY(J+7YFLqVJ9Bxa-Kc*x6{gL-QKPzZRf>+to7OA$UJeH9i?t|+G%@Xy;KtI zzB=F^>oR*Nr|W$%P_J@-FU!;Gko(*TI~VN^-68Tjzx$PLucPN4*uee3N_{5$Iw0gr zgrAh>pXY~CgT#2r>9oTxWxZS|?0p)@ufx*s69K(a*#mLWI@oSL9~13l6YX}dkJwhM{<7?G=<($#_Ey>tN9I0d z=ksenUr~F@E6088PCb6S?{n5yzWkHpmoHZew4e2^qj&8qbwsSsa*F<#=Cs?l7rd{L z^EF}L)%*Ut-~aRLyGOKVkEnmDh_k$o_l0O*F;Ty(_v=dud(S%U^V{>fsNYtf)=$N4 zOX+@cWczy}XuN*WVXJ?$ohG~e=GSvV_}x_a?dZ>}hwrZh>ggu@x!abNnjf6kLQcBp zALA-8K6S|bo{C#qsm}J6mtX6?j_mtC!13SDFV_R-*!I)@-{$6IJhA254LRwatkm6h z|D?-}aLY9d%v(C-qe_ire9zEHca@a*&1skYYQ0Ps{o?A~ z0$TSG^#<4DO1am4{R&1prg@A4{;0V^E!Gf z(f)T%V7%+lS9YprPpLP>{*qnHH}^XE9b>!(?-Qm!1NEP&ckA=Z*A@AL{%9@x*#!L4 z+HId7uW@2LIoDb2d6PU|HXU-Wzjz7!2DRmq7Y7|0WNXsn$&u~&oMuPyyOVY~`_+1x zBHH8X{d&rXdff5kmzV44Uc#QEPy6M}r}qAB`Q_H5Lvo%?1^Qj72_lZcd0K0CT={-| zX>a+>P{V~^uHLWzE_*BOrz0zcUue>Hqw#Fr-p+Y$QI@zd4o&;cQL zvo(HkRanF&e;~g-uae@&Rd;vFd-k=QN8R&9+luv~gZ^nb{yT{JZx`ctlv@+)3$}be zLQc9TEA>&pj@G>ce)8P1fL^H&1M>*iakALny0s~lRmh(?$4y_~C179cs*dcpyLg}< zwLU+PU#TU*{XkzX^p^$7b3ear`Ly;5|HlX7%=HZ6|G|Jgt+NN})1hwy_H{V8?$lb| zS25)}dg2 zrK$`2AB%Xp*JC~VVOhR{D8D;UUhAMgI_$0|Tzj-fjK|T!UOy3!zCu1G;@3}<5B4u> z?|^@b-!-=ic=6KV3-BzfFY`N$!ruPCcvY%vpuAF#34LBsKCfu+i$d-w@*fcTbA_B+ z$lXQxbwclcPu`FJP7%KoLf&oX^y0(XR@iGN>Whf-!-c+_u;>1+pzqHJ(Z8ESeTzl; zeWJcvLcU()|4sD&uR_i){M{_-|3&2gS;%r7azNC7O60#xjF*>0{*=i7jPPfg@b_gQ zJBQeG|9vdtQ$y5utMI3$(BCWM#loK!Lhco?r*#%lzJSQzO2}=5{H`cJO~}sgrKj8L zoKL6aE5-iWMc8jA;^~*?XNbuEu4vz6p&uy9Hy8QK zi~7n4fA19b?hx{%fUHCAb8KxZR@c=E=#@HO^k;pcuP*#)B-RIi2>%<3_H_=}(_y)O z+9S$;BIc6@!d`tLZx!XIiuPPB@;4Lh35oh@1@h~#951s1?Xi9n$@-TbUp)h|jt18w z&hNZt_w(zp?4LuTzb_L0y1$$2_NUe{k$}?kHy%NxC9ToleazNIhJt7`2i24Q#``3&7F9qsTDvu~17UlB^eb#_Ity={AQ|i8e zp6Bq3^7jjUd7-~h$o&HT=#bq1DvSJ8gnY4(s|mTH7|&k@+M`1`0k^&HX2$zTH9|8*Hz3u0*8glkvj;NkYyc;(I{YpC$D7i}DW%d8Uvb74l<3 zo+ISB0a@!~)X$}1J8G6I-v{zZYuF&ri`W-@UA?&Xa`Zhw}R>|ukn0IKEatycqW)~6 zzp@Bf+p-lI`L7uXGvH&eW?k#b*(&%A>Qbxqi!UF5^$q!Mz>`VTk5Cg2t*ha$fmQo- z_y7tqlC9O6^-1`*V4Znbdv6LRvCIy!6lntYL+)%!b%1&B6xD>wuESJFNx zP=mI@`_Qx|@qlP8Vgp;@@~iLxeu7@LmD&fz>TtI_?183rmD&VV>d~)|>uRpp!ZwK4 zS8602g?0_Na~!HRv8MPApTTw4F!rEaGo@yNzLsyk zz{k+!I;CEOlFjiO6418=enI_~+<^;4uUBd+{02Q*5qGHFntp?VZFq_&{0N=f^386z z@&@)#$lH!F2gjkqjof7gm$oNnkh23Zhp(V*M`90EIw|!yWW9+`9N=?kc{6R z2t>N@>jm&BH0#Pf2W7f3$AEzW-H9(W>cNpt{X=iAUd8tfsK%V0&#<#aN$JC!8*t_i7^TDU_a!$jbE#PdteLv26b;& zYBa2Zuc6o-j8Aw1jzYCN85b}M-hh)(@h-ka1`oh1@H3RXTd5mi0ek?ldzd4kA3P54 zfSQaw=mE3fQz$e=scT^ZtboIiZz_EZqhJYq0y*!+K1_v8Z~`u!M*CnkyafrUd>_XU zm;tZCuTbrN>V#SFDde8cF#?9eGq4x3J;3;YL9hV!K$ZvTTNnTf;48Rz2K@;$;dS^O zDmK$e-5g8{G!PC)U8xkCi*fpzdT6q?02hjFkBK80M5&?hhy7Qp)una!`! zLN9m(-he-#!lTT|Fb&>^*kg=i=mU?!TW|_0&S9LxJop^)J# zDmV_so=~aBWcfv~e6tb_S{V)`sfF1BV zlv&4d2`0i)*axxo%zMxU?t=|*6!L9g-h@Fg2i|~Rpu|SzGZ+mE;XO#gg`0>Y+yyJ) zAQX6sF$QB{5xfruE_xZC;U0Jq4#7E_89&eiro#sK5^`@L9?%OOhF9PZD7#gu>tP%$ zg58jW@~<#%U@E)_pF#F*^b>T48L$byf_$%X+=M#vORX>_MjU~g2&-)NI=DRnEzlJY=Up0$S&q} z7zaz?6FBEx=2#d2kHg!LfQs)?9;U%2_!f%nraTOT$6zab1-ag5--V8F8!Ut!@Bhn{dZEP^-SYsmHyV+^i^fp9-8hj-xz zICn2&9@@Y#mU!3S_0B8R94DnK1*1N~tPOo7?32ws4la2QTO*2A2iKow{R9icCbhI?TSEQ6O| z2Yd|2K!46Y1LdF^)PZZDBlLl>FcltwXJIwG4j;l7@Ec_Nf;k&5hC0w3Zh|3j2h4zl zumZNhZa4_vKoW9)$ry#|&=78f{xA;igL$wTUWa|~Ef_fW2>UHmh8oZWZh$T@1SY{$ zcnp@n26zkhz!CTvte*?Z2c_XsXaKFC8w`R`Fd1gUv#<(YfnBf{zJwpaK$frQZzu^> zpcXWR8=yN3f$=aE9)WqV3^u@a_y7*U3HSqIUo#e<2wVu&p+2;Po1h0Z+nGSP!qm`|ueYhm#OJMnAv> zP!X<#M$j6%z(5!S_rOe;56{C|cop7*PvL9$5e)nv_O1lps_FZ$bKlftOfMwKl#r14 z8Im$2A?YuYBuPI*rVRBec_m5GFX@*g88ar5G5yFKy#@)%96w{?XCC7J-Fu&P_TKlN zd+v13yU%;~p3mBMPiO75)?RB*XPL1?*X(9a}L1PfL4Hg0388G19}6_1PlR;1dIbr2Fw850hj}L9Iy!R z8ek=04PY%`9pGnxSh8;jXaZ;fXborw=m0nz&>helFaR(Za2cQyFaaQtOxuGDEby<0h$0>09pgu0XhJ>0D1uW00sii2Mhy@0Zar;1Kb9< zAMglZA>d`e3czZ>TEIHMkAMw;vhOf21vCTf1ZWG`A8;t(7{G~u{(y4;mjFfq#sj7R zW&-X8JPcR>coDD+uo|!yunzDuKzv51KA@K}z_Wmt0ZRd^0Ph0U0=@)%2lxf>7ohY<*cV_6 zKr_JhfYyLL0s8?C1{@AJ8qgDPGN3=;pMdiLmjXrtt^`Z~To0HIxD{|W;6cEnfTsb^ z16~EJ0K5(O0PtVHI=~Nr-vQziPxS$t0-6H01?&Xa9ncPN0H71#NI-W$FF;?w8Gv&D z7XgL=t^kY!TnCs6xEXK<;6A{^fF}UY0A2!A0p0+t0elSj0`M*1XTYC;lAqD80U86g z2DAk10%!}^7tjH47@!;ActCH!X@Eh1^8l9sMgYbDt^rI2+z6Njm<^Z%m=9P0cn+`_ zupICf;C;ZSfUg1H1AYTIzo5SYYyv0;GzaVm*bT5ZV1K|NfG&Vz0Ve=X0So|~4Y&|6 z6fg>K6<{LZ2EYu!?SOj$4*?zr{0HzNUXd=4Hysj7hoFT7QkJA2LO)%o&qcayaHGT zcoXm*;1j@Cfd2u01<-G>F~G)vCV*`KI{;?D-pd;W2z%hXT1M~r$4mb;N0pK#g z<$$q(YXMULHvw(~+yj^kcnq)*@B-j9!0Uk3fDZwm0loqJ2>1gaw$n5KYzEj8&;qbC zpbcOjz=43yfUbb!04D-Y1q=k73m5{Z08|352229{8!!`aC*Xd-JiwEHX8|t*mI77* z-UX}$d>^peNvDK!3nL0p|lQ1&jn- z377!59xxqnE8uRxgMdc?PXnF@yb4$WcpLBm;J<)%fFA(A1H`AJ>H{_fGzDx6*a@&Z zpdH`6k4losPGvE%ueSn7nPXL|)yacEMya8AP z_!#g7;9J1YfIk5xf5QF&jR9K&S^{2P^$zS1#m3j1i&eP0f4gs7XpR?Mggt@Oa$Bjm;tyQa4+B?z~cbFUkUXf@d8Q{JdQn^ z4#TF9wRjVu2)n&|(+hM@$pQ2a+8^&IA4msL2RfKK(jnA|I@6(a7#&VWP!~Fqy3$e9 zjgF>c=veAb#{uK<^nY{$^`aB$Bs!V;&?(fHPNjZy8uh2sX#kx;1L;f}ME|6-XgH0a z$7mt_hn}J5=|y^pUZx_Kss}wv9>Bwps3|$ymzGzk81x7kwZ@i;vGfWa!T&@Lm2{vO z;)|&SU)9|VU*c?nue6;4e$JtDX)v8f=hFrFM)FXqkXS2eG>xIFXd+Fb$#gy4KvU`8 zG>vYg>2wp#pqptX-9op~9dsw%MR(JKkjdk;fS!g-UZBPFD!oQasEU@-GFt9Yv;!!* zmF@sVTR8LbN|BI-kkR~-juFUZ7Pw4bHcF%SDq<~utfUyyRGQVc=pVEya!pd&{46b^ z=TLtvn{fo7`T0$v+xQ+Z)XB%6638Y_!pzB^-fHVk%l7t4)%!M z0%{L+4s#B7CWB%%8WSV2bxx@qpN()wQ!SlM=`DJjR?{bR1in6Zq|?(r zT2M>cfp(%+)EaL{3;ht|=M}Vp_JjoWXuX`arR`{Y+L3mqU1(R@o!a1}rnbnn7wt{$ zXdh}%`{K-2J)##n#AEr{2_y2?=?&ml?QA-vk{dO2{%*>vlKF7P`u<+YCzGy0t|6C|Y=>wLRf4!i-(C z^S$9V0yfdkp98lNx-Z)KA#j(`C2*J1R%oBgNwm_%)D7+uItFeP=KewkH^A-X2nls^ z9)jE1*&W({nN9Pc@2jfehLI%6yu7jMma1V60f@U1xGyzRQqx#@qwDeu^>YR|l zjR=btem3Y-E&M>Mh3^uxWw3o3Eqp3H$i1&K^@nRb(}ePc;Tgca=2Pb~Y6qnT+9CK8HdwW9dsNpKl-^vC5t=`Lu9HMGcF^2x%j@ zMYI{*5^4;$5w(C@K`r4{Qfs(NX*ambs14lZ^fh=Wrf=Xjrf=bv(+_Y*(=TwB&~I?7 zmo6|0}UaM4ObP9u@LR2`7@JL`=ITEPO@gdhiabD|yshF8Tf3JGVFrU0J6{R&o7WHZb6%A?x6^&{H z6&vT3im-bvv%lIDz0+u)UdusGmH%Fg?Q-+H%Acv&qDD|rUL&a3vPMv`bzZ5c-tj~5 zD${;>8$WE5*E(R^+_pwgv0YxNh_av9K1o0ERgIY4uomoCYvsRl68X2P5&d-ZE#Vzl zC9fh;qd6e@R9RPu8drL$AEbpLcMaT*_~WnL9X6D$UOhj#Kg~6K*9=tr1k5RwJl5 zy+%-RMvb82%o;((KWhXPXV(ZSYR3EQ=jK%wyi4;u^lms$qcmT;A(@T~BpqkuosNqn z9oy!ej*BH7`{s=f9%)r#<`d1En&#Up$@V2S#?0fOYJHBz@919&`9DuX;l4ooV=t^Y zwPe3)I5R-+P*rCgA1&ZQb`VZU7xIng+LsZh~7(GvSudt#BLR`#$3Rn|tAw)1z=J=n1%$ zv;gjCdKT^ydLC{Sy##kDErz>{mcU)^v(MSwL2*Z^dM{@l{>6Ja3-K@B%lTi@_j2Zz zn(yU2P@4IBIoyXV1ARCvE^o4DI#x(JO7l*~N=ZlOywf4}7U8VNywSln5!M@P=HCCe zz?H%jlYNUCv1eluW`PGe)wx@P<-bPCzd_#Q&vd*e z>1dR9IzEteY>_uQQmqSA&r{jwq&`;X^H|n{kEHxJ&!hZn!pSPT$aR_Od?K7m@4|gg zHrabF+g1B|6hB?c=gAMO`)j4{AD=hfXF5KWbex-aIzE$hoSk<%zL0brly^GBdpJ1b zJ@0hzNp|^O3tK1UaX{YXv0l>gkG#|Ioup%*ywmZ$q~o7?r{hOS$KH9T<7Y|7mU*Y+ zS4qd7d8gxdNymsh8|;|JXM^IL1bibU zZ*t*rS&^jUl)TeXBI!6i?{uj1xblAzSDBQ@sd<-2eM!fzd832ZF_Z0Sh}#}JBsSb@6njw;h0dgXXIzP zF*Qw5SI^T{aLpY%`$b;9$?r;NnmY5?q(+Yss+$_tmCN&{D@;MNvV6_PQ?>fJuN(%S z3vnP?kG=`5es!D$ab@0W-ENJu>vvR-(;W6(Ogq3`LOa2&qMc-Ge2;96pOUSyI^#0F z-)ZT##)oN;G~%Lg1dy;!L6bP9mQnt>$Trbo}J5_u}qX&EH;%z8?wR5q-MU`}k*`QT8J&e|wxaE>GjU>Xm=u z6Tp$xF8}6vI2*VvxIEZVUkS*EuKk7b^_*f{Q5me<9AQ_-jG}twZfaU5DgEk{dn#U| zSQD9#UWUI`6VGdut0CN;5qdUT$4m`dN!6oc`P#?PRq9xE?%iOy+qQj2o@_f&?opqC z^oZ1V_0@>#9I3NyXE#O^UxZoZu7)L!6x(CGcrzuA6mLTO#?DN*of6i^;zx~9j1_I$ z7CM#>+g58p$<~>pTX9$k+dj2g*BZ9*ng2#T8|(%yJ67uq(2vWgTa9^WH9A)7o?C9G z4}|qTPaWW5B^5J0`R-#``^Z;P^}CNe$BoW{%(<2tfgK^WDtXsnYj&{aVuzNM7|#%^V;&a0oYm7IWi6v1=hJF{oDZ*Y zat^oc6<^Lx)aNK$-RSkm9I@S;# zG#+jvO4P|2h+jfN)2e6|+@&OX=VkJ2hvjl+(%%tZ9`5DzgWK6T4Q^tqKOOC{Xe)=} zUwmuz6trJzm*8a4dUP-!%wnS8?5JAHS+^R&*`c5! zM&qGNMKl3!F-?S9LX+S&qA768X*%2rngO?x#B=c_Gz)GO-3E6l-2rzQ-350!#)6{N zF9yzDj@UEZ$tj21+3D_TVGnoaIoX|gmbo*}GH>QN&6;^mjnl@`3}&9uakg=-<*X#n zoF!}Z4+mZ4Dc*hRi#)|N0PYeR2)ByNKJ0y|nf`l$`{V5=F^l21o|3it{fg~(oiei!!4)B;a1R-aB&VF+$FRSZWTQPcPTA`yNsTP zyBwFWvtF_VITdbaXNt7B1+JYfbnR@eYiDA`N6gRqdaeGWmYqEkXJ?Z#u(M2C{Y+Qo zwnts&XH_nWI_py->MRP*PWfAMmS|fq!@`!(Vz^a!^HJEDvaRM)5BG%I*L7L z8~OdrWTye_6*q3&G=p(txNW1kE}ZYSF}fB+)N3ave?4`7XiJRJf0~>41b3xu^;gMO z{}ri$>S^vC(!%zE+u7l#xYOKLKmKWMYp>O}pXRQJYxSdinwvgnZE7uNyXKiQv(*n? z+esXKyaf#`rZrL<-;>(-qSQvU!n1|6Gqu9QW01-uV~}JkJgeih@!Sk%p2=GM;PyV9 zxAN!9I`eP!Gv*{VwS+X%m@L5C~fsb<9O>$M9r{oS6$ zWV&{>w`?Kvv7;>9Iy2|gwY|=E&s&{E*HfG8`uXUoqi!2jo#mr#G<)hzpgF~~8Qc;Q zJHZ-J;{0YF>tg7=bTx*tU3 z=lON~zN={WgQ&d)=FBtrDNN$3)n~Fl`wH$7S_iiZZx}n?8u6~E*Z7&|uNkfpe-YPH z-;_a}nJvf!Nonwif2QPPmgFOG^lv`RHOKn-c$#b4S+Iqrv%+KUNXqvLPt}W8R}1Sb^_;po>MZKEQO(b)w{1)ugQT+`Byl8?>^ZgH7$jfMsXJgiRBWAJoVb&x zryLQVAVgFumbF_mvtL~mU_YtxAW>&sO#K~r!xu5$GH1mw|tOvi*Rqk~*)0jus-a0e6j9)FN zjylUu8$ZDN-^KJ1+;aL1?h^U}ZWSFZ`!n@kOh5ROy;=7uzLuQMn{{g)drxW$C!M#B z6X$2WHkyCyD#yOf5&T}GF{T~3$5EvAuhm(VD za&CZ&T@!c~F5aW=gMaZJ^>F+P&ThoN*poWKduMQ<_0Hh1xOWDxPV1e)s5u*3YdIU8 zH_p_EI0`#U{mx*tb`~9Hso!9&xtyt1@hjOveka?;?`7L~3^b7688pWu`Dpc{TO;<{ zom8D`#K~4tgLh4Qjk7e1De)URX78NIH*}KimHS_b-Jfle#wqKmMpxN!W@=!*Ig3sk z{dU{_eYMeC*RQ>G=JzH-_0(DL=qh-`*cAKLi)kyk*pUl&3AKb?C!X%hp(#?39BTr!%@z?c`{Tx)RTHsg60d zS!ZYAsaW!pt`c_;ua{5JzK6SneuP^^FH1X9JEYAz;~mnIlkAXAcHY%@aZljS&R~r= zI?l}VuBw-_s9XJ@)q-eSkVMYHeNJueo2%aE)KPP0zCT#KoF%sU;kF>=iFws)XHj#u zk?hG-3z-kj%-u=B`;rp(A_c#RAm+4u)xceq62CshXUF~Oa+2xkctcWfVm^mX|Cwg8eMieMe(vdf z2zNCl`yTM`E+>3KMzW{t@m~XezbLp)(qGp|=RAx(B_}6JP8PUhK7Lc5-_YOSaw6Kl zOisi&Aq6MNR@JiG0X$W5vRHBw|5Z@lck`Fa$&)T8>Fxo3B`GISSp21VvG`z4(s{m> z_+%@H6Mm+ZZrc_AY%5jUmCLLm@mPeE>N$?u2T6f+-&iQtdb3XMA-J1jKgx}Lk*G}TUotxZF6eqdtO&cpY87DbWC%Ek< zIhi2qg!iL;=eA+|j#rUeCwvlhx@WjulcG+NtutiTGxo}3&ls+qe3eH#3Abn5U20c; zdd6JF##Pcz%+pW4kahAuxT}fB!|~^yl(=@nr^}^#{>k^TWTTZR`jeosaMb-tvJqr< zyEB7Eki5q)-4SH`{>)S($YgC-I(x+u_vHkQ>iKzkx}*B|ojIvS_2Kr6K_kehd&Xp( zWH%NL>f@su3#&dpTKNJ%{E~f9yRh$MdBsd?n^}dV?C&tLJ{rKqy5_N2XNZ)!*TPl)8_$4Oq2xZXJy3FXc-8k7n8J%u#yqza&57nym6sl;+hs|S zpdp@5A>Tf+wxMw;WSPk4mabgKU}d<3#=^x{FyL0uB)F9{74A}+26q`vhr66MLCxds zZMfys1nz^>6z)7)1a0i)JdZq|&d?-PSeM=sXC23|R$4^k@Gthb z@|w(#B{AC3*~w{KuPjb~O1*teM_8+s$2mQmz9^Qc2?9PM=R2$rr$KYVGWeT?ZrFuTvcWdur<(2zOVfKUO=0 z4V{I5VMDy~bUwa-ZMSUGiZ+ug{i|V-$*qU!UICg)Nc4`4=sma<^a0#T`V{U`67Q5P zqc7ktrUT=8 z`rEvn1gYtM1SOTwqi`G1GjJr(%?OFgfMFHDg4%NfbLBT9Xc($^NHC+#E;`@x+@FG+cS zAm#lH+?`!*Nv0vkxbkkFAnzN~kav@e+db7s>@O)k5bhA_0C%+8Q*=TrN6w|_7yhL9 ze&K!e@_*3~hx>=-#qqk`q9haDJ_|L8y)$qd(Ga*5bP3!_8V+|UjfA_5M!{W99VNA$ z;Fi;&aOczEa37@)q>fCKI-=e>KNI+BE73Y#2^e_@mS{HI$2-8&a&LU$Kv zV+nPI+lYF?t)LU&;){K7m*SLiL3cm6%js9p@gQ}P)OVHC9|LzDy&!euL#ZR{q>iXF z=?-_sxbx`*xR0VnL_5+( z>WGr^zEV35gS)GfOyWHf+L0U5YDdDb#}gA|{f}yqb^2|#YOQ-qS@(teAoYVgkCsTi z{#@$yX0U*r-P6aDwbtU>1){I%lc3jkrlHr|N2WhYR&8H@N%sJ_^JyU5N9jYUBh#dg zs1fsdQajFj2i{nk#4nX1|Tm zuWXB%@b;Jm?~EDnu1ROV`m2D$@$O$GW^ZC#EoRwUxIOVjvX(A^TS7zOHloYnmeZAR zhtN2<6?6^UN}33FG);oLl&*)njHbd}ZuP|H<7t5C!-nHu^kMJC^}&@1mXlr|%+zLT zJLb6IMoGW27d38(x0HBlvmG&%y0X0mCC;N;Aq%nE@G)fZ2}ZRyC&=KYdfCq$c+Ssd z-ik8k)19*9kK7V(_bD-q^%O4iep%XsvScpvo`f=Ihq8vlWj^ATY0LH@pHjn_vrpzy$@Cdn?k8?}Py3XYJ&!!|v!OS`uH9An{x*mL<+5zAnq+R)V!^xlft7 zY8BV<8?ui7f{aBS$IxDg8g7+C4U66-zK)CCI*u=AmmJEeK&>Y)DN$>4;iq)l9& z%$1gRAk9_iRrPwyQmMU-r1l;qwf8}(y{|%hh0eb1YVr1-?!K9m?q+UHD=cezH*{@L@PFnA$Aza2t*RDpz!q;~$V~$(K+z88f*ezpz zgk?PMmhobQWej%9I6uNNCc0%zim;5np6>RGOm|;)`B)qwA1mB4Rz_IH<8B#GMoBlriS6{mA%{q5nRpPZfp9Qo#pQM~S)pJM1Bhk*y zr=LMdIsFQE3H=VYivEK825ms8Vu#15*bXV?V#)V%*yDe0Csw(#ek%f5a~TWVG8RTy z#%*4^eMe;N_FY~XcSlynYhD>uk(F_;SH}I3l`+RFV{T++JnWS*Ke95O_sV!NvN8sH zWt<;+8Gd7}chRQICN-xF9&4#NWmIFWi5}mRLg$;?o|nBc7Drab3a^Znp_j3d+dq`m z7yUy6xR0Vg(9by&SNn?Vt98D0-pWK1udj0ICtv4F-B+6Cx{P zs#nIe$jTV&l`$@|GS2eKI480)?sfa{`y=ebCwqKMiHwh7UKzt9E8`NcjLSkVgU5>- zp(QA%P2et}&EQs16S!}XSUVF>%o?K=P$S0ea~Lt|^1Vd!P> z_}^TGZU)JvT7_=vwyIm zgk?PA>ENQ!b&%_PwO7WP$jZ3TD`QAxWeoJn7!-OL{3L9Y`&2cICvN6Un4hY0IRip{ zdaIvua5-G}{XLlt2wi4eMx|HAn8?bQ?v*hk^fLIFYjd>E6_i*rJLT{+lzTR=7anJ) z|5Uw&*CX)rbUn__?Rh%)QRe=ycjTB~?f-g5u8E5;!SCwym22YanWT8;C!Ub+;8J#x zH|}p4Fz!$Ne4q76zx%UGmSYNgf4uqT50^30)2C6P>l2r8q1%59iLn0|=$0`k!ZP~1 zWekY0j7qnRF%gzA-7RBA1Z8AyOKP`_*l!S}Ej{D%yeI;mSzcxS+t8{A5fo2GDdAyn1UWyao$`qz0UrCC z`^>h&7-u%A72n`zpS!uU=&{}`I=3BW#qRq_d(|(ZXK4{VM{VoZ!)VTaQ>jh;ZK)}3 zNn6p@)Qq-C^Iat|np;T!p=U5+R_An>&-kOMH**Cmni9-)#b`<}S4X2M!CcRXrUX69 zi>kH1%d^nCL$=UHu1)MOt@1#)t7xTM-4gGLe?&K9Py2SxEpXd7C*TdzJ)Fy(cJ)gw z3u#}!EY3<^z$rNKcC}x?3K&x%${$W0B`vEZ6=zE-u9W4Em9+HBiHZ&ZRIugV=1KdG zkfqHn(BWPSbf`}Y)Cn!nDoeuYy)PNx0_hcwsPt0rD~qZGy*n=K68Jf;+V|H5I#*6z z;Vz+WaPhSvxNp!g=!0^9imPX^tYdnIWmJ5ndOqF5<1G8PDR~WFpH4N*U5Ux{*}j$- zuUpvlm2978PminYpStU^HDBhF!f1LC^Lb}9C73%0qA9_AzayFw^bYH=?S`K}rT@%F z>_iabz7y~--s_y~jZ?#U+M{M;zZ(=4 z5Bklns7hGjN-5Xfu*s!#n_EJzd;OD_p!XO>B_;i)U{ocT&*q}(56xY=(UhR~tc5Kl zUL9H|cf+f9fcj$8J)cg4`zTKC)2GrUzJ++Q+w1Dpp%Vk*-~bPim-oBAwoUYGrBRj*I8CEn%MPp)s1CDsqmCWe5E`E)7V zNAVRY(VivSK_=d76l1mv5@r*FLuuEhyS(PQOE8gFmZrJuKHN5ewItcBf4Gz~&;5th z&t6AF4XAUdOWc*wk-%L+3*@fU6Jqrf)-_j9&scNlZqv9m&}8p{3i+95nX&XX;OsH6 zhvj#iik9uU-sXAXJg#NgC0h^Tb)ezUJ26umRzLgmm{@k{mRaeRIV!|5gV*!MgwT#? z3t&D|wO(VrQnQyWueEWR$!ww0vV~Eh*aG(j!B((s23DYUfcx74pWF32P7lo95?B}6 z4)}D!Nxn8bF_tU!>YEdTe6bG<3Hvx->|=Ap&Ki|$4P0rIXE{08Dz~nDde{W$>Rg%# z_aXWZTG(OEI9N)3dYH!7&t?5q)ct()xMKZQ)yp})k~=FT$tAOYZr?onub=BFXsPN- z^@LnkxwPe6S1iFbz7kxWqXc#Dr>%a+oUK0I=12L`J~A}gx#!NMy<&OC(>}zP_6u{S zUD-t+U+ld@!amIx`_z!I&+^4SGbHR)zSv(23Hy`2*dGrG`$}KzD?-9Pz!!V}9I==zdM^73+yyl|U2#us~KNZ9-NV(*(HcCH6i z12bf8%#`);f~<#WZaqxTVPu(D4-0*HS&$GRuniCQ#Xc+~>{EQPPtFlLx1|ruI+!o(;BmOCNVTO8dNmPd zpSH-CmuGV1h3nydU+nkhh@Iy($!1c#I>j@oVL8vFn4cGY`FTD^ei-|FU+fQugnh0r z_BlCYS38&=_q21zEcb4x^~kwsdGvf-;eOJ^y`X-0xOtUo5q4Lqz1YwA?5JaT(+#4Tlf z4s$AP4{Uc|$r8Si+$g*I+~X$u@rEvk>qWQa*;}2!s_m}6+tPjq+RN#CxJ&3qxK;Es z+!gdI+}G)MxNqP@*2H%WM#j>88pkKmaDSa_ES`&nt6n47I3st=$yNw+$DC~Rk~`*P zGxA(8$B$aV(ni*eWUI)z(5!SL*&II?%q$IVGjo~knYPJRuUq=C<(zEQEEj1gIVT%0 z=Z^VzjI3h#wwd_O+4J-Q+NcfK4^V_LV+p=WCcY*nb_kq8XSrXf6<-DyBY{eKlAfZ) z^eVk3$7oCOWwPaRq{ebKM>W~6JJ>a-q>*fOCUFk_hK8+ zPnFYOaF>wNK=fioa92)TokMs${F$+4I7flRZbx9doj$3b|uW zwziWy=45*ba>tzP2~O^qlRbIL9dokX3AtlV_LMSr%*mcRMndS&jIlRfvz9doiL zs<~rM_9QqL%xZ-5mN#==ox^&zU;miw`9dxyk z-j}W4w-sk43A}?s#w$*F5_kuMjCY`v@1W4+%O}D$#OSbsj+Se|8#Pe0*Kd&9dY#%A z$9k-AjtN;F{iQqxgeDI@9e6XyV+1vJC9z3^?ANg>yq(@WPETBIQY%bNQ05A13Risp z$8WVM-IaK?bC}CZoENCMz*e%nW`X6UJ1-Dx|J=5S)4_!94+*)h#fe=4@2HURZjd_k zS7T9@d*$5gopPIw1pw6;|sh@*AsdZt| zwy>=>miSx19YLEk$VJu~H`n0?SLgl;S?9Ek z^fFd$Az@-=`^ZfbShh^7(z3Aii^ogh(#kDbxLCP;2nQ>-4m-$pp?BQKBiH@wY!Rx~ zc5>T>?6pj{44L$*!+iDy46ok=y;!;@EioUhLbGh~B-I?5>5*#o($OPpwiZ2J4->0y zjl;ysbF6UmnkB#^({Qm?y8Y3ZSQrvuT~232noO6|(_~>kEE(ND<-$X}9_!IzE?9M| zuU1fg$3Bnv6XwJ-m#tyL>5j(rt{9d8&*H+-4Q?Y;Th}`0woa@VDCsi2yjlHzP$%;i0@`1U}Y>o}j*LI>&b3ov^aiGc1I^X*X6q6F>5X@B1?hk?QGC{a08RxLvo;(Tia5D zf6>m06;%7_wx0xoo@*Z=ZQ!s_ZQv-0^T<$fsy8abJyYN~SyzWh-8$N;t7CJhE48Bc zjI^&sq1u;j0kgNS_?fGEt2mtZ)7h?8yY0Z55ZVF8d6e6(9vNc0x}S@)eTX=ZaB&_M zB2IpPIgIleSf1SeXRk@z^3`*92?~rKk~%5452PT{ySt|ZpU@!wY~te^B(C6|)FAm+ zd6{l*uX3lGG3p*W*Kq|)!aTWINMaQvaePLS=$nQlv_<4fH%mhI-??J+lf-FplF0qM zYNlJ;ajtYTM%{vig^}CY@bp%N633+m9fM0Uqk~5v!+`^*z@ct}xez=&>hd6RI=Durq+8te zAijI3c;Cn!!H+_jjj0lDIgNoknqGt)&U8M6+uzxM?|ytjyVP@NFGo-%)?vn?FA_WF zuf*tfA7`}l68`seMmYnq-(E>u?6CL4KQ1Hu<1@xTJ|p~<8RMUj5&q2OGcjWPlOo1H zIV1cNBbNWDjPXy&i2h+2C7BT)OGQvM0WBEUo5&q2OpBesf8PorCi1gQY$7Rm}=L7Tt+&T0T+@HcO;`~%%TP?BO;$eFw z18mDBw$~-Lk0rKA65GE$Y)do1_NK)4w#4?D#CC% zY&Ut>-boAFhrm!upTKQE|ApI-zJ!aq0Jd|Sj~f)>9nyN(*KnhY_iX3$q;;UMsQbT` zc)yhxpOUz~@o+tm6|VnDT<>Rqi_h;-y73e4e}I00JBO~8vU<{!)emXODv`h6Bu&?6 zKoje0BCbCquDe3P^{2%3-wbfsvZ97URx!A9XmLogDh9TObXC?gl}eiGNt(XRnWhH7 zQ%W04n(mP_HEPJZerte!+H%@d(zLmxX=%~Tzh!9ZpaXqYWMb*xE4xW*~@(&N!LFluJsbvz8+n7Wk}Zn64${J*X1y@f_u1 zINHPTNZJ_wPhvRE#c;fb;o-C~oGdZ)axt9bVVIK!hSPCxLmC8kDV+igrI0{BU{JlJ z?%B>rA&2uM4QIPFoa@o>R2noWNnR{5T;O83$ipx>pcwf12FK(P`BXT zrF1jyeE>a#9-B>XsK@{RPHI(m%aR|EIBs*xztbyUTh+Y@82DL7pIE6}C76e^FjnC7 zi{7yYSXt2P0^(ehC3xGep}Rgj7iE>x!*GYwZ*onT(5?=2hQR%VK8O1SEh}~CbDH9= z55J3f*O|`M&SYyn*v9urAig!5llEdkYoou#-(oocik_n0<1T0VbaewBqL+UCyS`im4+$xoid*Af+d zePRt|Z{IM1M$Rj~dnm?5o6-d2RU@Nh{JdfCGq{BL*}s7wKPG-fi@+~N9*MN@&fC=z z|0_~nZ+Y^%KM=p*Rnaea^{1bos!fP(947}}qY5Rp? zQbWjVBwbFU=n5K5SJGry;w-uq`mA;@m{$8OYDKKvf9m#}-=HpZk37t~=NHgFj~;Ye z*dN`y-oss=P=)h9t4(EkmP>lxO-avR68Ehx?hSFcf46Wm4^AV|UaQu%tdZhjkZkvb zjukgD+jyp@K_hMj8a4871(bX?_VR5Sm~V40-xh)S%DsGB`sQPvwgyk-?ntMF%M;g2 z^G0^PFi$N#+&lQndskcOtcgJDK)^dp+G%R!Tq9FXT8yPMK5R;j)yq zD?2{|w6UH0TR8LI&f~v*qk2{=BJ`jP-x3qFC~o$X6zwl5I#5#7K~nUm<4@5-d2dH~ zS0{Pbq4KW7UVRl0rf4NO)xWP zLU+??!1WkC?(KIwJr1|6|J-Mt0ooeV(ZHlfg7#h$mP0$&UfVY+v$Sv++9V}~Gu<46 zpq1u`O6Ta}=IEM$gL!Qwd0i%XJpfNQc63HcUYl9G{u6ivugt~Sk_&r0YjeR8Zw>sP zc;hy^Pvt!Orje&Vs7i%rzW_X}ImymSIag}Vd9LP&9q$!h&AusXE4bCT02c8qEu!bB zQ~eV3mLuGg zr-=E1-US^$(f;7(N4n5q35$~>no>G)X8Dfs>a|V%Vz*9Lrfi4I8XF6$D!u+sJog(; z;}AEC#>2gpMk8i3XDaC3!Z`@^Zth&{aOo4g(mSE_Rc`sryTG-ICQ4kBB(8N5R}08@ z3+H$j7q8V!L5{gJ74Ab+j(o$M>8>tKhINZ?C34Q2WX_pJ&e?9xX>LxYKuCW$-HM!7 z((Q1^(rm>1K!c_9d%4nQZjMFo_W|9BafkU`15VYv3Q04soO)c~y}Fi!oYXfPR-&C& z?c{8U(|&N@r9p7tqqT5PcRE1cXE;1h-yU(F(&L~< z?8lxD9lC@rrOQ&{Dn|=&y7MY<4f4iN$;!Rl$jkKWlbkjE+%7yRIo%x^(ajm@EC5a7 zouVhuqbS}VNBV4f7Vau)CFx)2(akuXlQ?!Ya0vc1j+Z2kR}364B;Z(L;dmA43J3F` zzg3dR!!mg<^C0e3JlJx7$(8%-UfHSY@OxQ@Yoy$HH!;d-f)Rok3$65e4xUR1Tf0)u<~aY`$gg`aZjr@4im`M9+~M>N z=(>{jiL-B>EozLZ=-doEpANlM+`I>@P3Qx-<@6DxXVbe7b|$D=ixg$yOxXxYnV3y* zPjG@u8FTb0IMVZ1rb@~9Gbv*w-6g=Wo|;M-GgYdso(+s>>F6;0ix!$w&q2FXNefWt zLKhB2s?cvPVSk*}Jev-LyNbR*IZx2dC}BJ27Pz~6xfC5=NjipMro(kTJgvHZU)D93 zm`o$uSdyORQ7yE;i%T{0v`$j;Y8+3T`Ylpt(QR?^NLBuyX;Jx+%*7>r@6lmW$t5YN z{Uq~TXGm=yDK)P7Uo73{dy`3N2TMx7d7Q37&3AKao_nMX(#}WFU!Fd4na)P0{iG^$ zZCaAq6@B{Yp2j4je}<$#Rf!!WE|#(yKM4IcxlD!QleDP*ROVtk)h!6#`QJ#iAZ(|c zLt8SBD!7eFMbEDmJ;LIKQ%7lir6}nMx>8!)SZRH!aILd&C6o2{Y2|u3tz1W^Rd4NO zF7Bz?fR|6H-bUQJvkV)6-%4r(_jXz>?cz4j(9|1KE`(H8(#E(?wW6#Co8pe9)CzgO zq|G-{Z7rvjBW)-RMu~%+Es)k2^99!S?wDr}M~SK@RxSA!$d4HX+{SbU?i%C#1={y> zm`1aA8;BD7J9i>|y@#`}56))5HiDYNT}dAT=T&mlGawFU3#3=l_mb~+5;K?CQc|-6 z+|j-?sq~#>`UM8fEbrEc`;=NG$XnglIsq@s&OA?JH&=E{lj`49U0o_`=>{nWPFJ|w zNZjWdG}-BG6UydvC1<4(_e+_Kwq&BxRS)f2fE5s094t$@Fk{zIY`xWD5_=(YSv&9Se5^jX|#QUW#h{ zddT$8kg}a`%D>$dH45*E+zsdixDDw=q@06$RLY5n8%n(;wmxwG<#DL^=!-b!gQe0B zaU-Zd+)BC^*eX420}wZq2ErXqgWzgxXUVv8;Etd-anD$fYE{l)q;NT0A8+GX+;BO9 zwM#x9c`IqWTe51I6qXAOEX?5$#0{lO;0~wD;A)zNA%rut;7*`Jp;s}F4<)aWNYV0A z<(L|AoYV-m3pHZwfc{pD6q#bBC!>I=lCD4vYdxt%+;AELcQ&coV!p3}p70Drm8!;@ zS0nE#ngPCbotyN;Tn$w98Hd&YTv z;4O%2O1FBwoT>e{BQ3r*zr@|c=}x4Kr87}GKY7}(v|=_=D(G-aH`G2(Kf3Ng?h$l9 zTx}O67?CsgJ>f5+mMG_KuN-AdbF6!mT<1z`^JK~cpz{(>r{*JWI6WrQ?G{Y5FiLY+ zD__T*W9cJk<#3G4Shi{}xE~KsNURHFsSo4cOTGG7h`6Ej4BX+g2(H$r=VjcBa7WOq zxJS2D$|_$*3fnfQYuN*f^I`zL)=iRf;*g+!PVs`TUsISdBC!zm53Wbt7HmO zt)%#tOj)h&K{-N-rdF&$O1xIQhq&SNfxPo&+;g5Md8HK}A*F&Y2L!h(DP7t~-ow40!nO(GhSFv-r7_%pdDbO*i&a){(FExuXiK;&NwpKKeX8WG zkrH3BlFBwnsiYSmuS&0NQ7c_LyYDt@;|?xD1!#I`eBExlc2+^%qSkE-rzgSes8R;KR-_g~N~Rp)A@Z5K}$RjiUm zJLL42Mth`G(*2e+_CwqjwExE9sl`f9ch!3#CLb)P12@(!zoJs*>Hs|PTBhv0qb&7M z%g#F?ZUh|)SN9f*2eTg>C;LGzS&ZuJ-cqNd-I1bu6~%K8#63X& z2bb%O>shz@VhxZ>7o*Kpq@F1J1YX2wQW8I8$8WcGllIDx893WxPF(om<|>9 zhlT%CXtCJ&!Wwg0T=;Z1%s9?K`Az9exZ;dMC5`UIf~L>$q_rDb3?b_1sxPEnUDZW&` zAARCF``o*Qlq<{RTq&pXEIFxlz1EfBDeSou`kmsXsjZ)2-m zm2bUIzOQ}w_{v9iA4u6TA4*Rz0+m`%Rk@#7<*K?pK*q7$x0G_%_gxGumGocGw!zc4 zN;zH?=PWCkUn=tqg)6>YZPvpZKJ>4Yaa>+SobHZ5Se&WB>6arcR@-g7%Y5)w`NS>p ziCb)yPcD8g?+V}Y7Wv?L)+cVEPu!DMoYI~1Aakuds%{>)@~OD5t@=`N{eAL1;uAN| zC+;CDPU&3}xsJi|Rr-Ft)J2xbXvn0JZujcoN?G4mS@nIjjJw8)Q~1j*{3`AzOV^c5 zhFLOEv(u57fr$1=>6E(nE9+hrx0zMOwUUx~jC=~}msR63~2c)-f1;uiSCJ?#^>$cj_4 zs&C0k#nrRoZjtm&14UZ)s@xYXd`f=*_L0>~Rz7v_%T}B!_d^-Sda+BKUWnGLk~;gy zWU+;-WwFTjs?5i@?uXu+dxmb6I(ECIV~Woy7N6>g`VO+x z?TF%ijg?Q~yUN0+;znC>>fX1kdsW#$cmdS_32HN8?R4qShT2nXIbScewSJKRNPW4PVw=h6{pI51aZ1t zRmQm%eJbu88OQn~#vNj2#O;y7|BHoR+3_w`oWeE82me5yxHEj>23U05-xgTO3{x z$G2KJ8f^91N-u7+>O;ldX~n6!{ML%Q45e4nMphg00Q45?HtvW(JZ;sX2d%V+tk67! z^s~bG2_*lN(z~wz&NOQE*3N5#CzHWuyuyVd>rM+#Xy<>&mwQ|0Xke1+wR?d&Dv`?(G z|01Mi_PG`M(z@?!>%MQS(6?63{~@F$ulf^~?hi=QwfPf5y7XVH&~H}g4}`RI|3paF z18rhriCLjyg!Fx-2wmsZdp#>>11o1EE3~l{+7uxz>&+3;JZxd5m0O`L5z@SGjgY2n z8!P9wR@!z}+V)mxM=P{5LYkIc5Yi>=YNhRNh4!#Qds_GHZH4whNb|n0mG%!SbO1t{ zmV>PO4z|(`vC=vtq^Uj(A+1YCSfL{k(j^>a-FGxXn$BaboX1%?kGInP&r0iskj8S7 zmGfjPbc%J~saD!)2x%Tpw{o6gh0a7s>*qfa(xsn`kmmMWgf!0cth5Ud(h|JLO1s!f zyA+|uo;?h;a#kRuOBjKWrsZ;kbO~2j_l>sFu0%*%>Qz?Gv2u?Vw+vTXIj^yDUTcM} zLr7EhFN8E@*IPMnutMt1I4_VHzb%|MBBU+#CWLeeH(NMwu|l_6_uY<=meQS8 z&e>Mz9xLa4R@wsyX$d}vkf!A!D{T#Wdd<;1r0LStdxgyVe5C1|>b-JKd(67;B1lP> z_k>lR+NI3*J!ReZv{k}?th8sXwC51g{JnsXF7G9TbUnOc<$M((Z4XPV&{8Y3+`8{| zgf#DOSUKNBXbaCC#C|Vb!rMsG@_Yv&P4&ALmiH0TJbY+{K1N7$^oe!ff348x2_*2fr8%j`$%zVEEi zdMhN#(^$T+(pFocl~(9qR_IzQB;L!?v{YCjvAa^IiT#K=^qCbZu{bKTLSnCK=K)YQAL7$IGo zr3h&(^{li8R$3#3v;}O8kjD9yMa!nveJiZA&8;-CPNqxW!b-c^N-MY0wzNW9Bcv(Y z#tL0zVcFKYZ#yfry%qY)x^G7-?RP5;ubLV>s2y5tw?$T(cvnJmyR(IJ7ld?8?~0JN zj+3o6d3P)49#+oltP-xYLVH>{_qMR?V}-=tKuzZ|D$H7wpAP*4Azcp#Af)x| zAS(J@Qsq6L(>psz5>zty!)*;be>yT)#bx5?=Iwaa_9TM%e4vF?! zheUg=LuZ1PVP0GJPm9j85z^eAi%?@P=XqA>0)#Y{ixAS>iXK6iC!Rv;kmw(D=wjTb zLzh}uh9aa(7k!7$Sz+BLdJ>&B!b-c`3aR%?xb3;ZN*is3uCzj;chV(@{z!*Jf22cV zy+?OzzgeL_to#17?h_*&El+V)vJT-TXG3N&gjRa3a4|x<^iqU0e`0K-v52va z4v7(q4%M?t5aSn}*1$>=qZysnNT#6?llyMP_eVsF#y`KX$oY4@1YgWwraUC$+m6>E zQ--QsQL+MdgJ{s0>|6>5V=w$iD}f@srCoxz$Lm|gH1t9n;XGOK+k`gr;_~lloRkES z(!{#VtW9YvYK91Xe{+Od$Sf_*jI;wnI{{izYq-0~s|~fGw({DG+EII%e?PeU(}C0h z|C`7db~>`h{qIDbT;HK|xRut}phx%{Qy1z=-RKzVZshx}>}C?zjkw}}H_M1_@zL~c zSyy1{>c(rI&M4A!y6~&e`ZDboxjB!D?Mmy*wl4V$c@8dF5hMB4k~ni_F5QK55N69uamTK@PlZVGeFLMi{<+{)W$zYS2{NFmPE7NQQ8;?Q zB6`vZbfT4|w-@R|eO!NEoF1vK{_qEZ&Y8PUl*5-kV;U9*xU`F}$ z6IbK3%By|HPFH*U{M|g)W6q8D*KsNC*j0R}5Xm(Ev6Ih$DQ6M%z-sImyeBoz!Zh9s zO~8BB>NnBSL$1SQ|K`{rSHCEOFXf-)g*l%8MapD(O~Kni!WaLWiX4-?$Z4K0S5Nk1 zr|C4^vkBp!L^EinIM;{n@WxJpy7BTFiuVNLf4aWnQ)+s65NhKTc`5GLRdlP6;=Hdf zD?U>f-+Y-wDx0|LZ)OvBC$$NYlG-Nj_C!<@Y~o&gv5wmo;lCSSubbmz6Ek2dGhh*k zHZjBF=kMmZ6?T7%ycBorDn3+*B;WovQ5pfmb!**eE>7T7>rRi5x|-v?zQ?6ppR}aA z0HK9|XJ`@J=jEl>onEAuX|c@z8r&*chBGYFUw2xGb#e12=GFWYe*bl+RCDZ~%i3Zc zNc>(Xd%moG$(B%;XUg^>ajBp7xe@piX*yl_Rp>R`&3=)a^QhRp=(WP| z>Lso_)i2Rh3m#Jc6pn&Tyj4qV;>dzc#3_BjCX_&epHKMp6RT^9P266viGoeUNg!LB zpudGptO0xK30AUacK<0YjGb(iDD)HA+QfT*3!4z!1>3}~g?_>|2`bn`wl?uWEwPE? z3N}%&i8u*lYZD*U5}UZUFm{U5h(bS+txeRH`NS55exhI#aT3VZCf3%He&UrvKM|)9 zg?=Jio2V`Q#KQ%fDA+`t1nRm?yj`$~IE^Uu6WQ7XzR)Re{k!k&__|;d1)GSIK(;pV zSuL@NUkWx6rxAsIB3qlNE%S-edWGlMwow#pB3qmIqL%a%&lUO!+awClv0Zs&z6Y?j z^b_9{Y@%QjaS~9$%x&VUTGCJ4TzF;|rxAs*Q?@oyTl$IOf=v``B2EI?+QhnA(oY;v zu!%U0DD)HA+C**XC-yAZM8PKFBv99F;^V>`J5D1C{Y17lvA&j!ou(K1iGoeUNg!LB zs4ZisjS4mqrxAsIB0ZbiMnnRo0n}| zunAWJ>aSoEb=@W!mNhTfM8PI33Dk9)*igDX6COX#JqF@sRo3JEM*KOj(vaJg?VQEC6pQ!6L@q4NGih%ePo=+$_ z6l_AtA=Ud6wfC9biqg%L2nsgg${~82_}(q4Cj1G__x}ak#E-Zs{+ld6*OL8CS|0n< zp>MJz`|fFLh$C~GP%=#an=G}}CVs7THgQ|QCg@lvdz2`(?=ATGYKb4DJ zaaRy-crF5h@eHlI)&GH06KbbNKuCLBl4(QCI&G^+LAJuTP-Te;S0j^Y2{ zbtlzNkkwBVIkmT+SY7BRSTQpAuZ#UeNuB8@78YzG16$y%b(^)IR_I-_VYJws2?V_4gmOLx&jG+SQk&02QVeJZ5hy1ju>S^vTF2~D+i zQ;I-cw26k6P1NRfr~M24L<;@)ORkGHVUL|Qs>S`pgN6BopVFs@tBW?VNuB8@-YD2a z3jOy>u8THd_Y<4d;(p@8f=&1-eTuk(O*F2>Hc?V|W|u<${gUgVO*E-9W2a{e{e+*= zr--YIHqo@s*u+x>n@FMme#v#wCbp_GHnE^!6MjmcBCamlggwV@R*UBo&lGGTh5q{` z*F~FXUT6A=F@-s{pVFs@tBW?#qR!aFxPncj(0{+=x@Z$E>x@mbFYN8`Q~DHfbkBrKLjV1ei>STR-uZ`fAkJad zzk|I{C#RG2ALexN;&i@z`Ho6Ti%2=fF)x$GE-DAPeQ1V#CEEMvp+&-00uc{ z!yW91>jGRuFjKIosk5jj7qA9pn-(+Di zi1T7w$UsYulK(rv-3ic&#MeD`lUEyRLv7`?7qz4IGT(l1_ooA?1O7LWG3<0?kNe+= zI=Q|>>2NEpv2j+X@HfWEN?oZN9Yfu%eA)C9N0GSHPx~}lk*3pyUxn7=>?Zb$+?+?n z9!2ZRGCSW%;i~TQoix>&<5a%;U=wv|?DPP}B0T}-*okN^VuWnIzZbahQY`?O7nG@UN|DkN-z{USH#QL$Y!?k5zk>h32r)tckfz8+Lb zW9S2CoRxLF7n(p5T>nQ_+va7+$kUIqx%wM-DgRn086J@`Szc3Uiu{i!a4N8^^>~>U zpB!1ZpM}|^|5N8vkDpJSwYWZWzHnyIZFC1Q@8aebj<|->Pz#evNr?KJL<~Z0oFXs9 z9lMHr6;hn{_2uYj-`LzDl}&v0H?xU#o(`G1CHx{KwN0$6Q8uyOS?}?)-dTt1JLh{J zn`r5X%g-iSdi><34b^}5t+4xB`VqR5ILH23YSgcm zUj2^H2EbpAgY$ulV&c+s?2=entiC)qxFOt)Vw=P^!+*MS?8dPs@?NgaDCgMsm5EE0 zqlBKaloE$-gV5!a1$V*-uaS@xWeT!SO7rwSS&FTtC>6v-;AIQKtS z++LYecjfBVt$tz$*g|4Iv6HlrR-T;*nYKn~H$aR3Tr!bJ)9J#mLe0=muwUfnJSz5~(qJ$7}Nr&DSGsOx7v=C}`Z+HCKbR$zoAY${tb=2+ z{ZECdhgFhEa}P+8WvNORsmjOvW=mD!zRV?%zD@Lunb!#j1%a72SHCESFVoL)@&Cb6 zI8ovX&XY}QPfO<$F`Qtfn>3#QNwO@}eIix)nBPQvbuUJ&j#S4leVgbVGp{}f1%a72 zSHCESFVoL)@&CbcQ@Mllh}7Pe4(Fb~kA=^qxep}CvQ*`WROMrSQRQHKg`x=*Ak zAM=}tuMiWJ1k$&Ovts6T4njd-=FQbF%HhlOb6os?u&h+>;5^x+o@MELB8GFUbd%`x=*AkAM=}tuMiWJ1k$&O!7=kXAE6*H^XBRoZ2U|Ly zh~a!I-K6<^NRnl#?h~oX$NVPZE5t-4f%I+S!kBptK`02!yt(>CIeeLZj*I^fmX*pK zoF|*q3oV^b#4yB4H)$RMNwO@}eIix)nBPQvg_x)$kiJb^5;L#M5DEe_Z?1k(4qv99 z1erNwO@}eIix)nBPQvg_x)$kiJa}i<#GOgo41# zo2y@x!l4Ysx6RFC_{3hZn#6%^5^lf5f z%)CY+6a;48T>YXPzDz&I#s3G(O63mDlTGSKOXm|YjIz>AnnyvBEK7BtNL4=OHxXYU zCMpS}ZxfX<^BRLt5SV#$^^0=&GW{GE{~s(Xl{+|3HmQ}C&L?6RW2KukkAWmvmg+u{ zs(j3EBECXQR1!$vCdS6hYaBvBVCK!$FUsM|^mAPNf3U1n?%+Jxq>i<8J`uw>E8V1d z93;uIRQHKg`x=*AkAM=}tuMiWJ1k$&Oi81q`b9Z>nSPFo{|}af${n01o7Ab6&L?7+W~G}nPlF^`mg+u{s(j3EBECXQ zR1!$vCZ@;CYX(9=VCK!$FUsM|^mAPNf3U1n?%+Jxq)xYVJ`uwVE8V1d1|-R{RQHKg z`x=*AkAM=}tuMiWJ1k$&O+hXQ*2SPz$=FQbF%HhlOb6os?u&h+>;5^x+-e&21 zB8EGxbd%;gAW4>`x=*AkAM=}tuMiWJ1k$&OyJF^bH$p*R=FQbF%HhlOb6os?u&h+> z;5^x+-eu{0B8I!Ibd%=0AxV~{x=*AkAM=}tuMiWJ1k$$&`$Pb7RzMKgxpNDd=MtFy zWLSe`CC(B^b)G;l2LIGlI8U%_!lXUbSvG>+RM`D#s$H?etBIZTZQ|aTdEJjt5SV#$ z^^0=&GW{GE{~s(ml{+|3HmUboI-iK)ek^d`OaIsqPc0 z%E$aB;w!{NC4uy9;_;YyJ&8~dn0a&ci*oof{TvtnA1o`CJ2+1^sgGMapNQc}E8V2| zNl21qsqPc0%E$aB;w!{NC4uy9VnNKj79tb`X5L)=q8z?VKgY%Y2g^$34$hNJ>H?b)QI8KIS(OUm+$c38Zfm&&14Y5kf&==FQbF%HhlOb6os?u&h+> z;5^x+K4a;8B8Ej)x=HgQNRnl#?h~oX$NVPZE5t-4f%I*{Jk2rqTueUC(Y_=5kcrRq zC&L<G>`S0qUoH9Fy&TDop*nGDQg{?WxYjRJpUIt8ibY5=h@Bo{yQ=iwFgQnKxIz zD2Ff8&vEhp!7@;}gY#sQ`n;v{i5OnA(oLFQgd|y(>OPUGe9UhmzCuh?5=h@BUXGd9 zVuXUg%$uuUl*5CIeeLZj*I^fmX*pKoF|*q*DRe+#873Wn>1HJk}OMgpGZ|c z<~I>vAtovbq;C`EZiL`{9qH`9u(1V)Onjz4*Z zSP?U?l?VlanKxIzD2Ff8&vEhp!O~T^gY#sQy29!Q5;3f_(oLFILXs>?b)QI8KIS(O zUm+$c38ddotcsb}TL=Y#nKxIzD2Ff8&vEhp!Lm}hgY#sQy2{e|L=10P=_bu@L6R&> zb)QI8KIS(OUm+$c38Zfmt7GQ12B9D@^XBRoZS6e!th+&PD zZqmF4l4Mz``$VepF~5oU3NcYhAbp!KPjd`D7n9F(wC~71Wa2aZ$uI`XY9zExK-j-j zI7eA!nzW}n8&lAm3VYbx)Mb3>+l2XMSnxY`{BD?iNA@8TpXpDAF}Oa(8*Ka*TX4?I zQd8l~{yjTEZz}AW(OSqIB!Tp8!u(=F@V6)Un+f(E*@sMgrau|RAbyE1giQzt`r=d$z;7o6=gcfM z70&G6pAht>!k!teh1@|BNZ%&Rr%b`m>-ag7eMj~o6QAi%hB1g=BJnhgpNIwL%q%q( z&MK>)FlkTq%udjo3VUX>7IFtkAbp!K-+~E#pNQXsvG2$}Wa2aZ$uI`-OY|^wQ$X0i zR5-JLr%2G73VYbx)Mb3>+l2Y0&fssJ^0zweJF*X%_)LE?jKTGJ7VJSl*uPXb&#}rh zX;1atQ$cSk>|t|Lm+_@<6Xve9;QfERZ_U0V`;dvx^e4j@T%Tfh9q+IU&Y4+iDx8Zg zn=ollwFgkpn+khov=(v)Ng#cjFu$x5{EZ_1wvK&A_8}9W=}(3+h+m>g=%#?Mf2nYe zvC1@QPxYN5L2oMTVRKWL@uhDQ=9hJXzfr{B*0Jx%K4juE{mC!}*QfXbkbtm%sc??7 z$~0+D^_?O?Zz}9zb5ob`rEe4FTQI@z6Y+a6_8r-WOnjz48OGrH6mRSB8#}={GfPc{ z^F_-hOxjbuQzYn3g*`J`3%P?NkiJdykD1p1go41#o2y@x!H@w*38Zfm17qej2%#V_^XBRokeVcgC`)<3~ zr78BO27$TnGgrU47uNJA!>hUT^Zgz6#eNX`$hDxgu}|UqtgtWEuPP&oOW!8Gs5Ler zY$<$krouVOD$}&*#J%EQ#n!pG*T=qt?|bXs@M$k#G$oL}O$?5i*ZBwqftfc~zbJ<< z)6a47|0aKl{=v{M0b&1A;XL0e)1>))NRnl#s1m8lC*lRY91ff60=`5Eq;C`E>F~kl z?DP5X_8r-WOnjz48OB5|&6sBw3bW?mBz3Ia24u6|JtU#6eq;{Ox5G-Jj?#{`7^ONDcSRi;Vv1W1x)si+dE$|vFl zy&Mjk>H@w*38Zfm=GSY3zXQzQueI;UK4juE{mC#Ua%slQgpLUa`KEnkW%@ZT{y(@rr@|ftg#Al}bDCAAN%J&Fl4Yr=5~<23 z;sw1N4x8!%zC;P6ZxhpF|KHw~z)4YD{hI9=z=J~(6%|eYL%UcIi@)z{4E>n2&swdt~j($EgCI?X&UX7^I(TrbBM zY{g!}Y;H2z)P3G0BgwHuub>tw;Df(hF1FX!UUmec=fo*B`npt>a&5Y7p)|C^t4=e| zi`l)@Ij6`m23xV0Fq=z_Hg%tu%1Cl7(JQD$3i#kJmy7MSwU-@%=sB^rMqk&-Qm##x zEtH0Kc-3j_}I%lmMW3Ux_3A4G*XjAujos1;M61{?2q<|0pa=F-ETYK3Nh@KN0 zYV`GdS<1EPvW3#n4zD`RJTGSVQs-=tV+^)pFJU&%H`>&FK3_(XV~JitEmFV-f4N+2 zudTi82t>~b{a1f;|9&$6?ysqle@VBe(?J%qd#Q7tm17LHVlQDf^ZyNH@HfnQv3pa^ z_M+#+)iwHhjV$HbblE~_XopvwW}X*w@6W4cKEPJ&CCuhEMw`0N*T_h6EYT~dMGE-f zFPDq$wY8TWf#^A*|6@Y#|DNFgOfWU_FX{GlI>=&nFLln-a*V-N>?O=*{{KG#{)SmE zc5kZLUi6&M|K&XQ|HbqFoSPc?mvnnN9b_^0{=84-18l`!!ff7ew5j_Z_Mh?KZ={^8_8W6WnqI=}DPy;JiqY1e+wE<2v3<3!Ji=ljTa zPa&3J<2RpphuMsi6YBfe@7267bHaWfJD)w0uTJ!wz+Y(O-*klEsLZvoTrp7pJxrYr zvKTBUA9nK|8F9l4ze2- z6VMBjiC-UPv(so(_dWZ6ipa^^&0aH9JhRJqUWgeb*RurQnXKeK~t74qt^bC&b2AY!YOEnSDj{_7sL1C4#u;BaQP?_sSum}je6bZ{xXsr%b=FR ztOw~?e*6f;$%(%5e4_XN$7A+>w9hEAV^S(koSZO^ZIwGuq@10MV|H<38+IfwY@R5N zkJd_*2*k+=^BtYaec!3~{|;dGp0n>fWyhpcoH#i#&{6APN$1*>WZ@LF!>dj+&x>KP z8d#EfVqnPJGuWuteI6_$$*~Oc-PV^r0&#MpuRO=@{r``hz2EJ#?ChA7iW4U%%wt>S z&J#kE;=WU9=ZP@ur5YdAXg5wy^p$r2d;j;bvqz$R4=_6>rQ*cNiCrAE4wZDSO-U9` zK|8$aH1kXxW}LVC#ch{R2|ukcUYOOPMytBdLuDi}mSJu9*Ut!f`_Ny@a)TleCnxrB z)H+K97}=#8?JjV~1JK-*2nwjX*W#L}|uXnAIpbVb7hs1gL@q8DX&(1WJD)?)R2vEhqu6>63^`ikBvnd6-% zq4ZA-w4^kmQB8qj7%Qmums#v6e}G=>oaCJ1EOkzI($ZJZNxQcDIk3WS2D(M~9|#ZB z=(EHUS5hCZFi$A`-Y`#G;wXQBzQnoI`IOH*vC4tfZ=P5c7>^PRnWCCh^91&eKd})k z2?6LoPyC{&-k`BK*AtgHYW<9)b8Sjer#|cCvwmLF(rJHN;X%5rBqJ!ERXr-<9_Nzy zAd#!q*2Rwio;zJxVdqX)2aal}(a)UPT}geOfO99M-y6=Iu6C3^Kws@#<9ylY-03U_ zR=;znvjXE0e?;`GhB|k`-ti}Tfh8dT{m-2qDS^9{c|CD$;240K@SITky&)&Ab(B9q zU+Y}&Z1Ty8zIZ)xs542vDGw`ON$@oU40fgg{d3~c668cRo;#HwjM8Lj&z*v;zh}># zio8QB^Iq(Yf%62^gkNJT{oZhmeWRoN0s2Pg>&{I+*VuSx((f9(a__}XbKaB;MfoiR)ZFjrD|)MB9*`1B|G_{@N+TMjKNmDLFjgi{FWu)Te}KNv`ML88=Mm?Z z&SS>=PFFgxLdNUbKwp`~@k;d8@)GCc@?A$*v3LB5{$dIGccpxe>DPxR{Fnvu9PzmG zxbs`*cSeg(WlB#wPZRx2h6hcSHz%Goe9=PyHP1Qviry-j=jAw4`Y!}pQX0{y{Bz=2 zNBINvv(AgoU!A`@FFCJdasqr<>A<=|u3nE;W^ud{y|p|kIWjrQU9orkiT+{V((euP#H)_-2k2Lw*PU%uGEa<4PDt+U zt~^8V+yKLy>ELDxfO$gc_l9}mO-K0y^qbCG&O22y zPkhli##!jDJVWr@0OOQtK>vB-DRVd%rIhb;?DAe?tMA}=g8((=b8Nr+PD;Nw+;__L zog%$|eeXH;aP7X6dWH=Y_B;GJ_RsYI6^X`kr+-!0HTHWHv+N*1P58N!((euDPVYI& zAE4iJ-giFmId{6jfz|IC`-Z@HWJjoXan!jJ_KrW%ODqWi=zop>4|f z3Uz4nVre!Qm$)kmbqPydc5NF zn2%Z~MkIOSp#J`>>Z%(N5Z+*-F4K?QVgx@@&^ow^rk$+C)x}M+^Jl0ruP6NG38mi~=80U- z>^LU?@y?{*JW;97?CQ070(-}w*l#TL^fS99VyEQ5WBL)52Bg2Do zll;x0Tw7Y!XRm0f@Xz6fFS;N^hX6+^6G_^@i&;lr2Ohf z%aOtS;YnD>CihQ{OCFRwBndI*-*?*LzJNeDpyoY+!=4lWVXl7}a!CubN@otY`kPR=HJZiWYLXwZdar!ca{lwglH`(%7xR*^9-llhc~bI} zcl?R|VhMZhWMZWE<$1kOBpP$# z^a{&~v~PSMBv2Ec6H31~i$?myCXqhDDE=`Hr|# zeA8XAcl?PCU`Yr-|D5=92|RV=JTWb~BH3z0_3TWkE!jqNdxi&Yl=m82jUjJHpay0L zwVq@6Ekvg*EB&>eTCct6<>32HVK(%f0JHXf z40P$i;;js?{KU{e7ocXCvFf6mdJ{b+?@D+cp>K1gs{)->Qn@(+eXNZ&R~&BN?dVfE@wm+ipG2P)>zcymMBkbxert2WCnx^L z<^)Bhy6!tcr}q}WvpM0D6JzbUQx)gLQ#L1ja$<;`C#pCnp0+vRlM`d?JW<6t@r=z0 zpPU$KbE1lK;#r#$J~^?g&50_`iRWxi_~gXj?e#aZbEobHXPl zM%$dI;+%NV=7dj9>|oEGsyHY9YIDLTCkEMhqKb3k?=~lVa^ht>PgHSEykv92CnsL9 zIZ?$q@rum}pPblWb0U)ymxxQmtI5}mZ_jMYl-^9f>C*E16B(XQKzo>VTVQ)obB(cj zMcMT`yPfvdPQH zvpg$uUcB6I&(snreRAse^0#9DVfoO#dn4J4Q1>d zf1(zagxl}abwe3C_LreDn!$u4Gs5OXaD3v_RDMo;)8>TS;Wj7YjQZTNm7fzA+nlgD zA?&%6p65qKz8`DPo!sx)1)L4*G3_Z@T@QF$wAT~fh{P$s5&87IZ|6ic{U-~IkG

    + This is an Example link. +