Full Code of nvim-mini/mini.nvim for AI

main 59f09943573c cached
2783 files
9.8 MB
2.8M tokens
5 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (11,024K chars total). Download the full file to get everything.
Repository: nvim-mini/mini.nvim
Branch: main
Commit: 59f09943573c
Files: 2783
Total size: 9.8 MB

Directory structure:
gitextract_29gci10c/

├── .github/
│   ├── DISCUSSION_TEMPLATE/
│   │   └── q-a.yml
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug-report.yml
│   │   ├── config.yml
│   │   └── feature-request.yml
│   ├── PULL_REQUEST_TEMPLATE.md
│   └── workflows/
│       └── quality-control.yml
├── .gitignore
├── .pre-commit-config.yaml
├── .stylua.toml
├── .styluaignore
├── CHANGELOG.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── MAINTAINING.md
├── Makefile
├── README.md
├── TESTING.md
├── benchmarks/
│   └── starter/
│       ├── .gitignore
│       ├── README.md
│       ├── benchmark.sh
│       ├── init-files/
│       │   ├── init_dashboard-alpha.lua
│       │   ├── init_dashboard-original.lua
│       │   ├── init_dashboard-starter.lua
│       │   ├── init_empty.lua
│       │   ├── init_starter-default.lua
│       │   ├── init_startify-alpha.lua
│       │   ├── init_startify-original.lua
│       │   └── init_startify-starter.lua
│       ├── install.sh
│       ├── make_summary.py
│       └── startup-summary.md
├── colors/
│   ├── miniautumn.lua
│   ├── minicyan.lua
│   ├── minischeme.lua
│   ├── minispring.lua
│   ├── minisummer.lua
│   ├── miniwinter.lua
│   └── randomhue.lua
├── doc/
│   ├── mini-ai.txt
│   ├── mini-align.txt
│   ├── mini-animate.txt
│   ├── mini-base16.txt
│   ├── mini-basics.txt
│   ├── mini-bracketed.txt
│   ├── mini-bufremove.txt
│   ├── mini-clue.txt
│   ├── mini-cmdline.txt
│   ├── mini-colors.txt
│   ├── mini-comment.txt
│   ├── mini-completion.txt
│   ├── mini-cursorword.txt
│   ├── mini-deps.txt
│   ├── mini-diff.txt
│   ├── mini-doc.txt
│   ├── mini-extra.txt
│   ├── mini-files.txt
│   ├── mini-fuzzy.txt
│   ├── mini-git.txt
│   ├── mini-hipatterns.txt
│   ├── mini-hues.txt
│   ├── mini-icons.txt
│   ├── mini-indentscope.txt
│   ├── mini-jump.txt
│   ├── mini-jump2d.txt
│   ├── mini-keymap.txt
│   ├── mini-map.txt
│   ├── mini-misc.txt
│   ├── mini-move.txt
│   ├── mini-notify.txt
│   ├── mini-nvim.txt
│   ├── mini-operators.txt
│   ├── mini-pairs.txt
│   ├── mini-pick.txt
│   ├── mini-sessions.txt
│   ├── mini-snippets.txt
│   ├── mini-splitjoin.txt
│   ├── mini-starter.txt
│   ├── mini-statusline.txt
│   ├── mini-surround.txt
│   ├── mini-tabline.txt
│   ├── mini-test.txt
│   ├── mini-trailspace.txt
│   └── mini-visits.txt
├── lua/
│   └── mini/
│       ├── ai.lua
│       ├── align.lua
│       ├── animate.lua
│       ├── base16.lua
│       ├── basics.lua
│       ├── bracketed.lua
│       ├── bufremove.lua
│       ├── clue.lua
│       ├── cmdline.lua
│       ├── colors.lua
│       ├── comment.lua
│       ├── completion.lua
│       ├── cursorword.lua
│       ├── deps.lua
│       ├── diff.lua
│       ├── doc.lua
│       ├── extra.lua
│       ├── files.lua
│       ├── fuzzy.lua
│       ├── git.lua
│       ├── hipatterns.lua
│       ├── hues.lua
│       ├── icons.lua
│       ├── indentscope.lua
│       ├── init.lua
│       ├── jump.lua
│       ├── jump2d.lua
│       ├── keymap.lua
│       ├── map.lua
│       ├── misc.lua
│       ├── move.lua
│       ├── notify.lua
│       ├── operators.lua
│       ├── pairs.lua
│       ├── pick.lua
│       ├── sessions.lua
│       ├── snippets.lua
│       ├── splitjoin.lua
│       ├── starter.lua
│       ├── statusline.lua
│       ├── surround.lua
│       ├── tabline.lua
│       ├── test.lua
│       ├── trailspace.lua
│       └── visits.lua
├── readmes/
│   ├── mini-ai.md
│   ├── mini-align.md
│   ├── mini-animate.md
│   ├── mini-base16.md
│   ├── mini-basics.md
│   ├── mini-bracketed.md
│   ├── mini-bufremove.md
│   ├── mini-clue.md
│   ├── mini-cmdline.md
│   ├── mini-colors.md
│   ├── mini-comment.md
│   ├── mini-completion.md
│   ├── mini-cursorword.md
│   ├── mini-deps.md
│   ├── mini-diff.md
│   ├── mini-doc.md
│   ├── mini-extra.md
│   ├── mini-files.md
│   ├── mini-fuzzy.md
│   ├── mini-git.md
│   ├── mini-hipatterns.md
│   ├── mini-hues.md
│   ├── mini-icons.md
│   ├── mini-indentscope.md
│   ├── mini-jump.md
│   ├── mini-jump2d.md
│   ├── mini-keymap.md
│   ├── mini-map.md
│   ├── mini-misc.md
│   ├── mini-move.md
│   ├── mini-notify.md
│   ├── mini-operators.md
│   ├── mini-pairs.md
│   ├── mini-pick.md
│   ├── mini-sessions.md
│   ├── mini-snippets.md
│   ├── mini-splitjoin.md
│   ├── mini-starter.md
│   ├── mini-statusline.md
│   ├── mini-surround.md
│   ├── mini-tabline.md
│   ├── mini-test.md
│   ├── mini-trailspace.md
│   └── mini-visits.md
├── scripts/
│   ├── dual_log.sh
│   ├── dual_push.sh
│   ├── dual_release.sh
│   ├── dual_sync.sh
│   ├── init-deps-example.lua
│   ├── lint-filename-length.sh
│   ├── lintcommit-ci.sh
│   ├── lintcommit.lua
│   ├── minidoc.lua
│   ├── minimal_init.lua
│   └── minitest.lua
└── tests/
    ├── dir-ai/
    │   └── mock-nvim-treesitter/
    │       └── lua/
    │           └── nvim-treesitter/
    │               ├── init.lua
    │               └── query.lua
    ├── dir-bracketed/
    │   ├── dir-a/
    │   │   └── file-aa
    │   ├── file-a
    │   ├── file-b
    │   ├── file-c
    │   ├── file-d
    │   ├── file-e
    │   └── mock/
    │       ├── diagnostic.lua
    │       └── treesitter.lua
    ├── dir-cmdline/
    │   ├── compiler/
    │   │   └── testcompiler.vim
    │   ├── fileA
    │   ├── fileB
    │   ├── keymap/
    │   │   └── testkeymap.vim
    │   └── pack/
    │       └── test/
    │           └── opt/
    │               └── testplugin/
    │                   └── plugin/
    │                       └── testplugin.vim
    ├── dir-colors/
    │   └── mock_cs/
    │       └── colors/
    │           └── mock_cs.lua
    ├── dir-deps/
    │   ├── mocks/
    │   │   └── spawn.lua
    │   ├── pack/
    │   │   └── deps/
    │   │       └── opt/
    │   │           ├── plu-gin_0.nvim/
    │   │           │   └── lua/
    │   │           │       └── plug_0.lua
    │   │           ├── plugin_1/
    │   │           │   ├── after/
    │   │           │   │   └── plugin/
    │   │           │   │       ├── plug_1.lua
    │   │           │   │       ├── plug_1.nonlua
    │   │           │   │       ├── plug_1.vim
    │   │           │   │       └── subdir/
    │   │           │   │           └── plug_1_sub.lua
    │   │           │   ├── doc/
    │   │           │   │   └── help_1.txt
    │   │           │   ├── lua/
    │   │           │   │   └── plug_1.lua
    │   │           │   └── plugin/
    │   │           │       ├── plug_1.lua
    │   │           │       ├── plug_1.vim
    │   │           │       └── subdir/
    │   │           │           └── plug_1_sub.lua
    │   │           ├── plugin_2/
    │   │           │   ├── after/
    │   │           │   │   └── plugin/
    │   │           │   │       └── plug_2.lua
    │   │           │   ├── doc/
    │   │           │   │   └── help_2.txt
    │   │           │   ├── lua/
    │   │           │   │   └── plug_2.lua
    │   │           │   └── plugin/
    │   │           │       └── plug_2.lua
    │   │           └── plugin_3/
    │   │               └── lua/
    │   │                   └── plug_3.lua
    │   ├── snapshots/
    │   │   ├── not-proper-1
    │   │   ├── not-proper-2
    │   │   └── snap
    │   └── test-log
    ├── dir-diff/
    │   ├── file
    │   ├── file-bom
    │   ├── git-repo/
    │   │   ├── .git-dir/
    │   │   │   └── index
    │   │   └── dir-in-git/
    │   │       └── file-in-git
    │   └── mocks/
    │       └── spawn.lua
    ├── dir-doc/
    │   ├── .gitignore
    │   ├── .styluaignore
    │   ├── arguments/
    │   │   ├── file.lua
    │   │   ├── file_ignore.lua
    │   │   └── output_reference.txt
    │   ├── buffer-local_script.lua
    │   ├── custom-script/
    │   │   ├── gendoc/
    │   │   │   └── gendoc-script.lua
    │   │   ├── init.lua
    │   │   └── output_reference.txt
    │   ├── default-collation/
    │   │   ├── after/
    │   │   │   ├── file01.lua
    │   │   │   ├── file02.lua
    │   │   │   └── init.lua
    │   │   ├── colors/
    │   │   │   ├── file01.lua
    │   │   │   ├── file02.lua
    │   │   │   └── init.lua
    │   │   ├── default-collation_reference.txt
    │   │   ├── file01.lua
    │   │   ├── file02.lua
    │   │   ├── init.lua
    │   │   └── lua/
    │   │       ├── aaa/
    │   │       │   └── init.lua
    │   │       ├── file01.lua
    │   │       ├── file02.lua
    │   │       └── init.lua
    │   ├── helpers.lua
    │   ├── inference/
    │   │   ├── inference_reference.txt
    │   │   └── init.lua
    │   ├── sections/
    │   │   ├── .styluaignore
    │   │   ├── alias.lua
    │   │   ├── eval.lua
    │   │   ├── init.lua
    │   │   ├── param.lua
    │   │   ├── return.lua
    │   │   ├── sections_reference.txt
    │   │   └── toc.lua
    │   └── structure/
    │       ├── file1.lua
    │       └── file2.lua
    ├── dir-extra/
    │   ├── colorschemes/
    │   │   └── colors/
    │   │       └── miniforcebg.lua
    │   ├── explorer/
    │   │   ├── Dir2/
    │   │   │   └── file2-1
    │   │   ├── File2
    │   │   ├── dir1/
    │   │   │   ├── file1-1
    │   │   │   └── subdir/
    │   │   │       └── file1-1-1
    │   │   ├── dir3/
    │   │   │   └── file3-1
    │   │   ├── file1
    │   │   └── file3
    │   ├── git-files/
    │   │   ├── git-file-1
    │   │   └── git-file-2
    │   ├── lua/
    │   │   └── nvim-web-devicons.lua
    │   ├── mocks/
    │   │   ├── diagnostic-file-1
    │   │   ├── diagnostic-file-2
    │   │   ├── diagnostic.lua
    │   │   ├── git-commit
    │   │   ├── git-diff
    │   │   ├── git-diff-edge-cases
    │   │   ├── git-diff-unified-0
    │   │   ├── git-diff-unified-20
    │   │   ├── keymaps.lua
    │   │   └── spawn.lua
    │   └── real-files/
    │       ├── LICENSE
    │       ├── Makefile
    │       ├── a.lua
    │       └── b.txt
    ├── dir-files/
    │   ├── common/
    │   │   ├── .a-dir/
    │   │   │   ├── aa-file
    │   │   │   └── ab-file
    │   │   ├── .a-file
    │   │   ├── A-file-2
    │   │   ├── a-dir/
    │   │   │   ├── aa-dir/
    │   │   │   │   └── aaa-file
    │   │   │   ├── aa-file
    │   │   │   └── ab-file
    │   │   ├── a-file
    │   │   ├── b-dir/
    │   │   │   └── ba-file
    │   │   └── b-file
    │   ├── init-default-explorer.lua
    │   ├── lua/
    │   │   └── nvim-web-devicons.lua
    │   ├── mock-win-functions.lua
    │   ├── nested/
    │   │   └── dir-1/
    │   │       ├── dir-11/
    │   │       │   └── dir-111/
    │   │       │       └── dir-1111/
    │   │       │           └── dir-11111/
    │   │       │               └── file-111111
    │   │       └── dir-12/
    │   │           └── file-121
    │   └── real/
    │       ├── LICENSE
    │       ├── Makefile
    │       ├── a.lua
    │       ├── b.txt
    │       └── top-secret
    ├── dir-git/
    │   ├── File2
    │   ├── deps-confirm
    │   ├── diff-output
    │   ├── file
    │   ├── file1
    │   ├── file3
    │   ├── git-repo/
    │   │   ├── .git-dir/
    │   │   │   ├── COMMIT_EDITMSG
    │   │   │   ├── HEAD
    │   │   │   ├── index
    │   │   │   └── refs/
    │   │   │       └── heads/
    │   │   │           └── tmp
    │   │   ├── dir-in-git/
    │   │   │   └── file-in-dir-in-git
    │   │   ├── file-in-git
    │   │   └── file-in-git_symlink-source
    │   ├── help-output
    │   ├── log-output
    │   └── mocks/
    │       └── spawn.lua
    ├── dir-keymap/
    │   ├── mock-plugins/
    │   │   ├── blink.cmp/
    │   │   │   └── lua/
    │   │   │       └── blink/
    │   │   │           └── cmp/
    │   │   │               └── init.lua
    │   │   ├── luasnip/
    │   │   │   └── lua/
    │   │   │       └── luasnip/
    │   │   │           └── init.lua
    │   │   ├── nvim-autopairs/
    │   │   │   └── lua/
    │   │   │       └── nvim-autopairs/
    │   │   │           └── init.lua
    │   │   └── nvim-cmp/
    │   │       └── lua/
    │   │           └── cmp/
    │   │               └── init.lua
    │   └── tree-sitter-tests.lua
    ├── dir-map/
    │   ├── lua/
    │   │   └── gitsigns.lua
    │   ├── mock-diagnostic.lua
    │   ├── resolution_1x2
    │   ├── resolution_2x1
    │   ├── resolution_2x2
    │   ├── resolution_3x2
    │   ├── resolution_4x2
    │   └── src-test-integration.lua
    ├── dir-misc/
    │   ├── Makefile
    │   ├── aaa.lua
    │   ├── dir/
    │   │   ├── lang.aaa
    │   │   ├── subdir/
    │   │   │   └── lang.aaa
    │   │   └── subdir-2/
    │   │       └── lang.aaa
    │   ├── init-restore-cursor.lua
    │   ├── lang.aaa
    │   ├── mocked-git-repo/
    │   │   └── bbb.lua
    │   ├── pack/
    │   │   └── bundle/
    │   │       └── opt/
    │   │           └── mocked-lang-plugin/
    │   │               ├── ftdetect/
    │   │               │   └── aaa.lua
    │   │               └── ftplugin/
    │   │                   ├── aaa.lua
    │   │                   └── lang-aaa.lua
    │   └── restore-cursor.lua
    ├── dir-pick/
    │   ├── builtin-tests/
    │   │   ├── dir1/
    │   │   │   ├── file1-1
    │   │   │   └── file1-2
    │   │   ├── dir2/
    │   │   │   └── file2-1
    │   │   └── file
    │   ├── file
    │   ├── lua/
    │   │   └── nvim-web-devicons.lua
    │   ├── mocks/
    │   │   └── spawn.lua
    │   └── real-files/
    │       ├── LICENSE
    │       ├── Makefile
    │       ├── a.lua
    │       └── b.txt
    ├── dir-sessions/
    │   ├── global/
    │   │   ├── .session
    │   │   ├── session1
    │   │   ├── session2.vim
    │   │   ├── session3.lua
    │   │   ├── session_cd_global
    │   │   ├── session_cd_local
    │   │   └── session_cd_local_2
    │   ├── init-files/
    │   │   ├── autoread.lua
    │   │   └── autowrite.lua
    │   └── local/
    │       └── alternative-local-session
    ├── dir-snippets/
    │   ├── .styluaignore
    │   ├── bad-file-cant-decode.json
    │   ├── bad-file-cant-execute.lua
    │   ├── bad-file-not-dict-object.json
    │   ├── bad-file-not-table-return.lua
    │   ├── file-array.code-snippets
    │   ├── file-array.json
    │   ├── file-array.lua
    │   ├── file-dict.code-snippets
    │   ├── file-dict.json
    │   ├── file-dict.lua
    │   ├── file-dynamic-snippets.lua
    │   ├── file.many.dots.lua
    │   ├── file.notsupported
    │   ├── snippets/
    │   │   ├── lua.json
    │   │   ├── lua.lua
    │   │   └── nested/
    │   │       ├── lua.json
    │   │       └── lua.lua
    │   └── subdir/
    │       └── snippets/
    │           ├── lua/
    │           │   ├── deeper/
    │           │   │   └── another.json
    │           │   ├── file.json
    │           │   └── snips.lua
    │           ├── lua.code-snippets
    │           └── lua.json
    ├── dir-starter/
    │   ├── dir/
    │   │   ├── file1
    │   │   ├── file3
    │   │   └── subdir/
    │   │       └── file2
    │   ├── directory/
    │   │   └── file
    │   ├── init-files/
    │   │   └── test-init.lua
    │   └── sessions/
    │       └── session_global.lua
    ├── dir-statusline/
    │   ├── lua/
    │   │   └── nvim-web-devicons.lua
    │   └── mock-diagnostics.lua
    ├── dir-surround/
    │   └── mock-nvim-treesitter/
    │       └── lua/
    │           └── nvim-treesitter/
    │               ├── init.lua
    │               ├── parsers.lua
    │               └── query.lua
    ├── dir-tabline/
    │   ├── bad%new.dir/
    │   │   └── aaa.lua
    │   ├── dir1/
    │   │   ├── aaa
    │   │   ├── bad%new.file.lua
    │   │   └── dir_nested/
    │   │       └── aaa
    │   ├── dir2/
    │   │   ├── aaa
    │   │   └── dir_nested/
    │   │       └── aaa
    │   └── lua/
    │       └── nvim-web-devicons.lua
    ├── dir-test/
    │   ├── init_stdout-reporter_works.lua
    │   ├── intermediate-screenshot
    │   ├── reference-screenshot
    │   ├── testref_case-helpers.lua
    │   ├── testref_collect-busted.lua
    │   ├── testref_custom-script.lua
    │   ├── testref_general.lua
    │   ├── testref_new-set.lua
    │   ├── testref_reporters.lua
    │   ├── testref_run-data.lua
    │   ├── testref_run-hooks.lua
    │   ├── testref_run-n_retry-stop_on_error.lua
    │   ├── testref_run-n_retry.lua
    │   ├── testref_run-parametrize-error.lua
    │   ├── testref_run-parametrize.lua
    │   ├── testref_run.lua
    │   ├── tests-test_test.lua---expect---reference_screenshot()---respects-`opts.directory`
    │   └── tests-test_test.lua---expect---reference_screenshot()---respects-`opts.directory`-002
    ├── dir-trailspace/
    │   └── file
    ├── dir-visits/
    │   ├── dir_1/
    │   │   ├── file_1-1
    │   │   ├── file_1-2
    │   │   ├── file_1-3
    │   │   └── subdir/
    │   │       └── file_1-1-1
    │   ├── dir_2/
    │   │   └── file_2-1
    │   └── file
    ├── helpers.lua
    ├── mock-lsp/
    │   ├── extra.lua
    │   ├── fruits.lua
    │   └── months.lua
    ├── mock-system/
    │   └── vim-system.lua
    ├── mock-treesitter/
    │   ├── lua-file.lua
    │   └── queries/
    │       └── lua/
    │           └── textobjects.scm
    ├── screenshots/
    │   ├── tests-dir-test-testref_run-n_retry.lua---screenshot-number---test
    │   ├── tests-test_ai.lua---Builtin---User-prompt---colors-its-prompts
    │   ├── tests-test_ai.lua---Builtin---User-prompt---colors-its-prompts-002
    │   ├── tests-test_ai.lua---Builtin---User-prompt---colors-its-prompts-003
    │   ├── tests-test_ai.lua---Textobject---respects-`config.silent`
    │   ├── tests-test_ai.lua---Textobject---shows-reminder-after-one-idle-second---test-+-args-{-'a'-}
    │   ├── tests-test_ai.lua---Textobject---shows-reminder-after-one-idle-second---test-+-args-{-'a'-}-002
    │   ├── tests-test_ai.lua---Textobject---shows-reminder-after-one-idle-second---test-+-args-{-'i'-}
    │   ├── tests-test_ai.lua---Textobject---shows-reminder-after-one-idle-second---test-+-args-{-'i'-}-002
    │   ├── tests-test_align.lua---Align---cleans-command-line-only-if-state-was-shown
    │   ├── tests-test_align.lua---Align---respects-`config.silent`
    │   ├── tests-test_align.lua---Align---showing-state-does-not-cause-hit-enter-prompt
    │   ├── tests-test_align.lua---Align---shows-state-after-one-idle-second---test-+-args-{-'Normal'-}
    │   ├── tests-test_align.lua---Align---shows-state-after-one-idle-second---test-+-args-{-'Normal'-}-002
    │   ├── tests-test_align.lua---Align---shows-state-after-one-idle-second---test-+-args-{-'Normal'-}-003
    │   ├── tests-test_align.lua---Align---shows-state-after-one-idle-second---test-+-args-{-'Normal'-}-004
    │   ├── tests-test_align.lua---Align---shows-state-after-one-idle-second---test-+-args-{-'Normal'-}-005
    │   ├── tests-test_align.lua---Align---shows-state-after-one-idle-second---test-+-args-{-'Normal'-}-006
    │   ├── tests-test_align.lua---Align---shows-state-after-one-idle-second---test-+-args-{-'Visual'-}
    │   ├── tests-test_align.lua---Align---shows-state-after-one-idle-second---test-+-args-{-'Visual'-}-002
    │   ├── tests-test_align.lua---Align---shows-state-after-one-idle-second---test-+-args-{-'Visual'-}-003
    │   ├── tests-test_align.lua---Align---shows-state-after-one-idle-second---test-+-args-{-'Visual'-}-004
    │   ├── tests-test_align.lua---Align---shows-state-after-one-idle-second---test-+-args-{-'Visual'-}-005
    │   ├── tests-test_align.lua---Align---shows-state-after-one-idle-second---test-+-args-{-'Visual'-}-006
    │   ├── tests-test_align.lua---Align-with-preview---correctly-restores-visual-selection---test-+-args-{-'Visual-block'-}
    │   ├── tests-test_align.lua---Align-with-preview---correctly-restores-visual-selection---test-+-args-{-'Visual-block'-}-002
    │   ├── tests-test_align.lua---Align-with-preview---correctly-restores-visual-selection---test-+-args-{-'Visual-char'-}
    │   ├── tests-test_align.lua---Align-with-preview---correctly-restores-visual-selection---test-+-args-{-'Visual-char'-}-002
    │   ├── tests-test_align.lua---Align-with-preview---correctly-restores-visual-selection---test-+-args-{-'Visual-line'-}
    │   ├── tests-test_align.lua---Align-with-preview---correctly-restores-visual-selection---test-+-args-{-'Visual-line'-}-002
    │   ├── tests-test_align.lua---Align-with-preview---correctly-shows-all-steps-in-status
    │   ├── tests-test_align.lua---Align-with-preview---respects-`config.silent`
    │   ├── tests-test_align.lua---Align-with-preview---uses-option-names-for-main-steps
    │   ├── tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Normal-block'-}
    │   ├── tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Normal-block'-}-002
    │   ├── tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Normal-block'-}-003
    │   ├── tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Normal-block'-}-004
    │   ├── tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Normal-block'-}-005
    │   ├── tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Normal-char'-}
    │   ├── tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Normal-char'-}-002
    │   ├── tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Normal-char'-}-003
    │   ├── tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Normal-char'-}-004
    │   ├── tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Normal-char'-}-005
    │   ├── tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Normal-line'-}
    │   ├── tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Normal-line'-}-002
    │   ├── tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Normal-line'-}-003
    │   ├── tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Normal-line'-}-004
    │   ├── tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Normal-line'-}-005
    │   ├── tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Visual-block'-}
    │   ├── tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Visual-block'-}-002
    │   ├── tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Visual-block'-}-003
    │   ├── tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Visual-block'-}-004
    │   ├── tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Visual-block'-}-005
    │   ├── tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Visual-char'-}
    │   ├── tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Visual-char'-}-002
    │   ├── tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Visual-char'-}-003
    │   ├── tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Visual-char'-}-004
    │   ├── tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Visual-char'-}-005
    │   ├── tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Visual-line'-}
    │   ├── tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Visual-line'-}-002
    │   ├── tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Visual-line'-}-003
    │   ├── tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Visual-line'-}-004
    │   ├── tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Visual-line'-}-005
    │   ├── tests-test_align.lua---Modifiers----BS----does-nothing-if-no-pre-steps
    │   ├── tests-test_align.lua---Modifiers----BS----does-nothing-if-no-pre-steps-002
    │   ├── tests-test_align.lua---Modifiers----BS----prompts-to-choose-if-ambiguous
    │   ├── tests-test_align.lua---Modifiers----BS----prompts-to-choose-if-ambiguous-002
    │   ├── tests-test_align.lua---Modifiers----BS----prompts-to-choose-if-ambiguous-003
    │   ├── tests-test_align.lua---Modifiers----BS----prompts-to-choose-if-ambiguous-004
    │   ├── tests-test_align.lua---Modifiers----BS----prompts-to-choose-if-ambiguous-005
    │   ├── tests-test_align.lua---Modifiers----BS----works---test-+-args-{-'pre_justify'-}
    │   ├── tests-test_align.lua---Modifiers----BS----works---test-+-args-{-'pre_justify'-}-002
    │   ├── tests-test_align.lua---Modifiers----BS----works---test-+-args-{-'pre_merge'-}
    │   ├── tests-test_align.lua---Modifiers----BS----works---test-+-args-{-'pre_merge'-}-002
    │   ├── tests-test_align.lua---Modifiers----BS----works---test-+-args-{-'pre_split'-}
    │   ├── tests-test_align.lua---Modifiers----BS----works---test-+-args-{-'pre_split'-}-002
    │   ├── tests-test_align.lua---Modifiers----bar-
    │   ├── tests-test_align.lua---Modifiers----bar--002
    │   ├── tests-test_align.lua---Modifiers----comma-
    │   ├── tests-test_align.lua---Modifiers----comma--002
    │   ├── tests-test_align.lua---Modifiers----equal-sign-
    │   ├── tests-test_align.lua---Modifiers----equal-sign--002
    │   ├── tests-test_align.lua---Modifiers----space-bar-
    │   ├── tests-test_align.lua---Modifiers----space-bar--002
    │   ├── tests-test_align.lua---Modifiers---f---allows-empty-input
    │   ├── tests-test_align.lua---Modifiers---f---works
    │   ├── tests-test_align.lua---Modifiers---i---works
    │   ├── tests-test_align.lua---Modifiers---i---works-002
    │   ├── tests-test_align.lua---Modifiers---j---works---test-+-args-{-'c'-}
    │   ├── tests-test_align.lua---Modifiers---j---works---test-+-args-{-'c'-}-002
    │   ├── tests-test_align.lua---Modifiers---j---works---test-+-args-{-'l'-}
    │   ├── tests-test_align.lua---Modifiers---j---works---test-+-args-{-'l'-}-002
    │   ├── tests-test_align.lua---Modifiers---j---works---test-+-args-{-'n'-}
    │   ├── tests-test_align.lua---Modifiers---j---works---test-+-args-{-'n'-}-002
    │   ├── tests-test_align.lua---Modifiers---j---works---test-+-args-{-'r'-}
    │   ├── tests-test_align.lua---Modifiers---j---works---test-+-args-{-'r'-}-002
    │   ├── tests-test_align.lua---Modifiers---j---works---test-+-args-{-'u'-}
    │   ├── tests-test_align.lua---Modifiers---j---works---test-+-args-{-'u'-}-002
    │   ├── tests-test_align.lua---Modifiers---m---works
    │   ├── tests-test_align.lua---Modifiers---m---works-002
    │   ├── tests-test_align.lua---Modifiers---p---works
    │   ├── tests-test_align.lua---Modifiers---s---works
    │   ├── tests-test_align.lua---Modifiers---s---works-002
    │   ├── tests-test_align.lua---Modifiers---t---works
    │   ├── tests-test_animate.lua---Cursor---can-have-only-one-animation-active
    │   ├── tests-test_animate.lua---Cursor---can-have-only-one-animation-active-002
    │   ├── tests-test_animate.lua---Cursor---can-have-only-one-animation-active-003
    │   ├── tests-test_animate.lua---Cursor---can-have-only-one-animation-active-004
    │   ├── tests-test_animate.lua---Cursor---does-not-stop-if-mark-should-be-placed-outside-of-range
    │   ├── tests-test_animate.lua---Cursor---does-not-stop-if-mark-should-be-placed-outside-of-range-002
    │   ├── tests-test_animate.lua---Cursor---does-not-stop-if-mark-should-be-placed-outside-of-range-003
    │   ├── tests-test_animate.lua---Cursor---does-not-stop-if-mark-should-be-placed-outside-of-range-004
    │   ├── tests-test_animate.lua---Cursor---does-not-stop-if-mark-should-be-placed-outside-of-range-005
    │   ├── tests-test_animate.lua---Cursor---does-not-stop-if-mark-should-be-placed-outside-of-range-006
    │   ├── tests-test_animate.lua---Cursor---is-not-animated-if-`path`-output-is-empty-or-`nil`
    │   ├── tests-test_animate.lua---Cursor---is-not-animated-if-`path`-output-is-empty-or-`nil`-002
    │   ├── tests-test_animate.lua---Cursor---respects-`enable`-config-setting
    │   ├── tests-test_animate.lua---Cursor---respects-`vim.{g,b}.minianimate_disable`---test-+-args-{-'b'-}
    │   ├── tests-test_animate.lua---Cursor---respects-`vim.{g,b}.minianimate_disable`---test-+-args-{-'b'-}-002
    │   ├── tests-test_animate.lua---Cursor---respects-`vim.{g,b}.minianimate_disable`---test-+-args-{-'g'-}
    │   ├── tests-test_animate.lua---Cursor---respects-`vim.{g,b}.minianimate_disable`---test-+-args-{-'g'-}-002
    │   ├── tests-test_animate.lua---Cursor---respects-buffer-local-config
    │   ├── tests-test_animate.lua---Cursor---stops-on-buffer-change
    │   ├── tests-test_animate.lua---Cursor---stops-on-buffer-change-002
    │   ├── tests-test_animate.lua---Cursor---stops-on-buffer-change-003
    │   ├── tests-test_animate.lua---Cursor---stops-on-buffer-change-004
    │   ├── tests-test_animate.lua---Cursor---stops-on-buffer-change-005
    │   ├── tests-test_animate.lua---Cursor---works
    │   ├── tests-test_animate.lua---Cursor---works-002
    │   ├── tests-test_animate.lua---Cursor---works-003
    │   ├── tests-test_animate.lua---Cursor---works-004
    │   ├── tests-test_animate.lua---Cursor---works-005
    │   ├── tests-test_animate.lua---Cursor---works-when-cursor-and-or-marks-are-outside-of-line
    │   ├── tests-test_animate.lua---Cursor---works-when-cursor-and-or-marks-are-outside-of-line-002
    │   ├── tests-test_animate.lua---Cursor---works-when-cursor-and-or-marks-are-outside-of-line-003
    │   ├── tests-test_animate.lua---Cursor---works-when-cursor-and-or-marks-are-outside-of-line-004
    │   ├── tests-test_animate.lua---Cursor---works-when-cursor-and-or-marks-are-outside-of-line-005
    │   ├── tests-test_animate.lua---Cursor---works-when-cursor-and-or-marks-are-outside-of-line-006
    │   ├── tests-test_animate.lua---Cursor---works-when-cursor-and-or-marks-are-outside-of-line-007
    │   ├── tests-test_animate.lua---Cursor---works-when-cursor-and-or-marks-are-outside-of-line-008
    │   ├── tests-test_animate.lua---Cursor---works-when-cursor-and-or-marks-are-outside-of-line-009
    │   ├── tests-test_animate.lua---Cursor---works-when-movement-is-triggered-by-outside-command
    │   ├── tests-test_animate.lua---Cursor---works-when-movement-is-triggered-by-outside-command-002
    │   ├── tests-test_animate.lua---Cursor---works-when-movement-is-triggered-by-outside-command-003
    │   ├── tests-test_animate.lua---Cursor---works-when-movement-is-triggered-by-outside-command-004
    │   ├── tests-test_animate.lua---Cursor---works-when-movement-is-triggered-by-outside-command-005
    │   ├── tests-test_animate.lua---Cursor---works-with-horizontally-scrolled-window-view
    │   ├── tests-test_animate.lua---Cursor---works-with-horizontally-scrolled-window-view-002
    │   ├── tests-test_animate.lua---Cursor---works-with-horizontally-scrolled-window-view-003
    │   ├── tests-test_animate.lua---Cursor---works-with-horizontally-scrolled-window-view-004
    │   ├── tests-test_animate.lua---Cursor---works-with-horizontally-scrolled-window-view-005
    │   ├── tests-test_animate.lua---Cursor---works-with-multibyte-characters
    │   ├── tests-test_animate.lua---Cursor---works-with-multibyte-characters-002
    │   ├── tests-test_animate.lua---Cursor---works-with-multibyte-characters-003
    │   ├── tests-test_animate.lua---Cursor---works-with-multibyte-characters-004
    │   ├── tests-test_animate.lua---Cursor---works-with-multibyte-characters-005
    │   ├── tests-test_animate.lua---Cursor---works-with-multibyte-characters-006
    │   ├── tests-test_animate.lua---Cursor---works-with-multibyte-characters-007
    │   ├── tests-test_animate.lua---Cursor---works-with-multibyte-characters-008
    │   ├── tests-test_animate.lua---Cursor---works-with-tabs
    │   ├── tests-test_animate.lua---Cursor---works-with-tabs-002
    │   ├── tests-test_animate.lua---Cursor---works-with-tabs-003
    │   ├── tests-test_animate.lua---Cursor---works-with-tabs-004
    │   ├── tests-test_animate.lua---Cursor---works-with-tabs-005
    │   ├── tests-test_animate.lua---Cursor---works-with-tabs-006
    │   ├── tests-test_animate.lua---Resize---allows-immediate-another-resize-animation
    │   ├── tests-test_animate.lua---Resize---allows-immediate-another-resize-animation-002
    │   ├── tests-test_animate.lua---Resize---allows-immediate-another-resize-animation-003
    │   ├── tests-test_animate.lua---Resize---allows-immediate-another-resize-animation-004
    │   ├── tests-test_animate.lua---Resize---allows-immediate-another-resize-animation-005
    │   ├── tests-test_animate.lua---Resize---allows-immediate-another-resize-animation-006
    │   ├── tests-test_animate.lua---Resize---allows-immediate-another-resize-animation-007
    │   ├── tests-test_animate.lua---Resize---allows-immediate-another-resize-animation-008
    │   ├── tests-test_animate.lua---Resize---allows-immediate-another-resize-animation-009
    │   ├── tests-test_animate.lua---Resize---animates-only-for-equal-layouts
    │   ├── tests-test_animate.lua---Resize---animates-only-for-equal-layouts-002
    │   ├── tests-test_animate.lua---Resize---does-not-flicker-due-to-high-cursor-column
    │   ├── tests-test_animate.lua---Resize---does-not-flicker-due-to-high-cursor-column-002
    │   ├── tests-test_animate.lua---Resize---does-not-flicker-due-to-high-cursor-column-003
    │   ├── tests-test_animate.lua---Resize---does-not-flicker-due-to-high-cursor-column-004
    │   ├── tests-test_animate.lua---Resize---does-not-flicker-due-to-high-cursor-column-005
    │   ├── tests-test_animate.lua---Resize---does-not-flicker-due-to-high-cursor-column-006
    │   ├── tests-test_animate.lua---Resize---does-not-flicker-due-to-high-cursor-column-in-current-window
    │   ├── tests-test_animate.lua---Resize---does-not-flicker-due-to-high-cursor-column-in-current-window-002
    │   ├── tests-test_animate.lua---Resize---does-not-flicker-due-to-high-cursor-column-in-current-window-003
    │   ├── tests-test_animate.lua---Resize---does-not-flicker-due-to-high-cursor-column-in-current-window-004
    │   ├── tests-test_animate.lua---Resize---does-not-flicker-due-to-high-cursor-column-in-current-window-005
    │   ├── tests-test_animate.lua---Resize---does-not-flicker-due-to-high-cursor-column-in-current-window-006
    │   ├── tests-test_animate.lua---Resize---does-not-flicker-due-to-high-cursor-column-in-current-window-007
    │   ├── tests-test_animate.lua---Resize---does-not-flicker-due-to-high-cursor-column-in-current-window-008
    │   ├── tests-test_animate.lua---Resize---does-not-flicker-due-to-high-cursor-column-in-current-window-009
    │   ├── tests-test_animate.lua---Resize---does-not-flicker-due-to-high-cursor-column-in-current-window-010
    │   ├── tests-test_animate.lua---Resize---does-not-flicker-due-to-high-cursor-column-in-current-window-011
    │   ├── tests-test_animate.lua---Resize---is-not-animated-if-`subresize`-output-is-empty-or-`nil`
    │   ├── tests-test_animate.lua---Resize---is-not-animated-if-`subresize`-output-is-empty-or-`nil`-002
    │   ├── tests-test_animate.lua---Resize---respects-`enable`-config-setting
    │   ├── tests-test_animate.lua---Resize---respects-`vim.{g,b}.minianimate_disable`---test-+-args-{-'b'-}
    │   ├── tests-test_animate.lua---Resize---respects-`vim.{g,b}.minianimate_disable`---test-+-args-{-'b'-}-002
    │   ├── tests-test_animate.lua---Resize---respects-`vim.{g,b}.minianimate_disable`---test-+-args-{-'b'-}-003
    │   ├── tests-test_animate.lua---Resize---respects-`vim.{g,b}.minianimate_disable`---test-+-args-{-'g'-}
    │   ├── tests-test_animate.lua---Resize---respects-`vim.{g,b}.minianimate_disable`---test-+-args-{-'g'-}-002
    │   ├── tests-test_animate.lua---Resize---respects-`vim.{g,b}.minianimate_disable`---test-+-args-{-'g'-}-003
    │   ├── tests-test_animate.lua---Resize---respects-buffer-local-config
    │   ├── tests-test_animate.lua---Resize---works
    │   ├── tests-test_animate.lua---Resize---works-002
    │   ├── tests-test_animate.lua---Resize---works-003
    │   ├── tests-test_animate.lua---Resize---works-004
    │   ├── tests-test_animate.lua---Resize---works-005
    │   ├── tests-test_animate.lua---Resize---works-006
    │   ├── tests-test_animate.lua---Resize---works-007
    │   ├── tests-test_animate.lua---Resize---works-008
    │   ├── tests-test_animate.lua---Resize---works-009
    │   ├── tests-test_animate.lua---Resize---works-010
    │   ├── tests-test_animate.lua---Resize---works-011
    │   ├── tests-test_animate.lua---Resize---works-012
    │   ├── tests-test_animate.lua---Resize---works-013
    │   ├── tests-test_animate.lua---Resize---works-014
    │   ├── tests-test_animate.lua---Resize---works-015
    │   ├── tests-test_animate.lua---Resize---works-016
    │   ├── tests-test_animate.lua---Resize---works-017
    │   ├── tests-test_animate.lua---Resize---works-when-resize-is-triggered-by-outside-command
    │   ├── tests-test_animate.lua---Resize---works-when-resize-is-triggered-by-outside-command-002
    │   ├── tests-test_animate.lua---Resize---works-when-resize-is-triggered-by-outside-command-003
    │   ├── tests-test_animate.lua---Resize---works-when-resize-is-triggered-by-outside-command-004
    │   ├── tests-test_animate.lua---Resize---works-with-`winheight`-`winwidth`
    │   ├── tests-test_animate.lua---Resize---works-with-`winheight`-`winwidth`-002
    │   ├── tests-test_animate.lua---Resize---works-with-`winheight`-`winwidth`-003
    │   ├── tests-test_animate.lua---Resize---works-with-`winheight`-`winwidth`-004
    │   ├── tests-test_animate.lua---Resize---works-with-`winheight`-`winwidth`-005
    │   ├── tests-test_animate.lua---Resize---works-with-`winheight`-`winwidth`-006
    │   ├── tests-test_animate.lua---Resize---works-with-`winheight`-`winwidth`-007
    │   ├── tests-test_animate.lua---Resize---works-with-`winheight`-`winwidth`-008
    │   ├── tests-test_animate.lua---Resize---works-with-`winheight`-`winwidth`-009
    │   ├── tests-test_animate.lua---Resize---works-with-`winheight`-`winwidth`-010
    │   ├── tests-test_animate.lua---Resize---works-with-`winheight`-`winwidth`-011
    │   ├── tests-test_animate.lua---Resize---works-with-`winheight`-`winwidth`-012
    │   ├── tests-test_animate.lua---Resize---works-with-`winheight`-`winwidth`-013
    │   ├── tests-test_animate.lua---Resize---works-with-`winheight`-`winwidth`-014
    │   ├── tests-test_animate.lua---Resize---works-with-`winheight`-`winwidth`-015
    │   ├── tests-test_animate.lua---Resize---works-with-`winheight`-`winwidth`-016
    │   ├── tests-test_animate.lua---Resize---works-with-`winheight`-`winwidth`-017
    │   ├── tests-test_animate.lua---Resize---works-with-`winheight`-`winwidth`-018
    │   ├── tests-test_animate.lua---Resize---works-with-`winheight`-`winwidth`-019
    │   ├── tests-test_animate.lua---Scroll---allows-immediate-another-scroll-animation
    │   ├── tests-test_animate.lua---Scroll---allows-immediate-another-scroll-animation-002
    │   ├── tests-test_animate.lua---Scroll---allows-immediate-another-scroll-animation-003
    │   ├── tests-test_animate.lua---Scroll---allows-immediate-another-scroll-animation-004
    │   ├── tests-test_animate.lua---Scroll---allows-immediate-another-scroll-animation-005
    │   ├── tests-test_animate.lua---Scroll---allows-immediate-another-scroll-animation-006
    │   ├── tests-test_animate.lua---Scroll---does-not-animate-in-Select-mode
    │   ├── tests-test_animate.lua---Scroll---does-not-automatically-animate-after-buffer-change
    │   ├── tests-test_animate.lua---Scroll---does-not-automatically-animate-after-buffer-change-002
    │   ├── tests-test_animate.lua---Scroll---does-not-automatically-animate-result-of-'incsearch'
    │   ├── tests-test_animate.lua---Scroll---does-not-automatically-animate-result-of-'incsearch'-002
    │   ├── tests-test_animate.lua---Scroll---does-not-automatically-animate-result-of-'incsearch'-003
    │   ├── tests-test_animate.lua---Scroll---does-not-automatically-animate-result-of-'incsearch'-004
    │   ├── tests-test_animate.lua---Scroll---handles-mappings-with--Cmd--CR-
    │   ├── tests-test_animate.lua---Scroll---handles-mappings-with--Cmd--CR--002
    │   ├── tests-test_animate.lua---Scroll---respects-'scrolloff'-in-presence-of-folds
    │   ├── tests-test_animate.lua---Scroll---respects-'scrolloff'-in-presence-of-folds-002
    │   ├── tests-test_animate.lua---Scroll---respects-'scrolloff'-in-presence-of-folds-003
    │   ├── tests-test_animate.lua---Scroll---respects-'scrolloff'-in-presence-of-folds-004
    │   ├── tests-test_animate.lua---Scroll---respects-'scrolloff'-in-presence-of-folds-005
    │   ├── tests-test_animate.lua---Scroll---respects-folds
    │   ├── tests-test_animate.lua---Scroll---respects-folds-002
    │   ├── tests-test_animate.lua---Scroll---respects-folds-003
    │   ├── tests-test_animate.lua---Scroll---respects-folds-004
    │   ├── tests-test_animate.lua---Scroll---respects-folds-005
    │   ├── tests-test_animate.lua---Scroll---respects-global-'scrolloff'
    │   ├── tests-test_animate.lua---Scroll---respects-global-'scrolloff'-002
    │   ├── tests-test_animate.lua---Scroll---respects-global-'scrolloff'-003
    │   ├── tests-test_animate.lua---Scroll---respects-global-'scrolloff'-004
    │   ├── tests-test_animate.lua---Scroll---respects-global-'scrolloff'-005
    │   ├── tests-test_animate.lua---Scroll---respects-window-local-'scrolloff'
    │   ├── tests-test_animate.lua---Scroll---respects-window-local-'scrolloff'-002
    │   ├── tests-test_animate.lua---Scroll---respects-window-local-'scrolloff'-003
    │   ├── tests-test_animate.lua---Scroll---respects-window-local-'scrolloff'-004
    │   ├── tests-test_animate.lua---Scroll---respects-window-local-'scrolloff'-005
    │   ├── tests-test_animate.lua---Scroll---stops-on-buffer-change
    │   ├── tests-test_animate.lua---Scroll---stops-on-buffer-change-002
    │   ├── tests-test_animate.lua---Scroll---stops-on-buffer-change-003
    │   ├── tests-test_animate.lua---Scroll---stops-on-buffer-change-004
    │   ├── tests-test_animate.lua---Scroll---stops-on-window-change
    │   ├── tests-test_animate.lua---Scroll---stops-on-window-change-002
    │   ├── tests-test_animate.lua---Scroll---stops-on-window-change-003
    │   ├── tests-test_animate.lua---Scroll---stops-on-window-change-004
    │   ├── tests-test_animate.lua---Scroll---works
    │   ├── tests-test_animate.lua---Scroll---works-002
    │   ├── tests-test_animate.lua---Scroll---works-003
    │   ├── tests-test_animate.lua---Scroll---works-004
    │   ├── tests-test_animate.lua---Scroll---works-005
    │   ├── tests-test_animate.lua---Scroll---works-006
    │   ├── tests-test_animate.lua---Scroll---works-007
    │   ├── tests-test_animate.lua---Scroll---works-008
    │   ├── tests-test_animate.lua---Scroll---works-009
    │   ├── tests-test_animate.lua---Scroll---works-010
    │   ├── tests-test_animate.lua---Scroll---works-properly-just-after-buffer-change
    │   ├── tests-test_animate.lua---Scroll---works-properly-just-after-buffer-change-002
    │   ├── tests-test_animate.lua---Scroll---works-properly-just-after-window-change
    │   ├── tests-test_animate.lua---Scroll---works-properly-just-after-window-change-002
    │   ├── tests-test_animate.lua---Scroll---works-when-movement-is-triggered-by-outside-command
    │   ├── tests-test_animate.lua---Scroll---works-when-movement-is-triggered-by-outside-command-002
    │   ├── tests-test_animate.lua---Scroll---works-when-movement-is-triggered-by-outside-command-003
    │   ├── tests-test_animate.lua---Scroll---works-when-movement-is-triggered-by-outside-command-004
    │   ├── tests-test_animate.lua---Scroll---works-when-movement-is-triggered-by-outside-command-005
    │   ├── tests-test_basics.lua---Mappings---Toggle-options---respects-`config.silent`
    │   ├── tests-test_basics.lua---Mappings---Toggle-options---shows-feedback-about-new-value
    │   ├── tests-test_clue.lua---'mini.nvim'-compatibility---mini.align
    │   ├── tests-test_clue.lua---'mini.nvim'-compatibility---mini.align-002
    │   ├── tests-test_clue.lua---Clues---are-properly-sorted
    │   ├── tests-test_clue.lua---Clues---can-be-configured-after-load
    │   ├── tests-test_clue.lua---Clues---can-be-overridden-in-later-entries
    │   ├── tests-test_clue.lua---Clues---can-have-callable-description
    │   ├── tests-test_clue.lua---Clues---can-have-callables
    │   ├── tests-test_clue.lua---Clues---can-have-callables-002
    │   ├── tests-test_clue.lua---Clues---can-have-callables-003
    │   ├── tests-test_clue.lua---Clues---can-have-callables-004
    │   ├── tests-test_clue.lua---Clues---can-have-nested-subarrays
    │   ├── tests-test_clue.lua---Clues---handles-an-array-of-modes
    │   ├── tests-test_clue.lua---Clues---handles-an-array-of-modes-002
    │   ├── tests-test_clue.lua---Clues---handles-no-description
    │   ├── tests-test_clue.lua---Clues---handles-showing-group-clues-after-executing-key-with-postkeys
    │   ├── tests-test_clue.lua---Clues---handles-showing-group-clues-after-executing-key-with-postkeys-002
    │   ├── tests-test_clue.lua---Clues---has-proper-precedence
    │   ├── tests-test_clue.lua---Clues---respects-`vim.b.miniclue_config`
    │   ├── tests-test_clue.lua---Clues---shows-as-group-a-single-non-exact-clue
    │   ├── tests-test_clue.lua---Clues---shows-as-group-a-single-non-exact-clue-002
    │   ├── tests-test_clue.lua---Clues---shows-as-group-a-single-non-exact-clue-003
    │   ├── tests-test_clue.lua---Clues---silently-ignores-non-valid-clues
    │   ├── tests-test_clue.lua---Clues---uses-human-readable-names-for-special-keys
    │   ├── tests-test_clue.lua---Postkeys---closes-window-if-postkeys-do-not-end-up-key-querying
    │   ├── tests-test_clue.lua---Postkeys---persists-window-if-action-changes-tabpage
    │   ├── tests-test_clue.lua---Postkeys---persists-window-if-action-changes-tabpage-002
    │   ├── tests-test_clue.lua---Postkeys---shows-window-immediately
    │   ├── tests-test_clue.lua---Postkeys---works
    │   ├── tests-test_clue.lua---Postkeys---works-002
    │   ├── tests-test_clue.lua---Postkeys---works-003
    │   ├── tests-test_clue.lua---Postkeys---works-in-edge-cases
    │   ├── tests-test_clue.lua---Postkeys---works-in-edge-cases-002
    │   ├── tests-test_clue.lua---Postkeys---works-in-edge-cases-003
    │   ├── tests-test_clue.lua---Querying-keys---does-not-entirely-block-redraws
    │   ├── tests-test_clue.lua---Querying-keys---does-not-entirely-block-redraws-002
    │   ├── tests-test_clue.lua---Querying-keys---takes-into-account-user-supplied-clues
    │   ├── tests-test_clue.lua---Querying-keys---takes-into-account-user-supplied-clues-002
    │   ├── tests-test_clue.lua---Showing-keys---allows-zero-delay
    │   ├── tests-test_clue.lua---Showing-keys---can-have-'auto'-for-`row`-and-`col`-in-window-config
    │   ├── tests-test_clue.lua---Showing-keys---can-have-'auto'-for-`row`-and-`col`-in-window-config-002
    │   ├── tests-test_clue.lua---Showing-keys---can-have-'auto'-for-`row`-and-`col`-in-window-config-003
    │   ├── tests-test_clue.lua---Showing-keys---can-have-'auto'-for-`row`-and-`col`-in-window-config-004
    │   ├── tests-test_clue.lua---Showing-keys---can-have-`config.window.config.width='auto'`
    │   ├── tests-test_clue.lua---Showing-keys---can-have-callable-`config.window.config`
    │   ├── tests-test_clue.lua---Showing-keys---can-work-with-small-instance-dimensions
    │   ├── tests-test_clue.lua---Showing-keys---does-not-trigger-unnecessary-events
    │   ├── tests-test_clue.lua---Showing-keys---highlights-group-descriptions-differently
    │   ├── tests-test_clue.lua---Showing-keys---highlights-next-key-with-postkeys-differently
    │   ├── tests-test_clue.lua---Showing-keys---indicates-that-description-is-truncated
    │   ├── tests-test_clue.lua---Showing-keys---properly-translates-special-keys
    │   ├── tests-test_clue.lua---Showing-keys---properly-translates-special-keys-002
    │   ├── tests-test_clue.lua---Showing-keys---properly-translates-special-keys-003
    │   ├── tests-test_clue.lua---Showing-keys---properly-translates-special-keys-004
    │   ├── tests-test_clue.lua---Showing-keys---reacts-to-`VimResized`
    │   ├── tests-test_clue.lua---Showing-keys---reacts-to-`VimResized`-002
    │   ├── tests-test_clue.lua---Showing-keys---respects-'winborder'-option
    │   ├── tests-test_clue.lua---Showing-keys---respects-'winborder'-option-002
    │   ├── tests-test_clue.lua---Showing-keys---respects-'winborder'-option-003
    │   ├── tests-test_clue.lua---Showing-keys---respects-`config.window.config`
    │   ├── tests-test_clue.lua---Showing-keys---respects-`config.window.config`-002
    │   ├── tests-test_clue.lua---Showing-keys---respects-`config.window.delay`
    │   ├── tests-test_clue.lua---Showing-keys---respects-`config.window.delay`-002
    │   ├── tests-test_clue.lua---Showing-keys---respects-`config.window.delay`-003
    │   ├── tests-test_clue.lua---Showing-keys---respects-`scroll_down`-and-`scroll_up`-in-`config.window`
    │   ├── tests-test_clue.lua---Showing-keys---respects-`scroll_down`-and-`scroll_up`-in-`config.window`-002
    │   ├── tests-test_clue.lua---Showing-keys---respects-`scroll_down`-and-`scroll_up`-in-`config.window`-003
    │   ├── tests-test_clue.lua---Showing-keys---respects-`scroll_down`-and-`scroll_up`-in-`config.window`-004
    │   ├── tests-test_clue.lua---Showing-keys---respects-`scroll_down`-and-`scroll_up`-in-`config.window`-005
    │   ├── tests-test_clue.lua---Showing-keys---respects-`scroll_down`-and-`scroll_up`-in-`config.window`-006
    │   ├── tests-test_clue.lua---Showing-keys---respects-`scroll_down`-and-`scroll_up`-in-`config.window`-007
    │   ├── tests-test_clue.lua---Showing-keys---respects-`scroll_down`-and-`scroll_up`-in-`config.window`-008
    │   ├── tests-test_clue.lua---Showing-keys---respects-`scroll_down`-and-`scroll_up`-in-`config.window`-009
    │   ├── tests-test_clue.lua---Showing-keys---respects-`scroll_down`-and-`scroll_up`-in-`config.window`-010
    │   ├── tests-test_clue.lua---Showing-keys---respects-`vim.b.miniclue_config`
    │   ├── tests-test_clue.lua---Showing-keys---respects-tabline,-statusline,-cmdheight
    │   ├── tests-test_clue.lua---Showing-keys---respects-tabline,-statusline,-cmdheight-002
    │   ├── tests-test_clue.lua---Showing-keys---respects-tabline,-statusline,-cmdheight-003
    │   ├── tests-test_clue.lua---Showing-keys---respects-tabline,-statusline,-cmdheight-004
    │   ├── tests-test_clue.lua---Showing-keys---scroll-is-not-persistent
    │   ├── tests-test_clue.lua---Showing-keys---scroll-is-not-persistent-002
    │   ├── tests-test_clue.lua---Showing-keys---scroll-is-not-persistent-003
    │   ├── tests-test_clue.lua---Showing-keys---uses-query-clue-as-title
    │   ├── tests-test_clue.lua---Showing-keys---uses-query-clue-as-title-002
    │   ├── tests-test_clue.lua---Showing-keys---uses-query-clue-as-title-003
    │   ├── tests-test_clue.lua---Showing-keys---uses-query-clue-as-title-004
    │   ├── tests-test_clue.lua---Showing-keys---uses-query-clue-as-title-005
    │   ├── tests-test_clue.lua---Showing-keys---uses-query-clue-as-title-006
    │   ├── tests-test_clue.lua---Showing-keys---uses-query-clue-as-title-007
    │   ├── tests-test_clue.lua---Showing-keys---uses-query-clue-as-title-008
    │   ├── tests-test_clue.lua---Showing-keys---works
    │   ├── tests-test_clue.lua---Showing-keys---works-002
    │   ├── tests-test_clue.lua---Showing-keys---works-003
    │   ├── tests-test_clue.lua---Showing-keys---works-in-Command-line-window
    │   ├── tests-test_clue.lua---Showing-keys---works-in-Command-line-window-002
    │   ├── tests-test_clue.lua---Showing-keys---works-with-multibyte-characters
    │   ├── tests-test_clue.lua---Showing-keys---works-with-multibyte-characters-002
    │   ├── tests-test_clue.lua---Showing-keys---works-with-small-available-dimensions
    │   ├── tests-test_clue.lua---ensure_all_triggers()---works
    │   ├── tests-test_clue.lua---ensure_all_triggers()---works-002
    │   ├── tests-test_clue.lua---ensure_buf_triggers()---works
    │   ├── tests-test_clue.lua---gen_clues---builtin_completion()---works
    │   ├── tests-test_clue.lua---gen_clues---g()---works
    │   ├── tests-test_clue.lua---gen_clues---g()---works-002
    │   ├── tests-test_clue.lua---gen_clues---marks()---works
    │   ├── tests-test_clue.lua---gen_clues---marks()---works-002
    │   ├── tests-test_clue.lua---gen_clues---marks()---works-003
    │   ├── tests-test_clue.lua---gen_clues---marks()---works-004
    │   ├── tests-test_clue.lua---gen_clues---marks()---works-005
    │   ├── tests-test_clue.lua---gen_clues---marks()---works-006
    │   ├── tests-test_clue.lua---gen_clues---marks()---works-007
    │   ├── tests-test_clue.lua---gen_clues---marks()---works-008
    │   ├── tests-test_clue.lua---gen_clues---registers()---respects-`opts.show_contents`
    │   ├── tests-test_clue.lua---gen_clues---registers()---works
    │   ├── tests-test_clue.lua---gen_clues---registers()---works-002
    │   ├── tests-test_clue.lua---gen_clues---registers()---works-003
    │   ├── tests-test_clue.lua---gen_clues---registers()---works-004
    │   ├── tests-test_clue.lua---gen_clues---registers()---works-005
    │   ├── tests-test_clue.lua---gen_clues---registers()---works-006
    │   ├── tests-test_clue.lua---gen_clues---registers()---works-007
    │   ├── tests-test_clue.lua---gen_clues---registers()---works-008
    │   ├── tests-test_clue.lua---gen_clues---registers()---works-009
    │   ├── tests-test_clue.lua---gen_clues---square_brackets()---works
    │   ├── tests-test_clue.lua---gen_clues---square_brackets()---works-002
    │   ├── tests-test_clue.lua---gen_clues---windows()---works
    │   ├── tests-test_clue.lua---gen_clues---windows()---works-002
    │   ├── tests-test_clue.lua---gen_clues---z()---works
    │   ├── tests-test_clue.lua---gen_clues---z()---works-002
    │   ├── tests-test_clue.lua---setup()---ensures-valid-triggers-on-`LspAttach`-event
    │   ├── tests-test_cmdline.lua---Autocomplete---is-not-triggered-when-wildmenu-is-visible
    │   ├── tests-test_cmdline.lua---Autocomplete---works
    │   ├── tests-test_cmdline.lua---Autocomplete---works-002
    │   ├── tests-test_cmdline.lua---Autocomplete---works-003
    │   ├── tests-test_cmdline.lua---Autocomplete---works-004
    │   ├── tests-test_cmdline.lua---Autocomplete---works-005
    │   ├── tests-test_cmdline.lua---Autocomplete---works-in-different-command-types
    │   ├── tests-test_cmdline.lua---Autocomplete---works-in-different-command-types-002
    │   ├── tests-test_cmdline.lua---Autocomplete---works-in-different-command-types-003
    │   ├── tests-test_cmdline.lua---Autocomplete---works-in-different-command-types-004
    │   ├── tests-test_cmdline.lua---Autocomplete---works-in-edge-cases
    │   ├── tests-test_cmdline.lua---Autocomplete---works-in-edge-cases-002
    │   ├── tests-test_cmdline.lua---Autocomplete---works-in-edge-cases-003
    │   ├── tests-test_cmdline.lua---Autocomplete---works-with-different-completion-types
    │   ├── tests-test_cmdline.lua---Autocomplete---works-with-different-completion-types-002
    │   ├── tests-test_cmdline.lua---Autocomplete---works-with-different-completion-types-003
    │   ├── tests-test_cmdline.lua---Autopeek---correctly-computes-lines-to-show
    │   ├── tests-test_cmdline.lua---Autopeek---correctly-computes-lines-to-show-002
    │   ├── tests-test_cmdline.lua---Autopeek---correctly-computes-lines-to-show-003
    │   ├── tests-test_cmdline.lua---Autopeek---correctly-computes-lines-to-show-004
    │   ├── tests-test_cmdline.lua---Autopeek---correctly-computes-lines-to-show-005
    │   ├── tests-test_cmdline.lua---Autopeek---correctly-computes-lines-to-show-006
    │   ├── tests-test_cmdline.lua---Autopeek---correctly-computes-lines-to-show-007
    │   ├── tests-test_cmdline.lua---Autopeek---correctly-computes-lines-to-show-008
    │   ├── tests-test_cmdline.lua---Autopeek---correctly-computes-lines-to-show-009
    │   ├── tests-test_cmdline.lua---Autopeek---correctly-computes-lines-to-show-010
    │   ├── tests-test_cmdline.lua---Autopeek---correctly-shows-window-without-border
    │   ├── tests-test_cmdline.lua---Autopeek---correctly-shows-window-without-border-002
    │   ├── tests-test_cmdline.lua---Autopeek---correctly-shows-window-without-border-003
    │   ├── tests-test_cmdline.lua---Autopeek---correctly-shows-window-without-border-004
    │   ├── tests-test_cmdline.lua---Autopeek---correctly-shows-window-without-border-005
    │   ├── tests-test_cmdline.lua---Autopeek---correctly-shows-window-without-border-006
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-002
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-003
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-004
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-005
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-006
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-007
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-008
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-009
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-010
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-011
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-012
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-013
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-014
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-015
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-016
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-017
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-018
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-019
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-020
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-021
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-022
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-023
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-024
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-025
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-026
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-027
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-028
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-029
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-030
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-031
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-032
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-033
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-034
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-035
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-036
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-037
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-038
    │   ├── tests-test_cmdline.lua---Autopeek---hides-visual-selection
    │   ├── tests-test_cmdline.lua---Autopeek---hides-visual-selection-002
    │   ├── tests-test_cmdline.lua---Autopeek---ignores-'wrap'
    │   ├── tests-test_cmdline.lua---Autopeek---ignores-'wrap'-002
    │   ├── tests-test_cmdline.lua---Autopeek---ignores-'wrap'-003
    │   ├── tests-test_cmdline.lua---Autopeek---ignores-'wrap'-004
    │   ├── tests-test_cmdline.lua---Autopeek---is-shown-below-pmenu-and--C-d--output
    │   ├── tests-test_cmdline.lua---Autopeek---persists-for-the-entirety-of-command-typing
    │   ├── tests-test_cmdline.lua---Autopeek---persists-for-the-entirety-of-command-typing-002
    │   ├── tests-test_cmdline.lua---Autopeek---persists-for-the-entirety-of-command-typing-003
    │   ├── tests-test_cmdline.lua---Autopeek---reacts-to-`VimResized`
    │   ├── tests-test_cmdline.lua---Autopeek---reacts-to-`VimResized`-002
    │   ├── tests-test_cmdline.lua---Autopeek---reacts-to-`VimResized`-003
    │   ├── tests-test_cmdline.lua---Autopeek---reacts-to-`VimResized`-004
    │   ├── tests-test_cmdline.lua---Autopeek---reacts-to-command-line-height-change-during-typing
    │   ├── tests-test_cmdline.lua---Autopeek---reacts-to-command-line-height-change-during-typing-002
    │   ├── tests-test_cmdline.lua---Autopeek---reacts-to-command-line-height-change-during-typing-003
    │   ├── tests-test_cmdline.lua---Autopeek---respects-'winborder'
    │   ├── tests-test_cmdline.lua---Autopeek---respects-'winborder'-002
    │   ├── tests-test_cmdline.lua---Autopeek---respects-'winborder'-003
    │   ├── tests-test_cmdline.lua---Autopeek---respects-`config.autopeek.n_context`
    │   ├── tests-test_cmdline.lua---Autopeek---respects-`config.autopeek.n_context`-002
    │   ├── tests-test_cmdline.lua---Autopeek---respects-`config.autopeek.n_context`-003
    │   ├── tests-test_cmdline.lua---Autopeek---respects-`config.autopeek.n_context`-004
    │   ├── tests-test_cmdline.lua---Autopeek---respects-`config.autopeek.n_context`-005
    │   ├── tests-test_cmdline.lua---Autopeek---respects-`config.autopeek.n_context`-006
    │   ├── tests-test_cmdline.lua---Autopeek---respects-`config.autopeek.n_context`-007
    │   ├── tests-test_cmdline.lua---Autopeek---respects-`config.autopeek.window.config`
    │   ├── tests-test_cmdline.lua---Autopeek---respects-`config.autopeek.window.config`-002
    │   ├── tests-test_cmdline.lua---Autopeek---respects-`config.autopeek.window.config`-003
    │   ├── tests-test_cmdline.lua---Autopeek---respects-`config.autopeek.window.statuscolumn`
    │   ├── tests-test_cmdline.lua---Autopeek---respects-mappings
    │   ├── tests-test_cmdline.lua---Autopeek---updates-when-navigating-through-history
    │   ├── tests-test_cmdline.lua---Autopeek---updates-when-navigating-through-history-002
    │   ├── tests-test_cmdline.lua---Autopeek---updates-when-navigating-through-history-003
    │   ├── tests-test_cmdline.lua---Autopeek---updates-when-navigating-through-history-004
    │   ├── tests-test_cmdline.lua---Autopeek---works
    │   ├── tests-test_cmdline.lua---Autopeek---works-002
    │   ├── tests-test_cmdline.lua---Autopeek---works-003
    │   ├── tests-test_cmdline.lua---Autopeek---works-004
    │   ├── tests-test_cmdline.lua---Autopeek---works-005
    │   ├── tests-test_cmdline.lua---Autopeek---works-006
    │   ├── tests-test_cmdline.lua---Autopeek---works-007
    │   ├── tests-test_cmdline.lua---Autopeek---works-008
    │   ├── tests-test_cmdline.lua---Autopeek---works-009
    │   ├── tests-test_cmdline.lua---Autopeek---works-if-range-is-present-immediately
    │   ├── tests-test_cmdline.lua---Autopeek---works-when-regular-command-line-parsing-fails
    │   ├── tests-test_cmdline.lua---Autopeek---works-when-regular-command-line-parsing-fails-002
    │   ├── tests-test_cmdline.lua---Autopeek---works-when-regular-command-line-parsing-fails-003
    │   ├── tests-test_cmdline.lua---Autopeek---works-when-regular-command-line-parsing-fails-004
    │   ├── tests-test_cmdline.lua---Autopeek---works-when-regular-command-line-parsing-fails-005
    │   ├── tests-test_cmdline.lua---Autopeek---works-when-regular-command-line-parsing-fails-006
    │   ├── tests-test_cmdline.lua---Autopeek---works-when-regular-command-line-parsing-fails-007
    │   ├── tests-test_cmdline.lua---Autopeek---works-when-regular-command-line-parsing-fails-008
    │   ├── tests-test_cmdline.lua---Autopeek---works-when-regular-command-line-parsing-fails-009
    │   ├── tests-test_cmdline.lua---Autopeek---works-when-using-command-line-expression-register
    │   ├── tests-test_cmdline.lua---Autopeek---works-when-using-command-line-expression-register-002
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-'inccommand'
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-'inccommand'-002
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-'inccommand'-003
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-'inccommand'-004
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-'inccommand'-005
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-'inccommand'-006
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-different-'cmdheight'
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-different-'cmdheight'-002
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-every-kind-of-line-range
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-every-kind-of-line-range-002
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-every-kind-of-line-range-003
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-every-kind-of-line-range-004
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-every-kind-of-line-range-005
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-every-kind-of-line-range-006
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-every-kind-of-line-range-007
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-every-kind-of-line-range-008
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-every-kind-of-line-range-009
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-every-kind-of-line-range-010
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-every-kind-of-line-range-011
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-every-kind-of-line-range-012
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-every-kind-of-line-range-013
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-inverted-range
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-inverted-range-002
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-inverted-range-003
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-inverted-range-004
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-inverted-range-005
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-inverted-range-006
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-inverted-range-007
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-inverted-range-008
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-inverted-range-009
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-virtual-lines
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-virtual-lines-002
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-virtual-lines-003
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-virtual-lines-004
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-virtual-lines-005
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-virtual-lines-006
    │   ├── tests-test_cmdline.lua---default_autopeek_statuscolumn()---respects-`opts`
    │   ├── tests-test_cmdline.lua---default_autopeek_statuscolumn()---respects-`opts`-002
    │   ├── tests-test_cmdline.lua---default_autopeek_statuscolumn()---respects-`opts`-003
    │   ├── tests-test_cmdline.lua---default_autopeek_statuscolumn()---respects-`opts`-004
    │   ├── tests-test_cmdline.lua---default_autopeek_statuscolumn()---works
    │   ├── tests-test_cmdline.lua---default_autopeek_statuscolumn()---works-002
    │   ├── tests-test_cmdline.lua---default_autopeek_statuscolumn()---works-003
    │   ├── tests-test_cmdline.lua---default_autopeek_statuscolumn()---works-004
    │   ├── tests-test_cmdline.lua---default_autopeek_statuscolumn()---works-005
    │   ├── tests-test_cmdline.lua---default_autopeek_statuscolumn()---works-006
    │   ├── tests-test_cmdline.lua---default_autopeek_statuscolumn()---works-with-wrapped-and-virtual-lines
    │   ├── tests-test_colors.lua---interactive()---works
    │   ├── tests-test_colors.lua---interactive()---works-002
    │   ├── tests-test_completion.lua---Autocompletion---forces-new-LSP-completion-at-LSP-trigger---test-+-args-{-'completefunc'-}
    │   ├── tests-test_completion.lua---Autocompletion---forces-new-LSP-completion-at-LSP-trigger---test-+-args-{-'completefunc'-}-002
    │   ├── tests-test_completion.lua---Autocompletion---forces-new-LSP-completion-at-LSP-trigger---test-+-args-{-'omnifunc'-}
    │   ├── tests-test_completion.lua---Autocompletion---forces-new-LSP-completion-at-LSP-trigger---test-+-args-{-'omnifunc'-}-002
    │   ├── tests-test_completion.lua---Autocompletion---forces-new-LSP-completion-for-`isIncomplete`-even-if-canceled
    │   ├── tests-test_completion.lua---Autocompletion---forces-new-LSP-completion-in-case-of-`isIncomplete`
    │   ├── tests-test_completion.lua---Autocompletion---forces-new-LSP-completion-in-case-of-`isIncomplete`-002
    │   ├── tests-test_completion.lua---Autocompletion---forces-new-LSP-completion-in-case-of-`isIncomplete`-003
    │   ├── tests-test_completion.lua---Autocompletion---respects-string-`config.fallback_action`
    │   ├── tests-test_completion.lua---Autocompletion---respects-string-`config.fallback_action`-002
    │   ├── tests-test_completion.lua---Autocompletion---works-with-LSP-client
    │   ├── tests-test_completion.lua---Autocompletion---works-with-`-BS-`
    │   ├── tests-test_completion.lua---Autocompletion---works-with-`-BS-`-002
    │   ├── tests-test_completion.lua---Autocompletion---works-with-`-BS-`-003
    │   ├── tests-test_completion.lua---Autocompletion---works-without-LSP-clients
    │   ├── tests-test_completion.lua---Information-window---accounts-for-border-when-picking-side
    │   ├── tests-test_completion.lua---Information-window---adjusts-for-top-bottom-code-block-delimiters
    │   ├── tests-test_completion.lua---Information-window---adjusts-for-top-bottom-code-block-delimiters-002
    │   ├── tests-test_completion.lua---Information-window---adjusts-title
    │   ├── tests-test_completion.lua---Information-window---adjusts-title-002
    │   ├── tests-test_completion.lua---Information-window---adjusts-window-width
    │   ├── tests-test_completion.lua---Information-window---can-be-adjusted-in-event
    │   ├── tests-test_completion.lua---Information-window---has-minimal-dimensions-for-small-text
    │   ├── tests-test_completion.lua---Information-window---ignores-data-from-first-response-if-server-can-resolve-completion-item
    │   ├── tests-test_completion.lua---Information-window---respects-'pumborder'-option
    │   ├── tests-test_completion.lua---Information-window---respects-'pumborder'-option-002
    │   ├── tests-test_completion.lua---Information-window---respects-'pumborder'-option-003
    │   ├── tests-test_completion.lua---Information-window---respects-'pumborder'-option-004
    │   ├── tests-test_completion.lua---Information-window---respects-'pumborder'-option-005
    │   ├── tests-test_completion.lua---Information-window---respects-'pumborder'-option-006
    │   ├── tests-test_completion.lua---Information-window---respects-'pumborder'-option-007
    │   ├── tests-test_completion.lua---Information-window---respects-'pumborder'-option-008
    │   ├── tests-test_completion.lua---Information-window---respects-'pumborder'-option-009
    │   ├── tests-test_completion.lua---Information-window---respects-`config.window.info`
    │   ├── tests-test_completion.lua---Information-window---respects-`config.window.info`-002
    │   ├── tests-test_completion.lua---Information-window---stylizes-markdown-with-concealed-characters
    │   ├── tests-test_completion.lua---Information-window---uses-`detail`-to-construct-content
    │   ├── tests-test_completion.lua---Information-window---uses-`detail`-to-construct-content-002
    │   ├── tests-test_completion.lua---Information-window---uses-`info`-field-from-not-LSP-source
    │   ├── tests-test_completion.lua---Information-window---works
    │   ├── tests-test_completion.lua---Information-window---works-without-attached-LSP-server
    │   ├── tests-test_completion.lua---Information-window---works-without-attached-LSP-server-002
    │   ├── tests-test_completion.lua---Manual-completion---respects-`abbr_hlgroup`-as-item-field
    │   ├── tests-test_completion.lua---Manual-completion---respects-`filterText`-during-built-in-filtering
    │   ├── tests-test_completion.lua---Manual-completion---respects-`filterText`-during-built-in-filtering-002
    │   ├── tests-test_completion.lua---Manual-completion---respects-`kind_hlgroup`-as-item-field
    │   ├── tests-test_completion.lua---Manual-completion---respects-`labelDetails`-from-LSP-response
    │   ├── tests-test_completion.lua---Manual-completion---uses-`vim.lsp.protocol.CompletionItemKind`-in-LSP-step
    │   ├── tests-test_completion.lua---Scroll---can-be-done-in-both-windows
    │   ├── tests-test_completion.lua---Scroll---can-be-done-in-both-windows-002
    │   ├── tests-test_completion.lua---Scroll---can-be-done-in-both-windows-003
    │   ├── tests-test_completion.lua---Scroll---can-be-done-in-both-windows-004
    │   ├── tests-test_completion.lua---Scroll---can-be-done-in-info-window
    │   ├── tests-test_completion.lua---Scroll---can-be-done-in-info-window-002
    │   ├── tests-test_completion.lua---Scroll---can-be-done-in-info-window-003
    │   ├── tests-test_completion.lua---Scroll---can-be-done-in-info-window-004
    │   ├── tests-test_completion.lua---Scroll---can-be-done-in-info-window-005
    │   ├── tests-test_completion.lua---Scroll---can-be-done-in-info-window-006
    │   ├── tests-test_completion.lua---Scroll---can-be-done-in-info-window-007
    │   ├── tests-test_completion.lua---Scroll---can-be-done-in-signature-window
    │   ├── tests-test_completion.lua---Scroll---can-be-done-in-signature-window-002
    │   ├── tests-test_completion.lua---Scroll---can-be-done-in-signature-window-003
    │   ├── tests-test_completion.lua---Scroll---can-be-done-in-signature-window-004
    │   ├── tests-test_completion.lua---Scroll---can-be-done-in-signature-window-005
    │   ├── tests-test_completion.lua---Scroll---respects-`config.mappings`
    │   ├── tests-test_completion.lua---Scroll---respects-`config.mappings`-002
    │   ├── tests-test_completion.lua---Scroll---respects-`config.mappings`-003
    │   ├── tests-test_completion.lua---Signature-help---accounts-for-border-when-picking-side
    │   ├── tests-test_completion.lua---Signature-help---adjusts-title
    │   ├── tests-test_completion.lua---Signature-help---adjusts-title-002
    │   ├── tests-test_completion.lua---Signature-help---adjusts-window-height
    │   ├── tests-test_completion.lua---Signature-help---can-be-adjusted-in-event
    │   ├── tests-test_completion.lua---Signature-help---handles-multiline-text
    │   ├── tests-test_completion.lua---Signature-help---has-minimal-dimensions-for-small-text
    │   ├── tests-test_completion.lua---Signature-help---respects-`config.window.signature`
    │   ├── tests-test_completion.lua---Signature-help---respects-`config.window.signature`-002
    │   ├── tests-test_completion.lua---Signature-help---stylizes-markdown-with-concealed-characters
    │   ├── tests-test_completion.lua---Signature-help---updates-highlighting-of-active-parameter
    │   ├── tests-test_completion.lua---Signature-help---updates-highlighting-of-active-parameter-002
    │   ├── tests-test_completion.lua---Signature-help---updates-highlighting-of-active-parameter-003
    │   ├── tests-test_completion.lua---Signature-help---updates-highlighting-of-active-parameter-004
    │   ├── tests-test_completion.lua---Signature-help---updates-highlighting-of-active-parameter-005
    │   ├── tests-test_completion.lua---Signature-help---updates-highlighting-of-active-parameter-006
    │   ├── tests-test_completion.lua---Signature-help---updates-without-delay-with-different-window
    │   ├── tests-test_completion.lua---Signature-help---updates-without-delay-with-different-window-002
    │   ├── tests-test_completion.lua---Signature-help---works
    │   ├── tests-test_completion.lua---Snippets---LSP-server-from-'mini.snippets'---works
    │   ├── tests-test_completion.lua---Snippets---LSP-server-from-'mini.snippets'---works-with-in-server-matching
    │   ├── tests-test_completion.lua---Snippets---are-not-inserted-if-have-no-tabstops-or-variables
    │   ├── tests-test_completion.lua---Snippets---properly-show-special-symbol-in-popup
    │   ├── tests-test_completion.lua---Snippets---respect-'mini.snippets'-config
    │   ├── tests-test_completion.lua---Snippets---show-full-snippet-text-as-info
    │   ├── tests-test_completion.lua---Snippets---show-full-snippet-text-as-info-002
    │   ├── tests-test_completion.lua---Snippets---work
    │   ├── tests-test_cursorword.lua---Highlighting---can-stop
    │   ├── tests-test_cursorword.lua---Highlighting---respects-MiniCursorwordCurrent-highlight-group
    │   ├── tests-test_cursorword.lua---Highlighting---works
    │   ├── tests-test_cursorword.lua---Highlighting---works-on-multibyte-character
    │   ├── tests-test_cursorword.lua---Highlighting---works-on-multibyte-character-002
    │   ├── tests-test_cursorword.lua---Highlighting---works-with-multiple-windows
    │   ├── tests-test_deps.lua---Commands----DepsAdd-works
    │   ├── tests-test_deps.lua---Commands----DepsShowLog-works
    │   ├── tests-test_deps.lua---Commands----DepsUpdate-works
    │   ├── tests-test_deps.lua---Commands----DepsUpdateOffline-works
    │   ├── tests-test_deps.lua---clean()---works
    │   ├── tests-test_deps.lua---clean()---works-002
    │   ├── tests-test_deps.lua---update()---can-fold-in-confirm-buffer
    │   ├── tests-test_deps.lua---update()---can-highlight-breaking-changes
    │   ├── tests-test_deps.lua---update()---can-work-with-non-default-branches
    │   ├── tests-test_deps.lua---update()---shows-empty-monitor-log
    │   ├── tests-test_deps.lua---update()---works
    │   ├── tests-test_diff.lua---Diff---`MiniDiffUpdated`-event-can-be-used-to-override-`minidiff_summary_string`-variable
    │   ├── tests-test_diff.lua---Diff---redraws-statusline-when-diff-is-updated
    │   ├── tests-test_diff.lua---Diff---redraws-statusline-when-diff-is-updated-002
    │   ├── tests-test_diff.lua---Overlay---always-highlights-whole-lines
    │   ├── tests-test_diff.lua---Overlay---scrolls-along-with-buffer-lines
    │   ├── tests-test_diff.lua---Overlay---scrolls-along-with-buffer-lines-002
    │   ├── tests-test_diff.lua---Overlay---word-diff---has-non-zero-interhunk-context
    │   ├── tests-test_diff.lua---Overlay---word-diff---works
    │   ├── tests-test_diff.lua---Overlay---word-diff---works-with-BOM-bytes
    │   ├── tests-test_diff.lua---Overlay---word-diff---works-with-multibyte-characters
    │   ├── tests-test_diff.lua---Overlay---word-diff---works-with-multibyte-characters-002
    │   ├── tests-test_diff.lua---Overlay---word-diff---works-with-multibyte-characters-003
    │   ├── tests-test_diff.lua---Overlay---word-diff---works-with-multibyte-characters-004
    │   ├── tests-test_diff.lua---Overlay---word-diff---works-with-multibyte-characters-005
    │   ├── tests-test_diff.lua---Overlay---word-diff---works-with-multibyte-characters-006
    │   ├── tests-test_diff.lua---Overlay---word-diff---works-with-multibyte-characters-007
    │   ├── tests-test_diff.lua---Overlay---word-diff---works-with-multibyte-characters-008
    │   ├── tests-test_diff.lua---Overlay---word-diff---works-with-multibyte-characters-009
    │   ├── tests-test_diff.lua---Overlay---word-diff---works-with-multibyte-characters-010
    │   ├── tests-test_diff.lua---Overlay---word-diff---works-with-one-of-lines-being-empty
    │   ├── tests-test_diff.lua---Overlay---word-diff---works-with-one-of-lines-being-empty-002
    │   ├── tests-test_diff.lua---Overlay---works
    │   ├── tests-test_diff.lua---Overlay---works-002
    │   ├── tests-test_diff.lua---Overlay---works-003
    │   ├── tests-test_diff.lua---Overlay---works-at-edge-lines
    │   ├── tests-test_diff.lua---Overlay---works-at-edge-lines-002
    │   ├── tests-test_diff.lua---Overlay---works-at-edge-lines-003
    │   ├── tests-test_diff.lua---Overlay---works-when-'change'-overlaps-with-'delete'
    │   ├── tests-test_diff.lua---Overlay---works-with-'add'-hunks
    │   ├── tests-test_diff.lua---Overlay---works-with-'change'-hunks
    │   ├── tests-test_diff.lua---Overlay---works-with-'change'-hunks-002
    │   ├── tests-test_diff.lua---Overlay---works-with-'delete'-hunks
    │   ├── tests-test_diff.lua---Visualization---can-be-visually-disabled
    │   ├── tests-test_diff.lua---Visualization---does-not-appear-if-there-is-no-gutter
    │   ├── tests-test_diff.lua---Visualization---forces-redraw-when-it-is-needed
    │   ├── tests-test_diff.lua---Visualization---forces-redraw-when-it-is-needed-002
    │   ├── tests-test_diff.lua---Visualization---reacts-to-hunk-lines-delete-move
    │   ├── tests-test_diff.lua---Visualization---reacts-to-hunk-lines-delete-move-002
    │   ├── tests-test_diff.lua---Visualization---respects-`view.signs`
    │   ├── tests-test_diff.lua---Visualization---respects-`view.style`
    │   ├── tests-test_diff.lua---Visualization---respects-`view.style`-002
    │   ├── tests-test_diff.lua---Visualization---shows-signcolumn-even-if-hunks-are-outside-of-view
    │   ├── tests-test_diff.lua---Visualization---shows-signcolumn-even-if-hunks-are-outside-of-view-002
    │   ├── tests-test_diff.lua---Visualization---works
    │   ├── tests-test_diff.lua---Visualization---works-with-'add'-hunks
    │   ├── tests-test_diff.lua---Visualization---works-with-'add'-hunks-002
    │   ├── tests-test_diff.lua---Visualization---works-with-'change'-hunks
    │   ├── tests-test_diff.lua---Visualization---works-with-'change'-hunks-002
    │   ├── tests-test_diff.lua---Visualization---works-with-'delete'-hunks
    │   ├── tests-test_diff.lua---Visualization---works-with-'delete'-hunks-002
    │   ├── tests-test_diff.lua---Visualization---works-with-'delete'-hunks-003
    │   ├── tests-test_diff.lua---disable()---works
    │   ├── tests-test_diff.lua---set_ref_text()---immediately-updates-diff-data-and-visualization
    │   ├── tests-test_diff.lua---set_ref_text()---removing-reference-text-removes-visualization
    │   ├── tests-test_diff.lua---set_ref_text()---removing-reference-text-removes-visualization-002
    │   ├── tests-test_diff.lua---toggle_overlay()---works
    │   ├── tests-test_diff.lua---toggle_overlay()---works-002
    │   ├── tests-test_diff.lua---toggle_overlay()---works-003
    │   ├── tests-test_diff.lua---toggle_overlay()---works-004
    │   ├── tests-test_diff.lua---toggle_overlay()---works-005
    │   ├── tests-test_extra.lua---pickers---buf_lines()---can-not-show-icons
    │   ├── tests-test_extra.lua---pickers---buf_lines()---respects-`local_opts.scope`
    │   ├── tests-test_extra.lua---pickers---buf_lines()---works
    │   ├── tests-test_extra.lua---pickers---colorschemes()---respects-`local_opts.preview_hl_groups`
    │   ├── tests-test_extra.lua---pickers---colorschemes()---works
    │   ├── tests-test_extra.lua---pickers---colorschemes()---works-002
    │   ├── tests-test_extra.lua---pickers---colorschemes()---works-with-preview
    │   ├── tests-test_extra.lua---pickers---colorschemes()---works-with-preview-002
    │   ├── tests-test_extra.lua---pickers---colorschemes()---works-with-preview-003
    │   ├── tests-test_extra.lua---pickers---commands()---respects-user-commands
    │   ├── tests-test_extra.lua---pickers---commands()---respects-user-commands-002
    │   ├── tests-test_extra.lua---pickers---commands()---works
    │   ├── tests-test_extra.lua---pickers---commands()---works-002
    │   ├── tests-test_extra.lua---pickers---diagnostic()---works
    │   ├── tests-test_extra.lua---pickers---diagnostic()---works-002
    │   ├── tests-test_extra.lua---pickers---explorer()---can-be-resumed
    │   ├── tests-test_extra.lua---pickers---explorer()---can-be-resumed-002
    │   ├── tests-test_extra.lua---pickers---explorer()---can-not-show-icons
    │   ├── tests-test_extra.lua---pickers---explorer()---can-not-show-icons-002
    │   ├── tests-test_extra.lua---pickers---explorer()---respects-`local_opts.filter`
    │   ├── tests-test_extra.lua---pickers---explorer()---respects-`local_opts.filter`-002
    │   ├── tests-test_extra.lua---pickers---explorer()---respects-`local_opts.sort`
    │   ├── tests-test_extra.lua---pickers---explorer()---respects-`local_opts.sort`-002
    │   ├── tests-test_extra.lua---pickers---explorer()---works
    │   ├── tests-test_extra.lua---pickers---explorer()---works-002
    │   ├── tests-test_extra.lua---pickers---explorer()---works-003
    │   ├── tests-test_extra.lua---pickers---explorer()---works-004
    │   ├── tests-test_extra.lua---pickers---explorer()---works-005
    │   ├── tests-test_extra.lua---pickers---explorer()---works-006
    │   ├── tests-test_extra.lua---pickers---git_branches()---works
    │   ├── tests-test_extra.lua---pickers---git_branches()---works-002
    │   ├── tests-test_extra.lua---pickers---git_commits()---works
    │   ├── tests-test_extra.lua---pickers---git_commits()---works-002
    │   ├── tests-test_extra.lua---pickers---git_files()---can-not-show-icons
    │   ├── tests-test_extra.lua---pickers---git_files()---works
    │   ├── tests-test_extra.lua---pickers---git_files()---works-002
    │   ├── tests-test_extra.lua---pickers---git_hunks()---respects-`local_opts.n_context`---test-+-args-{-0-}
    │   ├── tests-test_extra.lua---pickers---git_hunks()---respects-`local_opts.n_context`---test-+-args-{-0-}-002
    │   ├── tests-test_extra.lua---pickers---git_hunks()---respects-`local_opts.n_context`---test-+-args-{-0-}-003
    │   ├── tests-test_extra.lua---pickers---git_hunks()---respects-`local_opts.n_context`---test-+-args-{-20-}
    │   ├── tests-test_extra.lua---pickers---git_hunks()---respects-`local_opts.n_context`---test-+-args-{-20-}-002
    │   ├── tests-test_extra.lua---pickers---git_hunks()---respects-`local_opts.n_context`---test-+-args-{-20-}-003
    │   ├── tests-test_extra.lua---pickers---git_hunks()---works
    │   ├── tests-test_extra.lua---pickers---git_hunks()---works-002
    │   ├── tests-test_extra.lua---pickers---git_hunks()---works-003
    │   ├── tests-test_extra.lua---pickers---git_hunks()---works-004
    │   ├── tests-test_extra.lua---pickers---git_hunks()---works-005
    │   ├── tests-test_extra.lua---pickers---git_hunks()---works-006
    │   ├── tests-test_extra.lua---pickers---hipatterns()---respects-`local_opts.highlighters`
    │   ├── tests-test_extra.lua---pickers---hipatterns()---respects-`local_opts.scope`
    │   ├── tests-test_extra.lua---pickers---hipatterns()---works
    │   ├── tests-test_extra.lua---pickers---hipatterns()---works-002
    │   ├── tests-test_extra.lua---pickers---history()---works
    │   ├── tests-test_extra.lua---pickers---history()---works-002
    │   ├── tests-test_extra.lua---pickers---hl_groups()---respects-non-default-linked-highlight-groups
    │   ├── tests-test_extra.lua---pickers---hl_groups()---works
    │   ├── tests-test_extra.lua---pickers---hl_groups()---works-002
    │   ├── tests-test_extra.lua---pickers---keymaps()---shows-source-of-Lua-callback-in-preview
    │   ├── tests-test_extra.lua---pickers---keymaps()---shows-source-of-Lua-callback-in-preview-002
    │   ├── tests-test_extra.lua---pickers---keymaps()---shows-source-of-Lua-callback-in-preview-003
    │   ├── tests-test_extra.lua---pickers---keymaps()---works
    │   ├── tests-test_extra.lua---pickers---keymaps()---works-002
    │   ├── tests-test_extra.lua---pickers---list()---works-for-`change`
    │   ├── tests-test_extra.lua---pickers---list()---works-for-`change`-002
    │   ├── tests-test_extra.lua---pickers---list()---works-for-`jump`
    │   ├── tests-test_extra.lua---pickers---list()---works-for-`jump`-002
    │   ├── tests-test_extra.lua---pickers---list()---works-for-`location`
    │   ├── tests-test_extra.lua---pickers---list()---works-for-`location`-002
    │   ├── tests-test_extra.lua---pickers---list()---works-for-`location`-003
    │   ├── tests-test_extra.lua---pickers---list()---works-for-`location`-004
    │   ├── tests-test_extra.lua---pickers---list()---works-for-`quickfix`
    │   ├── tests-test_extra.lua---pickers---list()---works-for-`quickfix`-002
    │   ├── tests-test_extra.lua---pickers---list()---works-for-`quickfix`-003
    │   ├── tests-test_extra.lua---pickers---list()---works-for-`quickfix`-004
    │   ├── tests-test_extra.lua---pickers---lsp()---works-for-`declaration`
    │   ├── tests-test_extra.lua---pickers---lsp()---works-for-`declaration`-002
    │   ├── tests-test_extra.lua---pickers---lsp()---works-for-`definition`
    │   ├── tests-test_extra.lua---pickers---lsp()---works-for-`definition`-002
    │   ├── tests-test_extra.lua---pickers---lsp()---works-for-`document_symbol`
    │   ├── tests-test_extra.lua---pickers---lsp()---works-for-`document_symbol`-002
    │   ├── tests-test_extra.lua---pickers---lsp()---works-for-`document_symbol`-after-`MiniIcons.tweak_lsp_kind()`
    │   ├── tests-test_extra.lua---pickers---lsp()---works-for-`document_symbol`-after-`MiniIcons.tweak_lsp_kind()`-002
    │   ├── tests-test_extra.lua---pickers---lsp()---works-for-`document_symbol`-after-`MiniIcons.tweak_lsp_kind()`-003
    │   ├── tests-test_extra.lua---pickers---lsp()---works-for-`document_symbol`-with-'mini.icons'-set-up
    │   ├── tests-test_extra.lua---pickers---lsp()---works-for-`document_symbol`-with-'mini.icons'-set-up-002
    │   ├── tests-test_extra.lua---pickers---lsp()---works-for-`implementation`
    │   ├── tests-test_extra.lua---pickers---lsp()---works-for-`implementation`-002
    │   ├── tests-test_extra.lua---pickers---lsp()---works-for-`references`
    │   ├── tests-test_extra.lua---pickers---lsp()---works-for-`references`-002
    │   ├── tests-test_extra.lua---pickers---lsp()---works-for-`type_definition`
    │   ├── tests-test_extra.lua---pickers---lsp()---works-for-`type_definition`-002
    │   ├── tests-test_extra.lua---pickers---lsp()---works-for-`workspace_symbol`
    │   ├── tests-test_extra.lua---pickers---lsp()---works-for-`workspace_symbol`-002
    │   ├── tests-test_extra.lua---pickers---lsp()---works-for-`workspace_symbol`-after-`MiniIcons.tweak_lsp_kind()`
    │   ├── tests-test_extra.lua---pickers---lsp()---works-for-`workspace_symbol`-after-`MiniIcons.tweak_lsp_kind()`-002
    │   ├── tests-test_extra.lua---pickers---lsp()---works-for-`workspace_symbol`-after-`MiniIcons.tweak_lsp_kind()`-003
    │   ├── tests-test_extra.lua---pickers---lsp()---works-for-`workspace_symbol`-with-'mini.icons'-set-up
    │   ├── tests-test_extra.lua---pickers---lsp()---works-for-`workspace_symbol`-with-'mini.icons'-set-up-002
    │   ├── tests-test_extra.lua---pickers---manpages()---can-choose-in-split
    │   ├── tests-test_extra.lua---pickers---manpages()---works
    │   ├── tests-test_extra.lua---pickers---manpages()---works-002
    │   ├── tests-test_extra.lua---pickers---manpages()---works-003
    │   ├── tests-test_extra.lua---pickers---marks()---respects-`local_opts.scope`
    │   ├── tests-test_extra.lua---pickers---marks()---respects-`local_opts.scope`-002
    │   ├── tests-test_extra.lua---pickers---marks()---respects-`local_opts.scope`-003
    │   ├── tests-test_extra.lua---pickers---marks()---works
    │   ├── tests-test_extra.lua---pickers---marks()---works-002
    │   ├── tests-test_extra.lua---pickers---marks()---works-003
    │   ├── tests-test_extra.lua---pickers---marks()---works-004
    │   ├── tests-test_extra.lua---pickers---oldfiles()---can-not-show-icons
    │   ├── tests-test_extra.lua---pickers---oldfiles()---works
    │   ├── tests-test_extra.lua---pickers---options()---correctly-previews-deprecated-options
    │   ├── tests-test_extra.lua---pickers---options()---respects-set-options
    │   ├── tests-test_extra.lua---pickers---options()---respects-set-options-002
    │   ├── tests-test_extra.lua---pickers---options()---respects-set-options-003
    │   ├── tests-test_extra.lua---pickers---options()---works
    │   ├── tests-test_extra.lua---pickers---options()---works-002
    │   ├── tests-test_extra.lua---pickers---registers()---works
    │   ├── tests-test_extra.lua---pickers---registers()---works-002
    │   ├── tests-test_extra.lua---pickers---spellsuggest()---works
    │   ├── tests-test_extra.lua---pickers---spellsuggest()---works-002
    │   ├── tests-test_extra.lua---pickers---treesitter()---works
    │   ├── tests-test_extra.lua---pickers---treesitter()---works-002
    │   ├── tests-test_extra.lua---pickers---treesitter()---works-003
    │   ├── tests-test_extra.lua---pickers---visit_labels()---can-not-show-icons-after-choosing
    │   ├── tests-test_extra.lua---pickers---visit_labels()---respects-`local_opts.sort`
    │   ├── tests-test_extra.lua---pickers---visit_labels()---works
    │   ├── tests-test_extra.lua---pickers---visit_labels()---works-002
    │   ├── tests-test_extra.lua---pickers---visit_labels()---works-003
    │   ├── tests-test_extra.lua---pickers---visit_paths()---can-not-show-icons
    │   ├── tests-test_extra.lua---pickers---visit_paths()---works
    │   ├── tests-test_extra.lua---pickers---visit_paths()---works-002
    │   ├── tests-test_files.lua---Cursors---handle-`content.prefix`-returning-different-lengths
    │   ├── tests-test_files.lua---Cursors---shows-whole-line-after-horizontal-scroll
    │   ├── tests-test_files.lua---Cursors---shows-whole-line-after-horizontal-scroll-002
    │   ├── tests-test_files.lua---Default-explorer---works-in-`-edit-.`
    │   ├── tests-test_files.lua---Default-explorer---works-in-`-tabfind-.`
    │   ├── tests-test_files.lua---Default-explorer---works-in-`-tabfind-.`-002
    │   ├── tests-test_files.lua---Default-explorer---works-in-`-vsplit-.`
    │   ├── tests-test_files.lua---Default-explorer---works-in-`-vsplit-.`-002
    │   ├── tests-test_files.lua---Default-explorer---works-on-startup
    │   ├── tests-test_files.lua---Events---`MiniFilesWindowOpen`-can-be-used-to-tweak-window-config
    │   ├── tests-test_files.lua---Events---`MiniFilesWindowOpen`-can-be-used-to-tweak-window-config-002
    │   ├── tests-test_files.lua---Events---`MiniFilesWindowOpen`-can-be-used-to-tweak-window-config-003
    │   ├── tests-test_files.lua---Events---`MiniFilesWindowUpdate`-can-customize-internally-set-window-config-parts
    │   ├── tests-test_files.lua---Events---`MiniFilesWindowUpdate`-can-customize-internally-set-window-config-parts-002
    │   ├── tests-test_files.lua---Events---`MiniFilesWindowUpdate`-can-customize-internally-set-window-config-parts-003
    │   ├── tests-test_files.lua---Events---`MiniFilesWindowUpdate`-can-customize-internally-set-window-config-parts-004
    │   ├── tests-test_files.lua---Events---`MiniFilesWindowUpdate`-can-customize-internally-set-window-config-parts-005
    │   ├── tests-test_files.lua---File-manipulation---can-be-not-confirmed
    │   ├── tests-test_files.lua---File-manipulation---can-be-not-confirmed-002
    │   ├── tests-test_files.lua---File-manipulation---can-be-not-confirmed-with-preview
    │   ├── tests-test_files.lua---File-manipulation---can-be-not-confirmed-with-preview-002
    │   ├── tests-test_files.lua---File-manipulation---can-convert-file-into-directory
    │   ├── tests-test_files.lua---File-manipulation---can-convert-file-into-directory-002
    │   ├── tests-test_files.lua---File-manipulation---can-copy-directory
    │   ├── tests-test_files.lua---File-manipulation---can-copy-directory-002
    │   ├── tests-test_files.lua---File-manipulation---can-copy-directory-inside-itself
    │   ├── tests-test_files.lua---File-manipulation---can-copy-directory-inside-itself-002
    │   ├── tests-test_files.lua---File-manipulation---can-copy-directory-inside-new-directory
    │   ├── tests-test_files.lua---File-manipulation---can-copy-directory-inside-new-directory-002
    │   ├── tests-test_files.lua---File-manipulation---can-copy-file
    │   ├── tests-test_files.lua---File-manipulation---can-copy-file-002
    │   ├── tests-test_files.lua---File-manipulation---can-copy-file-inside-new-directory
    │   ├── tests-test_files.lua---File-manipulation---can-copy-file-inside-new-directory-002
    │   ├── tests-test_files.lua---File-manipulation---can-create
    │   ├── tests-test_files.lua---File-manipulation---can-create-002
    │   ├── tests-test_files.lua---File-manipulation---can-delete
    │   ├── tests-test_files.lua---File-manipulation---can-delete-002
    │   ├── tests-test_files.lua---File-manipulation---can-move-directory
    │   ├── tests-test_files.lua---File-manipulation---can-move-directory-002
    │   ├── tests-test_files.lua---File-manipulation---can-move-file
    │   ├── tests-test_files.lua---File-manipulation---can-move-file-002
    │   ├── tests-test_files.lua---File-manipulation---can-move-inside-new-directory
    │   ├── tests-test_files.lua---File-manipulation---can-move-inside-new-directory-002
    │   ├── tests-test_files.lua---File-manipulation---can-move-while-changing-basename
    │   ├── tests-test_files.lua---File-manipulation---can-move-while-changing-basename-002
    │   ├── tests-test_files.lua---File-manipulation---can-rename
    │   ├── tests-test_files.lua---File-manipulation---can-rename-002
    │   ├── tests-test_files.lua---File-manipulation---copy-does-not-override-existing-entry
    │   ├── tests-test_files.lua---File-manipulation---copy-does-not-override-existing-entry-002
    │   ├── tests-test_files.lua---File-manipulation---copy-does-not-override-existing-entry-003
    │   ├── tests-test_files.lua---File-manipulation---create-does-not-override-existing-entry
    │   ├── tests-test_files.lua---File-manipulation---create-does-not-override-existing-entry-002
    │   ├── tests-test_files.lua---File-manipulation---creates-files-in-nested-directories
    │   ├── tests-test_files.lua---File-manipulation---creates-files-in-nested-directories-002
    │   ├── tests-test_files.lua---File-manipulation---creates-nested-directories
    │   ├── tests-test_files.lua---File-manipulation---creates-nested-directories-002
    │   ├── tests-test_files.lua---File-manipulation---handles-backslash-on-Unix
    │   ├── tests-test_files.lua---File-manipulation---handles-backslash-on-Unix-002
    │   ├── tests-test_files.lua---File-manipulation---handles-move-directory-inside-itself
    │   ├── tests-test_files.lua---File-manipulation---handles-move-directory-inside-itself-002
    │   ├── tests-test_files.lua---File-manipulation---ignores-blank-lines
    │   ├── tests-test_files.lua---File-manipulation---ignores-blank-lines-002
    │   ├── tests-test_files.lua---File-manipulation---ignores-identical-user-copied-entries
    │   ├── tests-test_files.lua---File-manipulation---ignores-identical-user-copied-entries-002
    │   ├── tests-test_files.lua---File-manipulation---move-does-not-override-existing-entry
    │   ├── tests-test_files.lua---File-manipulation---move-does-not-override-existing-entry-002
    │   ├── tests-test_files.lua---File-manipulation---move-does-not-override-existing-entry-003
    │   ├── tests-test_files.lua---File-manipulation---move-works-again-after-undo
    │   ├── tests-test_files.lua---File-manipulation---move-works-again-after-undo-002
    │   ├── tests-test_files.lua---File-manipulation---rename-does-not-override-existing-entry
    │   ├── tests-test_files.lua---File-manipulation---rename-does-not-override-existing-entry-002
    │   ├── tests-test_files.lua---File-manipulation---rename-does-not-override-existing-entry-003
    │   ├── tests-test_files.lua---File-manipulation---rename-works-again-after-undo
    │   ├── tests-test_files.lua---File-manipulation---rename-works-again-after-undo-002
    │   ├── tests-test_files.lua---File-manipulation---respects-modified-hidden-buffers
    │   ├── tests-test_files.lua---File-manipulation---works-with-problematic-names
    │   ├── tests-test_files.lua---File-manipulation---works-with-problematic-names-002
    │   ├── tests-test_files.lua---Mappings---`go_in_plus`-supports--count-
    │   ├── tests-test_files.lua---Mappings---`go_in_plus`-supports--count--002
    │   ├── tests-test_files.lua---Mappings---`go_in_plus`-works
    │   ├── tests-test_files.lua---Mappings---`go_in`-supports--count-
    │   ├── tests-test_files.lua---Mappings---`go_in`-supports--count--002
    │   ├── tests-test_files.lua---Mappings---`go_in`-works
    │   ├── tests-test_files.lua---Mappings---`go_in`-works-in-linewise-Visual-mode
    │   ├── tests-test_files.lua---Mappings---`go_in`-works-in-linewise-Visual-mode-002
    │   ├── tests-test_files.lua---Mappings---`go_in`-works-in-linewise-Visual-mode-003
    │   ├── tests-test_files.lua---Mappings---`go_out_plus`-supports--count-
    │   ├── tests-test_files.lua---Mappings---`go_out_plus`-supports--count--002
    │   ├── tests-test_files.lua---Mappings---`go_out_plus`-supports--count--003
    │   ├── tests-test_files.lua---Mappings---`go_out_plus`-works
    │   ├── tests-test_files.lua---Mappings---`go_out_plus`-works-002
    │   ├── tests-test_files.lua---Mappings---`go_out_plus`-works-003
    │   ├── tests-test_files.lua---Mappings---`go_out`-supports--count-
    │   ├── tests-test_files.lua---Mappings---`go_out`-supports--count--002
    │   ├── tests-test_files.lua---Mappings---`go_out`-supports--count--003
    │   ├── tests-test_files.lua---Mappings---`go_out`-works
    │   ├── tests-test_files.lua---Mappings---`reset`-works
    │   ├── tests-test_files.lua---Mappings---`reset`-works-002
    │   ├── tests-test_files.lua---Mappings---`reset`-works-003
    │   ├── tests-test_files.lua---Mappings---`reveal_cwd`-works
    │   ├── tests-test_files.lua---Mappings---`reveal_cwd`-works-002
    │   ├── tests-test_files.lua---Mappings---`reveal_cwd`-works-003
    │   ├── tests-test_files.lua---Mappings---`show_help`-works
    │   ├── tests-test_files.lua---Mappings---`show_help`-works-002
    │   ├── tests-test_files.lua---Mappings---`show_help`-works-003
    │   ├── tests-test_files.lua---Mappings---`synchronize`-works
    │   ├── tests-test_files.lua---Mappings---`synchronize`-works-002
    │   ├── tests-test_files.lua---Mappings---`synchronize`-works-003
    │   ├── tests-test_files.lua---Mappings---`synchronize`-works-004
    │   ├── tests-test_files.lua---Mappings---`synchronize`-works-005
    │   ├── tests-test_files.lua---Mappings---`synchronize`-works-006
    │   ├── tests-test_files.lua---Mappings---`trim_left`-works
    │   ├── tests-test_files.lua---Mappings---`trim_right`-works
    │   ├── tests-test_files.lua---Preview---always-updates-with-cursor
    │   ├── tests-test_files.lua---Preview---can-work-after-renaming-with-small-overall-width
    │   ├── tests-test_files.lua---Preview---can-work-after-renaming-with-small-overall-width-002
    │   ├── tests-test_files.lua---Preview---does-not-highlight-big-files
    │   ├── tests-test_files.lua---Preview---is-not-removed-when-going-out
    │   ├── tests-test_files.lua---Preview---is-not-removed-when-going-out-002
    │   ├── tests-test_files.lua---Preview---is-not-shown-if-not-enough-space
    │   ├── tests-test_files.lua---Preview---previews-only-one-level-deep
    │   ├── tests-test_files.lua---Preview---respects-global-value-of-'list'-and-'listchars'-option
    │   ├── tests-test_files.lua---Preview---respects-global-value-of-'list'-and-'listchars'-option-002
    │   ├── tests-test_files.lua---Preview---respects-global-value-of-'list'-and-'listchars'-option-003
    │   ├── tests-test_files.lua---Preview---respects-global-value-of-'list'-and-'listchars'-option-004
    │   ├── tests-test_files.lua---Preview---works-after-`trim_left()`
    │   ├── tests-test_files.lua---Preview---works-for-directories
    │   ├── tests-test_files.lua---Preview---works-for-directories-002
    │   ├── tests-test_files.lua---Preview---works-for-directories-003
    │   ├── tests-test_files.lua---Preview---works-for-files
    │   ├── tests-test_files.lua---Preview---works-for-files-002
    │   ├── tests-test_files.lua---Preview---works-for-files-003
    │   ├── tests-test_files.lua---Preview---works-for-files-004
    │   ├── tests-test_files.lua---Preview---works-for-files-005
    │   ├── tests-test_files.lua---Preview---works-for-files-006
    │   ├── tests-test_files.lua---Preview---works-with-imaginary-paths
    │   ├── tests-test_files.lua---Preview---works-with-imaginary-paths-002
    │   ├── tests-test_files.lua---Preview---works-with-imaginary-paths-003
    │   ├── tests-test_files.lua---Preview---works-with-imaginary-paths-004
    │   ├── tests-test_files.lua---Preview---works-with-imaginary-paths-005
    │   ├── tests-test_files.lua---Preview---works-with-imaginary-paths-006
    │   ├── tests-test_files.lua---Preview---works-with-imaginary-paths-007
    │   ├── tests-test_files.lua---Preview---works-with-imaginary-paths-008
    │   ├── tests-test_files.lua---Windows---always-show-cursor-line-in-directories
    │   ├── tests-test_files.lua---Windows---always-show-cursor-line-in-directories-002
    │   ├── tests-test_files.lua---Windows---correctly-computes-part-of-branch-to-show
    │   ├── tests-test_files.lua---Windows---correctly-computes-part-of-branch-to-show-002
    │   ├── tests-test_files.lua---Windows---correctly-computes-part-of-branch-to-show-003
    │   ├── tests-test_files.lua---Windows---correctly-computes-part-of-branch-to-show-004
    │   ├── tests-test_files.lua---Windows---correctly-computes-part-of-branch-to-show-005
    │   ├── tests-test_files.lua---Windows---correctly-computes-part-of-branch-to-show-006
    │   ├── tests-test_files.lua---Windows---correctly-computes-part-of-branch-to-show-with-preview
    │   ├── tests-test_files.lua---Windows---correctly-highlight-content-during-editing
    │   ├── tests-test_files.lua---Windows---does-not-wrap-content
    │   ├── tests-test_files.lua---Windows---is-in-sync-with-cursor
    │   ├── tests-test_files.lua---Windows---is-in-sync-with-cursor-002
    │   ├── tests-test_files.lua---Windows---is-in-sync-with-cursor-003
    │   ├── tests-test_files.lua---Windows---is-in-sync-with-cursor-004
    │   ├── tests-test_files.lua---Windows---is-in-sync-with-cursor-005
    │   ├── tests-test_files.lua---Windows---never-shows-past-end-of-buffer
    │   ├── tests-test_files.lua---Windows---never-shows-past-end-of-buffer-002
    │   ├── tests-test_files.lua---Windows---never-shows-past-end-of-buffer-003
    │   ├── tests-test_files.lua---Windows---reacts-on-`VimResized`
    │   ├── tests-test_files.lua---Windows---reacts-on-`VimResized`-002
    │   ├── tests-test_files.lua---Windows---reacts-on-`VimResized`-003
    │   ├── tests-test_files.lua---Windows---reacts-on-`VimResized`-004
    │   ├── tests-test_files.lua---Windows---respect-'winborder'-option
    │   ├── tests-test_files.lua---Windows---respect-'winborder'-option-002
    │   ├── tests-test_files.lua---Windows---respect-'winborder'-option-003
    │   ├── tests-test_files.lua---Windows---respects-tabline-and-statusline-when-computing-height
    │   ├── tests-test_files.lua---Windows---respects-tabline-and-statusline-when-computing-height-002
    │   ├── tests-test_files.lua---Windows---respects-tabline-and-statusline-when-computing-height-003
    │   ├── tests-test_files.lua---Windows---respects-tabline-and-statusline-when-computing-height-004
    │   ├── tests-test_files.lua---Windows---respects-tabline-when-computing-position
    │   ├── tests-test_files.lua---Windows---works-with-too-small-dimensions
    │   ├── tests-test_files.lua---close()---checks-for-pending-file-system-actions
    │   ├── tests-test_files.lua---close()---checks-for-pending-file-system-actions-002
    │   ├── tests-test_files.lua---close()---checks-for-pending-file-system-actions-003
    │   ├── tests-test_files.lua---close()---handles-invalid-target-window
    │   ├── tests-test_files.lua---close()---handles-invalid-target-window-002
    │   ├── tests-test_files.lua---close()---works
    │   ├── tests-test_files.lua---close()---works-002
    │   ├── tests-test_files.lua---close()---works-per-tabpage
    │   ├── tests-test_files.lua---go_in()---warns-about-paths-not-present-on-disk
    │   ├── tests-test_files.lua---go_in()---works-on-directory
    │   ├── tests-test_files.lua---go_in()---works-on-directory-002
    │   ├── tests-test_files.lua---go_out()---root-update-reuses-buffers-without-their-update
    │   ├── tests-test_files.lua---go_out()---works-on-branch-root
    │   ├── tests-test_files.lua---go_out()---works-on-not-branch-root
    │   ├── tests-test_files.lua---open()---`content.prefix`-can-be-used-to-not-show-prefix
    │   ├── tests-test_files.lua---open()---`content.prefix`-can-return-`nil`
    │   ├── tests-test_files.lua---open()---`content.prefix`-can-return-`nil`-002
    │   ├── tests-test_files.lua---open()---`content.prefix`-can-return-`nil`-003
    │   ├── tests-test_files.lua---open()---`content.sort`-can-be-used-to-also-filter-items
    │   ├── tests-test_files.lua---open()---can-display-entries-with-newline-character
    │   ├── tests-test_files.lua---open()---can-display-entries-with-newline-character-002
    │   ├── tests-test_files.lua---open()---focuses-on-file-entry-when-opened-from-history
    │   ├── tests-test_files.lua---open()---focuses-on-file-entry-when-opened-from-history-002
    │   ├── tests-test_files.lua---open()---focuses-on-file-entry-when-opened-from-history-003
    │   ├── tests-test_files.lua---open()---focuses-on-file-entry-when-opened-from-history-004
    │   ├── tests-test_files.lua---open()---handles-backslash-on-Unix
    │   ├── tests-test_files.lua---open()---handles-problematic-entry-names
    │   ├── tests-test_files.lua---open()---history---handles-external-changes-between-calls
    │   ├── tests-test_files.lua---open()---history---handles-external-changes-between-calls-002
    │   ├── tests-test_files.lua---open()---history---is-shared-across-tabpages
    │   ├── tests-test_files.lua---open()---history---is-shared-across-tabpages-002
    │   ├── tests-test_files.lua---open()---history---is-shared-across-tabpages-003
    │   ├── tests-test_files.lua---open()---history---opens-from-history-by-default
    │   ├── tests-test_files.lua---open()---history---opens-from-history-by-default-002
    │   ├── tests-test_files.lua---open()---history---prefers-global-config-before-taking-from-history
    │   ├── tests-test_files.lua---open()---history---prefers-global-config-before-taking-from-history-002
    │   ├── tests-test_files.lua---open()---history---respects-`use_latest`
    │   ├── tests-test_files.lua---open()---history---respects-`use_latest`-002
    │   ├── tests-test_files.lua---open()---history---stores-whole-branch-and-not-only-visible-windows
    │   ├── tests-test_files.lua---open()---history---stores-whole-branch-and-not-only-visible-windows-002
    │   ├── tests-test_files.lua---open()---normalizes-before-first-refresh-when-focused-on-directory-with-`windows.preview`
    │   ├── tests-test_files.lua---open()---normalizes-before-first-refresh-when-focused-on-file
    │   ├── tests-test_files.lua---open()---properly-closes-currently-opened-explorer
    │   ├── tests-test_files.lua---open()---respects-`content.filter`
    │   ├── tests-test_files.lua---open()---respects-`content.filter`-002
    │   ├── tests-test_files.lua---open()---respects-`content.highlight`
    │   ├── tests-test_files.lua---open()---respects-`content.highlight`-002
    │   ├── tests-test_files.lua---open()---respects-`content.prefix`
    │   ├── tests-test_files.lua---open()---respects-`content.prefix`-002
    │   ├── tests-test_files.lua---open()---respects-`content.sort`
    │   ├── tests-test_files.lua---open()---respects-`content.sort`-002
    │   ├── tests-test_files.lua---open()---respects-`mappings`
    │   ├── tests-test_files.lua---open()---respects-`mappings`-002
    │   ├── tests-test_files.lua---open()---respects-`vim.b.minifiles_config`
    │   ├── tests-test_files.lua---open()---respects-`windows.max_number`
    │   ├── tests-test_files.lua---open()---respects-`windows.max_number`-002
    │   ├── tests-test_files.lua---open()---respects-`windows.preview`
    │   ├── tests-test_files.lua---open()---respects-`windows.preview`-002
    │   ├── tests-test_files.lua---open()---respects-`windows.width_focus`-and-`windows.width_nofocus`
    │   ├── tests-test_files.lua---open()---respects-`windows.width_focus`-and-`windows.width_nofocus`-002
    │   ├── tests-test_files.lua---open()---respects-`windows.width_preview`
    │   ├── tests-test_files.lua---open()---respects-`windows.width_preview`-002
    │   ├── tests-test_files.lua---open()---respects-`windows.width_preview`-003
    │   ├── tests-test_files.lua---open()---respects-`windows.width_preview`-004
    │   ├── tests-test_files.lua---open()---respects-`windows.width_preview`-005
    │   ├── tests-test_files.lua---open()---respects-`windows.width_preview`-006
    │   ├── tests-test_files.lua---open()---uses-`MiniIcons.get()`-with-full-path
    │   ├── tests-test_files.lua---open()---uses-icon-provider
    │   ├── tests-test_files.lua---open()---uses-icon-provider-002
    │   ├── tests-test_files.lua---open()---uses-icon-provider-003
    │   ├── tests-test_files.lua---open()---works-per-tabpage
    │   ├── tests-test_files.lua---open()---works-per-tabpage-002
    │   ├── tests-test_files.lua---open()---works-per-tabpage-003
    │   ├── tests-test_files.lua---open()---works-with-directory-path
    │   ├── tests-test_files.lua---open()---works-with-directory-path-002
    │   ├── tests-test_files.lua---open()---works-with-directory-path-003
    │   ├── tests-test_files.lua---open()---works-with-file-path
    │   ├── tests-test_files.lua---open()---works-with-file-path-002
    │   ├── tests-test_files.lua---refresh()---does-not-update-buffers-with-`nil`-`filter`-and-`sort`
    │   ├── tests-test_files.lua---refresh()---does-not-update-buffers-with-`nil`-`filter`-and-`sort`-002
    │   ├── tests-test_files.lua---refresh()---handles-presence-of-pending-file-system-actions
    │   ├── tests-test_files.lua---refresh()---handles-presence-of-pending-file-system-actions-002
    │   ├── tests-test_files.lua---refresh()---handles-presence-of-pending-file-system-actions-003
    │   ├── tests-test_files.lua---refresh()---handles-presence-of-pending-file-system-actions-004
    │   ├── tests-test_files.lua---refresh()---preserves-explorer-options
    │   ├── tests-test_files.lua---refresh()---preserves-explorer-options-002
    │   ├── tests-test_files.lua---refresh()---updates-buffers-with-non-empty-`content`
    │   ├── tests-test_files.lua---refresh()---updates-buffers-with-non-empty-`content`-002
    │   ├── tests-test_files.lua---refresh()---updates-buffers-with-non-empty-`content`-003
    │   ├── tests-test_files.lua---refresh()---updates-buffers-with-non-empty-`content`-004
    │   ├── tests-test_files.lua---refresh()---works
    │   ├── tests-test_files.lua---reset()---resets-all-cursors
    │   ├── tests-test_files.lua---reset()---resets-all-cursors-002
    │   ├── tests-test_files.lua---reset()---works
    │   ├── tests-test_files.lua---reset()---works-002
    │   ├── tests-test_files.lua---reset()---works-when-anchor-is-not-in-branch
    │   ├── tests-test_files.lua---reset()---works-when-anchor-is-not-in-branch-002
    │   ├── tests-test_files.lua---reveal_cwd()---properly-places-cursors
    │   ├── tests-test_files.lua---reveal_cwd()---properly-places-cursors-002
    │   ├── tests-test_files.lua---reveal_cwd()---works
    │   ├── tests-test_files.lua---reveal_cwd()---works-002
    │   ├── tests-test_files.lua---reveal_cwd()---works-when-not-inside-cwd
    │   ├── tests-test_files.lua---reveal_cwd()---works-when-not-inside-cwd-002
    │   ├── tests-test_files.lua---reveal_cwd()---works-when-root-is-already-cwd
    │   ├── tests-test_files.lua---reveal_cwd()---works-when-root-is-already-cwd-002
    │   ├── tests-test_files.lua---reveal_cwd()---works-with-preview
    │   ├── tests-test_files.lua---reveal_cwd()---works-with-preview-002
    │   ├── tests-test_files.lua---set_branch()---works
    │   ├── tests-test_files.lua---set_branch()---works-002
    │   ├── tests-test_files.lua---set_branch()---works-003
    │   ├── tests-test_files.lua---set_branch()---works-with-file-path-in-branch
    │   ├── tests-test_files.lua---set_branch()---works-with-file-path-in-branch-002
    │   ├── tests-test_files.lua---set_branch()---works-with-preview
    │   ├── tests-test_files.lua---show_help()---adjusts-window-width
    │   ├── tests-test_files.lua---show_help()---handles-bookmarks
    │   ├── tests-test_files.lua---show_help()---handles-mappings-without-description
    │   ├── tests-test_files.lua---show_help()---handles-non-default-mappings
    │   ├── tests-test_files.lua---show_help()---opens-relatively-current-window
    │   ├── tests-test_files.lua---show_help()---respects-'winborder'-option
    │   ├── tests-test_files.lua---show_help()---respects-'winborder'-option-002
    │   ├── tests-test_files.lua---show_help()---respects-'winborder'-option-003
    │   ├── tests-test_files.lua---show_help()---works
    │   ├── tests-test_files.lua---show_help()---works-002
    │   ├── tests-test_files.lua---synchronize()---can-update-external-file-system-changes
    │   ├── tests-test_files.lua---trim_left()---works
    │   ├── tests-test_files.lua---trim_left()---works-002
    │   ├── tests-test_files.lua---trim_left()---works-when-in-the-middle-of-the-branch
    │   ├── tests-test_files.lua---trim_left()---works-when-in-the-middle-of-the-branch-002
    │   ├── tests-test_files.lua---trim_right()---works
    │   ├── tests-test_files.lua---trim_right()---works-002
    │   ├── tests-test_files.lua---trim_right()---works-when-in-the-middle-of-the-branch
    │   ├── tests-test_files.lua---trim_right()---works-when-in-the-middle-of-the-branch-002
    │   ├── tests-test_git.lua----Git---completion---uses-correct-working-directory-for-paths
    │   ├── tests-test_git.lua----Git---completion---works-with-explicit-paths
    │   ├── tests-test_git.lua----Git---completion---works-with-explicit-paths-002
    │   ├── tests-test_git.lua----Git---completion---works-with-explicit-paths-003
    │   ├── tests-test_git.lua----Git---completion---works-with-explicit-paths-004
    │   ├── tests-test_git.lua----Git---completion---works-with-explicit-paths-005
    │   ├── tests-test_git.lua----Git---completion---works-with-not-supported-command
    │   ├── tests-test_git.lua----Git---completion---works-with-not-supported-command-002
    │   ├── tests-test_git.lua----Git---completion---works-with-not-supported-command-003
    │   ├── tests-test_git.lua----Git---completion---works-with-options
    │   ├── tests-test_git.lua----Git---completion---works-with-options-002
    │   ├── tests-test_git.lua----Git---completion---works-with-options-003
    │   ├── tests-test_git.lua----Git---completion---works-with-options-004
    │   ├── tests-test_git.lua----Git---completion---works-with-options-005
    │   ├── tests-test_git.lua----Git---completion---works-with-options-006
    │   ├── tests-test_git.lua----Git---completion---works-with-options-007
    │   ├── tests-test_git.lua----Git---completion---works-with-present-command-modifiers
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommand-targets
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommand-targets-002
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommand-targets-003
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommand-targets-004
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommand-targets-005
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommand-targets-006
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommand-targets-007
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommand-targets-008
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommand-targets-009
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommand-targets-010
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommand-targets-011
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommand-targets-012
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommand-targets-013
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommand-targets-014
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommand-targets-015
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommand-targets-016
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommand-targets-017
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommand-targets-018
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommand-targets-019
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommand-targets-020
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommand-targets-021
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommand-targets-022
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommand-targets-023
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommand-targets-024
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommand-targets-025
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommand-targets-026
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommand-targets-027
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommand-targets-028
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommand-targets-029
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommand-targets-030
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommands
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommands-002
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommands-003
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommands-004
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommands-005
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommands-006
    │   ├── tests-test_git.lua---Tracking---redraws-statusline-when-summary-is-updated
    │   ├── tests-test_git.lua---Tracking---redraws-statusline-when-summary-is-updated-002
    │   ├── tests-test_git.lua---Tracking---redraws-statusline-when-summary-is-updated-003
    │   ├── tests-test_git.lua---Tracking---redraws-statusline-when-summary-is-updated-004
    │   ├── tests-test_git.lua---Tracking---redraws-statusline-when-summary-is-updated-005
    │   ├── tests-test_git.lua---diff_foldexpr()---works-in-`git-log`-output
    │   ├── tests-test_git.lua---diff_foldexpr()---works-in-`git-log`-output-002
    │   ├── tests-test_git.lua---diff_foldexpr()---works-in-`git-log`-output-003
    │   ├── tests-test_git.lua---diff_foldexpr()---works-in-`git-log`-output-004
    │   ├── tests-test_git.lua---diff_foldexpr()---works-in-diff-patch
    │   ├── tests-test_git.lua---diff_foldexpr()---works-in-diff-patch-002
    │   ├── tests-test_git.lua---diff_foldexpr()---works-in-diff-patch-003
    │   ├── tests-test_git.lua---diff_foldexpr()---works-in-diff-patch-004
    │   ├── tests-test_hipatterns.lua---Auto-enable---does-not-enable-in-not-proper-buffers
    │   ├── tests-test_hipatterns.lua---Auto-enable---makes-`-edit`-work
    │   ├── tests-test_hipatterns.lua---Auto-enable---makes-`-edit`-work-002
    │   ├── tests-test_hipatterns.lua---Auto-enable---works
    │   ├── tests-test_hipatterns.lua---Autocommands---resets-on-color-scheme-change
    │   ├── tests-test_hipatterns.lua---Autocommands---resets-on-color-scheme-change-002
    │   ├── tests-test_hipatterns.lua---Autocommands---resets-on-color-scheme-change-003
    │   ├── tests-test_hipatterns.lua---Highlighters---allows-array-`pattern`
    │   ├── tests-test_hipatterns.lua---Highlighters---allows-array-`pattern`-002
    │   ├── tests-test_hipatterns.lua---Highlighters---allows-callable-`group`
    │   ├── tests-test_hipatterns.lua---Highlighters---allows-callable-`pattern`
    │   ├── tests-test_hipatterns.lua---Highlighters---allows-frontier-pattern-in-`pattern`
    │   ├── tests-test_hipatterns.lua---Highlighters---allows-return-`nil`-`group`-to-not-highlight
    │   ├── tests-test_hipatterns.lua---Highlighters---allows-return-`nil`-`pattern`-to-not-highlight
    │   ├── tests-test_hipatterns.lua---Highlighters---allows-return-`nil`-`pattern`-to-not-highlight-002
    │   ├── tests-test_hipatterns.lua---Highlighters---allows-submatch-in-`pattern`
    │   ├── tests-test_hipatterns.lua---Highlighters---allows-submatch-in-`pattern`-002
    │   ├── tests-test_hipatterns.lua---Highlighters---allows-submatch-in-`pattern`-003
    │   ├── tests-test_hipatterns.lua---Highlighters---allows-submatch-in-`pattern`-004
    │   ├── tests-test_hipatterns.lua---Highlighters---allows-submatch-in-`pattern`-005
    │   ├── tests-test_hipatterns.lua---Highlighters---respects-`extmark_opts.priority`
    │   ├── tests-test_hipatterns.lua---Highlighters---respects-`extmark_opts.priority`-002
    │   ├── tests-test_hipatterns.lua---Highlighters---respects-`extmark_opts.priority`-003
    │   ├── tests-test_hipatterns.lua---Highlighters---respects-`extmark_opts`
    │   ├── tests-test_hipatterns.lua---Highlighters---silently-skips-wrong-entries
    │   ├── tests-test_hipatterns.lua---disable()---works
    │   ├── tests-test_hipatterns.lua---disable()---works-002
    │   ├── tests-test_hipatterns.lua---disable()---works-in-not-current-buffer
    │   ├── tests-test_hipatterns.lua---disable()---works-in-not-current-buffer-002
    │   ├── tests-test_hipatterns.lua---enable()---does-not-flicker-during-text-insert
    │   ├── tests-test_hipatterns.lua---enable()---does-not-flicker-during-text-insert-002
    │   ├── tests-test_hipatterns.lua---enable()---does-not-flicker-during-text-insert-003
    │   ├── tests-test_hipatterns.lua---enable()---reacts-to-buffer-enter
    │   ├── tests-test_hipatterns.lua---enable()---reacts-to-buffer-enter-002
    │   ├── tests-test_hipatterns.lua---enable()---reacts-to-delete-of-line-with-match
    │   ├── tests-test_hipatterns.lua---enable()---reacts-to-delete-of-line-with-match-002
    │   ├── tests-test_hipatterns.lua---enable()---reacts-to-delete-of-line-with-match-003
    │   ├── tests-test_hipatterns.lua---enable()---reacts-to-delete-of-line-with-match-004
    │   ├── tests-test_hipatterns.lua---enable()---reacts-to-filetype-change
    │   ├── tests-test_hipatterns.lua---enable()---reacts-to-filetype-change-002
    │   ├── tests-test_hipatterns.lua---enable()---reacts-to-filetype-change-003
    │   ├── tests-test_hipatterns.lua---enable()---reacts-to-text-change
    │   ├── tests-test_hipatterns.lua---enable()---reacts-to-text-change-002
    │   ├── tests-test_hipatterns.lua---enable()---reacts-to-text-change-003
    │   ├── tests-test_hipatterns.lua---enable()---reacts-to-text-change-004
    │   ├── tests-test_hipatterns.lua---enable()---reacts-to-text-change-005
    │   ├── tests-test_hipatterns.lua---enable()---reacts-to-window-scroll
    │   ├── tests-test_hipatterns.lua---enable()---reacts-to-window-scroll-002
    │   ├── tests-test_hipatterns.lua---enable()---reacts-to-window-scroll-003
    │   ├── tests-test_hipatterns.lua---enable()---reacts-to-window-scroll-004
    │   ├── tests-test_hipatterns.lua---enable()---respects-`vim.b.minihipatterns_config`
    │   ├── tests-test_hipatterns.lua---enable()---respects-`vim.b.minihipatterns_config`-002
    │   ├── tests-test_hipatterns.lua---enable()---respects-`vim.b.minihipatterns_config`-003
    │   ├── tests-test_hipatterns.lua---enable()---respects-`vim.{g,b}.minihipatterns_disable`---test-+-args-{-'b'-}
    │   ├── tests-test_hipatterns.lua---enable()---respects-`vim.{g,b}.minihipatterns_disable`---test-+-args-{-'g'-}
    │   ├── tests-test_hipatterns.lua---enable()---respects-global-config-after-`setup()`
    │   ├── tests-test_hipatterns.lua---enable()---works
    │   ├── tests-test_hipatterns.lua---enable()---works-in-not-current-buffer
    │   ├── tests-test_hipatterns.lua---enable()---works-in-not-normal-buffer
    │   ├── tests-test_hipatterns.lua---enable()---works-with-defaults
    │   ├── tests-test_hipatterns.lua---gen_highlighter---hex_color()---respects-`opts.filter`
    │   ├── tests-test_hipatterns.lua---gen_highlighter---hex_color()---respects-`opts.filter`-002
    │   ├── tests-test_hipatterns.lua---gen_highlighter---hex_color()---respects-`opts.priority`
    │   ├── tests-test_hipatterns.lua---gen_highlighter---hex_color()---respects-`opts.priority`-002
    │   ├── tests-test_hipatterns.lua---gen_highlighter---hex_color()---respects-`opts.priority`-003
    │   ├── tests-test_hipatterns.lua---gen_highlighter---hex_color()---works
    │   ├── tests-test_hipatterns.lua---gen_highlighter---hex_color()---works-with-style-'#'
    │   ├── tests-test_hipatterns.lua---gen_highlighter---hex_color()---works-with-style-'inline'
    │   ├── tests-test_hipatterns.lua---gen_highlighter---hex_color()---works-with-style-'line'
    │   ├── tests-test_hipatterns.lua---setup()---auto-enables-in-all-visible-buffers
    │   ├── tests-test_hipatterns.lua---setup()---auto-enables-in-all-visible-buffers-002
    │   ├── tests-test_hipatterns.lua---toggle()---works
    │   ├── tests-test_hipatterns.lua---toggle()---works-002
    │   ├── tests-test_hipatterns.lua---update()---works
    │   ├── tests-test_hipatterns.lua---update()---works-002
    │   ├── tests-test_hipatterns.lua---update()---works-003
    │   ├── tests-test_hipatterns.lua---update()---works-004
    │   ├── tests-test_hipatterns.lua---update()---works-005
    │   ├── tests-test_hipatterns.lua---update()---works-006
    │   ├── tests-test_indentscope.lua---Auto-drawing---by-default-is-not-done-for-incomplete-scope
    │   ├── tests-test_indentscope.lua---Auto-drawing---by-default-is-not-done-for-incomplete-scope-002
    │   ├── tests-test_indentscope.lua---Auto-drawing---by-default-is-not-done-for-incomplete-scope-003
    │   ├── tests-test_indentscope.lua---Auto-drawing---by-default-is-not-done-for-incomplete-scope-004
    │   ├── tests-test_indentscope.lua---Auto-drawing---by-default-is-not-done-for-incomplete-scope-005
    │   ├── tests-test_indentscope.lua---Auto-drawing---implements-debounce-style-delay
    │   ├── tests-test_indentscope.lua---Auto-drawing---implements-debounce-style-delay-002
    │   ├── tests-test_indentscope.lua---Auto-drawing---respects-ModeChanged-event
    │   ├── tests-test_indentscope.lua---Auto-drawing---respects-ModeChanged-event-002
    │   ├── tests-test_indentscope.lua---Auto-drawing---respects-ModeChanged-event-003
    │   ├── tests-test_indentscope.lua---Auto-drawing---respects-`config.draw.delay`
    │   ├── tests-test_indentscope.lua---Auto-drawing---respects-`config.draw.delay`-002
    │   ├── tests-test_indentscope.lua---Auto-drawing---respects-`config.draw.predicate`
    │   ├── tests-test_indentscope.lua---Auto-drawing---respects-`config.draw.predicate`-002
    │   ├── tests-test_indentscope.lua---Auto-drawing---respects-`config.draw.predicate`-003
    │   ├── tests-test_indentscope.lua---Auto-drawing---respects-`vim.{g,b}.miniindentscope_disable`---test-+-args-{-'b'-}
    │   ├── tests-test_indentscope.lua---Auto-drawing---respects-`vim.{g,b}.miniindentscope_disable`---test-+-args-{-'b'-}-002
    │   ├── tests-test_indentscope.lua---Auto-drawing---respects-`vim.{g,b}.miniindentscope_disable`---test-+-args-{-'g'-}
    │   ├── tests-test_indentscope.lua---Auto-drawing---respects-`vim.{g,b}.miniindentscope_disable`---test-+-args-{-'g'-}-002
    │   ├── tests-test_indentscope.lua---Auto-drawing---respects-common-events---test-+-args-{-'CursorMoved'-}
    │   ├── tests-test_indentscope.lua---Auto-drawing---respects-common-events---test-+-args-{-'CursorMovedI'-}
    │   ├── tests-test_indentscope.lua---Auto-drawing---respects-common-events---test-+-args-{-'TextChanged'-}
    │   ├── tests-test_indentscope.lua---Auto-drawing---respects-common-events---test-+-args-{-'TextChangedI'-}
    │   ├── tests-test_indentscope.lua---Auto-drawing---respects-common-events---test-+-args-{-'TextChangedP'-}
    │   ├── tests-test_indentscope.lua---Auto-drawing---updates-immediately-when-scopes-intersect
    │   ├── tests-test_indentscope.lua---Auto-drawing---updates-immediately-when-scopes-intersect-002
    │   ├── tests-test_indentscope.lua---Auto-drawing---works-in-Insert-mode
    │   ├── tests-test_indentscope.lua---Auto-drawing---works-in-Insert-mode-002
    │   ├── tests-test_indentscope.lua---Auto-drawing---works-in-Insert-mode-003
    │   ├── tests-test_indentscope.lua---Auto-drawing---works-in-Normal-mode
    │   ├── tests-test_indentscope.lua---Auto-drawing---works-in-Normal-mode-002
    │   ├── tests-test_indentscope.lua---Auto-drawing---works-in-Normal-mode-003
    │   ├── tests-test_indentscope.lua---draw()---does-not-overshadow-'listchars'
    │   ├── tests-test_indentscope.lua---draw()---does-not-round-time-of-every-animation-step
    │   ├── tests-test_indentscope.lua---draw()---respects-`config.draw.animation`
    │   ├── tests-test_indentscope.lua---draw()---respects-`config.draw.animation`-002
    │   ├── tests-test_indentscope.lua---draw()---respects-`config.draw.animation`-003
    │   ├── tests-test_indentscope.lua---draw()---respects-`config.draw.animation`-004
    │   ├── tests-test_indentscope.lua---draw()---respects-`config.draw.priority`
    │   ├── tests-test_indentscope.lua---draw()---respects-`config.draw.priority`-002
    │   ├── tests-test_indentscope.lua---draw()---respects-`config.symbol`
    │   ├── tests-test_indentscope.lua---draw()---respects-`config.symbol`-002
    │   ├── tests-test_indentscope.lua---draw()---shows-symbols-on-wrapped-lines-without-overlapping
    │   ├── tests-test_indentscope.lua---draw()---shows-symbols-on-wrapped-lines-without-overlapping-002
    │   ├── tests-test_indentscope.lua---draw()---shows-symbols-on-wrapped-lines-without-overlapping-003
    │   ├── tests-test_indentscope.lua---draw()---works
    │   ├── tests-test_indentscope.lua---draw()---works-002
    │   ├── tests-test_indentscope.lua---draw()---works-003
    │   ├── tests-test_indentscope.lua---draw()---works-004
    │   ├── tests-test_indentscope.lua---undraw()---works
    │   ├── tests-test_indentscope.lua---undraw()---works-002
    │   ├── tests-test_jump.lua---Delayed-highlighting---done-only-if-actually-jumping
    │   ├── tests-test_jump.lua---Delayed-highlighting---implements-debounce-style-delay
    │   ├── tests-test_jump.lua---Delayed-highlighting---implements-debounce-style-delay-002
    │   ├── tests-test_jump.lua---Delayed-highlighting---implements-debounce-style-delay-003
    │   ├── tests-test_jump.lua---Delayed-highlighting---never-highlights-in-Insert-mode
    │   ├── tests-test_jump.lua---Delayed-highlighting---never-highlights-in-Insert-mode-002
    │   ├── tests-test_jump.lua---Delayed-highlighting---respects-'ignorecase'
    │   ├── tests-test_jump.lua---Delayed-highlighting---respects-'smartcase'
    │   ├── tests-test_jump.lua---Delayed-highlighting---respects-`config.delay.highlight`---test-+-args-{-'backward'-}
    │   ├── tests-test_jump.lua---Delayed-highlighting---respects-`config.delay.highlight`---test-+-args-{-'backward'-}-002
    │   ├── tests-test_jump.lua---Delayed-highlighting---respects-`config.delay.highlight`---test-+-args-{-'backward_till'-}
    │   ├── tests-test_jump.lua---Delayed-highlighting---respects-`config.delay.highlight`---test-+-args-{-'backward_till'-}-002
    │   ├── tests-test_jump.lua---Delayed-highlighting---respects-`config.delay.highlight`---test-+-args-{-'forward'-}
    │   ├── tests-test_jump.lua---Delayed-highlighting---respects-`config.delay.highlight`---test-+-args-{-'forward'-}-002
    │   ├── tests-test_jump.lua---Delayed-highlighting---respects-`config.delay.highlight`---test-+-args-{-'forward_till'-}
    │   ├── tests-test_jump.lua---Delayed-highlighting---respects-`config.delay.highlight`---test-+-args-{-'forward_till'-}-002
    │   ├── tests-test_jump.lua---Delayed-highlighting---respects-`vim.b.minijump_config`
    │   ├── tests-test_jump.lua---Delayed-highlighting---respects-`vim.b.minijump_config`-002
    │   ├── tests-test_jump.lua---Delayed-highlighting---stops-immediately-when-not-jumping
    │   ├── tests-test_jump.lua---Delayed-highlighting---stops-immediately-when-not-jumping-002
    │   ├── tests-test_jump.lua---Delayed-highlighting---updates-immediately-within-same-jumping
    │   ├── tests-test_jump.lua---Delayed-highlighting---updates-immediately-within-same-jumping-002
    │   ├── tests-test_jump.lua---Delayed-highlighting---updates-immediately-within-same-jumping-003
    │   ├── tests-test_jump.lua---Delayed-highlighting---works---test-+-args-{-'backward'-}
    │   ├── tests-test_jump.lua---Delayed-highlighting---works---test-+-args-{-'backward'-}-002
    │   ├── tests-test_jump.lua---Delayed-highlighting---works---test-+-args-{-'backward_till'-}
    │   ├── tests-test_jump.lua---Delayed-highlighting---works---test-+-args-{-'backward_till'-}-002
    │   ├── tests-test_jump.lua---Delayed-highlighting---works---test-+-args-{-'forward'-}
    │   ├── tests-test_jump.lua---Delayed-highlighting---works---test-+-args-{-'forward'-}-002
    │   ├── tests-test_jump.lua---Delayed-highlighting---works---test-+-args-{-'forward_till'-}
    │   ├── tests-test_jump.lua---Delayed-highlighting---works---test-+-args-{-'forward_till'-}-002
    │   ├── tests-test_jump.lua---Jumping-with-f-t-F-T---respects-`config.silent`
    │   ├── tests-test_jump.lua---Jumping-with-f-t-F-T---shows-reminder-after-one-idle-second
    │   ├── tests-test_jump.lua---Jumping-with-f-t-F-T---shows-reminder-after-one-idle-second-002
    │   ├── tests-test_jump.lua---Stop-jumping-after-idle---works
    │   ├── tests-test_jump.lua---Stop-jumping-after-idle---works-002
    │   ├── tests-test_jump.lua---Stop-jumping-after-idle---works-if-should-be-done-before-target-highlighting
    │   ├── tests-test_jump2d.lua---builtin_opts.line_start---works
    │   ├── tests-test_jump2d.lua---builtin_opts.single_character---shows-reminder-after-one-idle-second
    │   ├── tests-test_jump2d.lua---builtin_opts.word_start---works
    │   ├── tests-test_jump2d.lua---builtin_opts.word_start---works-002
    │   ├── tests-test_jump2d.lua---builtin_opts.word_start---works-with-multibyte-characters
    │   ├── tests-test_jump2d.lua---default_spotter()---correctly-merges-'overlapping'-spots
    │   ├── tests-test_jump2d.lua---default_spotter()---spots-before-and-after-punctuation
    │   ├── tests-test_jump2d.lua---default_spotter()---spots-first-capital-letter
    │   ├── tests-test_jump2d.lua---default_spotter()---spots-start-and-end-of-words
    │   ├── tests-test_jump2d.lua---default_spotter()---works
    │   ├── tests-test_jump2d.lua---default_spotter()---works-(almost)-with-multibyte-character
    │   ├── tests-test_jump2d.lua---gen_spotter---pattern()---handles-patterns-with-'^'-and-'$'---test-+-args-{-'.()..$',-'none'-}
    │   ├── tests-test_jump2d.lua---gen_spotter---pattern()---handles-patterns-with-'^'-and-'$'---test-+-args-{-'...$',-'end'-}
    │   ├── tests-test_jump2d.lua---gen_spotter---pattern()---handles-patterns-with-'^'-and-'$'---test-+-args-{-'...$',-'start'-}
    │   ├── tests-test_jump2d.lua---gen_spotter---pattern()---handles-patterns-with-'^'-and-'$'---test-+-args-{-'^.()..',-'none'-}
    │   ├── tests-test_jump2d.lua---gen_spotter---pattern()---handles-patterns-with-'^'-and-'$'---test-+-args-{-'^...',-'end'-}
    │   ├── tests-test_jump2d.lua---gen_spotter---pattern()---handles-patterns-with-'^'-and-'$'---test-+-args-{-'^...',-'start'-}
    │   ├── tests-test_jump2d.lua---gen_spotter---pattern()---respects-`pattern`-argument
    │   ├── tests-test_jump2d.lua---gen_spotter---pattern()---respects-`side`-argument---test-+-args-{-'%S+',-'end'-}
    │   ├── tests-test_jump2d.lua---gen_spotter---pattern()---respects-`side`-argument---test-+-args-{-'%S+',-'start'-}
    │   ├── tests-test_jump2d.lua---gen_spotter---pattern()---respects-`side`-argument---test-+-args-{-'.().',-'none'-}
    │   ├── tests-test_jump2d.lua---gen_spotter---pattern()---works
    │   ├── tests-test_jump2d.lua---gen_spotter---pattern()---works-in-edge-cases
    │   ├── tests-test_jump2d.lua---gen_spotter---pattern()---works-with-multibyte-characters
    │   ├── tests-test_jump2d.lua---gen_spotter---pattern()---works-with-multibyte-characters-002
    │   ├── tests-test_jump2d.lua---gen_spotter---union()---works
    │   ├── tests-test_jump2d.lua---gen_spotter---vimpattern---respects-`pattern`-argument
    │   ├── tests-test_jump2d.lua---gen_spotter---vimpattern---works
    │   ├── tests-test_jump2d.lua---gen_spotter---vimpattern---works-002
    │   ├── tests-test_jump2d.lua---gen_spotter---vimpattern---works-with-anchored-patterns
    │   ├── tests-test_jump2d.lua---gen_spotter---vimpattern---works-with-anchored-patterns-002
    │   ├── tests-test_jump2d.lua---gen_spotter---vimpattern---works-with-anchored-patterns-003
    │   ├── tests-test_jump2d.lua---gen_spotter---vimpattern---works-with-anchored-patterns-004
    │   ├── tests-test_jump2d.lua---gen_spotter---vimpattern---works-with-multibyte-characters
    │   ├── tests-test_jump2d.lua---setup()---applies-`config.mappings`
    │   ├── tests-test_jump2d.lua---start()---allows-`hook.before_start`-to-modify-spotter
    │   ├── tests-test_jump2d.lua---start()---handles-overlapping-multi-step-labels
    │   ├── tests-test_jump2d.lua---start()---handles-overlapping-multi-step-labels-002
    │   ├── tests-test_jump2d.lua---start()---handles-overlapping-multi-step-labels-003
    │   ├── tests-test_jump2d.lua---start()---handles-overlapping-multi-step-labels-004
    │   ├── tests-test_jump2d.lua---start()---handles-very-big-`view.n_steps_ahead`
    │   ├── tests-test_jump2d.lua---start()---handles-very-big-`view.n_steps_ahead`-002
    │   ├── tests-test_jump2d.lua---start()---highlights-unique-labels-with-different-highlight-group
    │   ├── tests-test_jump2d.lua---start()---ignores-current-window-during-label-computation---test-+-args-{-'bottomleft'-}
    │   ├── tests-test_jump2d.lua---start()---ignores-current-window-during-label-computation---test-+-args-{-'topright'-}
    │   ├── tests-test_jump2d.lua---start()---ignores-cursor-position-during-label-computation---test-+-args-{-1,-1-}
    │   ├── tests-test_jump2d.lua---start()---ignores-cursor-position-during-label-computation---test-+-args-{-2,-0-}
    │   ├── tests-test_jump2d.lua---start()---ignores-cursor-position-during-label-computation---test-+-args-{-3,-0-}
    │   ├── tests-test_jump2d.lua---start()---ignores-cursor-position-during-label-computation---test-+-args-{-3,-3-}
    │   ├── tests-test_jump2d.lua---start()---ignores-not-focusable-windows
    │   ├── tests-test_jump2d.lua---start()---jumps-immediately-to-single-spot
    │   ├── tests-test_jump2d.lua---start()---overrides-`config`-from-`opts`-argument
    │   ├── tests-test_jump2d.lua---start()---respects-`allowed_lines.blank`
    │   ├── tests-test_jump2d.lua---start()---respects-`allowed_lines.blank`-002
    │   ├── tests-test_jump2d.lua---start()---respects-`allowed_lines.cursor_-`---test-+-args-{-'cursor_after'-}
    │   ├── tests-test_jump2d.lua---start()---respects-`allowed_lines.cursor_-`---test-+-args-{-'cursor_after'-}-002
    │   ├── tests-test_jump2d.lua---start()---respects-`allowed_lines.cursor_-`---test-+-args-{-'cursor_at'-}
    │   ├── tests-test_jump2d.lua---start()---respects-`allowed_lines.cursor_-`---test-+-args-{-'cursor_at'-}-002
    │   ├── tests-test_jump2d.lua---start()---respects-`allowed_lines.cursor_-`---test-+-args-{-'cursor_before'-}
    │   ├── tests-test_jump2d.lua---start()---respects-`allowed_lines.cursor_-`---test-+-args-{-'cursor_before'-}-002
    │   ├── tests-test_jump2d.lua---start()---respects-`allowed_lines.fold`
    │   ├── tests-test_jump2d.lua---start()---respects-`allowed_lines.fold`-002
    │   ├── tests-test_jump2d.lua---start()---respects-`allowed_windows`---test-+-args-{-{current-=-false,not_current-=-false}-}
    │   ├── tests-test_jump2d.lua---start()---respects-`allowed_windows`---test-+-args-{-{current-=-false,not_current-=-false}-}-002
    │   ├── tests-test_jump2d.lua---start()---respects-`allowed_windows`---test-+-args-{-{current-=-false}-}
    │   ├── tests-test_jump2d.lua---start()---respects-`allowed_windows`---test-+-args-{-{current-=-false}-}-002
    │   ├── tests-test_jump2d.lua---start()---respects-`allowed_windows`---test-+-args-{-{not_current-=-false}-}
    │   ├── tests-test_jump2d.lua---start()---respects-`allowed_windows`---test-+-args-{-{not_current-=-false}-}-002
    │   ├── tests-test_jump2d.lua---start()---respects-`config.silent`
    │   ├── tests-test_jump2d.lua---start()---respects-`labels`
    │   ├── tests-test_jump2d.lua---start()---respects-`labels`-002
    │   ├── tests-test_jump2d.lua---start()---respects-`opts.hl_group_dim`
    │   ├── tests-test_jump2d.lua---start()---respects-`spotter`
    │   ├── tests-test_jump2d.lua---start()---respects-`spotter`-002
    │   ├── tests-test_jump2d.lua---start()---respects-`view.dim`
    │   ├── tests-test_jump2d.lua---start()---respects-`view.dim`-002
    │   ├── tests-test_jump2d.lua---start()---respects-`view.dim`-003
    │   ├── tests-test_jump2d.lua---start()---respects-`view.n_steps_ahead`
    │   ├── tests-test_jump2d.lua---start()---respects-`view.n_steps_ahead`-002
    │   ├── tests-test_jump2d.lua---start()---respects-`view.n_steps_ahead`-003
    │   ├── tests-test_jump2d.lua---start()---respects-`view.n_steps_ahead`-004
    │   ├── tests-test_jump2d.lua---start()---respects-`view.n_steps_ahead`-005
    │   ├── tests-test_jump2d.lua---start()---respects-`vim.{g,b}.minijump2d_disable`---test-+-args-{-'b'-}
    │   ├── tests-test_jump2d.lua---start()---respects-`vim.{g,b}.minijump2d_disable`---test-+-args-{-'g'-}
    │   ├── tests-test_jump2d.lua---start()---respects-folds
    │   ├── tests-test_jump2d.lua---start()---respects-folds-002
    │   ├── tests-test_jump2d.lua---start()---shows-reminder-after-one-idle-second
    │   ├── tests-test_jump2d.lua---start()---shows-reminder-after-one-idle-second-002
    │   ├── tests-test_jump2d.lua---start()---shows-reminder-after-one-idle-second-003
    │   ├── tests-test_jump2d.lua---start()---stops-jumping-if-not-label-was-typed---test-+-args-{-'-C-c-'-}
    │   ├── tests-test_jump2d.lua---start()---stops-jumping-if-not-label-was-typed---test-+-args-{-'-Down-'-}
    │   ├── tests-test_jump2d.lua---start()---stops-jumping-if-not-label-was-typed---test-+-args-{-'-Esc-'-}
    │   ├── tests-test_jump2d.lua---start()---traverses-floating-windows-at-the-end
    │   ├── tests-test_jump2d.lua---start()---traverses-visible-'regular'-windows-based-on-their-layout
    │   ├── tests-test_jump2d.lua---start()---uses-`-CR-`-to-jump-to-first-available-spot
    │   ├── tests-test_jump2d.lua---start()---uses-`spotter`-with-correct-arguments
    │   ├── tests-test_jump2d.lua---start()---uses-only-all-visible-windows-by-default
    │   ├── tests-test_jump2d.lua---start()---uses-only-visible-lines
    │   ├── tests-test_jump2d.lua---start()---uses-only-visible-lines-002
    │   ├── tests-test_jump2d.lua---start()---works
    │   ├── tests-test_jump2d.lua---start()---works-002
    │   ├── tests-test_jump2d.lua---start()---works-in-Operator-pending-mode
    │   ├── tests-test_jump2d.lua---start()---works-in-Operator-pending-mode-002
    │   ├── tests-test_jump2d.lua---start()---works-in-Operator-pending-mode-003
    │   ├── tests-test_jump2d.lua---start()---works-in-Operator-pending-mode-004
    │   ├── tests-test_jump2d.lua---start()---works-in-Visual-mode
    │   ├── tests-test_jump2d.lua---start()---works-in-Visual-mode-002
    │   ├── tests-test_jump2d.lua---stop()---clears-all-highlighting
    │   ├── tests-test_jump2d.lua---stop()---clears-all-highlighting-002
    │   ├── tests-test_jump2d.lua---stop()---works
    │   ├── tests-test_jump2d.lua---stop()---works-002
    │   ├── tests-test_map.lua---Cursor-in-map-window---opens-enough-folds-in-source-window
    │   ├── tests-test_map.lua---Cursor-in-map-window---opens-enough-folds-in-source-window-002
    │   ├── tests-test_map.lua---Pure-scrollbar---is-active-when-width-is-lower-than-offset
    │   ├── tests-test_map.lua---Pure-scrollbar---is-active-when-width-is-lower-than-offset-002
    │   ├── tests-test_map.lua---Pure-scrollbar---is-active-when-width-is-lower-than-offset-003
    │   ├── tests-test_map.lua---Pure-scrollbar---works
    │   ├── tests-test_map.lua---Pure-scrollbar---works-002
    │   ├── tests-test_map.lua---Scrollbar---updates-on-cursor-movement
    │   ├── tests-test_map.lua---Scrollbar---updates-on-cursor-movement-002
    │   ├── tests-test_map.lua---Scrollbar---updates-on-cursor-movement-003
    │   ├── tests-test_map.lua---Scrollbar---updates-on-cursor-movement-004
    │   ├── tests-test_map.lua---Scrollbar---updates-on-source-window-scrolling
    │   ├── tests-test_map.lua---Scrollbar---updates-on-source-window-scrolling-002
    │   ├── tests-test_map.lua---Window---does-not-account-for-folds
    │   ├── tests-test_map.lua---Window---does-not-account-for-folds-002
    │   ├── tests-test_map.lua---Window---does-not-account-for-folds-003
    │   ├── tests-test_map.lua---Window---does-not-respect-'winborder'-option
    │   ├── tests-test_map.lua---Window---fully-updates-on-buffer-enter
    │   ├── tests-test_map.lua---Window---fully-updates-on-buffer-enter-002
    │   ├── tests-test_map.lua---Window---fully-updates-on-buffer-write
    │   ├── tests-test_map.lua---Window---fully-updates-on-buffer-write-002
    │   ├── tests-test_map.lua---Window---fully-updates-on-mode-change-to-Normal
    │   ├── tests-test_map.lua---Window---fully-updates-on-mode-change-to-Normal-002
    │   ├── tests-test_map.lua---Window---fully-updates-on-text-change-in-Normal-mode
    │   ├── tests-test_map.lua---Window---fully-updates-on-text-change-in-Normal-mode-002
    │   ├── tests-test_map.lua---Window---fully-updates-on-vim-resize
    │   ├── tests-test_map.lua---Window---fully-updates-on-vim-resize-002
    │   ├── tests-test_map.lua---gen_encode_symbols---can-be-used-as-`MiniMap.config.symbols.encode`
    │   ├── tests-test_map.lua---gen_encode_symbols---can-be-used-as-part-of-`opts.symbols.encode`
    │   ├── tests-test_map.lua---gen_integration---builtin_search()---respects-documented-keymaps
    │   ├── tests-test_map.lua---gen_integration---builtin_search()---respects-documented-keymaps-002
    │   ├── tests-test_map.lua---gen_integration---builtin_search()---respects-documented-keymaps-003
    │   ├── tests-test_map.lua---gen_integration---builtin_search()---respects-documented-keymaps-004
    │   ├── tests-test_map.lua---gen_integration---builtin_search()---updates-when-appropriate
    │   ├── tests-test_map.lua---gen_integration---builtin_search()---updates-when-appropriate-002
    │   ├── tests-test_map.lua---gen_integration---builtin_search()---updates-when-appropriate-003
    │   ├── tests-test_map.lua---gen_integration---builtin_search()---updates-when-appropriate-004
    │   ├── tests-test_map.lua---gen_integration---builtin_search()---updates-when-appropriate-005
    │   ├── tests-test_map.lua---gen_integration---builtin_search()---works
    │   ├── tests-test_map.lua---gen_integration---builtin_search()---works-002
    │   ├── tests-test_map.lua---gen_integration---diagnostic()---respects-`hl_groups`-argument
    │   ├── tests-test_map.lua---gen_integration---diagnostic()---respects-`hl_groups`-argument-002
    │   ├── tests-test_map.lua---gen_integration---diagnostic()---respects-`hl_groups`-argument-003
    │   ├── tests-test_map.lua---gen_integration---diagnostic()---respects-`hl_groups`-argument-004
    │   ├── tests-test_map.lua---gen_integration---diagnostic()---updates-when-appropriate
    │   ├── tests-test_map.lua---gen_integration---diagnostic()---updates-when-appropriate-002
    │   ├── tests-test_map.lua---gen_integration---diagnostic()---works
    │   ├── tests-test_map.lua---gen_integration---diff()---works
    │   ├── tests-test_map.lua---gen_integration---gitsigns()---respects-`hl_groups`-argument
    │   ├── tests-test_map.lua---gen_integration---gitsigns()---updates-when-appropriate
    │   ├── tests-test_map.lua---gen_integration---gitsigns()---updates-when-appropriate-002
    │   ├── tests-test_map.lua---gen_integration---gitsigns()---works
    │   ├── tests-test_map.lua---open()---allows-more-than-single-character-in-scroll-symbols
    │   ├── tests-test_map.lua---open()---can-open-pure-scrollbar
    │   ├── tests-test_map.lua---open()---respects-`MiniMapNormal`-highlight-group
    │   ├── tests-test_map.lua---open()---respects-`opts.integrations`-argument
    │   ├── tests-test_map.lua---open()---respects-`opts.symbols`-argument
    │   ├── tests-test_map.lua---open()---respects-`opts.symbols`-argument-002
    │   ├── tests-test_map.lua---open()---respects-`opts.window`-argument
    │   ├── tests-test_map.lua---open()---shows-appropriate-integration-counts
    │   ├── tests-test_map.lua---open()---works
    │   ├── tests-test_map.lua---refresh()---respects-`opts.integrations`-argument
    │   ├── tests-test_map.lua---refresh()---respects-`opts.symbols`-argument
    │   ├── tests-test_map.lua---refresh()---respects-`opts.window`-argument
    │   ├── tests-test_map.lua---refresh()---respects-`parts`-argument
    │   ├── tests-test_map.lua---refresh()---respects-`parts`-argument-002
    │   ├── tests-test_map.lua---refresh()---respects-`parts`-argument-003
    │   ├── tests-test_map.lua---refresh()---respects-`parts`-argument-004
    │   ├── tests-test_map.lua---refresh()---respects-`parts`-argument-005
    │   ├── tests-test_map.lua---refresh()---respects-`vim.{g,b}.minimap_disable`---test-+-args-{-'b'-}
    │   ├── tests-test_map.lua---refresh()---respects-`vim.{g,b}.minimap_disable`---test-+-args-{-'g'-}
    │   ├── tests-test_map.lua---refresh()---works
    │   ├── tests-test_map.lua---refresh()---works-002
    │   ├── tests-test_misc.lua---zoom()---respects-'winborder'-option
    │   ├── tests-test_misc.lua---zoom()---respects-'winborder'-option-002
    │   ├── tests-test_misc.lua---zoom()---respects-'winborder'-option-003
    │   ├── tests-test_misc.lua---zoom()---respects-`config`-argument
    │   ├── tests-test_misc.lua---zoom()---respects-`config`-argument-002
    │   ├── tests-test_misc.lua---zoom()---respects-`config`-argument-003
    │   ├── tests-test_misc.lua---zoom()---respects-`config`-argument-004
    │   ├── tests-test_misc.lua---zoom()---respects-`config`-argument-005
    │   ├── tests-test_misc.lua---zoom()---respects-`config`-argument-006
    │   ├── tests-test_misc.lua---zoom()---respects-`config`-argument-007
    │   ├── tests-test_misc.lua---zoom()---respects-`config`-argument-008
    │   ├── tests-test_misc.lua---zoom()---respects-`config`-argument-009
    │   ├── tests-test_misc.lua---zoom()---works
    │   ├── tests-test_notify.lua---LSP-progress---handles-not-present-data
    │   ├── tests-test_notify.lua---LSP-progress---handles-not-present-data-002
    │   ├── tests-test_notify.lua---LSP-progress---handles-not-present-data-003
    │   ├── tests-test_notify.lua---LSP-progress---respects-`lsp_progress.duration_last`
    │   ├── tests-test_notify.lua---LSP-progress---respects-`lsp_progress.duration_last`-002
    │   ├── tests-test_notify.lua---LSP-progress---works
    │   ├── tests-test_notify.lua---LSP-progress---works-002
    │   ├── tests-test_notify.lua---LSP-progress---works-003
    │   ├── tests-test_notify.lua---LSP-progress---works-004
    │   ├── tests-test_notify.lua---LSP-progress---works-005
    │   ├── tests-test_notify.lua---Window---computes-default-dimensions-based-on-buffer-content
    │   ├── tests-test_notify.lua---Window---computes-default-dimensions-based-on-buffer-content-002
    │   ├── tests-test_notify.lua---Window---fully-updates-on-vim-resize
    │   ├── tests-test_notify.lua---Window---fully-updates-on-vim-resize-002
    │   ├── tests-test_notify.lua---Window---fully-updates-on-vim-resize-003
    │   ├── tests-test_notify.lua---Window---fully-updates-on-vim-resize-004
    │   ├── tests-test_notify.lua---Window---handles-width-computation-for-empty-lines-inside-notification-buffer
    │   ├── tests-test_notify.lua---Window---respects-'winborder'-option
    │   ├── tests-test_notify.lua---Window---respects-'winborder'-option-002
    │   ├── tests-test_notify.lua---Window---respects-'winborder'-option-003
    │   ├── tests-test_notify.lua---Window---respects-`content.format`
    │   ├── tests-test_notify.lua---Window---respects-`content.sort`
    │   ├── tests-test_notify.lua---Window---respects-`window.config`
    │   ├── tests-test_notify.lua---Window---respects-`window.config`-002
    │   ├── tests-test_notify.lua---Window---respects-`window.config`-003
    │   ├── tests-test_notify.lua---Window---respects-`window.max_width_share`
    │   ├── tests-test_notify.lua---Window---respects-`window.max_width_share`-002
    │   ├── tests-test_notify.lua---Window---respects-`window.max_width_share`-003
    │   ├── tests-test_notify.lua---Window---respects-`window.max_width_share`-004
    │   ├── tests-test_notify.lua---Window---respects-tabline-statusline-cmdline
    │   ├── tests-test_notify.lua---Window---respects-tabline-statusline-cmdline-002
    │   ├── tests-test_notify.lua---Window---respects-tabline-statusline-cmdline-003
    │   ├── tests-test_notify.lua---Window---respects-tabline-statusline-cmdline-004
    │   ├── tests-test_notify.lua---Window---respects-tabline-statusline-cmdline-005
    │   ├── tests-test_notify.lua---Window---respects-tabline-statusline-cmdline-006
    │   ├── tests-test_notify.lua---Window---respects-tabline-statusline-cmdline-007
    │   ├── tests-test_notify.lua---Window---respects-tabline-statusline-cmdline-008
    │   ├── tests-test_notify.lua---Window---respects-tabline-statusline-cmdline-009
    │   ├── tests-test_notify.lua---Window---respects-tabline-statusline-cmdline-010
    │   ├── tests-test_notify.lua---Window---shows-start-of-buffer-if-it-does-not-fit-whole
    │   ├── tests-test_notify.lua---Window---works-with-multiline-messages
    │   ├── tests-test_notify.lua---Window---wraps-text
    │   ├── tests-test_notify.lua---Window---wraps-text-002
    │   ├── tests-test_notify.lua---add()---allows-empty-string-message
    │   ├── tests-test_notify.lua---add()---works
    │   ├── tests-test_notify.lua---clear()---works
    │   ├── tests-test_notify.lua---clear()---works-002
    │   ├── tests-test_notify.lua---make_notify()---works
    │   ├── tests-test_notify.lua---refresh()---respects-`vim.{g,b}.mininotify_disable`---test-+-args-{-'b'-}
    │   ├── tests-test_notify.lua---refresh()---respects-`vim.{g,b}.mininotify_disable`---test-+-args-{-'b'-}-002
    │   ├── tests-test_notify.lua---refresh()---respects-`vim.{g,b}.mininotify_disable`---test-+-args-{-'b'-}-003
    │   ├── tests-test_notify.lua---refresh()---respects-`vim.{g,b}.mininotify_disable`---test-+-args-{-'g'-}
    │   ├── tests-test_notify.lua---refresh()---respects-`vim.{g,b}.mininotify_disable`---test-+-args-{-'g'-}-002
    │   ├── tests-test_notify.lua---refresh()---respects-`vim.{g,b}.mininotify_disable`---test-+-args-{-'g'-}-003
    │   ├── tests-test_notify.lua---remove()---works
    │   ├── tests-test_notify.lua---remove()---works-002
    │   ├── tests-test_notify.lua---remove()---works-with-several-active-notifications
    │   ├── tests-test_notify.lua---remove()---works-with-several-active-notifications-002
    │   ├── tests-test_notify.lua---show_history()---respects-`content.format`
    │   ├── tests-test_notify.lua---show_history()---reuses-history-buffer
    │   ├── tests-test_notify.lua---show_history()---shows-all-notifications
    │   ├── tests-test_notify.lua---show_history()---sorts-by-update-time
    │   ├── tests-test_notify.lua---show_history()---works
    │   ├── tests-test_notify.lua---update()---works
    │   ├── tests-test_notify.lua---update()---works-002
    │   ├── tests-test_operators.lua---Exchange---can-be-canceled
    │   ├── tests-test_operators.lua---Exchange---can-be-canceled-002
    │   ├── tests-test_operators.lua---Exchange---correctly-highlights-first-step-with-'selection=exclusive'
    │   ├── tests-test_operators.lua---Exchange---highlights-first-step---test-+-args-{-'blockwise'-}
    │   ├── tests-test_operators.lua---Exchange---highlights-first-step---test-+-args-{-'charwise'-}
    │   ├── tests-test_operators.lua---Exchange---highlights-first-step---test-+-args-{-'linewise'-}
    │   ├── tests-test_operators.lua---Exchange---works-with-multibyte-characters
    │   ├── tests-test_operators.lua---Exchange---works-with-multibyte-characters-002
    │   ├── tests-test_operators.lua---Exchange---works-with-multibyte-characters-003
    │   ├── tests-test_operators.lua---Exchange---works-with-multibyte-characters-004
    │   ├── tests-test_operators.lua---Exchange---works-with-multibyte-characters-005
    │   ├── tests-test_operators.lua---Multiply---works-with-`cmdheight=0`
    │   ├── tests-test_operators.lua---Multiply---works-with-`cmdheight=0`-002
    │   ├── tests-test_operators.lua---Replace---works-with-`cmdheight=0`
    │   ├── tests-test_operators.lua---Replace---works-with-`cmdheight=0`-002
    │   ├── tests-test_pairs.lua----BS--action---works
    │   ├── tests-test_pick.lua----Pick---has-proper-complete
    │   ├── tests-test_pick.lua----Pick---has-proper-complete-002
    │   ├── tests-test_pick.lua----Pick---has-proper-complete-003
    │   ├── tests-test_pick.lua----Pick---works
    │   ├── tests-test_pick.lua----Pick---works-002
    │   ├── tests-test_pick.lua---Caret---moves-by-query-parts
    │   ├── tests-test_pick.lua---Caret---moves-by-query-parts-002
    │   ├── tests-test_pick.lua---Caret---moves-by-query-parts-003
    │   ├── tests-test_pick.lua---Caret---works
    │   ├── tests-test_pick.lua---Caret---works-002
    │   ├── tests-test_pick.lua---Caret---works-003
    │   ├── tests-test_pick.lua---Choose---works-for-split-tab-variations
    │   ├── tests-test_pick.lua---Choose---works-for-split-tab-variations-002
    │   ├── tests-test_pick.lua---Choose---works-for-split-tab-variations-003
    │   ├── tests-test_pick.lua---Info-view---is-updated-after-moving-marking-current-item
    │   ├── tests-test_pick.lua---Info-view---is-updated-after-moving-marking-current-item-002
    │   ├── tests-test_pick.lua---Info-view---is-updated-after-moving-marking-current-item-003
    │   ├── tests-test_pick.lua---Info-view---is-updated-after-moving-marking-current-item-004
    │   ├── tests-test_pick.lua---Info-view---respects-custom-mappings
    │   ├── tests-test_pick.lua---Info-view---supports-vertical-and-horizontal-scroll
    │   ├── tests-test_pick.lua---Info-view---supports-vertical-and-horizontal-scroll-002
    │   ├── tests-test_pick.lua---Info-view---supports-vertical-and-horizontal-scroll-003
    │   ├── tests-test_pick.lua---Info-view---supports-vertical-and-horizontal-scroll-004
    │   ├── tests-test_pick.lua---Info-view---works
    │   ├── tests-test_pick.lua---Main-view---properly-computes-items-range-to-show
    │   ├── tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-002
    │   ├── tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-003
    │   ├── tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-004
    │   ├── tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-005
    │   ├── tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-006
    │   ├── tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-007
    │   ├── tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-008
    │   ├── tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-009
    │   ├── tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-010
    │   ├── tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-011
    │   ├── tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-012
    │   ├── tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-013
    │   ├── tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-014
    │   ├── tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-015
    │   ├── tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-016
    │   ├── tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-017
    │   ├── tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-018
    │   ├── tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-019
    │   ├── tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-020
    │   ├── tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-021
    │   ├── tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-022
    │   ├── tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-023
    │   ├── tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-024
    │   ├── tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-025
    │   ├── tests-test_pick.lua---Main-view---shows-marked-items-across-queries
    │   ├── tests-test_pick.lua---Main-view---shows-marked-items-across-queries-002
    │   ├── tests-test_pick.lua---Main-view---supports-horizontal-scroll
    │   ├── tests-test_pick.lua---Main-view---supports-horizontal-scroll-002
    │   ├── tests-test_pick.lua---Main-view---supports-horizontal-scroll-003
    │   ├── tests-test_pick.lua---Main-view---supports-horizontal-scroll-004
    │   ├── tests-test_pick.lua---Main-view---supports-horizontal-scroll-005
    │   ├── tests-test_pick.lua---Main-view---supports-horizontal-scroll-006
    │   ├── tests-test_pick.lua---Main-view---works-with-`content_from_bottom`=true
    │   ├── tests-test_pick.lua---Main-view---works-with-`content_from_bottom`=true-002
    │   ├── tests-test_pick.lua---Main-view---works-with-`content_from_bottom`=true-003
    │   ├── tests-test_pick.lua---Main-view---works-with-`content_from_bottom`=true-004
    │   ├── tests-test_pick.lua---Main-view---works-with-`content_from_bottom`=true-005
    │   ├── tests-test_pick.lua---Main-view---works-with-`content_from_bottom`=true-006
    │   ├── tests-test_pick.lua---Main-view---works-with-`content_from_bottom`=true-007
    │   ├── tests-test_pick.lua---Main-view---works-with-`content_from_bottom`=true-008
    │   ├── tests-test_pick.lua---Main-view---works-with-`content_from_bottom`=true-009
    │   ├── tests-test_pick.lua---Main-view---works-with-`content_from_bottom`=true-010
    │   ├── tests-test_pick.lua---Mark---works-without-items-set
    │   ├── tests-test_pick.lua---Matching---dedicated-event-can-update-window-config
    │   ├── tests-test_pick.lua---Matching---dedicated-event-can-update-window-config-002
    │   ├── tests-test_pick.lua---Matching---dedicated-event-can-update-window-config-003
    │   ├── tests-test_pick.lua---Matching---dedicated-event-can-update-window-config-004
    │   ├── tests-test_pick.lua---Move---works-when-no-items-are-set
    │   ├── tests-test_pick.lua---Overall-view---adjusts-dimensions-respecting-border
    │   ├── tests-test_pick.lua---Overall-view---adjusts-dimensions-respecting-border-002
    │   ├── tests-test_pick.lua---Overall-view---adjusts-dimensions-respecting-border-003
    │   ├── tests-test_pick.lua---Overall-view---adjusts-dimensions-respecting-border-004
    │   ├── tests-test_pick.lua---Overall-view---adjusts-dimensions-respecting-border-005
    │   ├── tests-test_pick.lua---Overall-view---adjusts-dimensions-respecting-border-006
    │   ├── tests-test_pick.lua---Overall-view---adjusts-dimensions-respecting-border-007
    │   ├── tests-test_pick.lua---Overall-view---adjusts-dimensions-respecting-border-008
    │   ├── tests-test_pick.lua---Overall-view---adjusts-dimensions-respecting-border-009
    │   ├── tests-test_pick.lua---Overall-view---adjusts-dimensions-respecting-border-010
    │   ├── tests-test_pick.lua---Overall-view---adjusts-dimensions-respecting-border-011
    │   ├── tests-test_pick.lua---Overall-view---adjusts-dimensions-respecting-border-012
    │   ├── tests-test_pick.lua---Overall-view---adjusts-dimensions-respecting-border-013
    │   ├── tests-test_pick.lua---Overall-view---adjusts-dimensions-respecting-border-014
    │   ├── tests-test_pick.lua---Overall-view---adjusts-dimensions-respecting-border-015
    │   ├── tests-test_pick.lua---Overall-view---adjusts-dimensions-respecting-border-016
    │   ├── tests-test_pick.lua---Overall-view---allows-'none'-as-border
    │   ├── tests-test_pick.lua---Overall-view---allows-very-large-dimensions
    │   ├── tests-test_pick.lua---Overall-view---correctly-infers-footer-empty-space
    │   ├── tests-test_pick.lua---Overall-view---correctly-infers-footer-empty-space-002
    │   ├── tests-test_pick.lua---Overall-view---correctly-infers-footer-empty-space-003
    │   ├── tests-test_pick.lua---Overall-view---correctly-infers-footer-empty-space-004
    │   ├── tests-test_pick.lua---Overall-view---does-not-show-footer-if-items-are-not-set
    │   ├── tests-test_pick.lua---Overall-view---is-shown-over-number-and-sign-columns
    │   ├── tests-test_pick.lua---Overall-view---respects-'winborder'-option
    │   ├── tests-test_pick.lua---Overall-view---respects-'winborder'-option-002
    │   ├── tests-test_pick.lua---Overall-view---respects-'winborder'-option-003
    │   ├── tests-test_pick.lua---Overall-view---respects-'winborder'-option-004
    │   ├── tests-test_pick.lua---Overall-view---respects-`options.content_from_bottom`-with-footer
    │   ├── tests-test_pick.lua---Overall-view---respects-tabline,-statusline,-'cmdheight'
    │   ├── tests-test_pick.lua---Overall-view---respects-tabline,-statusline,-'cmdheight'-002
    │   ├── tests-test_pick.lua---Overall-view---respects-tabline,-statusline,-'cmdheight'-003
    │   ├── tests-test_pick.lua---Overall-view---respects-tabline,-statusline,-'cmdheight'-004
    │   ├── tests-test_pick.lua---Overall-view---respects-tabline,-statusline,-'cmdheight'-005
    │   ├── tests-test_pick.lua---Overall-view---respects-tabline,-statusline,-'cmdheight'-006
    │   ├── tests-test_pick.lua---Overall-view---sanitizes-picker-name
    │   ├── tests-test_pick.lua---Overall-view---sanitizes-picker-name-002
    │   ├── tests-test_pick.lua---Overall-view---shows-prompt
    │   ├── tests-test_pick.lua---Overall-view---shows-prompt-002
    │   ├── tests-test_pick.lua---Overall-view---shows-prompt-003
    │   ├── tests-test_pick.lua---Overall-view---shows-prompt-004
    │   ├── tests-test_pick.lua---Overall-view---shows-prompt-005
    │   ├── tests-test_pick.lua---Overall-view---truncates-footer
    │   ├── tests-test_pick.lua---Overall-view---truncates-footer-002
    │   ├── tests-test_pick.lua---Overall-view---truncates-footer-003
    │   ├── tests-test_pick.lua---Overall-view---truncates-prompt
    │   ├── tests-test_pick.lua---Overall-view---truncates-prompt-002
    │   ├── tests-test_pick.lua---Overall-view---truncates-prompt-003
    │   ├── tests-test_pick.lua---Overall-view---truncates-prompt-004
    │   ├── tests-test_pick.lua---Overall-view---truncates-prompt-005
    │   ├── tests-test_pick.lua---Overall-view---truncates-prompt-006
    │   ├── tests-test_pick.lua---Overall-view---truncates-prompt-007
    │   ├── tests-test_pick.lua---Overall-view---truncates-prompt-008
    │   ├── tests-test_pick.lua---Overall-view---truncates-prompt-009
    │   ├── tests-test_pick.lua---Overall-view---truncates-prompt-010
    │   ├── tests-test_pick.lua---Overall-view---truncates-prompt-011
    │   ├── tests-test_pick.lua---Overall-view---truncates-prompt-012
    │   ├── tests-test_pick.lua---Overall-view---truncates-prompt-013
    │   ├── tests-test_pick.lua---Overall-view---uses-footer-for-extra-info
    │   ├── tests-test_pick.lua---Overall-view---uses-footer-for-extra-info-002
    │   ├── tests-test_pick.lua---Overall-view---uses-footer-for-extra-info-003
    │   ├── tests-test_pick.lua---Overall-view---uses-footer-for-extra-info-004
    │   ├── tests-test_pick.lua---Overall-view---uses-footer-for-extra-info-005
    │   ├── tests-test_pick.lua---Overall-view---uses-footer-for-extra-info-006
    │   ├── tests-test_pick.lua---Overall-view---works-with-small-available-dimensions
    │   ├── tests-test_pick.lua---Paste---works
    │   ├── tests-test_pick.lua---Paste---works-002
    │   ├── tests-test_pick.lua---Paste---works-003
    │   ├── tests-test_pick.lua---Preview---does-explicit-redraw-several-times
    │   ├── tests-test_pick.lua---Preview---does-explicit-redraw-several-times-002
    │   ├── tests-test_pick.lua---Preview---is-updated-after-moving-current-item
    │   ├── tests-test_pick.lua---Preview---is-updated-after-moving-current-item-002
    │   ├── tests-test_pick.lua---Preview---respects-global-value-of-'list'-and-'listchars'-option
    │   ├── tests-test_pick.lua---Preview---respects-global-value-of-'list'-and-'listchars'-option-002
    │   ├── tests-test_pick.lua---Preview---respects-global-value-of-'list'-and-'listchars'-option-003
    │   ├── tests-test_pick.lua---Preview---respects-global-value-of-'list'-and-'listchars'-option-004
    │   ├── tests-test_pick.lua---Preview---supports-vertical-and-horizontal-scroll
    │   ├── tests-test_pick.lua---Preview---supports-vertical-and-horizontal-scroll-002
    │   ├── tests-test_pick.lua---Preview---supports-vertical-and-horizontal-scroll-003
    │   ├── tests-test_pick.lua---Preview---supports-vertical-and-horizontal-scroll-004
    │   ├── tests-test_pick.lua---Preview---works
    │   ├── tests-test_pick.lua---Refine---works
    │   ├── tests-test_pick.lua---Refine---works-002
    │   ├── tests-test_pick.lua---Refine---works-003
    │   ├── tests-test_pick.lua---Refine---works-when-no-items-are-set
    │   ├── tests-test_pick.lua---builtin.buffers()---respects-`local_opts.include_current`
    │   ├── tests-test_pick.lua---builtin.buffers()---respects-`local_opts.include_unlisted`
    │   ├── tests-test_pick.lua---builtin.buffers()---respects-`source.show`-from-config
    │   ├── tests-test_pick.lua---builtin.buffers()---works
    │   ├── tests-test_pick.lua---builtin.files()---respects-`source.show`-from-config
    │   ├── tests-test_pick.lua---builtin.files()---works
    │   ├── tests-test_pick.lua---builtin.grep()---respects-`source.show`-from-config
    │   ├── tests-test_pick.lua---builtin.grep()---works
    │   ├── tests-test_pick.lua---builtin.grep()---works-002
    │   ├── tests-test_pick.lua---builtin.grep_live()---has-custom-'add-glob'-mapping
    │   ├── tests-test_pick.lua---builtin.grep_live()---respects-`source.show`-from-config
    │   ├── tests-test_pick.lua---builtin.grep_live()---works
    │   ├── tests-test_pick.lua---builtin.help()---handles-consecutive-applications
    │   ├── tests-test_pick.lua---builtin.help()---has-proper-preview
    │   ├── tests-test_pick.lua---builtin.help()---works
    │   ├── tests-test_pick.lua---builtin.help()---works-002
    │   ├── tests-test_pick.lua---builtin.help()---works-for-help-tags-with-special-characters
    │   ├── tests-test_pick.lua---builtin.help()---works-when-help-window-is-already-opened
    │   ├── tests-test_pick.lua---builtin.help()---works-with-`builtin.resume()`
    │   ├── tests-test_pick.lua---builtin.help()---works-with-`builtin.resume()`-002
    │   ├── tests-test_pick.lua---builtin.resume()---works
    │   ├── tests-test_pick.lua---default_match()---works-with-active-picker
    │   ├── tests-test_pick.lua---default_match()---works-with-active-picker-002
    │   ├── tests-test_pick.lua---default_preview()---can-be-used-in-outside-preview-window
    │   ├── tests-test_pick.lua---default_preview()---does-not-highlight-big-files
    │   ├── tests-test_pick.lua---default_preview()---does-not-highlight-big-files-002
    │   ├── tests-test_pick.lua---default_preview()---has-fallback
    │   ├── tests-test_pick.lua---default_preview()---has-fallback-002
    │   ├── tests-test_pick.lua---default_preview()---has-syntax-highlighting-in-buffer
    │   ├── tests-test_pick.lua---default_preview()---has-syntax-highlighting-in-buffer-002
    │   ├── tests-test_pick.lua---default_preview()---has-syntax-highlighting-in-file-path
    │   ├── tests-test_pick.lua---default_preview()---has-syntax-highlighting-in-file-path-002
    │   ├── tests-test_pick.lua---default_preview()---loads-context-in-buffer
    │   ├── tests-test_pick.lua---default_preview()---loads-context-in-buffer-002
    │   ├── tests-test_pick.lua---default_preview()---loads-context-in-buffer-003
    │   ├── tests-test_pick.lua---default_preview()---loads-context-in-file-path
    │   ├── tests-test_pick.lua---default_preview()---loads-context-in-file-path-002
    │   ├── tests-test_pick.lua---default_preview()---loads-context-in-file-path-003
    │   ├── tests-test_pick.lua---default_preview()---respects-`opts.line_position`---1-+-args-{-'bottom'-}
    │   ├── tests-test_pick.lua---default_preview()---respects-`opts.line_position`---1-+-args-{-'bottom'-}-002
    │   ├── tests-test_pick.lua---default_preview()---respects-`opts.line_position`---1-+-args-{-'center'-}
    │   ├── tests-test_pick.lua---default_preview()---respects-`opts.line_position`---1-+-args-{-'center'-}-002
    │   ├── tests-test_pick.lua---default_preview()---respects-`opts.line_position`---1-+-args-{-'top'-}
    │   ├── tests-test_pick.lua---default_preview()---respects-`opts.line_position`---1-+-args-{-'top'-}-002
    │   ├── tests-test_pick.lua---default_preview()---respects-`opts.n_context_lines`
    │   ├── tests-test_pick.lua---default_preview()---respects-`opts.n_context_lines`-002
    │   ├── tests-test_pick.lua---default_preview()---respects-`source.cwd`
    │   ├── tests-test_pick.lua---default_preview()---shows-line-in-buffer
    │   ├── tests-test_pick.lua---default_preview()---shows-line-in-file-path
    │   ├── tests-test_pick.lua---default_preview()---shows-line-in-file-path-002
    │   ├── tests-test_pick.lua---default_preview()---shows-position-in-buffer
    │   ├── tests-test_pick.lua---default_preview()---shows-position-in-file-path
    │   ├── tests-test_pick.lua---default_preview()---shows-position-in-file-path-002
    │   ├── tests-test_pick.lua---default_preview()---shows-region-in-buffer
    │   ├── tests-test_pick.lua---default_preview()---shows-region-in-buffer-002
    │   ├── tests-test_pick.lua---default_preview()---shows-region-in-file-path
    │   ├── tests-test_pick.lua---default_preview()---shows-region-in-file-path-002
    │   ├── tests-test_pick.lua---default_preview()---works
    │   ├── tests-test_pick.lua---default_preview()---works-for-URI-path
    │   ├── tests-test_pick.lua---default_preview()---works-for-buffer
    │   ├── tests-test_pick.lua---default_preview()---works-for-buffer-002
    │   ├── tests-test_pick.lua---default_preview()---works-for-buffer-003
    │   ├── tests-test_pick.lua---default_preview()---works-for-buffer-004
    │   ├── tests-test_pick.lua---default_preview()---works-for-buffer-005
    │   ├── tests-test_pick.lua---default_preview()---works-for-directory-path
    │   ├── tests-test_pick.lua---default_preview()---works-for-directory-path-002
    │   ├── tests-test_pick.lua---default_preview()---works-for-file-path
    │   ├── tests-test_pick.lua---default_preview()---works-for-file-path-002
    │   ├── tests-test_pick.lua---default_preview()---works-for-file-path-003
    │   ├── tests-test_pick.lua---default_preview()---works-for-file-path-004
    │   ├── tests-test_pick.lua---default_preview()---works-for-file-path-with-tilde
    │   ├── tests-test_pick.lua---default_preview()---works-for-relative-file-path
    │   ├── tests-test_pick.lua---default_preview()---works-for-relative-file-path-002
    │   ├── tests-test_pick.lua---default_preview()---works-without-active-picker
    │   ├── tests-test_pick.lua---default_preview()---works-without-active-picker-002
    │   ├── tests-test_pick.lua---default_show()---handles-edge-cases
    │   ├── tests-test_pick.lua---default_show()---handles-query-similar-to-`default_match`
    │   ├── tests-test_pick.lua---default_show()---handles-query-similar-to-`default_match`-002
    │   ├── tests-test_pick.lua---default_show()---handles-query-similar-to-`default_match`-003
    │   ├── tests-test_pick.lua---default_show()---handles-query-similar-to-`default_match`-004
    │   ├── tests-test_pick.lua---default_show()---handles-query-similar-to-`default_match`-005
    │   ├── tests-test_pick.lua---default_show()---handles-stritems-with-non-trivial-whitespace
    │   ├── tests-test_pick.lua---default_show()---respects-'ignorecase'-'smartcase'
    │   ├── tests-test_pick.lua---default_show()---respects-'ignorecase'-'smartcase'-002
    │   ├── tests-test_pick.lua---default_show()---respects-'ignorecase'-'smartcase'-003
    │   ├── tests-test_pick.lua---default_show()---respects-'ignorecase'-'smartcase'-004
    │   ├── tests-test_pick.lua---default_show()---respects-'ignorecase'-'smartcase'-005
    │   ├── tests-test_pick.lua---default_show()---respects-'ignorecase'-'smartcase'-006
    │   ├── tests-test_pick.lua---default_show()---respects-`opts.icons`
    │   ├── tests-test_pick.lua---default_show()---respects-`opts.icons`-002
    │   ├── tests-test_pick.lua---default_show()---respects-`opts.icons`-003
    │   ├── tests-test_pick.lua---default_show()---respects-`opts.show_icons`
    │   ├── tests-test_pick.lua---default_show()---respects-`opts.show_icons`-002
    │   ├── tests-test_pick.lua---default_show()---respects-`opts.show_icons`-003
    │   ├── tests-test_pick.lua---default_show()---respects-`opts.show_icons`-004
    │   ├── tests-test_pick.lua---default_show()---shows-best-match
    │   ├── tests-test_pick.lua---default_show()---shows-best-match-002
    │   ├── tests-test_pick.lua---default_show()---works
    │   ├── tests-test_pick.lua---default_show()---works-with-multibyte-characters
    │   ├── tests-test_pick.lua---default_show()---works-with-multibyte-characters-002
    │   ├── tests-test_pick.lua---default_show()---works-with-non-single-char-entries-queries
    │   ├── tests-test_pick.lua---default_show()---works-with-non-single-char-entries-queries-002
    │   ├── tests-test_pick.lua---default_show()---works-with-non-single-char-entries-queries-003
    │   ├── tests-test_pick.lua---default_show()---works-without-active-picker
    │   ├── tests-test_pick.lua---default_show()---works-without-active-picker-002
    │   ├── tests-test_pick.lua---refresh()---is-called-on-`VimResized`
    │   ├── tests-test_pick.lua---refresh()---is-called-on-`VimResized`-002
    │   ├── tests-test_pick.lua---refresh()---recomputes-window-config
    │   ├── tests-test_pick.lua---refresh()---recomputes-window-config-002
    │   ├── tests-test_pick.lua---refresh()---works
    │   ├── tests-test_pick.lua---refresh()---works-002
    │   ├── tests-test_pick.lua---set_picker_items()---recomputes-visible-range
    │   ├── tests-test_pick.lua---set_picker_match_inds()---can-set-current-match-index
    │   ├── tests-test_pick.lua---set_picker_match_inds()---can-set-marked-match-indexes
    │   ├── tests-test_pick.lua---set_picker_match_inds()---can-set-marked-match-indexes-002
    │   ├── tests-test_pick.lua---set_picker_match_inds()---works
    │   ├── tests-test_pick.lua---set_picker_opts()---works
    │   ├── tests-test_pick.lua---set_picker_opts()---works-002
    │   ├── tests-test_pick.lua---set_picker_opts()---works-003
    │   ├── tests-test_pick.lua---set_picker_query()---works
    │   ├── tests-test_pick.lua---start()---can-be-started-without-explicit-items
    │   ├── tests-test_pick.lua---start()---correctly-computes-stritems
    │   ├── tests-test_pick.lua---start()---respects-`options.content_from_bottom`
    │   ├── tests-test_pick.lua---start()---respects-`source.items`
    │   ├── tests-test_pick.lua---start()---respects-`source.items`-002
    │   ├── tests-test_pick.lua---start()---respects-`source.items`-003
    │   ├── tests-test_pick.lua---start()---respects-`source.items`-004
    │   ├── tests-test_pick.lua---start()---respects-`source.match`
    │   ├── tests-test_pick.lua---start()---respects-`source.name`
    │   ├── tests-test_pick.lua---start()---respects-`source.preview`
    │   ├── tests-test_pick.lua---start()---respects-`source.preview`-002
    │   ├── tests-test_pick.lua---start()---respects-`source.show`
    │   ├── tests-test_pick.lua---start()---respects-`source.show`-002
    │   ├── tests-test_pick.lua---start()---respects-`vim.b.minipick_config`
    │   ├── tests-test_pick.lua---start()---respects-`window.config`
    │   ├── tests-test_pick.lua---start()---respects-`window.config`-002
    │   ├── tests-test_pick.lua---start()---respects-`window.prompt_caret`
    │   ├── tests-test_pick.lua---start()---respects-`window.prompt_caret`-002
    │   ├── tests-test_pick.lua---start()---respects-`window.prompt_prefix`
    │   ├── tests-test_pick.lua---start()---respects-`window.prompt_prefix`-002
    │   ├── tests-test_pick.lua---start()---respects-`window.prompt_prefix`-003
    │   ├── tests-test_pick.lua---start()---respects-`window.prompt_prefix`-004
    │   ├── tests-test_pick.lua---start()---respects-global-config
    │   ├── tests-test_pick.lua---start()---stops-currently-active-picker
    │   ├── tests-test_pick.lua---start()---stops-improperly-aborted-previous-picker
    │   ├── tests-test_pick.lua---start()---stops-improperly-aborted-previous-picker-002
    │   ├── tests-test_pick.lua---start()---tracks-lost-focus
    │   ├── tests-test_pick.lua---start()---tracks-lost-focus-002
    │   ├── tests-test_pick.lua---start()---tracks-lost-focus-003
    │   ├── tests-test_pick.lua---start()---works
    │   ├── tests-test_pick.lua---start()---works-002
    │   ├── tests-test_pick.lua---start()---works-on-Neovim-0.9
    │   ├── tests-test_pick.lua---start()---works-on-Neovim-0.9-002
    │   ├── tests-test_pick.lua---start()---works-with-window-footer
    │   ├── tests-test_pick.lua---start()---works-with-window-footer-002
    │   ├── tests-test_pick.lua---stop()---works
    │   ├── tests-test_pick.lua---stop()---works-002
    │   ├── tests-test_pick.lua---ui_select()---respects-`opts.preview_item`
    │   ├── tests-test_pick.lua---ui_select()---respects-`start_opts`
    │   ├── tests-test_pick.lua---ui_select()---shows-only-original-item-in-preview
    │   ├── tests-test_pick.lua---ui_select()---works
    │   ├── tests-test_snippets.lua---Interaction-with-built-in-completion---no-affect-of-'exausted'-popup-during-jump
    │   ├── tests-test_snippets.lua---Interaction-with-built-in-completion---squashed-tabstops
    │   ├── tests-test_snippets.lua---Interaction-with-built-in-completion---squashed-tabstops-002
    │   ├── tests-test_snippets.lua---Session---autostop---is-not-triggered-if-final-tabstop-is-not-current
    │   ├── tests-test_snippets.lua---Session---choices---are-always-shown-all-at-once
    │   ├── tests-test_snippets.lua---Session---choices---are-always-shown-all-at-once-002
    │   ├── tests-test_snippets.lua---Session---choices---are-always-shown-all-at-once-003
    │   ├── tests-test_snippets.lua---Session---choices---work-with-default-'completeopt'
    │   ├── tests-test_snippets.lua---Session---choices---work-with-default-'completeopt'-002
    │   ├── tests-test_snippets.lua---Session---choices---works
    │   ├── tests-test_snippets.lua---Session---choices---works-002
    │   ├── tests-test_snippets.lua---Session---does-not-show-'Pattern-not-found'-message
    │   ├── tests-test_snippets.lua---Session---highlighting---uses-same-highlighting-for-whole-placeholder-for-current-tabstop
    │   ├── tests-test_snippets.lua---Session---highlighting---uses-same-highlighting-for-whole-placeholder-for-current-tabstop-002
    │   ├── tests-test_snippets.lua---Session---highlighting---uses-same-highlighting-for-whole-placeholder-for-current-tabstop-003
    │   ├── tests-test_snippets.lua---Session---linked-tabstops---are-updated-immediately-when-typing
    │   ├── tests-test_snippets.lua---Session---linked-tabstops---are-updated-immediately-when-typing-002
    │   ├── tests-test_snippets.lua---Session---linked-tabstops---are-updated-immediately-when-typing-003
    │   ├── tests-test_snippets.lua---Session---linked-tabstops---jumps-to-the-first-node
    │   ├── tests-test_snippets.lua---Session---linked-tabstops---jumps-to-the-first-node-002
    │   ├── tests-test_snippets.lua---Session---linked-tabstops---jumps-to-the-first-node-003
    │   ├── tests-test_snippets.lua---Session---linked-tabstops---validates-that-session-data-is-valid
    │   ├── tests-test_snippets.lua---Session---linked-tabstops---validates-that-session-data-is-valid-002
    │   ├── tests-test_snippets.lua---Session---nesting---can-be-done-outside-of-current-session-region
    │   ├── tests-test_snippets.lua---Session---nesting---does-not-nest-if-no-tabstops-in-new-session
    │   ├── tests-test_snippets.lua---Session---nesting---works-and-triggers-events
    │   ├── tests-test_snippets.lua---Session---nesting---works-and-triggers-events-002
    │   ├── tests-test_snippets.lua---Session---nesting---works-and-triggers-events-003
    │   ├── tests-test_snippets.lua---Session---nesting---works-and-triggers-events-004
    │   ├── tests-test_snippets.lua---Session---nesting---works-and-triggers-events-005
    │   ├── tests-test_snippets.lua---Session---persists-after-`-edit`
    │   ├── tests-test_snippets.lua---Session---preserves-order-of-'squashed'-empty-tabstops
    │   ├── tests-test_snippets.lua---Session---preserves-order-of-'squashed'-empty-tabstops-002
    │   ├── tests-test_snippets.lua---Session---preserves-order-of-'squashed'-empty-tabstops-003
    │   ├── tests-test_snippets.lua---Session---preserves-order-of-'squashed'-empty-tabstops-004
    │   ├── tests-test_snippets.lua---Session---preserves-order-of-'squashed'-empty-tabstops-005
    │   ├── tests-test_snippets.lua---Tricky-snippets---intertwined-nested-tabstops
    │   ├── tests-test_snippets.lua---Tricky-snippets---intertwined-nested-tabstops-002
    │   ├── tests-test_snippets.lua---Tricky-snippets---intertwined-nested-tabstops-003
    │   ├── tests-test_snippets.lua---Tricky-snippets---intertwined-nested-tabstops-004
    │   ├── tests-test_snippets.lua---Tricky-snippets---intertwined-nested-tabstops-005
    │   ├── tests-test_snippets.lua---Tricky-snippets---intertwined-nested-tabstops-006
    │   ├── tests-test_snippets.lua---Tricky-snippets---nested-empty-tabstops
    │   ├── tests-test_snippets.lua---Tricky-snippets---nested-empty-tabstops,-another
    │   ├── tests-test_snippets.lua---Tricky-snippets---nested-empty-tabstops,-another-002
    │   ├── tests-test_snippets.lua---Tricky-snippets---nested-empty-tabstops,-another-003
    │   ├── tests-test_snippets.lua---Tricky-snippets---nested-empty-tabstops,-another-004
    │   ├── tests-test_snippets.lua---Tricky-snippets---nested-empty-tabstops,-another-005
    │   ├── tests-test_snippets.lua---Tricky-snippets---nested-empty-tabstops,-another-006
    │   ├── tests-test_snippets.lua---Tricky-snippets---nested-empty-tabstops-002
    │   ├── tests-test_snippets.lua---Tricky-snippets---nested-empty-tabstops-003
    │   ├── tests-test_snippets.lua---Tricky-snippets---nested-empty-tabstops-004
    │   ├── tests-test_snippets.lua---Tricky-snippets---nested-empty-tabstops-005
    │   ├── tests-test_snippets.lua---Tricky-snippets---nested-empty-tabstops-006
    │   ├── tests-test_snippets.lua---Tricky-snippets---squashed-linked-empty-consecutive-tabstops
    │   ├── tests-test_snippets.lua---Tricky-snippets---squashed-linked-empty-consecutive-tabstops-002
    │   ├── tests-test_snippets.lua---Tricky-snippets---squashed-linked-empty-consecutive-tabstops-003
    │   ├── tests-test_snippets.lua---Tricky-snippets---squashed-linked-empty-consecutive-tabstops-004
    │   ├── tests-test_snippets.lua---Tricky-snippets---squashed-linked-empty-consecutive-tabstops-005
    │   ├── tests-test_snippets.lua---Tricky-snippets---squashed-linked-empty-interleaving-tabstops
    │   ├── tests-test_snippets.lua---Tricky-snippets---squashed-linked-empty-interleaving-tabstops-002
    │   ├── tests-test_snippets.lua---Tricky-snippets---squashed-linked-empty-interleaving-tabstops-003
    │   ├── tests-test_snippets.lua---Tricky-snippets---squashed-linked-empty-interleaving-tabstops-004
    │   ├── tests-test_snippets.lua---Tricky-snippets---squashed-linked-empty-interleaving-tabstops-005
    │   ├── tests-test_snippets.lua---Tricky-snippets---squashed-linked-tabstops-with-placeholders
    │   ├── tests-test_snippets.lua---Tricky-snippets---squashed-linked-tabstops-with-placeholders-002
    │   ├── tests-test_snippets.lua---Tricky-snippets---squashed-linked-tabstops-with-placeholders-003
    │   ├── tests-test_snippets.lua---Various-snippets---placeholders
    │   ├── tests-test_snippets.lua---Various-snippets---placeholders-002
    │   ├── tests-test_snippets.lua---Various-snippets---placeholders-003
    │   ├── tests-test_snippets.lua---Various-snippets---placeholders-004
    │   ├── tests-test_snippets.lua---Various-snippets---placeholders-005
    │   ├── tests-test_snippets.lua---Various-snippets---placeholders-006
    │   ├── tests-test_snippets.lua---Various-snippets---placeholders-007
    │   ├── tests-test_snippets.lua---Various-snippets---tabstop
    │   ├── tests-test_snippets.lua---Various-snippets---tabstop-002
    │   ├── tests-test_snippets.lua---default_insert()---respects-`opts.empty_tabstop`-and-`opts.empty_tabstop_final`
    │   ├── tests-test_snippets.lua---default_insert()---respects-`opts.lookup`
    │   ├── tests-test_snippets.lua---session.stop()---ensures-next-nested-session-is-valid
    │   ├── tests-test_snippets.lua---session.stop()---works
    │   ├── tests-test_snippets.lua---session.stop()---works-002
    │   ├── tests-test_snippets.lua---session.stop()---works-003
    │   ├── tests-test_starter.lua---Default-content---'Recent-files'-section---displays-only-readable-files
    │   ├── tests-test_starter.lua---Default-content---'Recent-files'-section---present-even-if-no-recent-files
    │   ├── tests-test_starter.lua---Default-content---'Sessions'-section---present-even-if-no-sessions-detected
    │   ├── tests-test_starter.lua---Default-content---'Sessions'-section---works
    │   ├── tests-test_starter.lua---Default-content---computes-`header`-depending-on-time-of-day---test-+-args-{-'00'-}
    │   ├── tests-test_starter.lua---Default-content---computes-`header`-depending-on-time-of-day---test-+-args-{-'04'-}
    │   ├── tests-test_starter.lua---Default-content---computes-`header`-depending-on-time-of-day---test-+-args-{-'08'-}
    │   ├── tests-test_starter.lua---Default-content---computes-`header`-depending-on-time-of-day---test-+-args-{-'12'-}
    │   ├── tests-test_starter.lua---Default-content---computes-`header`-depending-on-time-of-day---test-+-args-{-'16'-}
    │   ├── tests-test_starter.lua---Default-content---computes-`header`-depending-on-time-of-day---test-+-args-{-'20'-}
    │   ├── tests-test_starter.lua---Default-content---works
    │   ├── tests-test_starter.lua---Highlighting---uses-`MiniStarterItemBullet`
    │   ├── tests-test_starter.lua---Highlighting---uses-`MiniStarterItemBullet`-002
    │   ├── tests-test_starter.lua---Highlighting---works-for-current-item
    │   ├── tests-test_starter.lua---Highlighting---works-for-current-item-002
    │   ├── tests-test_starter.lua---Highlighting---works-for-querying
    │   ├── tests-test_starter.lua---Highlighting---works-for-querying-002
    │   ├── tests-test_starter.lua---Highlighting---works-for-querying-003
    │   ├── tests-test_starter.lua---Querying---works-with-`cmdheight=0`
    │   ├── tests-test_starter.lua---Resize---updates-Starter-buffer
    │   ├── tests-test_starter.lua---gen_hook---adding_bullet()---respects-`bullet`-argument
    │   ├── tests-test_starter.lua---gen_hook---adding_bullet()---works
    │   ├── tests-test_starter.lua---gen_hook---aligning()---handles-small-windows
    │   ├── tests-test_starter.lua---gen_hook---aligning()---has-output-respecting-`buf_id`-argument
    │   ├── tests-test_starter.lua---gen_hook---aligning()---has-output-respecting-`buf_id`-argument-002
    │   ├── tests-test_starter.lua---gen_hook---aligning()---respects-arguments---test-+-args-{-''center',-'bottom''-}
    │   ├── tests-test_starter.lua---gen_hook---aligning()---respects-arguments---test-+-args-{-''center',-'center''-}
    │   ├── tests-test_starter.lua---gen_hook---aligning()---respects-arguments---test-+-args-{-''center',-'top''-}
    │   ├── tests-test_starter.lua---gen_hook---aligning()---respects-arguments---test-+-args-{-''left',-'bottom''-}
    │   ├── tests-test_starter.lua---gen_hook---aligning()---respects-arguments---test-+-args-{-''left',-'center''-}
    │   ├── tests-test_starter.lua---gen_hook---aligning()---respects-arguments---test-+-args-{-''left',-'top''-}
    │   ├── tests-test_starter.lua---gen_hook---aligning()---respects-arguments---test-+-args-{-''right',-'bottom''-}
    │   ├── tests-test_starter.lua---gen_hook---aligning()---respects-arguments---test-+-args-{-''right',-'center''-}
    │   ├── tests-test_starter.lua---gen_hook---aligning()---respects-arguments---test-+-args-{-''right',-'top''-}
    │   ├── tests-test_starter.lua---gen_hook---aligning()---works
    │   ├── tests-test_starter.lua---gen_hook---indexing()---respects-arguments---test-+-args-{-''all',-nil'-}
    │   ├── tests-test_starter.lua---gen_hook---indexing()---respects-arguments---test-+-args-{-''section',-nil'-}
    │   ├── tests-test_starter.lua---gen_hook---indexing()---respects-arguments---test-+-args-{-'nil,-{-'AAA'-}'-}
    │   ├── tests-test_starter.lua---gen_hook---indexing()---respects-arguments---test-+-args-{-'nil,-{}'-}
    │   ├── tests-test_starter.lua---gen_hook---indexing()---works
    │   ├── tests-test_starter.lua---gen_hook---padding()---respects-arguments---test-+-args-{-'0,-2'-}
    │   ├── tests-test_starter.lua---gen_hook---padding()---respects-arguments---test-+-args-{-'2,-0'-}
    │   ├── tests-test_starter.lua---gen_hook---padding()---respects-arguments---test-+-args-{-'2,-2'-}
    │   ├── tests-test_starter.lua---gen_hook---padding()---works
    │   ├── tests-test_starter.lua---get_content()---works
    │   ├── tests-test_starter.lua---open()---respects-`vim.b.ministarter_config`
    │   ├── tests-test_starter.lua---refresh()---respects-`config.silent`
    │   ├── tests-test_starter.lua---refresh()---respects-`config.silent`-002
    │   ├── tests-test_starter.lua---refresh()---respects-`vim.b.ministarter_config`
    │   ├── tests-test_starter.lua---refresh()---respects-`vim.b.ministarter_config`-002
    │   ├── tests-test_starter.lua---sections---recent_files()---correctly-identifies-files-from-current-directory
    │   ├── tests-test_starter.lua---sections---recent_files()---respects-`show_path`
    │   ├── tests-test_starter.lua---sections---recent_files()---respects-files-in-subdirectories
    │   ├── tests-test_starter.lua---sections---works
    │   ├── tests-test_statusline.lua---Default-content---active---test-+-args-{-120-}
    │   ├── tests-test_statusline.lua---Default-content---active---test-+-args-{-39-}
    │   ├─

================================================
FILE CONTENTS
================================================

================================================
FILE: .github/DISCUSSION_TEMPLATE/q-a.yml
================================================
labels: [question]
body:
  - type: checkboxes
    id: guidelines
    attributes:
      label: Contributing guidelines
      options:
      - label: I have read [CODE_OF_CONDUCT.md](https://github.com/nvim-mini/mini.nvim/blob/main/CODE_OF_CONDUCT.md)
        required: true
  - type: dropdown
    id: module
    attributes:
      label: "Module(s)"
      description: "Choose one or several modules this question is related to"
      multiple: true
      options:
        - mini.ai
        - mini.align
        - mini.animate
        - mini.base16
        - mini.basics
        - mini.bracketed
        - mini.bufremove
        - mini.clue
        - mini.cmdline
        - mini.colors
        - mini.comment
        - mini.completion
        - mini.cursorword
        - mini.deps
        - mini.diff
        - mini.doc
        - mini.extra
        - mini.files
        - mini.fuzzy
        - mini.git
        - mini.hipatterns
        - mini.hues
        - mini.icons
        - mini.indentscope
        - mini.jump
        - mini.jump2d
        - mini.keymap
        - mini.map
        - mini.misc
        - mini.move
        - mini.notify
        - mini.operators
        - mini.pairs
        - mini.pick
        - mini.sessions
        - mini.snippets
        - mini.splitjoin
        - mini.starter
        - mini.statusline
        - mini.surround
        - mini.tabline
        - mini.test
        - mini.trailspace
        - mini.visits
        - none of the above
        - all of the above
    validations:
      required: true
  - type: textarea
    id: description
    attributes:
      label: "Question"
    validations:
      required: true



================================================
FILE: .github/ISSUE_TEMPLATE/bug-report.yml
================================================
name: Bug report
description: Report a problem with the existing module(s)
labels: [bug]
body:
  - type: checkboxes
    id: guidelines
    attributes:
      label: Contributing guidelines
      options:
      - label: I have read [CONTRIBUTING.md](https://github.com/nvim-mini/mini.nvim/blob/main/CONTRIBUTING.md)
        required: true
      - label: I have read [CODE_OF_CONDUCT.md](https://github.com/nvim-mini/mini.nvim/blob/main/CODE_OF_CONDUCT.md)
        required: true
      - label: I have updated 'mini.nvim' to latest version of the `main` branch
        required: true
  - type: dropdown
    id: module
    attributes:
      label: "Module(s)"
      description: "Choose one or several modules the problem is related to"
      multiple: true
      options:
        - mini.ai
        - mini.align
        - mini.animate
        - mini.base16
        - mini.basics
        - mini.bracketed
        - mini.bufremove
        - mini.clue
        - mini.cmdline
        - mini.colors
        - mini.comment
        - mini.completion
        - mini.cursorword
        - mini.deps
        - mini.diff
        - mini.doc
        - mini.extra
        - mini.files
        - mini.fuzzy
        - mini.git
        - mini.hipatterns
        - mini.hues
        - mini.icons
        - mini.indentscope
        - mini.jump
        - mini.jump2d
        - mini.keymap
        - mini.map
        - mini.misc
        - mini.move
        - mini.notify
        - mini.operators
        - mini.pairs
        - mini.pick
        - mini.sessions
        - mini.snippets
        - mini.splitjoin
        - mini.starter
        - mini.statusline
        - mini.surround
        - mini.tabline
        - mini.test
        - mini.trailspace
        - mini.visits
    validations:
      required: true
  - type: dropdown
    id: nvim-version
    attributes:
      label: "Neovim version"
      description: "Choose the latest Neovim version on which you can reproduce the problem"
      multiple: false
      options:
        - 0.9.x
        - 0.10.x
        - 0.11.x
        - 0.12 (!at least latest Nightly build!)
      default: 2
    validations:
      required: true
  - type: textarea
    id: description
    attributes:
      label: "Description"
      description: "A short description of a problem; include expected behavior"
    validations:
      required: true
  - type: textarea
    id: reproduction
    attributes:
      label: "Reproduction"
      description: "Steps to reproduce the issue. Suggested steps involve creating an independent config from scratch. If can not reproduce like this, please ask a usage question first."
      value: |
        1. Create separate 'nvim-repro' config directory:
            - '~/.config/nvim-repro/' on Unix
            - '~/AppData/Local/nvim-repro/' on Windows

        2. Inside 'nvim-repro' directory create a file named 'init.lua'.
           Populate it with the following content:

            ```lua
            -- Clone latest 'mini.nvim' (requires Git CLI installed)
            vim.cmd('echo "Installing `mini.nvim`" | redraw')
            local mini_path = vim.fn.stdpath('data') .. '/site/pack/deps/start/mini.nvim'
            local clone_cmd = { 'git', 'clone', '--depth=1', 'https://github.com/nvim-mini/mini.nvim', mini_path }
            vim.fn.system(clone_cmd)
            vim.cmd('echo "`mini.nvim` is installed" | redraw')

            -- Make sure 'mini.nvim' is available
            vim.cmd('packadd mini.nvim')
            require('mini.deps').setup()

            -- Add extra setup steps needed to reproduce the behavior
            -- Use `MiniDeps.add('user/repo')` to install another plugin from GitHub
            ```

        3. Run `NVIM_APPNAME=nvim-repro nvim` (i.e. execute `nvim` with `NVIM_APPNAME` environment variable set to "nvim-repro").
           Wait for all dependencies to install.

        4. Replace this with description of interactive reproduction steps along with the behavior you observe.
           Feel free to include images/videos/etc, this helps a lot.

        <details><summary>What to do after reporting an issue</summary>

        After reporting the issue, it is safe (and even recommended for cleaner possible future bug reports) to remove 'nvim-repro' config from the system:
        - Delete config directory ('~/.config/nvim-repro' on Unix).
        - Delete data directory ('~/.local/share/nvim-repro' on Unix).
        - Delete state directory ('~/.local/state/nvim-repro' on Unix).

        </details>
    validations:
      required: true


================================================
FILE: .github/ISSUE_TEMPLATE/config.yml
================================================
blank_issues_enabled: false
contact_links:
  - name: Question
    url: https://github.com/nvim-mini/mini.nvim/discussions/new?category=q-a
    about: Ask about configuration and usage of 'mini.nvim'


================================================
FILE: .github/ISSUE_TEMPLATE/feature-request.yml
================================================
name: Feature request
description: Describe a new feature you would like to see
labels: [feature-request]
body:
  - type: checkboxes
    id: guidelines
    attributes:
      label: Contributing guidelines
      options:
      - label: I have read [CONTRIBUTING.md](https://github.com/nvim-mini/mini.nvim/blob/main/CONTRIBUTING.md)
        required: true
      - label: I have read [CODE_OF_CONDUCT.md](https://github.com/nvim-mini/mini.nvim/blob/main/CODE_OF_CONDUCT.md)
        required: true
  - type: dropdown
    id: module
    attributes:
      label: "Module(s)"
      description: "Choose one or several modules this feature is related to. Choose 'new' for a new module suggestion."
      multiple: true
      options:
        - mini.ai
        - mini.align
        - mini.animate
        - mini.base16
        - mini.basics
        - mini.bracketed
        - mini.bufremove
        - mini.clue
        - mini.cmdline
        - mini.colors
        - mini.comment
        - mini.completion
        - mini.cursorword
        - mini.deps
        - mini.diff
        - mini.doc
        - mini.extra
        - mini.files
        - mini.fuzzy
        - mini.git
        - mini.hipatterns
        - mini.hues
        - mini.icons
        - mini.indentscope
        - mini.jump
        - mini.jump2d
        - mini.keymap
        - mini.map
        - mini.misc
        - mini.move
        - mini.notify
        - mini.operators
        - mini.pairs
        - mini.pick
        - mini.sessions
        - mini.snippets
        - mini.splitjoin
        - mini.starter
        - mini.statusline
        - mini.surround
        - mini.tabline
        - mini.test
        - mini.trailspace
        - mini.visits
        - new
    validations:
      required: true
  - type: textarea
    id: description
    attributes:
      label: "Description"
      description: "A concise and justified description of a feature"
    validations:
      required: true


================================================
FILE: .github/PULL_REQUEST_TEMPLATE.md
================================================
- [ ] I have read [CONTRIBUTING.md](https://github.com/nvim-mini/mini.nvim/blob/main/CONTRIBUTING.md)
- [ ] I have read [CODE_OF_CONDUCT.md](https://github.com/nvim-mini/mini.nvim/blob/main/CODE_OF_CONDUCT.md)


================================================
FILE: .github/workflows/quality-control.yml
================================================
name: Quality Control

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:
  detect-changes:
    name: Detect changes
    runs-on: ubuntu-latest
    outputs:
      code: ${{ steps.filter.outputs.code }}

    steps:
      - uses: actions/checkout@v4

      - uses: dorny/paths-filter@v3
        id: filter
        with:
          filters: |
            code:
              - 'colors/**'
              - 'lua/**'
              - 'tests/**'
              - 'scripts/minimal_init.lua'
              - '.github/workflows/**'

  test:
    name: Test
    # Run only if testable code has changed (to save time and resources)
    needs: detect-changes
    if: ${{ needs.detect-changes.outputs.code == 'true' }}
    timeout-minutes: 15
    strategy:
      fail-fast: false
      matrix:
        os: [ ubuntu-latest ]
        neovim_version: [ 'v0.9.5', 'v0.10.4', 'v0.11.5', 'nightly' ]
        include:
        - os: macos-latest
          neovim_version: v0.11.5
        - os: windows-latest
          neovim_version: v0.11.5
    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

  lint-gendoc:
    name: Lint document generation
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v4

      - name: Install Neovim
        uses: rhysd/action-setup-vim@v1
        with:
          neovim: true
          version: v0.11.5

      - name: Generate documentation
        run: make --silent documentation

      - name: Check for changes
        run: if [[ -n $(git status -s) ]]; then exit 1; fi

  lint-formatting:
    name: Lint formatting
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v4

      - uses: JohnnyMorganz/stylua-action@v4
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          version: v2.1.0
          # CLI arguments
          args: --color always --respect-ignores --check .

  lint-commit:
    name: Lint new commits
    runs-on: ubuntu-latest
    env:
      LINTCOMMIT_STRICT: true

    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0
          ref: ${{ github.event.pull_request.head.sha || github.ref }}

      - name: Install Neovim
        uses: rhysd/action-setup-vim@v1
        with:
          neovim: true
          version: v0.11.5

      - name: Lint new commits
        run: make --silent lintcommit-ci

  lint-filename:
    name: Lint filenames
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v4

      - name: Check filename legnths
        run: make --silent lint-filename-length-ci

      - name: Check case sensitivity
        uses: credfeto/action-case-checker@v1.2.1

  check-workflow-status:
    name: Check workflow status
    runs-on: ubuntu-latest
    needs: [ test, lint-gendoc, lint-formatting, lint-commit, lint-filename ]
    if: always()

    steps:
      - name: Check workflow status
        run: |
          exit_on_result() {
            if [[ "$2" == "failure" || "$2" == "cancelled" ]]; then
              echo "Job '$1' failed or was cancelled."
              exit 1
            fi
          }
          exit_on_result "test" "${{ needs.test.result }}"
          exit_on_result "lint-gendoc" "${{ needs.lint-gendoc.result }}"
          exit_on_result "lint-formatting" "${{ needs.lint-formatting.result }}"
          exit_on_result "lint-commit" "${{ needs.lint-commit.result }}"
          exit_on_result "lint-filename" "${{ needs.lint-filename.result }}"


================================================
FILE: .gitignore
================================================
doc/tags
dual
.nvim.lua
Session.vim


================================================
FILE: .pre-commit-config.yaml
================================================
repos:
  - repo: local
    hooks:
      - id: stylua
        name: StyLua
        language: system
        entry: stylua
        args: [--respect-ignores]
        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']


================================================
FILE: .stylua.toml
================================================
column_width = 120
line_endings = "Unix"
indent_type = "Spaces"
indent_width = 2
quote_style = "AutoPreferSingle"
call_parentheses = "Always"
collapse_simple_statement = "Always"


================================================
FILE: .styluaignore
================================================
dual


================================================
FILE: CHANGELOG.md
================================================
This is the log of changes for past and current development versions. It lists changes in user-facing functionality per module (or all modules) and type.

There are following change types:

- `Evolve` - change in previously intended functionality *while* adding a new one.
- `Refine` - change in previously intended functionality *without* adding new one. This is usually described as a "breaking change", but used here in a sense that it might break user's expectations about existing functionality.
- `Expand` - adding new functionality without affecting existing ones. This is essentially new features.

# Version 0.18.0-dev

## mini.base16

### Expand

- Add new plugin integrations:
    - 'folke/snacks.nvim'

## mini.clue

### Expand

- Allow mode arrays for clues and triggers for parity with `modes` parameter of `vim.keymap.set`. By @pkazmier, PR #2202.

## mini.extra

### Expand

- Add `pickers.manpages` picker.

## mini.hues

### Expand

- Add new plugin integrations:
    - 'folke/snacks.nvim'

## mini.jump

### Evolve

- Make dot-repeat behave exactly as in clean Neovim, i.e. make it less interfere with regular jumping. This allows doing something like `dte` -> `fx` -> `.` to perform `dte` again and not `dfx` (which is the latest regular jumping state). By @abeldekat, PR #2284.

## mini.misc

### Evolve

- Update `setup_termbg_sync()` to use OSC 111 control sequence to reset terminal emulator's background color. This provides a more robust behavior across platforms (like `tmux`).

    The previous "reset by explicitly setting initial background color" behavior is available by setting the new `opts.explicit_reset` option to `true`.

### Expand

- Add `safely()` to execute a function reporting its possible error as warning. It can also postpone execution until certain condition (like event, fixed delay, etc.).

    It is intended to be a future replacement for `MiniDeps.now()` and `MiniDeps.later()`.

## mini.pairs

### Refine

- Update neighborhood patterns for default mappings to work better with multibyte characters. Their meaning is the same, just the form is adjusted to be more versatile.

## mini.pick

### Expand

- Allow `source.preview` to directly set another buffer into picker's main window. The recommended way is still to adjust the provided `buf_id` buffer, but there is now a workaround if this is not reasonably possible.

### Refine

- Stop forcing redraw every `config.delay.async` milliseconds while the picker is active. It added visible CPU usage and code/test lines for its benefit (mostly to show "background" changes/notifications).

    One side effect of this is that previews with an asynchronous highlighting (like after `vim.treesitter.start()`) might require extra care. There are built-in several (but limited) number of explicit `:redraw` with `config.delay.async` milliseconds apart. If that is not enough, make sure to explicitly redraw when needed.

## mini.surround

### Expand

- Create Visual and Operator-pending mode mappings for `find` and `find_left` actions.

## mini.test

### Refine

- Update `expect.error` and `expect.no_error` to not accept extra arguments for tested function. It will mostly work until the next 'mini.nvim' release, but not after that.

    Use them explicitly inside anonymous function: `expect.error(f, "", 1, 2)` -> `expect.error(function() f(1, 2) end, "")` and `expect.no_error(f, 1, 2)` -> `expect.no_error(function() f(1, 2) end)`.

    Sorry for the inconvenience.

- Update all built-in reporters (`gen_reporter.buffer` and `gen_reporter.stdout`) to first show all fails followed by all notes. This makes it easier to find failed cases when there are many notes (like from `MiniTest.skip()`).

### Expand

- Update all `MiniTest.expect` expectations to allow customization of failure reason instead of default "Failed expectation for ...". This also consistently introduces `opts` last argument.

- Update `MiniTest.expect.equality` to show more detailed cause of failed equality. Like which character is different in two string or which values are different in two tables and at what key branch.


# Version 0.17.0

## All

### Evolve

- Move repository hosting from personal 'echasnovski' GitHub account to the 'nvim-mini' organization. All `git pull` and `git clone` should be automatically redirected from previous to new locations without breaking user configurations. Yet updating source links to point to new locations (like `'echasnovski/mini.nvim'` -> `'nvim-mini/mini.nvim'` and standalone repos) is recommended.

    This change is made to improve long term project stability. See more details [here](https://github.com/nvim-mini/mini.nvim/discussions/1970).

- Start setting custom Neovim method implementation during `setup()` (if module provides one). This is usually the expected behavior for majority of use cases and should improve "out of the box" experience. Modules should still export a function to manually adjust the implementation.

    It is a breaking change only if the implementation was not explicitly used. Can still be done if set or restored *after* calling module's `setup()`.

    Affected modules:

    - 'mini.notify' sets `vim.notify`.
    - 'mini.pick' sets `vim.ui.select`.

### Refine

- Stop official support of Neovim 0.8.

### Expand

- Add new bundled color schemes based on 'mini.hues':
    - `miniwinter`: "icy winter" palette with azure background.
    - `minispring`: "blooming spring" palette with green background.
    - `minisummer`: "hot summer" palette with brown/yellow background.
    - `miniautumn`: "cooling autumn" palette with purple background.

## mini.ai

### Refine

- Update `gen_spec.treesitter()` to have `use_nvim_treesitter = false` as default option value (instead of `true`). It used to implement more advanced behavior, but as built-in `vim.treesitter` is capable enough, there is no need in extra dependency. The option will be removed after the release.

### Expand

- Add `gen_spec.user_prompt` that acts the same as `?` built-in textobject. It can be used for using this textobject under another identifier.

## mini.basics

### Refine

- Change default value of `options.win_border` to be `'auto'`.

### Expand

- Update `options.win_border` to allow value `'auto'` which infers target 'fillchars' values from 'winborder' option.

## mini.colors

- Update `add_transparency()` color scheme method to adjust more groups:
    - `XxxMsg` groups in case of `opts.general = true`.
    - `DiagnosticSignXxx` groups in case of `opts.statuscolumn = true`.

## mini.completion

### Evolve

- Update `setup()` to remove "t" flag from 'complete' option (if not previously set and fallback action is default) as it leads to visible lags.

### Expand

- Add `MiniCompletionWindowOpen` and `MiniCompletionWindowUpdate` events.

- Add support for highlighting LSP item label via setting `abbr_hlgroup` field as part of an LSP item (like inside `config.lsp_completion.process_items`).

## mini.clue

### Evolve

- Use current query clue (if not immediately after trigger) as a window title instead of showing keys verbatim. This shows extra context when navigating through mappings.

### Expand

- Add `gen_clues.square_brackets` to generate clues for `[` and `]` keys. By @TheLeoP, PR #1937.

- Ensure triggers for 'mini.starter' buffers, but not override its query updaters (like for "g" and "z" triggers).

## mini.cmdline

- Introduction of a new module.

## mini.diff

### Expand

- Add support for working with files containing BOM bytes.

## mini.doc

### Refine

- Update default `write_pre` hook to remove `===` and `---` delimiters from the top of the file to better comply with `:h local-additions`.

## mini.extra

### Expand

- Add `pickers.colorschemes` picker. By @pkazmier, PR #1789.

- Add `workspace_symbol_live` scope to `pickers.lsp` picker. It allows searching for LSP symbols in the workspace with live feedback. Relates to `workspace_symbol` scope similarly to how `MiniPick.builtin.grep_live()` relates to `MiniPick.builtin.grep()`.

- Add `<C-e>` mapping for `pickers.history` picker to edit commands or searches in cmdline. By @TheLeoP, PR #1960.

## mini.files

### Evolve

- Allow appending `/` to a file name to mean "delete file" + "create directory". This is useful when initial intention was to create a directory but there was no `/` at the end.

### Refine

- Ensure preview window is never hidden, even if cursor is on the line for a not (yet) existing file system entry. This reduces flickering of preview window when creating new files in Insert mode.

### Expand

- Add `config.content.highlight` to customize how file system entry is highlighted. Defaults to a new `default_highlight()` function.

## mini.hues

### Evolve

- Add auto adjusting of highlight groups based on certain events. It can be disabled via new `autoadjust` config setting or `opts.autoadjust` in `apply_palette()`. Affected groups:
    - `MsgSeparator` depends on `msgsep` flag of 'fillchars' option.
    - `Pmenu` depends on 'pumborder' option value (on Neovim>=0.12).

### Refine

- Make black (0 and 8) and white (7 and 15) colors for built-in terminal different from regular background and foreground. This improves color coverage and does not affect default uncolored text (it is highlighted as `Normal`).

### Expand

- Add `get_palette()` function.

## mini.jump

### Expand

- Trigger dedicated events during steps of jumping life cycle. See `:h MiniJump-events`.

## mini.jump2d

### Evolve

- Update `builtin_opts.word_start` to use built-in notion of "keyword" (see `:h 'iskeyword'`) when computing word start.

### Refine

- Move `gen_xxx_spotter` into separate `gen_spotter` table for consistency with other modules:
    - `gen_pattern_spotter` -> `gen_spotter.pattern`
    - `gen_union_spotter` -> `gen_spotter.union`

    The `gen_xxx_spotter` functions will work (with warning) until at least next release.

- Not focusable windows are now ignored when computing jump spots.

### Expand

- Add `gen_spotter.vimpattern()` that can generate spotter based on Vimscript (not Lua) pattern.

## mini.map

### Expand

- Update `gen_integration.builtin_search()` to react to change of `v:hlsearch`.

## mini.misc

### Expand

- Update `zoom()` to return whether current buffer is zoomed in. By @loichyan, PR #1954.

- Add `log_add()` and related functions (`log_get()`, `log_show()`, `log_clear()`) to work with a special in-memory log array. Useful when debugging Lua code (instead of `print()`).

## mini.pick

### Evolve

- Pickers `grep` and `grep_live` with `rg` tool now respect Neovim's `'ignorecase'` and `'smartcase'` options. This forces corresponding case matching flag (thus overriding global configuration) in favor of a more consistent user experience.

### Expand

- "Paste" action now supports special registers: `<C-w>` (word at cursor), `<C-a>` (WORD at cursor), `<C-l>` (line at cursor), `<C-f>` (filename at cursor).

- Key query process now respects most language mappings. By @yehorb, PR #2026.

## mini.sessions

### Refine

- Update `read()` to write currently read session only if `MiniSessions.config.autowrite` is set to `true`.

## mini.surround

### Evolve

- Stop creating `update_n_lines` mapping: it occupies "mapping real estate" while being rarely needed and straightforward to create manually using `MiniSurround.update_n_lines()`.

- Automatically map `s` key to `<Nop>` if the key is not already mapped and any of created mappings starts with it. This prevents accidental trigger of built-in `s` if there is a long delay between pressing "s" and the next key.

### Refine

- Update `gen_spec.inpuf.treesitter()` to have `use_nvim_treesitter = false` as default option value (instead of `true`). It used to implement more advanced behavior, but as built-in `vim.treesitter` is capable enough, there is no need in extra dependency. The option will be removed after the release.

## mini.test

### Refine

- Soft deprecate `ignore_lines` option in `expect.reference_screenshot()` in favor of more capable `ignore_text` and `ignore_attr` options. For example, `ignore_lines = { 1 }` is the same as supplying both `ignore_text = { 1 }` and `ignore_attr = { 1 }`.

    It will work at least until the next release, after which its support will be removed. Sorry for the inconvenience.

### Expand

- Update `expect.reference_screenshot()` to support separate ignoring of text and attribute screenshot data via new `ignore_text` and `ignore_attr` options.


# Version 0.16.0

## All

### Evolve

- Unify behavior of floating windows:
    - Truncate title/footer from left if it is too wide.
    - Set default title if window is allowed to have border.
    - Use single space padding for default title/footer.
    - Use 'single' as default window border in modules where it can be configured. On Neovim>=0.11 also respect non-empty 'winborder' option with lower precedence than explicitly configured value for the module.

- Unify how module-related buffers are named: `mini<module-name>://<buffer-number>/<useful-info>`. This structure allows creating identifiable, reasonably unique, and useful buffer names. This is a user facing change because in some cases the shown buffer's name will change (like in statusline of opened 'mini.starter' buffer or output of `:buffers!`).

- Stop forcing recommended option values behind `set_vim_settings` config setting. Instead set them automatically in `setup()`. If it is not essential, do so only if it was not set by user/plugin beforehand (no matter the value). Document this as a new general principle to be followed in the future. Affected modules:
    - 'mini.bufremove' (do nothing as recommended 'hidden' is on by default)
    - 'mini.completion' (conditionally set 'completeopt=menuone,noselect' and flags "c" in 'shortmess')
    - 'mini.statusline' (do nothing as recommended 'laststatus=2' is default)
    - 'mini.tabline' (unconditionally set 'showtabline=2', as it is essential to module's functinonality)

### Refine

- Soft deprecate support for Neovim 0.8. It will be fully stopped in next release.

## mini.ai

### Refine

- Visual textobject selection now puts the cursor on the right edge instead of left. This better aligns with the (undocumented) behavior of how built-in `a` / `i` textobjects work in Visual mode, as opposed to the (documented in `:h operator-resulting-pos`) behavior of how it is done after applying the operator.

### Expand

- Textobject identifier can now be any single character supported by `:h getcharstr()`. This also makes it possible to use characters outside of Latin alphanumeric and punctuation sets as `custom_textobjects` keys. Default textobject is extended to be anything but Latin letters (to fall back to `:h text-objects`).

- Update `gen_spec.treesitter()` to respect capture ranges specified by query directives (like `(#offset! @table.inner 0 1 0 -1)`).

## mini.base16

### Refine

- Update 'mini.pick' highlight groups to show prompt text with same colors as match ranges, as they are connected.

### Expand

- Add support for colored markdown headings.

- Add new plugin integrations:
    - 'ibhagwan/fzf-lua'
    - 'MeanderingProgrammer/render-markdown.nvim'
    - 'OXY2DEV/helpview.nvim'
    - 'OXY2DEV/markview.nvim'

## mini.colors

### Expand

- Update `convert()` to have `adjust_lightness` option which can be used to disable lightness adjustment (which is enabled by default for a more uniform progression from 0 to 100). This can be useful for output to be more consistent with other Oklab/Oklch implementations.

## mini.comment

### Expand

- Update textobject to respect `ignore_blank_line` option. Blank lines between commented lines are treated as part of a textobject.

## mini.completion

### Evolve

- Add snippet support. By default uses 'mini.snippets' to manage snippet session (if enabled, **highly recommended), falls back to `vim.snippet` on Neovim>=0.10. See "Snippets" section in `:h MiniCompletion` for more details.

    This affect existing functionality because items with `Snippet` kind are no longer filtered out by default.

- Rework how LSP completion items are converted to Neovim's completion items:
    - Show `detail` highlighted as buffer's language at the start of info window, but only if `detail` provides information not already present in `documentation`. It was previously used as extra text in the popup menu (via `menu` field), but this doesn't quite follow LSP specification: `detail` and `documentation` fields can be delayed up until `completionItem/resolve` request which implies they should be treated similarly.
    - Show `labelDetails` as a part of the popup menu via `menu` completion item field.

- Rework how information window is shown with the goal to reduce flickering during fast up/down navigation through completion candidates:
    - Do not close the window immediately after the move. Instead highlight border with `MiniCompletionInfoBorderOutdated` immediately while update window when its content is ready. Close the window only if no candidate is selected.
    - Show content of already visited/resolved candidate without delay.
    - Show default `-No-info-` text if there is no extra information about the candidate.

- Update behavior and capabilities of `default_process_items()`:
    - Add `filtersort` option to control how items are filtered and/or sorted. Its new default value has changed behavior: do fuzzy matching if 'completeopt' option contains "fuzzy" entry; same as before otherwise.
    - Add `kind_priority` option to allow arranging items by completion item kind (like "Variable", "Snippet", "Text", etc.) after applying `filtersort`. This allows finer filter and/or sort based on kind, like "put Variable on top, Snippet on bottom, remove Text".
    - Use `filterText` and `label` item fields during matching (instead of `textEdit.newText`, `insertText`, and `label` as before). This is more aligned with LSP specification.

### Refine

- Prefer in some cases to use `nil` as default config value with explicit fallback. This should not have any user facing effects and marked as breaking only because a structure of a default config has changed. Affected fields:
    - `lsp_completion.process_items` (use `default_process_items` as fallback) and `fallback_action` (use `'<C-n>'` as fallback). This makes it more aligned with other modules that usually avoid using function values in default config.
    - `window.info.border` and `window.signature.border` (use non-empty 'winborder' and `'single'` as fallback).

- Change default value of `MiniCompletionActiveParameter` highlight group to link to `LspSignatureActiveParameter` (instead of forcing underline).

- Call `lsp_completion.process_items` with an array of items from all buffer servers at once (and not for each server separately). This can be used for more elaborate filter/sort strategies.

### Expand

- Add scrolling in info and signature window. By default can be done with `<C-f>` / `<C-b>` when target window is shown. Can be configured via `mappings.scroll_down` and `mappings.scroll_up` config options.

- Respect `isIncomplete` in LSP completion response and immediately force new completion request on the next key press.

- Add support for context in 'textDocument/completion' request.

- Both info and signature help windows now use tree-sitter highlighting:
    - Info window uses "markdown" parser (works best on Neovim>=0.10 as its parser is built-in). Special markdown characters are concealed (i.e. hidden) which might result into seemingly unnecessary whitespace as dimensions are computed not accounting for that.
    - Signature help uses same parser as in current filetype.

- Update signature help without delay if it is already shown. This helps to keep signature help up to date after cursor jumps in Insert mode (like during snippet session).

- Add support for item defaults in `CompletionList` response.

- Add `get_lsp_capabilities()` that returns data about which part of LSP specification is supported in 'mini.completion'.

- Input items for `lsp_completion.process_items` now have `client_id` field with the identifier of the server that item came from. Use `vim.lsp.get_client_by_id()` to get an actual data about the server.

## mini.diff

### Expand

- The `config.source` can now be array of sources, which will be attempted to attach in order. Important for source's `attach` to either return `false` or call `MiniDiff.fail_attach()` (even not immediately) to signal that source has failed to attach to a particular buffer.

- Overlay virtual lines now scroll horizontally along with buffer lines. Requires Neovim>=0.11 and disabled 'wrap' option.

- Highlighting of buffer parts of change hunks can now be customized with these new highlight groups:
    - `MiniDiffOverChangeBuf` - changed buffer text. Previously used `MiniDiffOverChange` (for changed reference text); links to it by default.
    - `MiniDiffOverContextBuf` - context of a change shown in buffer overlay. Previously not highlighted, default highlight group is not created.

## mini.doc

### Expand

- FEATURE: improve detection and formatting for types in `@param`, `@return`, and similar.

## mini.fuzzy

### Refine

- Update `process_lsp_items()` to only use `filterText` and `label` item fields during fuzzy matching (instead of `textEdit.newText`, `insertText`, and `label` as before). This is more aligned with LSP specification.

- Treat empty `word` as matching any candidate (matched positions is empty array and score is -1). This behavior is usually more useful in practice.

## mini.hues

### Evolve

### Refine

- Update 'mini.pick' highlight groups to show prompt text with same colors as match ranges, as they are connected.

### Expand

- Add support for colored markdown headings.

- Add new plugin integrations:
    - 'ibhagwan/fzf-lua'
    - 'MeanderingProgrammer/render-markdown.nvim'
    - 'OXY2DEV/helpview.nvim'
    - 'OXY2DEV/markview.nvim'


## mini.keymap

### Expand

- Introduction of a new module.

## mini.notify

### Expand

- Add `lsp_progress.level` option to control level of LSP progress notifications.

- Add `MiniNotifyLspProgress` highlight group to be used for LSP progress notifications.

- Add `data` field to notification specification and as a new argument to `MiniNotify.add()`. It can be used to store any data relevant to the notification. For example, notifications from `make_notify()` output set `source` field to `'vim.notify'`, while notifications from LSP progress set `source` to `'lsp_progress'`.

## mini.operators

### Expand

- Update `setup()` to remap built-in `gx` Normal/Visual mode mappings (for opening an URI under cursor) to `gX` (if that is not already taken).

## mini.pairs

### Expand

- Update all actions to work with pairs containing multibyte characters (like "¿?", "「」", and similar).

## mini.pick

### Refine

- Rename `prompt_cursor` in `config.window` to `prompt_caret` for better naming consistency. It works for now, but will stop in the next release. Sorry for the inconvenience.

### Expand

- Add `MiniPickPromptCaret` and `MiniPickPromptPrefix` highlight groups to allow finer customization of picker's prompt.

- Update `get_picker_matches()` to return data (items and indexes) about currently shown items.

- Update `set_picker_match_inds()` to be able to set current match and marked items indexes.

## mini.snippets

### Expand

- Add `start_lsp_server()` to start specialized in-process LSP server to show loaded snippets inside (auto)completion engines (like 'mini.completion').

## mini.statusline

### Refine

- Function `section_fileinfo()` got several updates:
    - File size is now computed based on the current buffer text and not for file's saved version.
    - File info is now shown even for buffers with empty 'filetype'. It previously was treated as a sign of a "temporary buffer", but it might be a result of an unsuccessful filetype matching.

## mini.surround

### Expand

- Surrounding identifier can now be any single character supported by `:h getcharstr()`. This also makes it possible to use characters outside of Latin alphanumeric and punctuation sets as `custom_surroundings` keys.

- Update `gen_spec.input.treesitter()` to respect capture ranges specified by query directives (like `(#offset! @table.inner 0 1 0 -1)`).

## mini.tabline

### Expand

- Add support for showing special (truncation) characters at left and/or right if there are more tabs to the left and/or right. They are shown with the new `MiniTablineTrunc` highlight group in case 'list' option is enabled (i.e. user deliberately enabled similar functionality for windows). Exact characters are taken from 'listchars' option: `precedes` and `extends` fields.

- Labels for quickfix and location lists are now different.


# Version 0.15.0

## mini.align

### Expand

- Add built-in modifier for "|" character with aligning Markdown-like tables in mind.

## mini.animate

### Evolve

- Add `max_output_steps` option to `gen_path.line()` and `gen_path.angle()` to limit the number of steps the return. Default is 1000 to improve performance on large cursor jumps which also is set for `config.cursor.path`.

## mini.files

### Expand

- Closing and refreshing explorer now requires confirmation only if there are pending file system actions (and not in case of at least one modified buffer present).

- Confirming file system actions in `synchronize()` now can cancel synchronization (by pressing `c`) while keeping buffer contents the same. `synchronize()` also returns a boolean representing whether synchronization was done.

## mini.git

### Expand

- Git data is computed after resolving symlinks. This allows working with files symlinked into outside of Git repo. This behavior is the same as in 'mini.diff'.

## mini.hipatterns

### Refine

- Make `MiniHipatterns{Fixme,Hack,Todo,Note}` highlight groups by default be reverse and bold variant of `Diagnostic{Error,Warn,Info,Hint}` group instead of directly link to them. This ensures better visibility for color schemes which don't have explicit 'mini.hipatterns' support.

## mini.hues

### Expand

- Add `'lowmedium'` and `'mediumhigh'` saturation levels.

## mini.icons

### Expand

- Add distinctive glyphs and highlighting for special Neovim directories (from `:h 'runtimepath'`).

## mini.indentscope

### Evolve

- Add `options.n_lines` option to limit the scope computation (for better performance). It's default value is 10000 while previous behavior behavior had no restriction (as with `n_lines = math.huge`) which should matter only in very big scopes.

- Add `draw.predicate` configuration to customize whether the scope should be autodrawn. It's default value does not draw scope with incomplete computation (i.e. interrupted due to `options.n_lines` value), which should matter only in very big scopes.

## mini.notify

- FEATURE: `setup()` now also can be used to clean history (for example, like `MiniNotify.setup(MiniNotify.config)`).

## mini.pick

### Evolve

- Picker window now has local current directory set to source's `cwd`. This allows easier code for "in window" functions (callable items, choose, preview, etc.) as relative paths will be properly resolved. It also results in some changes:
    - Calling `set_picker_items_from_cli()` with active picker now resolves explicitly set to relative path `spawn_opts.cwd` against picker's `cwd` (and not against global current directory as was done previously).

### Expand

- Update `grep` and `grep_live` pickers to allow `globs` local option which restricts search to files that match any of its glob patterns (for example, `{ '*.lua', 'lua/**' }` will only search in Lua files and files in 'lua' directory). The `grep_live` picker also has custom `<C-o>` mapping to add globs interactively after picker is opened.

- Update `help` picker to have `default_split` local option which customizes split direction of `choose` action (`<CR>` by default).

- Update `ui_select()` to allow fourth argument `start_opts` to customize `MiniPick.start()` call.

- Add `MiniPickMatch` event triggered after updating query matches or setting items. Can be used, for example, to adjust window height based on current matches.

## mini.snippets

### Expand

- Introduction of a new module.

## mini.surround

### Refine

- Created mappings for `find`, `find_left`, and `highlight` are now *not* dot-repeatable. Dot-repeat should repeat last text change but neither of those actions change text. Having them dot-repeatable breaks the common "move cursor -> press dot" workflow. Initially making them dot-repeatable was a "you can but you should not" type of mistake.

## mini.test

### Evolve

- Now calling `skip()` in set's `pre_case` hook results in skipping all test cases in a set. Calling in other hooks has no effect. This enables a more structured skipping of all test cases inside a set. To skip inside hooks, use `add_note()` followed by `return`.

### Expand

- Add `n_retry` test set property. When set, each case will be tried that at most that many times until first success (if any).

- Add `hooks.pre_source` and `hooks.post_source` fields to collected cases. They can be either `'once'` or `'case'` and allow a more granular control over case execution.

- Function `finally()` now can be called several times inside a single function with callbacks executed in order of how they were registered.

- Update `expect.reference_screenshot()` to allow `directory` option pointing to a directory where automatically constructed reference path is located.


# Version 0.14.0

## All

### Evolve

- 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'.

### Refine

- Stop official support of Neovim 0.7.

### Expand

- Start automated testing on Windows and MacOS.

- Universally ensure that all plugin's highlight groups are defined after any color scheme takes effect.

## mini.base16

### Expand

- Add 'kevinhwang91/nvim-bqf' plugin integration.

## mini.completion

### Expand

- Add highlighting of LSP kind (like "Function", "Keyword", etc.). Works only on Neovim>=0.11. Requires enabled 'mini.icons' to work out of the box.

## mini.doc

### Evolve

- 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

### Refine

- Use "│" as line/position separator instead of ":". This aligns with changes in 'mini.pick' and makes line/position more easily visible.

### Expand

- Update `oldfiles` picker to have `current_dir` option which if `true` shows files only from picker's working directory. By @abeldekat, PR #997.

- Update `git_hunks`, `list`, and `lsp` pickers to 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.

- Update `buf_lines` and `oldfiles` pickers to have `preserve_order` local option, similar to `visit_paths` picker. Other possible candidates for this option are intentionally not updated to not increase maintenance (manually override `match` source method to call `MiniPick.default_match()` with `{ preserve_order = true }` options).

- Update `buf_lines` picker to pad line numbers to achieve more aligned look.

## mini.git

### Expand

- Update `show_at_cursor()` to include commit's statistics when showing commit.

- Update `show_at_cursor()` to show relevant at cursor commit data inside 'mini.deps' confirmation buffer.

## mini.hipatterns

### Evolve

- 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

### Expand

- Implement `apply_palette()` (to compliment `make_palette()`) providing a way to tweak applied palette before applying it.

- Add 'kevinhwang91/nvim-bqf' plugin integration.

## mini.files

### Evolve

### Refine

- Update how confirmation lines are computed:
    - Show create actions in the group directory where text manipulation took place. This matters during creating nested entries and is usually a more intuitive representation.
    - For delete show its type after the file name ("permanently" or "to trash") as an additional visual indication of delete type.
    - For create, copy and move prefer showing its "to" path relative to group directory.
    - Separate action name and paths with "│" (instead of ":") for better visual separation.
    - Don't enclose paths in quotes. Initially it was done to reliably show possible whitespace in paths, but inferring it from overall line structure should be good enough.

- Soft deprecate `get_target_window()` in favor of `get_explorer_state().target_window`. Will be completely removed after the next release.

### Expand

- Prefer using 'mini.icons' as icon provider.

- Implement bookmarks. With default config:
    - Type `m` followed by a single character `<char>` to set directory path of focused window as a bookmark with id `<char>`.
    - Type `'` followed by a bookmark id to make bookmark's path focused in explorer.
    - Use `MiniFiles.set_bookmark()` inside `MiniFilesExplorerOpen` event to set custom bookmarks.

- Make data for `MiniFilesActionDelete` contain `to` field in case of not permanent delete.

- Make file manipulation work better for special complex/overlapping cases (like delete 'file-a' and copy 'file-b' as 'file-a'). It is **still** a better idea to split overlapping manipulations into smaller and not related steps, as there *are* cases which won't work.

- Add `get_explorer_state()` to allow more reliable user customizations.

- Add `set_branch()` to allow to set what paths should be displayed and focused.

## mini.icons

### Expand

- Introduction of a new module.

## mini.misc

### Expand

- Implement `setup_termbg_sync()` to set up terminal background synchronization (removes possible "frame" around current Neovim instance). Works only on Neovim>=0.10.

## mini.pick

### Evolve

### Refine

- Update `default_match()` to have table `opts` as fourth argument (instead of boolean `do_sync`). Use `{ sync = true }` to run synchronously. The new design is more aligned with other functions and is more forward compatible.

- 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.

### Expand

- Prefer using 'mini.icons' as icon provider.

- Add `preserve_order` option to `default_match()` to allow asynchronous matching which preserves order (i.e. doesn't do sort step of fuzzy matching).

- Explicitly hide cursor when picker is active (instead of putting it in command line).

## mini.starter

### Refine

- Change filetype of Starter buffer from 'starter' to 'ministarter'. This is a more robust value and more aligned with other modules.

## mini.statusline

### Refine

- 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.

- The default `set_vim_settings` config value now does not affect `laststatus = 3` (aka global statusline).

### Expand

- Prefer using 'mini.icons' as icon provider for `section_fileinfo()`.

## mini.surround

### Refine

- 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

### Expand

- Prefer using 'mini.icons' as icon provider.

## mini.test

### Expand

- Make it work on Windows. By @cameronr, PR #1101.


# Version 0.13.0

## mini.comment

### Refine

- 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.

- 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.

### Expand

- Support dot-repeat after initial commenting is done for visual selection; repeating is done for same relative range.

## mini.deps

### Expand

- Add `MiniDepsMsgBreaking` highlight group for messages indicating a breaking change in a conventional commit style.

## mini.diff

### Expand

- Introduction of a new module.

## mini.files

### Expand

- Add new `MiniFilesExplorerOpen` and `MiniFilesExplorerClose` events.

## mini.git

### Expand

- Introduction of a new module.

## mini.hues

### Refine

- 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

### Expand

- Add `gen_integration.diff()` which highlights general diff hunks from 'mini.diff'.

## mini.pick

### Evolve

### Refine

- 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 ":".

- Update `builtin.files()` to use table items when string item might be ambiguous.

### Expand

- Respect general URI format for paths inside table items.

## mini.starter

### Refine

- Explicitly block all events in `open()` during startup for a better performance.

## mini.statusline

### Evolve

- Update `section_git()` to prefer using data from 'mini.git' with fallback on pure HEAD data from 'lewis6991/gistigns.nvim'.

- 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()`.

### Refine

- Update `section_diagnostics()` to depend 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".

### Expand

- Update `section_diagnostics()` to support `signs` table option to customize signs for severity levels.

- Add `section_diff()` to show data from 'mini.diff' with fallback on diff data from 'lewis6991/gistigns.nvim'.

- Add `section_lsp()` to show indicator of LSP servers attached to the buffer.

## mini.tabline

### Expand

- Implement `config.format` for custom label formatting.

## mini.test

### Refine

- 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

### Refine

- Remove `<C-z>` 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', '<C-z>', '[s1z=',                     { desc = 'Correct latest misspelled word' })
    vim.keymap.set('i', '<C-z>', '<C-g>u<Esc>[s1z=`]a<C-g>u', { desc = 'Correct latest misspelled word' })
    ```

### Expand

- 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.

- Set `termguicolors` only on Neovim<0.10, as later versions should have it on by default (if terminal emulator supports it).

## mini.comment

### Expand

- Hooks are now called with data about commenting action.

## mini.deps

### Expand

- Introduction of a new module.

## mini.doc

### Refine

- Stop using `:echo` to display messages and warnings in favor of `vim.notify()`.

- Update default `write_post` hook to not display current time in success message.

- Update to include space before `~` in generated section headings.

## mini.files

### Expand

- Update `go_in()` to have `close_on_file` option.

- Show warning if action is set to override existing path.

## mini.hues

### Refine

- Update verbatim text (`@text.literal` and `@markup.raw`) color to be distinctive instead of dimmed.

### Expand

- Add support for new standard tree-sitter captures on Neovim>=0.10 (see https://github.com/neovim/neovim/pull/27067).

## mini.misc

### Refine

- Update `bench_time()` to use `vim.loop.hrtime()` (as better designed for benchmarking) instead of `vim.loop.gettimeofday()`.

## mini.notify

### Expand

- Introduction of a new module.

## mini.pick

### Expand

- Implement `window.prompt_cursor` and `window.prompt_prefix` config options.

- Update `builtin.help()` to use tree-sitter highlighting (if there is any).

## mini.sessions

### Refine

- Update `read()` to first `write()` current session (if there is any).

## mini.starter

### Expand

- Add `sections.pick()` with 'mini.pick' pickers.

## mini.statusline

### Evolve

- Add `search_count` section to default active content.

## mini.visits

### Expand

- Introduction of a new module.


# Version 0.11.0

## mini.base16

### Refine

- Stop supporting deprecated 'HiPhish/nvim-ts-rainbow2'.

## mini.bufremove

### Evolve

- Applying `delete()` and `wipeout()` without `force` in a modified buffer now asks for confirmation instead of declining and showing message.

## mini.clue

### Expand

- Value of `config.window.config` now can be callable returning window config.

## mini.comment

### Expand

- Implement `config.mappings.comment_visual` to configure mapped keys in Visual mode.

## mini.completion

### Evolve

- Start adding `C` flag to `shortmess` option on Neovim>=0.9. By @yamin-shihab, PR #554.

## mini.extra

### Expand

- Introduction of a new module.

## mini.files

### Refine

- Opening file which is present in unlisted buffer now makes the buffer listed.

- Highlight in preview now is not enabled if file is sufficiently large.

### Expand

- Explorer now tracks if focus is lost and properly closes on detection.

- Implement `MiniFilesCursorLine` highlight group.

## mini.hipatterns

### Refine

- Field `priority` in highlighter definitions is soft deprecated in favor of `extmark_opts = { priority = <value> }`.

### Expand

- Allow `pattern` in highlighter definitions to be an array to highlight several patterns under the same highlighter name.

- Implement `extmark_opts` in highlighter definitions for a more control over extmarks placed at matches.

- Update `compute_hex_color_group()` to allow `style = 'fg'`.

- Update `gen_highlighter.hex_color()` to allow `style = 'inline'` (requires Neovim>=0.10 with support of inline extmarks).

- Implement `get_matches()` to get buffer matches.

## mini.hues

### Refine

- Stop supporting deprecated 'HiPhish/nvim-ts-rainbow2'.

## mini.map

### Expand

- Implement `config.window.zindex` to configure z-index of map window.

## mini.misc

### Expand

- Update `setup_auto_root()` and `find_root()` to now have `fallback` argument to be applied when no root is found with `vim.fn.find()`.

## mini.pick

### Expand

- Introduction of a new module.

## mini.starter

### Expand

- Value of `show_path` in `sections.recent_files()` can now be callable for more control on how full path is displayed.

## mini.test

### Evolve

- Update `child.get_screenshot()` to now by default call `:redraw` prior to computing screenshot. Can be disabled by new `opts.redraw` argument.

### Refine

- Error in any "pre" hook now leads to test case not being executed (with note).

### Expand

- New method `child.lua_func()` can execute simple functions inside child process and return the result (stasjok, #437).

- Update `expect.reference_screenshot()` to now have `ignore_lines` option allowing to ignore specified lines during screenshot compare.


# Version 0.10.0

## mini.ai

### Expand

- Allow `vis_mode` field in custom texobject region to force Visual mode with which textobject is selected.

## mini.animate

### Expand

- Add `MiniAnimateNormalFloat` highlight group to tweak highlighting of `open` and `close` animations.

## mini.base16

### Expand

- Add 'HiPhish/rainbow-delimiters.nvim' integration.

## mini.basics

### Refine

- Remove `<C-w>` mapping in Terminal mode, as it is more useful inside terminal emulator itself.

## mini.bracketed

### Expand

- Add `add_to_jumplist` option to relevant targets (which move cursor and don't already add to jumplist).

## mini.bufremove

### Refine

- Create normal buffer instead of scratch when there is no reasonable target to focus (#394).

## mini.clue

### Expand

- Introduction of a new module.

## mini.files

### Expand

- Introduction of a new module.

## mini.hues

### Expand

- Add 'HiPhish/rainbow-delimiters.nvim' integration.

## mini.jump2d

### Expand

- Add `gen_union_spotter()` to allow combining separate spotters into one.

## mini.operators

### Expand

- Introduction of a new module.

## mini.pairs

### Expand

- Allow `false` in `config.mappings` to not map the key.

## mini.surround

### Expand

- 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

## All

### Evolve

- Use Lua API to create autocommands. Stop exporting functions only related to autocommands.

- Use `vim.keymap` to deal with mappings. Stop exporting functions only related to mappings.

### Refine

- Stop official support of Neovim 0.6.

### Expand

- Add 'randomhue' color scheme.

## mini.base16

### Evolve

- Stop supporting archived 'p00f/nvim-ts-rainbow' in favor of 'HiPhish/nvim-ts-rainbow2'.

### Expand

- Add new integrations:
    - Lsp semantic tokens.
    - 'folke/lazy.nvim'.
    - 'folke/noice.nvim'.
    - 'kevinhwang91/nvim-ufo'.

## mini.basics

### Expand

- Add dot-repeat support for adding empty lines (`go` and `gO` mappings).

## mini.colors

### Expand

- Introduction of a new module.

## mini.comment

### Expand

- Use tree-sitter information about locally active language to infer 'commentstring' option value.

- Add `options.custom_commentstring` option for a more granular customization of comment structure.

- Add `get_commentstring()` function representing built-in logic of computing relevant 'commentstring'.

## mini.hipatterns

### Expand

- Introduction of a new module.

## mini.hues

### Expand

- Introduction of a new module.


# Version 0.8.0

## All

### Expand

- 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

### Expand

- Introduction of a new module.

## mini.comment

### Expand

- Add `options.start_of_line` option which controls whether to recognize as comment only lines without indent.

- Add `options.ignore_blank_line` option which controls whether to ignore blank lines.

- Add `options.pad_comment_parts` option which controls whether to ensure single space pad for comment leaders.

## mini.doc

### Expand

- Add `config.hooks.write_pre` hook to be executed before writing to a file.

## mini.indentscope

### Expand

- Add `MiniIndentscopeSymbolOff` highlight group to be used if scope's indent is not multiple of 'shiftwidth'.

- Add `draw.priority` option to control priority of scope line draw.

## mini.jump2d

### Expand

- Add `view.n_steps_ahead` option which controls how many steps ahead to show. Appearance is controlled by new `MiniJump2dSpotAhead` highlight group.

- Add `view.dim` option which controls whether to dim lines with at least one jump spot. Appearance is controlled by new `MiniJump2dDim` highlight group.

- Add `MiniJump2dSpotUnique` highlight group to be used for spots with unique label for next step.

## mini.pairs

### Expand

- Both `MiniPairs.br()` and `MiniPairs.cr()` can now take a key which will be used instead of default `<BS>` and `<CR>`.

## mini.sessions

### Expand

- Update `setup()` to now create global directory at path `config.directory` if it doesn't exist.

- All actions now keep list of detected sessions up to date.

## mini.splitjoin

### Expand

- Introduction of a new module.

## mini.surround

### Expand

- 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

## All

### Expand

- 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

### Refine

- In `MiniAi.gen_spec.argument()` option `separators` (plural; array of characters) is soft deprecated in favor of `separator` (singular; Lua pattern) option.

## mini.animate

### Expand

- Introduction of a new module.

## mini.basics

### Expand

- Introduction of a new module.

## mini.completion

### Refine

- Rename `MiniCompletion.config.window_dimensions` to `MiniCompletion.config.window` to be able to handle more general configuration.

### Expand

- 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

### Refine

- Stop using (deprecate) `MiniIndentscopePrefix` highlight groups. 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.

- Update `MiniIndentscope.gen_animation` to now be 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

### Expand

- Add `MiniMisc.setup_auto_root()` and `MiniMisc.find_root()` for root finding functionality. NOTE: requires Neovim>=0.8.

- Add `MiniMisc.setup_restore_cursor()` for automatically restoring latest cursor position on file reopen. By @cryptomilk, PR #198.

## mini.move

### Expand

- Introduction of a new module.


# Version 0.6.0

## All

### Refine

- Stop official support of Neovim 0.5.

### Expand

- Make all messages use colors and not cause hit-enter-prompt.

## mini.align

### Expand

- Introduction of a new module.

## mini.base16

### Refine

- 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.

- Update highlight for changed git diff to be more visible and to comply more with general guidelines.

### Expand

- Add support for many plugin integrations.

- Implement `MiniBase16.config.plugins` for configuring plugin integrations.

## mini.jump

### Refine

- Allow cursor to be positioned past the end of previous/current line (#113).

## mini.map

### Expand

- Introduction of a new module.

## mini.starter

### Refine

- 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

### Evolve

- 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 = <string>, extract = <string> }` it is now `{ <function or composed pattern> }`. 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.

- 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.

### Expand

- 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

## All

### Refine

- Update all tests to use new 'mini.test' module.

### Expand

- Implement buffer local configuration. This is done with `vim.b.mini*_config` buffer variables.

- Add new `minicyan` color scheme.

## mini.ai

- Introduction of a new module.

## mini.comment

### Expand

- Now hooks can be used to terminate further actions by returning `false` (#108).

## mini.indentscope

### Refine

- Soft deprecate `vim.b.miniindentscope_options` in favor of using `options` field of `miniindentscope_config`.

## mini.sessions

### Expand

- Hooks are now called with active session data as argument.

## mini.starter

### Evolve

### Refine

- Deprecate `MiniStarter.content` in favor of `MiniStarter.get_content()`.

### Expand

- Make it possible to open multiple Starter buffers at the same time (#82).

- All functions dealing with Starter buffer now have `buf_id` as argument.

## mini.statusline

### Expand

- Implement `config.use_icons` which controls whether to use icons by default.

## mini.test

- Introduction of a new module.

## mini.trailspace

### Expand

- Implement `MiniTrailspace.trim_last_lines()`.


# Version 0.4.0

## All

### Expand

- Update all modules to supply mapping description for Neovim>=0.7.

- Cover all modules with extensive tests.

## mini.comment

### Expand

- Implement `config.hooks` with `pre` and `post` hooks (executed before and after successful commenting). Fixes #50, #59.

## mini.completion

### Expand

- Implement support for `additionalTextEdits` (issue #61).

## mini.jump

### Refine

- Soft deprecate `config.highlight_delay` in favor of `config.delay.highlight`.

### Expand

- Implement idle timeout to stop jumping automatically (@annenpolka, #56).

- Implement `MiniJump.state`: table with useful model-related information.

- Update process of querying target symbol: show help message after delay, allow `<C-c>` to stop selecting target.

## mini.jump2d

- Introduction of a new module.

## mini.pairs

### Refine

- Create mappings for `<BS>` and `<CR>` in certain mode only after some pair is registered in that mode.

## mini.sessions

### Refine

- All feedback about incorrect behavior is now an error instead of message notifications.

### Expand

- Implement `MiniSessions.select()` to select session interactively and perform action on it.

- Implement `config.hooks` to execute hook functions before and after successful action.

## mini.starter

### Expand

- 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 `<C-n>` and `<C-p>` to default mappings.

## mini.statusline

### Refine

- Change default icon for `MiniStatusline.section_diagnostics()` from ﯭ to  due to former having issues in some terminal emulators.

## mini.surround

### Evolve

### Refine

- Deprecate `config.funname_pattern` option in favor of manually modifying `f` surrounding.

- 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).

### Expand

- Implement `config.search_method`.

- Implement custom surroundings via `config.custom_surroundings`.

- Implement `MiniSurround.user_input()`.

- Update process of getting user input: allow `<C-c>` to cancel and make empty string a valid input.

## mini.tabline

### Refine

- Show listed buffers also in case of multiple tabpages (instead of using builtin behavior).

### Expand

- Implement `config.tabpage_section`.

- Show quickfix/loclist buffers with special `*quickfix*` label.


# Version 0.3.0

## All

### Expand

- Update all modules to have annotations formatted for 'mini.doc'.

## mini.cursorword

### Expand

- Current word under cursor now can be highlighted differently.

## mini.doc

### Expand

- Introduction of a new module.

## mini.indentscope

### Expand

- Introduction of a new module.

## mini.starter

### Expand

- Implement `MiniStarter.set_query()` and make `<Esc>` mapping for resetting query.


# Version 0.2.0

## mini.base16

### Expand

- Use new `Diagnostic*` highlight groups in Neovim 0.6.0.

## mini.comment

### Expand

- Respect tab indentation (#20).

## mini.jump

### Expand

- Introduction of a new module.

## mini.pairs

### Expand

- Implement pair registration with custom mapping functions:
    - Implement `MiniPairs.map()`, `MiniPairs.map_buf()`, `MiniPairs.unmap()`, `MiniPairs.unmap_buf()` to (un)make mappings for pairs which automatically register them for `<BS>` and `<CR>`. 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

### Expand

- Introduction of a new module.

## mini.starter

### Expand

- Introduction of a new module.

## mini.statusline

### Expand

- Implement new section `MiniStatusline.section_searchcount()`.

- Update `section_diagnostics` to use `vim.diagnostic` in Neovim 0.6.0.


# Version 0.1.0

## All

### Expand

- Initial stable version.


================================================
FILE: CODE_OF_CONDUCT.md
================================================
# 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 <dot> 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


================================================
FILE: CONTRIBUTING.md
================================================
# 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, i.e. not described in documentation as such.
        - Make sure that it was not reported before, i.e. there is no bug report already created (no matter open or closed).
    - **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/nvim-mini/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:

        ```
        <type>[optional scope][!]: <description>
        <empty line>
        [optional body]
        <empty line>
        [optional footer(s)]
        ```

    - `<type>` 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 `:`.
    - `<description>` 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 <git-log-range>`. 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, 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 `make test_xxx` to run tests only from file `tests/test_xxx.lua` (with `nvim` as executable). For example, `make test_ai`.
    - 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" make test_xxx`.
- 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 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.

    This issue is addressed by having test cases being executed several times in case of failure (with more retries in slow context). See ["Retry" section in 'TESTING.md'](TESTING.md#Retry).

    In case there is some test breaking which reasonably should not, rerun that test (or the whole file) at least several times.
- Advice for writing more robust tests:
    - To test asynchronous or slow execution, use common `sleep()` test helper. For a more robust testing code, **never** directly use numbers to compute sleep time. Use precomputed time delay constants, which should always take into account different testing OSs (like be bigger on Windows, etc.). If module testing requires its extensive use and tests can not be made robust enough (examples are 'mini.animate', 'mini.jump', etc.), consider using it with argument that skips entire test case if `sleep()` is called in slow context.
    - Take into account that Windows uses "\" as default path separator instead of Unix "/". This should be accounted either in module's code (preferably) or in test files (for example, by computing path separator and relying on it).

## Formatting

This project uses [StyLua](https://github.com/JohnnyMorganz/StyLua) version 2.1.0 for formatting Lua code. Before making changes to code, please:

- [Install StyLua](https://github.com/JohnnyMorganz/StyLua#installation). NOTE: use `v2.1.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.cmdline':
    - `MiniCmdlinePeekBorder`
    - `MiniCmdlinePeekLineNr`
    - `MiniCmdlinePeekNormal`
    - `MiniCmdlinePeekSep`
    - `MiniCmdlinePeekSign`
    - `MiniCmdlinePeekTitle`

- 'mini.completion':
    - `MiniCompletionActiveParameter`
    - `MiniCompletionDeprecated`
    - `MiniCompletionInfoBorderOutdated`

- 'mini.cursorword':
    - `MiniCursorword`
    - `MiniCursorwordCurrent`

- 'mini.deps':
    - `MiniDepsChangeAdded`
    - `MiniDepsChangeRemoved`
    - `MiniDepsHint`
    - `MiniDepsInfo`
    - `MiniDepsMsgBreaking`
    - `MiniDepsPlaceholder`
    - `MiniDepsTitle`
    - `MiniDepsTitleError`
    - `MiniDepsTitleSame`
    - `MiniDepsTitleUpdate`

- 'mini.diff':
    - `MiniDiffSignAdd`
    - `MiniDiffSignChange`
    - `MiniDiffSignDelete`
    - `MiniDiffOverAdd`
    - `MiniDiffOverChange`
    - `MiniDiffOverChangeBuf`
    - `MiniDiffOverContext`
    - `MiniDiffOverContextBuf`
    - `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`
    - `MiniNotifyLspProgress`
    - `MiniNotifyNormal`
    - `MiniNotifyTitle`

- 'mini.operators':
    - `MiniOperatorsExchangeFrom`

- 'mini.pick':
    - `MiniPickBorder`
    - `MiniPickBorderBusy`
    - `MiniPickBorderText`
    - `MiniPickCursor`
    - `MiniPickIconDirectory`
    - `MiniPickIconFile`
    - `MiniPickHeader`
    - `MiniPickMatchCurrent`
    - `MiniPickMatchMarked`
    - `MiniPickMatchRanges`
    - `MiniPickNormal`
    - `MiniPickPreviewLine`
    - `MiniPickPreviewRegion`
    - `MiniPickPrompt`
    - `MiniPickPromptCaret`
    - `MiniPickPromptPrefix`

- 'mini.snippets':
    - `MiniSnippetsCurrent`
    - `MiniSnippetsCurrentReplace`
    - `MiniSnippetsFinal`
    - `MiniSnippetsUnvisited`
    - `MiniSnippetsVisited`

- '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`
    - `MiniTablineTrunc`
    - `MiniTablineVisible`

- 'mini.test':
    - `MiniTestEmphasis`
    - `MiniTestFail`
    - `MiniTestPass`

- 'mini.trailspace':
    - `MiniTrailspace`


================================================
FILE: LICENSE
================================================
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.


================================================
FILE: MAINTAINING.md
================================================
# 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 (by adjusting test logic or by selectively ignoring attributes / text of not matching lines with `ignore_text` / `ignore_attr` *behind narrowest Neovim version check*), but testing some parts only on Nightly is allowed if needed (regenerate screenshot on Nightly and verify 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.
- Write help annotations in a way that after help generation they are usable in both built-in `:help`and on nvim-mini.org site. In particular:
    - Prefer using `# Section ~` and `## Subsection ~` explicit sections. This allows more structured table of contents and adds anchors for all of them.
    - Prefer using "naturally sounding" help tags for an entire section because they are transformed into a title. So like `---@tag MiniAi-builtin-textobjects` and not `---@tag MiniAi-textobjects-builtin`.
        - As a consequence, don't add "# Title ~" title at the beginning of the section. This is a role for the tag (in both help file and site).
    - Do not use explicit right aligned tags, as they result into a separate high level heading on the site. This usually breaks hierarchical structure of the page (like if added as part of a `MiniXxx.config` section, it ends the `config` section and starts its own). Prefer to "naturally" incorporate a tag into a text in first line of its info or add it directly below a dedicated section. Examples:

        ```
        --- # Important topic ~
        --- *MiniXxx-important-topic*
        ---
        --- A text about important topic of 'mini.xxx' module.
        ---
        --- # Another topic ~
        ---
        --- *MiniXxx-another-topic* is also important.
        ---
        --- *MiniXxx-last-resort*
        --- As last resort just add left aligned tag before first line
        --- or at line start.
        ```

## 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:
    - `'<Cmd>lua MiniDoc.generate()<CR>'` - to generate documentation.
    - `'<Cmd>lua MiniTest.run_at_location()<CR>'` - to run test under cursor.
    - `'<Cmd>lua MiniTest.run_file()<CR>'` - 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.9') == 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 old Neovim version.
    - Update issue template to not include old Neovim version.
    - 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')` and `vim.fn.exists('+option')` (if the option is present in all currently supported Neovim versions).
    - 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.

## Reacting to new minor Neovim version

- Modify CI to test on new Neovim version.
- Update issue template to mention new Neovim version as released one, make it default choice, and bump Nightly version.

## Reacting to failing tests after Neovim Nightly changes

As Neovim is in active development, from time to time there will be test failures only on Neovim Nightly (and not on earlier versions). Adjusting tests to pass on all supported versions is important. The sooner the better, as it will allow for an easier deduction of what Neovim change is responsible here.

For examples of how this was done in the past, search `git log --oneline` output for "Nightly". This is probably the best way to learn about different approaches.

Here is a rough outline of how to act (with some Git commit hashes for illustration):

- Investigate if the change actually affects plugin functionality or is it only due to how the test is set up. Trying to manually reproduce the tested behavior on Nightly version is usually helpful for this decision.

    Common examples of code related changes on Nightly:
    - Changing how certain functions work: different arguments or a breaking change. Like in `848c5e8f428faf843051768e0d56104cd02aea1f`.
    - Deprecating functions. Like in `0f85c464605cab5ba922644d3f2508c6d62f258e`.

    However, usually it is about how a test is set up. Some common examples:

    - Screenshot testing fails in areas that are not relevant to what is being tested. For example, highlighting attributes of the command line are different (like in `bac6c8bb77fe0a872719ea43c39e35c7c695f05e`) or the number of picker items in 'mini.pick' has changed (like in `b409fd1d8b9ea7ec7c0923eb2562b52ed5d1ab0a`)
    - New option/mapping/command/etc. is added that broke assumptions about testing environment. Like in `0a8a1072137d916406507c941698a4bfa9dbbe7a`.
    - Mocking (like LSP or system interaction) is not precise enough for the actually behavior anymore. Like in `c889667a9d73b106bd303a043eb37a91da4a41a2`.

- If the change affects the code:
    - Adjust the code to work on all supported versions. This should always be the priority.
    - If you think the Nightly change is unintended, open an issue upstream. Usually requires narrowing down to a reproducible example that does not involve this plugin at all (this is hard!).
    - If needed, also adjust the tests to pass on all versions.
    - If needed, prioritize version support in order: current release, Nightly, previous releases. Like if there is a question of different performance trade-offs.

- If the change only affects the test:
    - First try to adjust the test to pass on all supported Neovim versions. Like adding different code paths for Neovim>=0.xx and Neovim<0.xx.

        This is usually not the case for failing screenshot testing. If feasible and can be done concisely, replace failing screenshot testing with other means of equivalent testing. Like in `68955a915c45ae7c988c539abe6e89f0971a9a2d`.

    - If the previous path is not possible or is significantly complex, make an educated decision of whether test fail is related to the actually tested functionality or not.

        If it tests something crucial, make the best effort to test on the widest *forward-compatible* set of Neovim versions. I.e. it should test on Neovim>=0.yy and not Neovim<=0.yy.

        Usually it is good enough for non-crucial part of the test to make only a forward-compatible test that starts on current Nightly (as long as that version is being tested in CI).
        Like in `3f5d06a6f710966cb93baaadc4897eeb6d6210e5` or `be6979dddb339c4a548d2f1dac5c290b5bf73306`.

- Make adjustments and commit. Use commit message with title that contains "Nightly" and (preferably) with body describing the culprit for the change. This helps when searching the Git history for similar cases.

## 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

### Preparation

- Create new module-related assets in https://github.com/nvim-mini/assets:
    - Logo files. See 'logo-2/generate.lua' in the repo for more details.
    - Demo video. Preferably under 1 minute screencast showcasing main features. Usually should also display module's config. Use config as close to bare MiniMax as possible. See other demos for reference.
- Write release blog post for nvim-mini.org. Copy file naming and structure from previous release posts. Mention future beta-testing issue with a placeholder link.

### Initial

- 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.
- Add new module to the following files:
    - 'scripts/minidoc.lua' to generate separate help file.
    - 'scripts/dual_sync.sh' to include new module.
    - 'scripts/dual_release.sh' to include new module.
    - '.github/ISSUE_TEMPLATE/bug-report.yml' to be included in a dropdown menu.
    - '.github/ISSUE_TEMPLATE/feature-request.yml' to be included in a dropdown menu.
    - '.github/DISCUSSION_TEMPLATE/q-a.yml' to be included in a dropdown menu.
- Generate help files.
- Add README to 'readmes' directory following the structure of some of already existing README (preferably one of the latest). NOTE: comment out mentions of `stable` branch, as it won't work during beta-testing.
- Update main README:
    - Mention new module in table of contents.
    - Remove the module from "Planned modules" section (if present).
- Update 'CHANGELOG.md' to mention introduction of new module.
- Update 'CONTRIBUTING.md' to mention new highlight groups (if there are any).
- Create separate release branch and 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.
- Push release branch. Make sure CI is green.

### Site integration

- Checkout to module release branch.
- Verify that nvim-mini.org handles new module. For that:
    - Modify 'mini.nvim' dependency to checkout into release branch.
    - `make sync`.
    - Add release blog post.
    - `quarto preview`.
    - Verify that new content looks as expected.

### Release

- Make standalone plugin:
    - Create new empty GitHub repository. Disable Issues, limit PRs.
    - Clone the repo manually. Copy 'LICENSE' file to it, stage, and commit ("docs: add license"). Push.
    - Add the following GitHub tags: "lua", "neovim", "neovim-plugin", "mini-nvim".
- Merge release branch into `main`. Push `main` and sync dual distribution.
- Check that standalone repo doesn't have some known issues:
    - 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).
    - If there are issues, manually adjust in the repo, amend to latest commit, and force push.
- Create a beta-testing issue and pin it.
- Update nvim-mini.org:
    - `make sync` on `main` branch.
    - Add release blog post. NOTE: update it with proper beta-testing issue link.
    - Push.

### Post release

- Wait for at least several weeks of beta-testing before including new module to MiniMax.

## Making stable release

### When

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.

### Preparation

- Write release blog post for nvim-mini.org. Copy file naming and structure from previous version release posts.

### Initial

- Check for `TODO`s about actions to be done *before* release.
- Checkout `release-0.xx` branch.
- Update READMEs of new modules to mention `stable` branch. Commit.
- Bump version in 'CHANGELOG.md'. Commit.
- Make a dummy change in 'lua/mini/init.lua' file to trigger code CI. Commit.
- Push to check on CI. **Proceed only if it is successful**.
- Remove dummy change commit.

### Release

- Merge `release-0.xx` to `main` and push it. Check that CI has passed.
- Synchronize standalone repositories.
- Make annotated tag: `git tag -a v0.xx.0 -m 'Version 0.xx.0'`. Push it.
- 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
    ```
- Check that standalone repositories actually got updates (tag + `stable`): manually visit some of them (at least new modules) on GitHub.

### After release

- Synchronize nvim-mini.org. Merge blog post. Push. Post on Reddit and other social media.
- Finish beta-testing new modules:
    - Close beta-testing issues.
    - Add them to MiniMax.
- Use development version in 'CHANGELOG.md' ('0.(xx+1).0-dev'). Commit.
- Check for `TODO`s about actions to be done *after* release.


================================================
FILE: Makefile
================================================
NVIM_EXEC ?= nvim

all: test documentation

# Use `make test` to run tests for all modules
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()" ; \
	done

# Use `make test_xxx` to run tests for module 'mini.xxx'
TEST_MODULES = $(basename $(notdir $(wildcard tests/test_*.lua)))

$(TEST_MODULES):
	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('tests/$@.lua')" ; \
	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

lint-filename-length-ci:
	chmod u+x scripts/lint-filename-length.sh && scripts/lint-filename-length.sh

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
	printf "\n\033[1mAdjusting `sync` branch\033[0m\n"
	git branch --force sync
	git push origin sync
	printf "\n\033[1mRemoving local patches\033[0m\n"
	rm -r dual/patches

dual_release:
	chmod u+x scripts/dual_release.sh && scripts/dual_release.sh "$(TAG_NAME)" "$(TAG_MESSAGE)"


================================================
FILE: README.md
================================================
<p align="center"> <img src="logo.png" alt="mini.nvim" style="max-width:100%;border:solid 2px"/> </p>

### All-in-one plugin

Library of 40+ independent Lua modules improving overall [Neovim](https://github.com/neovim/neovim) (version 0.9 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:

- Leave a Github star for 'mini.nvim' and/or any other [MINI projects](https://nvim-mini.org).
- Check out [contributing guides](CONTRIBUTING.md).

See [change log](CHANGELOG.md) for a history of changes, including current development version.

See [MiniMax](https://nvim-mini.org/MiniMax) for a full config example based on 'mini.nvim'.

> [!NOTE]
> This was previously hosted at `echasnovski/mini.nvim`. It was transferred to a dedicated organization to improve long term project stability. See more details [here](https://github.com/nvim-mini/mini.nvim/discussions/1970).

## Table of contents

- [Installation](#installation)
- [Modules](#modules)
- [General principles](#general-principles)
- [Plugin color schemes](#plugin-color-schemes)
- [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://nvim-mini.org/mini.nvim/readmes/mini-deps)):

```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/nvim-mini/mini.nvim', mini_path
  }
  vim.fn.system(clone_cmd)
  vim.cmd('packadd mini.nvim | helptags ALL')
  vim.cmd('echo "Installed `mini.nvim`" | redraw')
end
```

- With [folke/lazy.nvim](https://github.com/folke/lazy.nvim):

| Branch | Code snippet                                  |
|--------|-----------------------------------------------|
| Main   | `{ 'nvim-mini/mini.nvim', version = false },` |
| Stable | `{ 'nvim-mini/mini.nvim', version = '*' },`   |

- With [junegunn/vim-plug](https://github.com/junegunn/vim-plug):

| Branch | Code snippet                                         |
|--------|------------------------------------------------------|
| Main   | `Plug 'nvim-mini/mini.nvim'`                         |
| Stable | `Plug 'nvim-mini/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 <some file name>: 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

'mini.nvim' contains many modules which is slightly daunting at first. All of them can be used independently, one at a time.

For easier exploration, here they are presented in groups based on module's primary functionality (although some modules can fit in several groups). See more detailed listing [here](doc/mini-nvim.txt).

### Text editing

These modules improve your text editing experience. Start with 'mini.ai', 'mini.operators', and 'mini.surround'.

| Module          | Description                           | Overview                             | Details                                  |
|-----------------|---------------------------------------|--------------------------------------|------------------------------------------|
| mini.ai         | Extend and create `a`/`i` textobjects | [README](readmes/mini-ai.md)         | [Documentation](doc/mini-ai.txt)         |
| mini.align      | Align text interactively              | [README](readmes/mini-align.md)      | [Documentation](doc/mini-align.txt)      |
| mini.comment    | Comment lines                         | [README](readmes/mini-comment.md)    | [Documentation](doc/mini-comment.txt)    |
| mini.completion | Completion and signature help         | [README](readmes/mini-completion.md) | [Documentation](doc/mini-completion.txt) |
| mini.keymap     | Special key mappings                  | [README](readmes/mini-keymap.md)     | [Documentation](doc/mini-keymap.txt)     |
| mini.move       | Move any selection in any direction   | [README](readmes/mini-move.md)       | [Documentation](doc/mini-move.txt)       |
| mini.operators  | Text edit operators                   | [README](readmes/mini-operators.md)  | [Documentation](doc/mini-operators.txt)  |
| mini.pairs      | Autopairs                             | [README](readmes/mini-pairs.md)      | [Documentation](doc/mini-pairs.txt)      |
| mini.snippets   | Manage and expand snippets            | [README](readmes/mini-snippets.md)   | [Documentation](doc/mini-snippets.txt)   |
| mini.splitjoin  | Split and join arguments              | [README](readmes/mini-splitjoin.md)  | [Documentation](doc/mini-splitjoin.txt)  |
| mini.surround   | Surround actions                      | [README](readmes/mini-surround.md)   | [Documentation](doc/mini-surround.txt)   |

### General workflow

These modules improve your general workflow. Start with 'mini.bracketed', 'mini.files', and 'mini.pick'.

| Module         | Description                              | Overview                            | Details                                 |
|----------------|------------------------------------------|-------------------------------------|-----------------------------------------|
| mini.basics    | Common configuration presets             | [README](readmes/mini-basics.md)    | [Documentation](doc/mini-basics.txt)    |
| mini.bracketed | Go forward/backward with square brackets | [README](readmes/mini-bracketed.md) | [Documentation](doc/mini-bracketed.txt) |
| mini.bufremove | Remove buffers                           | [README](readmes/mini-bufremove.md) | [Documentation](doc/mini-bufremove.txt) |
| mini.clue      | Show next key clues                      | [README](readmes/mini-clue.md)      | [Documentation](doc/mini-clue.txt)      |
| mini.cmdline   | Command line tweaks                      | [README](readmes/mini-cmdline.md)   | [Documentation](doc/mini-cmdline.txt)   |
| mini.deps      | Plugin manager                           | [README](readmes/mini-deps.md)      | [Documentation](doc/mini-deps.txt)      |
| mini.diff      | Work with diff hunks                     | [README](readmes/mini-diff.md)      | [Documentation](doc/mini-diff.txt)      |
| mini.extra     | Extra 'mini.nvim' functionality          | [README](readmes/mini-extra.md)     | [Documentation](doc/mini-extra.txt)     |
| mini.files     | Navigate and manipulate file system      | [README](readmes/mini-files.md)     | [Documentation](doc/mini-files.txt)     |
| mini.git       | Git integration                          | [README](readmes/mini-git.md)       | [Documentation](doc/mini-git.txt)       |
| mini.jump      | Jump to next/previous single character   | [README](readmes/mini-jump.md)      | [Documentation](doc/mini-jump.txt)      |
| mini.jump2d    | Jump within visible lines                | [README](readmes/mini-jump2d.md)    | [Documentation](doc/mini-jump2d.txt)    |
| mini.misc      | Miscellaneous functions                  | [README](readmes/mini-misc.md)      | [Documentation](doc/mini-misc.txt)      |
| mini.pick      | Pick anything                            | [README](readmes/mini-pick.md)      | [Documentation](doc/mini-pick.txt)      |
| mini.sessions  | Session management                       | [README](readmes/mini-sessions.md)  | [Documentation](doc/mini-sessions.txt)  |
| mini.visits    | Track and reuse file system visits       | [README](readmes/mini-visits.md)    | [Documentation](doc/mini-visits.txt)    |

### Appearance

These modules improve your Neovim appearance. Start with 'mini.hues', 'mini.icons', and 'mini.statusline'.

| Module           | Description                          | Overview                              | Details                                   |
|------------------|--------------------------------------|---------------------------------------|-------------------------------------------|
| mini.animate     | Animate common Neovim actions        | [README](readmes/mini-animate.md)     | [Documentation](doc/mini-animate.txt)     |
| mini.base16      | Base16 colorscheme creation          | [README](readmes/mini-base16.md)      | [Documentation](doc/mini-base16.txt)      |
| mini.colors      | Tweak and save any color scheme      | [README](readmes/mini-colors.md)      | [Documentation](doc/mini-colors.txt)      |
| mini.cursorword  | Autohighlight word under cursor      | [README](readmes/mini-cursorword.md)  | [Documentation](doc/mini-cursorword.txt)  |
| mini.hipatterns  | Highlight patterns in text           | [README](readmes/mini-hipatterns.md)  | [Documentation](doc/mini-hipatterns.txt)  |
| mini.hues        | Generate configurable color scheme   | [README](readmes/mini-hues.md)        | [Documentation](doc/mini-hues.txt)        |
| mini.icons       | Icon provider                        | [README](readmes/mini-icons.md)       | [Documentation](doc/mini-icons.txt)       |
| mini.indentscope | Visualize and work with indent scope | [README](readmes/mini-indentscope.md) | [Documentation](doc/mini-indentscope.txt) |
| mini.map         | Window with buffer text overview     | [README](readmes/mini-map.md)         | [Documentation](doc/mini-map.txt)         |
| mini.notify      | Show notifications                   | [README](readmes/mini-notify.md)      | [Documentation](doc/mini-notify.txt)      |
| mini.starter     | Start screen                         | [README](readmes/mini-starter.md)     | [Documentation](doc/mini-starter.txt)     |
| mini.statusline  | Statusline                           | [README](readmes/mini-statusline.md)  | [Documentation](doc/mini-statusline.txt)  |
| mini.tabline     | Tabline                              | [README](readmes/mini-tabline.md)     | [Documentation](doc/mini-tabline.txt)     |
| mini.trailspace  | Trailspace (highlight and remove)    | [README](readmes/mini-trailspace.md)  | [Documentation](doc/mini-trailspace.txt)  |

### Other

These modules don't quite fit in any of the previous categories.

| Module     | Description                | Overview                        | Details                             |
|------------|----------------------------|---------------------------------|-------------------------------------|
| mini.doc   | Generate Neovim help files | [README](readmes/mini-doc.md)   | [Documentation](doc/mini-doc.txt)   |
| mini.fuzzy | Fuzzy matching             | [README](readmes/mini-fuzzy.md) | [Documentation](doc/mini-fuzzy.txt) |
| mini.test  | Test Neovim plugins        | [README](readmes/mini-test.md)  | [Documentation](doc/mini-test.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(<name of module>).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()`).

- If module works best with some specific non-default option value, it is set during `setup()`. If the value is not essential to module's functionality, it is done only if user or another plugin hasn't set it beforehand (no matter the value).

### 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.

### Buffer names

All module-related buffers are named according to the following format: `mini<module-name>://<buffer-number>/<useful-info>` (forward slashes are used on any platform; `<useful-info>` may be empty). This structure allows creating identifiable, reasonably unique, and useful buffer names. For example, 'mini.files' buffers are created per displayed directory/file with names like `minifiles://10/path/to/displayed/directory`.

### 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 (like a reminder to press a key after some idle time in 'mini.ai', 'mini.jump2d', 'mini.surround') 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 and are ensured to be defined after any color scheme takes effect. 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 color scheme.

### 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 and 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 color schemes

This plugin comes with several color schemes (all have both dark and light variants). Activate any of them as a regular `colorscheme` (like `:colorscheme miniwinter` or `vim.cmd.colorscheme('miniwinter')`).

- Based on ['mini.hues'](readmes/mini-hues.md) (recommended):
    - `miniwinter`: "icy winter" palette with azure background.
    - `minispring`: "blooming spring" palette with green background.
    - `minisummer`: "hot summer" palette with brown/yellow background.
    - `miniautumn`: "cooling autumn" palette with purple background.
    - `randomhue`: random background and foreground of the same hue with medium saturation.

    You can see how they look in ['mini.hues' README](readmes/mini-hues.md#bundled-color-schemes).

- Based on ['mini.base16'](readmes/mini-base16.md):
    - `minicyan`: cyan and grey main colors with medium contrast and saturation palette.
    - `minischeme`: blue and yellow main colors with high contrast and saturation palette.

    You can see how they look in ['mini.base16' README](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.abbrev' - helper to manage/setup Insert mode abbreviations.
- '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.folds' - more capable and user-friendly folds.
- 'mini.repl' - extendable wrapper for REPLs with built-in support for R, Python, Julia, and maybe (just maybe) some AI tools.
- 'mini.sendtext' - send text between buffers. In particular between regular and built-in terminal buffers.
- 'mini.statuscolumn' - customizable 'statuscolumn'.
- 'mini.terminals' - coherently manage interactive terminal buffers. Something like [kassio/neoterm](https://github.com/kassio/neoterm). Might also incorporate functionality to asynchronously run code in shell with post-processed results.
- 'mini.quickfix' - more capable and user-friendly quickfix list. Possibly with preview and inline editing for search-and-replace workflow.
- 'mini.windows' - window manager. Interactive picker, layout organizer, and maybe more.


================================================
FILE: TESTING.md
================================================
# 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 [its documentation](doc/mini-test.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':

<details><summary>'lua/hello_lines/init.lua'</summary>

```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_clear_namespace(buf_id, ns_id, 0, -1)
  vim.api.nvim_buf_set_lines(buf_id or 0, 0, -1, true, M.compute(lines))
  for i = 1, #lines do
    local extmark_opts = { end_row = i - 1, end_col = 5, hl_group = 'Special' }
    vim.api.nvim_buf_set_extmark(buf_id, ns_id, i - 1, 0, extmark_opts)
  end
end

return M
```

</details>

## Quick demo

Here is a quick demo of how tests with 'mini.test' look like:

<details><summary>'tests/test_hello_lines.lua'</summary>

```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
```

</details>

## 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):

    <details><summary>Template for test files</summary>

    ```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
    ```

    </details>

- **'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/nvim-mini/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:

    <details><summary>'scripts/minimal_init.lua'</summary>

    ```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
    ```

    </details>

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:

    <details><summary>Template for Makefile</summary>

    ```
    # 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/nvim-mini/mini.nvim $@
    ```

    </details>

- **'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
```

### Retry

Some tests can be inherently flaky (can randomly fail even if its tested feature is correct). For example, testing that sequence of events is executed with correct delay between each other. Such tests can work reliably on fast machines, but can spuriously fail on slow ones (like during Continuous Integrations checks) while underlying feature is correct.

To reduce flakiness, there is a feature of test set called `n_retry`: a maximum number of times to retry each its test case until success.

Example of how it can be used:

```lua
local new_set = MiniTest.new_set

local T = new_set()

-- Each case will be attempted until first success at most 5 times
T['n_retry'] = new_set({ n_retry = 5 })

-- With default `n_retry = 1` this case will fail 1 out of 2 runs.
-- With `n_retry = 5` this case will fail 1 out of 32 runs.
T['n_retry']['case'] = function()
  math.randomseed(vim.loop.hrtime())
  assert(math.random() < 0.5)
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:

<details><summary>Fail information</summary>

```
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 = <function 1>
    }, {
      args = {},
      data = {},
      desc = { "tests/test_basics.lua", "MiniTest.current.case" },
      hooks = {
        post = {},
        pre = {}
      },
      test = <function 2>
    } }
  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 = <function 1>
  }
  Right: 0
  Traceback:
    tests/test_basics.lua:12
```

</details>

### 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<Esc>')
  eq(get_lines(), { 'abcde' })
  eq(child.fn.mode(), 'n')

  -- Or several strings which improves readability
  child.type_keys('cc', 'fghij', '<Esc>')
  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', '<Esc>')
  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:

- `text` - "2d array" (row-column) of single characters displayed at particular cells.
- `attr` - "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|<e] [+] 1,1 All
10|               

--|---------|-----
01|000001111111111
02|000001111111111
03|000001111111111
04|222222222222222
05|222222222222222
06|222222222222222
07|222222222222222
08|222222222222222
09|333333333333333
10|444444444444444
```

To update already existing screenshot either delete the corresponding screenshot file and rerun test case or temporarily add `{ force = true }` option to `reference_screenshot()` to force updating the screenshot file.

## General tips

- Create a 'tests/helpers.lua' file with code that can be useful in multiple files. It can have "monkey-patched" versions of 'mini.test' functions. Example:

```lua
local Helpers = {}

Helpers.new_child_neovim = function()
  local child = MiniTest.new_child_neovim()

  child.setup = function()
    child.restart({'-u', 'scripts/minimal_init.lua'})
    child.bo.readonly = false
    child.lua([[M = require('hello_lines')]])
  end

  return child
end

return Helpers
```

- Write aliases for commonly used functions at top of the file. It will make your life a little bit easier and usually will lead to more readable tests. Example:

```lua
-- Some code setting up `child`
local set_lines = function(lines) child.api.nvim_buf_set_lines(0, 0, -1, true, lines) end
```

- When working with automatically named screenshots, beware of the following caveats:
    - Some systems are case insensitive (like usually Windows and MacOS). So having two different file names which are the same ignoring case will introduce problems for users to properly install plugin.
    - Some system setups have restrictions on full path length (like 260 bytes on some Git+Windows combinations) or file name length (like 255 bytes on ext4 Windows partitions and 143 bytes on eCryptfs Linux partitions). Restriction on full path is hard to accommodate for (apart from limiting file name size to some reasonable number), but trying to not have file names longer than 143 bytes (by having shorter test case names) should be reasonable.

- To make reading strings that contain Lua code easier (for `child.lua` and `child.lua_get`), you can add the following tree-sitter capture to your personal configuration. Put it in the file 'after/queries/lua/injections.scm'. Don't forget to add `; extends` at the beginning of the file (see `:h treesitter-query-modeline-extends`):

    ```query
    ; extends
    (function_call
      name: (dot_index_expression
        table: (identifier) @_table
        field: (identifier) @_field)
      arguments: (arguments
        (string
          content: (string_content) @injection.content))
      (#eq? @_table child)
      (#any-of? @_field lua lua_get)
      (#set! injection.language "lua"))
    ```


================================================
FILE: benchmarks/starter/.gitignore
================================================
startup-times.csv


================================================
FILE: benchmarks/starter/README.md
================================================
# Benchmarks for 'mini.starter'

This directory contains code and results of benchmarking 'mini.starter' and its alternatives. Target benchmarked value is a total startup time using configuration file (with `-u <init-file>`) 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:

- [nvim-mini/mini.nvim](https://github.com/nvim-mini/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'.


================================================
FILE: benchmarks/starter/benchmark.sh
================================================
#! /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}"


================================================
FILE: benchmarks/starter/init-files/init_dashboard-alpha.lua
================================================
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', '<Leader>ff', ':Telescope find_files<CR>', { noremap = true, silent = true })
vim.api.nvim_set_keymap('n', '<Leader>fh', ':Telescope oldfiles<CR>', { noremap = true, silent = true })
vim.api.nvim_set_keymap('n', '<Leader>fr', ':Telescope jumplist<CR>', { noremap = true, silent = true })
vim.api.nvim_set_keymap('n', '<Leader>fg', ':Telescope live_grep<CR>', { noremap = true, silent = true })
vim.api.nvim_set_keymap('n', '<Leader>fm', ':Telescope marks<CR>', { noremap = true, silent = true })
vim.api.nvim_set_keymap('n', '<Leader>sl', ':Telescope command_history<CR>', { 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())


================================================
FILE: benchmarks/starter/init-files/init_dashboard-original.lua
================================================
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', '<Leader>ss', ':<C-u>SessionSave<CR>', {})
vim.api.nvim_set_keymap('n', '<Leader>sl', ':<C-u>SessionLoad<CR>', {})

vim.api.nvim_set_keymap('n', '<Leader>fh', ':DashboardFindHistory<CR>', { noremap = true, silent = true })
vim.api.nvim_set_keymap('n', '<Leader>ff', ':DashboardFindFile<CR>', { noremap = true, silent = true })
vim.api.nvim_set_keymap('n', '<Leader>tc', ':DashboardChangeColorscheme<CR>', { noremap = true, silent = true })
vim.api.nvim_set_keymap('n', '<Leader>fa', ':DashboardFindWord<CR>', { noremap = true, silent = true })
vim.api.nvim_set_keymap('n', '<Leader>fb', ':DashboardJumpMark<CR>', { noremap = true, silent = true })
vim.api.nvim_set_keymap('n', '<Leader>cn', ':DashboardNewFile<CR>', { 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())


================================================
FILE: benchmarks/starter/init-files/init_dashboard-starter.lua
================================================
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())


================================================
FILE: benchmarks/starter/init-files/init_empty.lua
================================================
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())


================================================
FILE: benchmarks/starter/init-files/init_starter-default.lua
================================================
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())


================================================
FILE: benchmarks/starter/init-files/init_startify-alpha.lua
================================================
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())


================================================
FILE: benchmarks/starter/init-files/init_startify-original.lua
================================================
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())


================================================
FILE: benchmarks/starter/init-files/init_startify-starter.lua
================================================
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())


================================================
FILE: benchmarks/starter/install.sh
================================================
#! /bin/bash
PLUGINPATH=/tmp/nvim/site/pack/bench/opt
rm -rf $PLUGINPATH
mkdir -p $PLUGINPATH
cd $PLUGINPATH

git clone --depth 1 https://github.com/nvim-mini/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


================================================
FILE: benchmarks/starter/make_summary.py
================================================
#!/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()


================================================
FILE: benchmarks/starter/startup-summary.md
================================================
| 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  |


================================================
FILE: colors/miniautumn.lua
================================================
-- "Cooling autumn"
--
-- Params for `make_palette` used to make palette (colors in OKLch):
--   Dark : bg=15-2-315; fg=85-1-100; saturation=fg:'lowmedium', bg:'medium'
--   Light: bg=90-1-315; fg=20-1-100; saturation=fg:'mediumhigh',bg:'high'
--   Accent: 'bg'
--
-- Notes:
-- - Fg hues have different temperature than bg for more contrast.
--   They are tweaked to maximize palette's bg colors visibility.
-- - Fg is less saturated than spring and summer for "cool" period.
-- - Bg is more saturated than fg for more legible diffs.
-- - Accent is 'bg' for `make_palette`, but `accent_bg` is set to `red_bg`
--   for colorful statusline.
--   No `accent='red'` to avoid accent be exactly red: improves legibility
--   of diff "delete" color (like in number column with 'mini.diff').
local palette

--stylua: ignore
if vim.o.background == 'dark' then
  palette = {
    bg_edge2 = '#0b060e', bg_edge = '#1a141d', bg = '#262029', bg_mid = '#423b45', bg_mid2 = '#5e5762',
    fg_edge2 = '#f3f1e9', fg_edge = '#e5e3db', fg = '#d7d5cd', fg_mid = '#b7b5ad', fg_mid2 = '#97958e',

    accent = '#e4caf1', accent_bg = '#3a0f2f',

    red    = '#f1c6e2', red_bg    = '#3a0f2f',
    orange = '#fac6c1', orange_bg = '#410d0d',
    yellow = '#efcfab', yellow_bg = '#492c00',
    green  = '#d3daad', green_bg  = '#323700',
    cyan   = '#b4e2c7', cyan_bg   = '#003c24',
    azure  = '#a7e1e8', azure_bg  = '#004b51',
    blue   = '#b8d9fc', blue_bg   = '#00284a',
    purple = '#d7cef9', purple_bg = '#261844',
  }
else
  palette = {
    bg_edge2 = '#f8f4fa', bg_edge = '#eeeaf0', bg = '#e5e1e7', bg_mid = '#c5c1c7', bg_mid2 = '#a4a0a6',
    fg_edge2 = '#0e0d09', fg_edge = '#1f1f1a', fg = '#2f2e29', fg_mid = '#4a4944', fg_mid2 = '#686661',

    accent = '#431256', accent_bg = '#ffb0e9',

    red    = '#52073f', red_bg    = '#ffb0e9',
    orange = '#5c0207', orange_bg = '#ffaba1',
    yellow = '#6c4300', yellow_bg = '#ffca87',
    green  = '#4b5400', green_bg  = '#ddf069',
    cyan   = '#005e3d', cyan_bg   = '#7bffc2',
    azure  = '#006a74', azure_bg  = '#7df1ff',
    blue   = '#003b6d', blue_bg   = '#92c8ff',
    purple = '#351962', purple_bg = '#cab3ff',
  }
end

require('mini.hues').apply_palette(palette)
vim.g.colors_name = 'miniautumn'


================================================
FILE: colors/minicyan.lua
================================================
-- Color scheme 'minicyan'
-- 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


================================================
FILE: colors/minischeme.lua
================================================
-- Color scheme 'minischeme'
-- 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


================================================
FILE: colors/minispring.lua
================================================
-- "Blooming spring"
--
-- Params for `make_palette` used to make palette (colors in OKLch):
--   Dark : bg=15-3-135; fg=85-1-265; saturation='medium'
--   Light: bg=90-1-135; fg=20-1-265; saturation='high'
--   Accent: 'bg'
--
-- Notes:
-- - Fg hues have different temperature than bg for more contrast.
--   They are tweaked to maximize palette's bg colors visibility.
-- - Accent is 'bg' for `make_palette`, but `accent_bg` is set to `green_bg`
--   for colorful statusline.
--   No `accent='green'` to avoid accent be exactly green: improves legibility
--   of diff "add" color (like in number column with 'mini.diff').
local palette

--stylua: ignore
if vim.o.background == 'dark' then
  palette = {
    bg_edge2 = '#040b02', bg_edge = '#101a0b', bg = '#1c2617', bg_mid = '#374231', bg_mid2 = '#535f4d',
    fg_edge2 = '#eef1f7', fg_edge = '#e0e3e9', fg = '#d2d5db', fg_mid = '#b2b5bb', fg_mid2 = '#92959b',

    accent = '#bee2ad', accent_bg = '#00381d',

    red    = '#ffc1bf', red_bg    = '#410d12',
    orange = '#facb9e', orange_bg = '#492900',
    yellow = '#d8da9d', yellow_bg = '#373700',
    green  = '#abe5be', green_bg  = '#00381d',
    cyan   = '#94e5ea', cyan_bg   = '#004c4f',
    azure  = '#a9d8ff', azure_bg  = '#002d4d',
    blue   = '#d3ccff', blue_bg   = '#231946',
    purple = '#f7c2ea', purple_bg = '#381031',
  }
else
  palette = {
    bg_edge2 = '#f3f7f1', bg_edge = '#e9ede7', bg = '#e0e4de', bg_mid = '#c0c4be', bg_mid2 = '#a0a39e',
    fg_edge2 = '#0b0d11', fg_edge = '#1d1e23', fg = '#2c2e33', fg_mid = '#47494f', fg_mid2 = '#64666c',

    accent = '#2e5e00', accent_bg = '#80ffb8',

    red    = '#700015', red_bg    = '#ffaaa7',
    orange = '#804c00', orange_bg = '#ffc688',
    yellow = '#676900', yellow_bg = '#e6ed62',
    green  = '#006d3f', green_bg  = '#80ffb8',
    cyan   = '#007f86', cyan_bg   = '#72f6ff',
    azure  = '#005085', azure_bg  = '#90ccff',
    blue   = '#350775', blue_bg   = '#c2b3ff',
    purple = '#600051', purple_bg = '#ffb2f2',
  }
end

require('mini.hues').apply_palette(palette)
vim.g.colors_name = 'minispring'


================================================
FILE: colors/minisummer.lua
================================================
-- "Hot summer"
--
-- Params for `make_palette` used to make palette (colors in OKLch):
--   Dark:  bg=15-1-45; fg=85-1-270; saturation=fg:'medium'
--   Light: bg=90-1-45; fg=20-1-270; saturation=fg:'high'
--   Accent: 'yellow'
--
-- Notes:
-- - Fg hues have different temperature than bg for more contrast.
--   They are tweaked to maximize palette's bg colors visibility.
local palette

--stylua: ignore
if vim.o.background == 'dark' then
  palette = {
    bg_edge2 = '#0c0705', bg_edge = '#1b1512', bg = '#27211e', bg_mid = '#433c39', bg_mid2 = '#605855',
    fg_edge2 = '#eef1f8', fg_edge = '#e0e2e9', fg = '#d2d4db', fg_mid = '#b2b4bb', fg_mid2 = '#93949b',

    accent = '#f6cc9b', accent_bg = '#492c00',

    red    = '#fac0e4', red_bg    = '#3a0f2e',
    orange = '#ffc1b9', orange_bg = '#410d0c',
    yellow = '#f6cc9b', yellow_bg = '#492c00',
    green  = '#d1db9f', green_bg  = '#313600',
    cyan   = '#a6e5c3', cyan_bg   = '#003d26',
    azure  = '#93e4ee', azure_bg  = '#004a51',
    blue   = '#acd6ff', blue_bg   = '#002649',
    purple = '#d8caff', purple_bg = '#271844',
  }
else
  palette = {
    bg_edge2 = '#fcf4f0', bg_edge = '#f2eae6', bg = '#e9e1dd', bg_mid = '#c9c1bd'
Download .txt
Showing preview only (211K chars total). Download the full file or copy to clipboard to get everything.
gitextract_29gci10c/

├── .github/
│   ├── DISCUSSION_TEMPLATE/
│   │   └── q-a.yml
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug-report.yml
│   │   ├── config.yml
│   │   └── feature-request.yml
│   ├── PULL_REQUEST_TEMPLATE.md
│   └── workflows/
│       └── quality-control.yml
├── .gitignore
├── .pre-commit-config.yaml
├── .stylua.toml
├── .styluaignore
├── CHANGELOG.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── MAINTAINING.md
├── Makefile
├── README.md
├── TESTING.md
├── benchmarks/
│   └── starter/
│       ├── .gitignore
│       ├── README.md
│       ├── benchmark.sh
│       ├── init-files/
│       │   ├── init_dashboard-alpha.lua
│       │   ├── init_dashboard-original.lua
│       │   ├── init_dashboard-starter.lua
│       │   ├── init_empty.lua
│       │   ├── init_starter-default.lua
│       │   ├── init_startify-alpha.lua
│       │   ├── init_startify-original.lua
│       │   └── init_startify-starter.lua
│       ├── install.sh
│       ├── make_summary.py
│       └── startup-summary.md
├── colors/
│   ├── miniautumn.lua
│   ├── minicyan.lua
│   ├── minischeme.lua
│   ├── minispring.lua
│   ├── minisummer.lua
│   ├── miniwinter.lua
│   └── randomhue.lua
├── doc/
│   ├── mini-ai.txt
│   ├── mini-align.txt
│   ├── mini-animate.txt
│   ├── mini-base16.txt
│   ├── mini-basics.txt
│   ├── mini-bracketed.txt
│   ├── mini-bufremove.txt
│   ├── mini-clue.txt
│   ├── mini-cmdline.txt
│   ├── mini-colors.txt
│   ├── mini-comment.txt
│   ├── mini-completion.txt
│   ├── mini-cursorword.txt
│   ├── mini-deps.txt
│   ├── mini-diff.txt
│   ├── mini-doc.txt
│   ├── mini-extra.txt
│   ├── mini-files.txt
│   ├── mini-fuzzy.txt
│   ├── mini-git.txt
│   ├── mini-hipatterns.txt
│   ├── mini-hues.txt
│   ├── mini-icons.txt
│   ├── mini-indentscope.txt
│   ├── mini-jump.txt
│   ├── mini-jump2d.txt
│   ├── mini-keymap.txt
│   ├── mini-map.txt
│   ├── mini-misc.txt
│   ├── mini-move.txt
│   ├── mini-notify.txt
│   ├── mini-nvim.txt
│   ├── mini-operators.txt
│   ├── mini-pairs.txt
│   ├── mini-pick.txt
│   ├── mini-sessions.txt
│   ├── mini-snippets.txt
│   ├── mini-splitjoin.txt
│   ├── mini-starter.txt
│   ├── mini-statusline.txt
│   ├── mini-surround.txt
│   ├── mini-tabline.txt
│   ├── mini-test.txt
│   ├── mini-trailspace.txt
│   └── mini-visits.txt
├── lua/
│   └── mini/
│       ├── ai.lua
│       ├── align.lua
│       ├── animate.lua
│       ├── base16.lua
│       ├── basics.lua
│       ├── bracketed.lua
│       ├── bufremove.lua
│       ├── clue.lua
│       ├── cmdline.lua
│       ├── colors.lua
│       ├── comment.lua
│       ├── completion.lua
│       ├── cursorword.lua
│       ├── deps.lua
│       ├── diff.lua
│       ├── doc.lua
│       ├── extra.lua
│       ├── files.lua
│       ├── fuzzy.lua
│       ├── git.lua
│       ├── hipatterns.lua
│       ├── hues.lua
│       ├── icons.lua
│       ├── indentscope.lua
│       ├── init.lua
│       ├── jump.lua
│       ├── jump2d.lua
│       ├── keymap.lua
│       ├── map.lua
│       ├── misc.lua
│       ├── move.lua
│       ├── notify.lua
│       ├── operators.lua
│       ├── pairs.lua
│       ├── pick.lua
│       ├── sessions.lua
│       ├── snippets.lua
│       ├── splitjoin.lua
│       ├── starter.lua
│       ├── statusline.lua
│       ├── surround.lua
│       ├── tabline.lua
│       ├── test.lua
│       ├── trailspace.lua
│       └── visits.lua
├── readmes/
│   ├── mini-ai.md
│   ├── mini-align.md
│   ├── mini-animate.md
│   ├── mini-base16.md
│   ├── mini-basics.md
│   ├── mini-bracketed.md
│   ├── mini-bufremove.md
│   ├── mini-clue.md
│   ├── mini-cmdline.md
│   ├── mini-colors.md
│   ├── mini-comment.md
│   ├── mini-completion.md
│   ├── mini-cursorword.md
│   ├── mini-deps.md
│   ├── mini-diff.md
│   ├── mini-doc.md
│   ├── mini-extra.md
│   ├── mini-files.md
│   ├── mini-fuzzy.md
│   ├── mini-git.md
│   ├── mini-hipatterns.md
│   ├── mini-hues.md
│   ├── mini-icons.md
│   ├── mini-indentscope.md
│   ├── mini-jump.md
│   ├── mini-jump2d.md
│   ├── mini-keymap.md
│   ├── mini-map.md
│   ├── mini-misc.md
│   ├── mini-move.md
│   ├── mini-notify.md
│   ├── mini-operators.md
│   ├── mini-pairs.md
│   ├── mini-pick.md
│   ├── mini-sessions.md
│   ├── mini-snippets.md
│   ├── mini-splitjoin.md
│   ├── mini-starter.md
│   ├── mini-statusline.md
│   ├── mini-surround.md
│   ├── mini-tabline.md
│   ├── mini-test.md
│   ├── mini-trailspace.md
│   └── mini-visits.md
├── scripts/
│   ├── dual_log.sh
│   ├── dual_push.sh
│   ├── dual_release.sh
│   ├── dual_sync.sh
│   ├── init-deps-example.lua
│   ├── lint-filename-length.sh
│   ├── lintcommit-ci.sh
│   ├── lintcommit.lua
│   ├── minidoc.lua
│   ├── minimal_init.lua
│   └── minitest.lua
└── tests/
    ├── dir-ai/
    │   └── mock-nvim-treesitter/
    │       └── lua/
    │           └── nvim-treesitter/
    │               ├── init.lua
    │               └── query.lua
    ├── dir-bracketed/
    │   ├── dir-a/
    │   │   └── file-aa
    │   ├── file-a
    │   ├── file-b
    │   ├── file-c
    │   ├── file-d
    │   ├── file-e
    │   └── mock/
    │       ├── diagnostic.lua
    │       └── treesitter.lua
    ├── dir-cmdline/
    │   ├── compiler/
    │   │   └── testcompiler.vim
    │   ├── fileA
    │   ├── fileB
    │   ├── keymap/
    │   │   └── testkeymap.vim
    │   └── pack/
    │       └── test/
    │           └── opt/
    │               └── testplugin/
    │                   └── plugin/
    │                       └── testplugin.vim
    ├── dir-colors/
    │   └── mock_cs/
    │       └── colors/
    │           └── mock_cs.lua
    ├── dir-deps/
    │   ├── mocks/
    │   │   └── spawn.lua
    │   ├── pack/
    │   │   └── deps/
    │   │       └── opt/
    │   │           ├── plu-gin_0.nvim/
    │   │           │   └── lua/
    │   │           │       └── plug_0.lua
    │   │           ├── plugin_1/
    │   │           │   ├── after/
    │   │           │   │   └── plugin/
    │   │           │   │       ├── plug_1.lua
    │   │           │   │       ├── plug_1.nonlua
    │   │           │   │       ├── plug_1.vim
    │   │           │   │       └── subdir/
    │   │           │   │           └── plug_1_sub.lua
    │   │           │   ├── doc/
    │   │           │   │   └── help_1.txt
    │   │           │   ├── lua/
    │   │           │   │   └── plug_1.lua
    │   │           │   └── plugin/
    │   │           │       ├── plug_1.lua
    │   │           │       ├── plug_1.vim
    │   │           │       └── subdir/
    │   │           │           └── plug_1_sub.lua
    │   │           ├── plugin_2/
    │   │           │   ├── after/
    │   │           │   │   └── plugin/
    │   │           │   │       └── plug_2.lua
    │   │           │   ├── doc/
    │   │           │   │   └── help_2.txt
    │   │           │   ├── lua/
    │   │           │   │   └── plug_2.lua
    │   │           │   └── plugin/
    │   │           │       └── plug_2.lua
    │   │           └── plugin_3/
    │   │               └── lua/
    │   │                   └── plug_3.lua
    │   ├── snapshots/
    │   │   ├── not-proper-1
    │   │   ├── not-proper-2
    │   │   └── snap
    │   └── test-log
    ├── dir-diff/
    │   ├── file
    │   ├── file-bom
    │   ├── git-repo/
    │   │   ├── .git-dir/
    │   │   │   └── index
    │   │   └── dir-in-git/
    │   │       └── file-in-git
    │   └── mocks/
    │       └── spawn.lua
    ├── dir-doc/
    │   ├── .gitignore
    │   ├── .styluaignore
    │   ├── arguments/
    │   │   ├── file.lua
    │   │   ├── file_ignore.lua
    │   │   └── output_reference.txt
    │   ├── buffer-local_script.lua
    │   ├── custom-script/
    │   │   ├── gendoc/
    │   │   │   └── gendoc-script.lua
    │   │   ├── init.lua
    │   │   └── output_reference.txt
    │   ├── default-collation/
    │   │   ├── after/
    │   │   │   ├── file01.lua
    │   │   │   ├── file02.lua
    │   │   │   └── init.lua
    │   │   ├── colors/
    │   │   │   ├── file01.lua
    │   │   │   ├── file02.lua
    │   │   │   └── init.lua
    │   │   ├── default-collation_reference.txt
    │   │   ├── file01.lua
    │   │   ├── file02.lua
    │   │   ├── init.lua
    │   │   └── lua/
    │   │       ├── aaa/
    │   │       │   └── init.lua
    │   │       ├── file01.lua
    │   │       ├── file02.lua
    │   │       └── init.lua
    │   ├── helpers.lua
    │   ├── inference/
    │   │   ├── inference_reference.txt
    │   │   └── init.lua
    │   ├── sections/
    │   │   ├── .styluaignore
    │   │   ├── alias.lua
    │   │   ├── eval.lua
    │   │   ├── init.lua
    │   │   ├── param.lua
    │   │   ├── return.lua
    │   │   ├── sections_reference.txt
    │   │   └── toc.lua
    │   └── structure/
    │       ├── file1.lua
    │       └── file2.lua
    ├── dir-extra/
    │   ├── colorschemes/
    │   │   └── colors/
    │   │       └── miniforcebg.lua
    │   ├── explorer/
    │   │   ├── Dir2/
    │   │   │   └── file2-1
    │   │   ├── File2
    │   │   ├── dir1/
    │   │   │   ├── file1-1
    │   │   │   └── subdir/
    │   │   │       └── file1-1-1
    │   │   ├── dir3/
    │   │   │   └── file3-1
    │   │   ├── file1
    │   │   └── file3
    │   ├── git-files/
    │   │   ├── git-file-1
    │   │   └── git-file-2
    │   ├── lua/
    │   │   └── nvim-web-devicons.lua
    │   ├── mocks/
    │   │   ├── diagnostic-file-1
    │   │   ├── diagnostic-file-2
    │   │   ├── diagnostic.lua
    │   │   ├── git-commit
    │   │   ├── git-diff
    │   │   ├── git-diff-edge-cases
    │   │   ├── git-diff-unified-0
    │   │   ├── git-diff-unified-20
    │   │   ├── keymaps.lua
    │   │   └── spawn.lua
    │   └── real-files/
    │       ├── LICENSE
    │       ├── Makefile
    │       ├── a.lua
    │       └── b.txt
    ├── dir-files/
    │   ├── common/
    │   │   ├── .a-dir/
    │   │   │   ├── aa-file
    │   │   │   └── ab-file
    │   │   ├── .a-file
    │   │   ├── A-file-2
    │   │   ├── a-dir/
    │   │   │   ├── aa-dir/
    │   │   │   │   └── aaa-file
    │   │   │   ├── aa-file
    │   │   │   └── ab-file
    │   │   ├── a-file
    │   │   ├── b-dir/
    │   │   │   └── ba-file
    │   │   └── b-file
    │   ├── init-default-explorer.lua
    │   ├── lua/
    │   │   └── nvim-web-devicons.lua
    │   ├── mock-win-functions.lua
    │   ├── nested/
    │   │   └── dir-1/
    │   │       ├── dir-11/
    │   │       │   └── dir-111/
    │   │       │       └── dir-1111/
    │   │       │           └── dir-11111/
    │   │       │               └── file-111111
    │   │       └── dir-12/
    │   │           └── file-121
    │   └── real/
    │       ├── LICENSE
    │       ├── Makefile
    │       ├── a.lua
    │       ├── b.txt
    │       └── top-secret
    ├── dir-git/
    │   ├── File2
    │   ├── deps-confirm
    │   ├── diff-output
    │   ├── file
    │   ├── file1
    │   ├── file3
    │   ├── git-repo/
    │   │   ├── .git-dir/
    │   │   │   ├── COMMIT_EDITMSG
    │   │   │   ├── HEAD
    │   │   │   ├── index
    │   │   │   └── refs/
    │   │   │       └── heads/
    │   │   │           └── tmp
    │   │   ├── dir-in-git/
    │   │   │   └── file-in-dir-in-git
    │   │   ├── file-in-git
    │   │   └── file-in-git_symlink-source
    │   ├── help-output
    │   ├── log-output
    │   └── mocks/
    │       └── spawn.lua
    ├── dir-keymap/
    │   ├── mock-plugins/
    │   │   ├── blink.cmp/
    │   │   │   └── lua/
    │   │   │       └── blink/
    │   │   │           └── cmp/
    │   │   │               └── init.lua
    │   │   ├── luasnip/
    │   │   │   └── lua/
    │   │   │       └── luasnip/
    │   │   │           └── init.lua
    │   │   ├── nvim-autopairs/
    │   │   │   └── lua/
    │   │   │       └── nvim-autopairs/
    │   │   │           └── init.lua
    │   │   └── nvim-cmp/
    │   │       └── lua/
    │   │           └── cmp/
    │   │               └── init.lua
    │   └── tree-sitter-tests.lua
    ├── dir-map/
    │   ├── lua/
    │   │   └── gitsigns.lua
    │   ├── mock-diagnostic.lua
    │   ├── resolution_1x2
    │   ├── resolution_2x1
    │   ├── resolution_2x2
    │   ├── resolution_3x2
    │   ├── resolution_4x2
    │   └── src-test-integration.lua
    ├── dir-misc/
    │   ├── Makefile
    │   ├── aaa.lua
    │   ├── dir/
    │   │   ├── lang.aaa
    │   │   ├── subdir/
    │   │   │   └── lang.aaa
    │   │   └── subdir-2/
    │   │       └── lang.aaa
    │   ├── init-restore-cursor.lua
    │   ├── lang.aaa
    │   ├── mocked-git-repo/
    │   │   └── bbb.lua
    │   ├── pack/
    │   │   └── bundle/
    │   │       └── opt/
    │   │           └── mocked-lang-plugin/
    │   │               ├── ftdetect/
    │   │               │   └── aaa.lua
    │   │               └── ftplugin/
    │   │                   ├── aaa.lua
    │   │                   └── lang-aaa.lua
    │   └── restore-cursor.lua
    ├── dir-pick/
    │   ├── builtin-tests/
    │   │   ├── dir1/
    │   │   │   ├── file1-1
    │   │   │   └── file1-2
    │   │   ├── dir2/
    │   │   │   └── file2-1
    │   │   └── file
    │   ├── file
    │   ├── lua/
    │   │   └── nvim-web-devicons.lua
    │   ├── mocks/
    │   │   └── spawn.lua
    │   └── real-files/
    │       ├── LICENSE
    │       ├── Makefile
    │       ├── a.lua
    │       └── b.txt
    ├── dir-sessions/
    │   ├── global/
    │   │   ├── .session
    │   │   ├── session1
    │   │   ├── session2.vim
    │   │   ├── session3.lua
    │   │   ├── session_cd_global
    │   │   ├── session_cd_local
    │   │   └── session_cd_local_2
    │   ├── init-files/
    │   │   ├── autoread.lua
    │   │   └── autowrite.lua
    │   └── local/
    │       └── alternative-local-session
    ├── dir-snippets/
    │   ├── .styluaignore
    │   ├── bad-file-cant-decode.json
    │   ├── bad-file-cant-execute.lua
    │   ├── bad-file-not-dict-object.json
    │   ├── bad-file-not-table-return.lua
    │   ├── file-array.code-snippets
    │   ├── file-array.json
    │   ├── file-array.lua
    │   ├── file-dict.code-snippets
    │   ├── file-dict.json
    │   ├── file-dict.lua
    │   ├── file-dynamic-snippets.lua
    │   ├── file.many.dots.lua
    │   ├── file.notsupported
    │   ├── snippets/
    │   │   ├── lua.json
    │   │   ├── lua.lua
    │   │   └── nested/
    │   │       ├── lua.json
    │   │       └── lua.lua
    │   └── subdir/
    │       └── snippets/
    │           ├── lua/
    │           │   ├── deeper/
    │           │   │   └── another.json
    │           │   ├── file.json
    │           │   └── snips.lua
    │           ├── lua.code-snippets
    │           └── lua.json
    ├── dir-starter/
    │   ├── dir/
    │   │   ├── file1
    │   │   ├── file3
    │   │   └── subdir/
    │   │       └── file2
    │   ├── directory/
    │   │   └── file
    │   ├── init-files/
    │   │   └── test-init.lua
    │   └── sessions/
    │       └── session_global.lua
    ├── dir-statusline/
    │   ├── lua/
    │   │   └── nvim-web-devicons.lua
    │   └── mock-diagnostics.lua
    ├── dir-surround/
    │   └── mock-nvim-treesitter/
    │       └── lua/
    │           └── nvim-treesitter/
    │               ├── init.lua
    │               ├── parsers.lua
    │               └── query.lua
    ├── dir-tabline/
    │   ├── bad%new.dir/
    │   │   └── aaa.lua
    │   ├── dir1/
    │   │   ├── aaa
    │   │   ├── bad%new.file.lua
    │   │   └── dir_nested/
    │   │       └── aaa
    │   ├── dir2/
    │   │   ├── aaa
    │   │   └── dir_nested/
    │   │       └── aaa
    │   └── lua/
    │       └── nvim-web-devicons.lua
    ├── dir-test/
    │   ├── init_stdout-reporter_works.lua
    │   ├── intermediate-screenshot
    │   ├── reference-screenshot
    │   ├── testref_case-helpers.lua
    │   ├── testref_collect-busted.lua
    │   ├── testref_custom-script.lua
    │   ├── testref_general.lua
    │   ├── testref_new-set.lua
    │   ├── testref_reporters.lua
    │   ├── testref_run-data.lua
    │   ├── testref_run-hooks.lua
    │   ├── testref_run-n_retry-stop_on_error.lua
    │   ├── testref_run-n_retry.lua
    │   ├── testref_run-parametrize-error.lua
    │   ├── testref_run-parametrize.lua
    │   ├── testref_run.lua
    │   ├── tests-test_test.lua---expect---reference_screenshot()---respects-`opts.directory`
    │   └── tests-test_test.lua---expect---reference_screenshot()---respects-`opts.directory`-002
    ├── dir-trailspace/
    │   └── file
    ├── dir-visits/
    │   ├── dir_1/
    │   │   ├── file_1-1
    │   │   ├── file_1-2
    │   │   ├── file_1-3
    │   │   └── subdir/
    │   │       └── file_1-1-1
    │   ├── dir_2/
    │   │   └── file_2-1
    │   └── file
    ├── helpers.lua
    ├── mock-lsp/
    │   ├── extra.lua
    │   ├── fruits.lua
    │   └── months.lua
    ├── mock-system/
    │   └── vim-system.lua
    ├── mock-treesitter/
    │   ├── lua-file.lua
    │   └── queries/
    │       └── lua/
    │           └── textobjects.scm
    ├── screenshots/
    │   ├── tests-dir-test-testref_run-n_retry.lua---screenshot-number---test
    │   ├── tests-test_ai.lua---Builtin---User-prompt---colors-its-prompts
    │   ├── tests-test_ai.lua---Builtin---User-prompt---colors-its-prompts-002
    │   ├── tests-test_ai.lua---Builtin---User-prompt---colors-its-prompts-003
    │   ├── tests-test_ai.lua---Textobject---respects-`config.silent`
    │   ├── tests-test_ai.lua---Textobject---shows-reminder-after-one-idle-second---test-+-args-{-'a'-}
    │   ├── tests-test_ai.lua---Textobject---shows-reminder-after-one-idle-second---test-+-args-{-'a'-}-002
    │   ├── tests-test_ai.lua---Textobject---shows-reminder-after-one-idle-second---test-+-args-{-'i'-}
    │   ├── tests-test_ai.lua---Textobject---shows-reminder-after-one-idle-second---test-+-args-{-'i'-}-002
    │   ├── tests-test_align.lua---Align---cleans-command-line-only-if-state-was-shown
    │   ├── tests-test_align.lua---Align---respects-`config.silent`
    │   ├── tests-test_align.lua---Align---showing-state-does-not-cause-hit-enter-prompt
    │   ├── tests-test_align.lua---Align---shows-state-after-one-idle-second---test-+-args-{-'Normal'-}
    │   ├── tests-test_align.lua---Align---shows-state-after-one-idle-second---test-+-args-{-'Normal'-}-002
    │   ├── tests-test_align.lua---Align---shows-state-after-one-idle-second---test-+-args-{-'Normal'-}-003
    │   ├── tests-test_align.lua---Align---shows-state-after-one-idle-second---test-+-args-{-'Normal'-}-004
    │   ├── tests-test_align.lua---Align---shows-state-after-one-idle-second---test-+-args-{-'Normal'-}-005
    │   ├── tests-test_align.lua---Align---shows-state-after-one-idle-second---test-+-args-{-'Normal'-}-006
    │   ├── tests-test_align.lua---Align---shows-state-after-one-idle-second---test-+-args-{-'Visual'-}
    │   ├── tests-test_align.lua---Align---shows-state-after-one-idle-second---test-+-args-{-'Visual'-}-002
    │   ├── tests-test_align.lua---Align---shows-state-after-one-idle-second---test-+-args-{-'Visual'-}-003
    │   ├── tests-test_align.lua---Align---shows-state-after-one-idle-second---test-+-args-{-'Visual'-}-004
    │   ├── tests-test_align.lua---Align---shows-state-after-one-idle-second---test-+-args-{-'Visual'-}-005
    │   ├── tests-test_align.lua---Align---shows-state-after-one-idle-second---test-+-args-{-'Visual'-}-006
    │   ├── tests-test_align.lua---Align-with-preview---correctly-restores-visual-selection---test-+-args-{-'Visual-block'-}
    │   ├── tests-test_align.lua---Align-with-preview---correctly-restores-visual-selection---test-+-args-{-'Visual-block'-}-002
    │   ├── tests-test_align.lua---Align-with-preview---correctly-restores-visual-selection---test-+-args-{-'Visual-char'-}
    │   ├── tests-test_align.lua---Align-with-preview---correctly-restores-visual-selection---test-+-args-{-'Visual-char'-}-002
    │   ├── tests-test_align.lua---Align-with-preview---correctly-restores-visual-selection---test-+-args-{-'Visual-line'-}
    │   ├── tests-test_align.lua---Align-with-preview---correctly-restores-visual-selection---test-+-args-{-'Visual-line'-}-002
    │   ├── tests-test_align.lua---Align-with-preview---correctly-shows-all-steps-in-status
    │   ├── tests-test_align.lua---Align-with-preview---respects-`config.silent`
    │   ├── tests-test_align.lua---Align-with-preview---uses-option-names-for-main-steps
    │   ├── tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Normal-block'-}
    │   ├── tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Normal-block'-}-002
    │   ├── tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Normal-block'-}-003
    │   ├── tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Normal-block'-}-004
    │   ├── tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Normal-block'-}-005
    │   ├── tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Normal-char'-}
    │   ├── tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Normal-char'-}-002
    │   ├── tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Normal-char'-}-003
    │   ├── tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Normal-char'-}-004
    │   ├── tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Normal-char'-}-005
    │   ├── tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Normal-line'-}
    │   ├── tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Normal-line'-}-002
    │   ├── tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Normal-line'-}-003
    │   ├── tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Normal-line'-}-004
    │   ├── tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Normal-line'-}-005
    │   ├── tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Visual-block'-}
    │   ├── tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Visual-block'-}-002
    │   ├── tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Visual-block'-}-003
    │   ├── tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Visual-block'-}-004
    │   ├── tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Visual-block'-}-005
    │   ├── tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Visual-char'-}
    │   ├── tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Visual-char'-}-002
    │   ├── tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Visual-char'-}-003
    │   ├── tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Visual-char'-}-004
    │   ├── tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Visual-char'-}-005
    │   ├── tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Visual-line'-}
    │   ├── tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Visual-line'-}-002
    │   ├── tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Visual-line'-}-003
    │   ├── tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Visual-line'-}-004
    │   ├── tests-test_align.lua---Align-with-preview---works---test-+-args-{-'Visual-line'-}-005
    │   ├── tests-test_align.lua---Modifiers----BS----does-nothing-if-no-pre-steps
    │   ├── tests-test_align.lua---Modifiers----BS----does-nothing-if-no-pre-steps-002
    │   ├── tests-test_align.lua---Modifiers----BS----prompts-to-choose-if-ambiguous
    │   ├── tests-test_align.lua---Modifiers----BS----prompts-to-choose-if-ambiguous-002
    │   ├── tests-test_align.lua---Modifiers----BS----prompts-to-choose-if-ambiguous-003
    │   ├── tests-test_align.lua---Modifiers----BS----prompts-to-choose-if-ambiguous-004
    │   ├── tests-test_align.lua---Modifiers----BS----prompts-to-choose-if-ambiguous-005
    │   ├── tests-test_align.lua---Modifiers----BS----works---test-+-args-{-'pre_justify'-}
    │   ├── tests-test_align.lua---Modifiers----BS----works---test-+-args-{-'pre_justify'-}-002
    │   ├── tests-test_align.lua---Modifiers----BS----works---test-+-args-{-'pre_merge'-}
    │   ├── tests-test_align.lua---Modifiers----BS----works---test-+-args-{-'pre_merge'-}-002
    │   ├── tests-test_align.lua---Modifiers----BS----works---test-+-args-{-'pre_split'-}
    │   ├── tests-test_align.lua---Modifiers----BS----works---test-+-args-{-'pre_split'-}-002
    │   ├── tests-test_align.lua---Modifiers----bar-
    │   ├── tests-test_align.lua---Modifiers----bar--002
    │   ├── tests-test_align.lua---Modifiers----comma-
    │   ├── tests-test_align.lua---Modifiers----comma--002
    │   ├── tests-test_align.lua---Modifiers----equal-sign-
    │   ├── tests-test_align.lua---Modifiers----equal-sign--002
    │   ├── tests-test_align.lua---Modifiers----space-bar-
    │   ├── tests-test_align.lua---Modifiers----space-bar--002
    │   ├── tests-test_align.lua---Modifiers---f---allows-empty-input
    │   ├── tests-test_align.lua---Modifiers---f---works
    │   ├── tests-test_align.lua---Modifiers---i---works
    │   ├── tests-test_align.lua---Modifiers---i---works-002
    │   ├── tests-test_align.lua---Modifiers---j---works---test-+-args-{-'c'-}
    │   ├── tests-test_align.lua---Modifiers---j---works---test-+-args-{-'c'-}-002
    │   ├── tests-test_align.lua---Modifiers---j---works---test-+-args-{-'l'-}
    │   ├── tests-test_align.lua---Modifiers---j---works---test-+-args-{-'l'-}-002
    │   ├── tests-test_align.lua---Modifiers---j---works---test-+-args-{-'n'-}
    │   ├── tests-test_align.lua---Modifiers---j---works---test-+-args-{-'n'-}-002
    │   ├── tests-test_align.lua---Modifiers---j---works---test-+-args-{-'r'-}
    │   ├── tests-test_align.lua---Modifiers---j---works---test-+-args-{-'r'-}-002
    │   ├── tests-test_align.lua---Modifiers---j---works---test-+-args-{-'u'-}
    │   ├── tests-test_align.lua---Modifiers---j---works---test-+-args-{-'u'-}-002
    │   ├── tests-test_align.lua---Modifiers---m---works
    │   ├── tests-test_align.lua---Modifiers---m---works-002
    │   ├── tests-test_align.lua---Modifiers---p---works
    │   ├── tests-test_align.lua---Modifiers---s---works
    │   ├── tests-test_align.lua---Modifiers---s---works-002
    │   ├── tests-test_align.lua---Modifiers---t---works
    │   ├── tests-test_animate.lua---Cursor---can-have-only-one-animation-active
    │   ├── tests-test_animate.lua---Cursor---can-have-only-one-animation-active-002
    │   ├── tests-test_animate.lua---Cursor---can-have-only-one-animation-active-003
    │   ├── tests-test_animate.lua---Cursor---can-have-only-one-animation-active-004
    │   ├── tests-test_animate.lua---Cursor---does-not-stop-if-mark-should-be-placed-outside-of-range
    │   ├── tests-test_animate.lua---Cursor---does-not-stop-if-mark-should-be-placed-outside-of-range-002
    │   ├── tests-test_animate.lua---Cursor---does-not-stop-if-mark-should-be-placed-outside-of-range-003
    │   ├── tests-test_animate.lua---Cursor---does-not-stop-if-mark-should-be-placed-outside-of-range-004
    │   ├── tests-test_animate.lua---Cursor---does-not-stop-if-mark-should-be-placed-outside-of-range-005
    │   ├── tests-test_animate.lua---Cursor---does-not-stop-if-mark-should-be-placed-outside-of-range-006
    │   ├── tests-test_animate.lua---Cursor---is-not-animated-if-`path`-output-is-empty-or-`nil`
    │   ├── tests-test_animate.lua---Cursor---is-not-animated-if-`path`-output-is-empty-or-`nil`-002
    │   ├── tests-test_animate.lua---Cursor---respects-`enable`-config-setting
    │   ├── tests-test_animate.lua---Cursor---respects-`vim.{g,b}.minianimate_disable`---test-+-args-{-'b'-}
    │   ├── tests-test_animate.lua---Cursor---respects-`vim.{g,b}.minianimate_disable`---test-+-args-{-'b'-}-002
    │   ├── tests-test_animate.lua---Cursor---respects-`vim.{g,b}.minianimate_disable`---test-+-args-{-'g'-}
    │   ├── tests-test_animate.lua---Cursor---respects-`vim.{g,b}.minianimate_disable`---test-+-args-{-'g'-}-002
    │   ├── tests-test_animate.lua---Cursor---respects-buffer-local-config
    │   ├── tests-test_animate.lua---Cursor---stops-on-buffer-change
    │   ├── tests-test_animate.lua---Cursor---stops-on-buffer-change-002
    │   ├── tests-test_animate.lua---Cursor---stops-on-buffer-change-003
    │   ├── tests-test_animate.lua---Cursor---stops-on-buffer-change-004
    │   ├── tests-test_animate.lua---Cursor---stops-on-buffer-change-005
    │   ├── tests-test_animate.lua---Cursor---works
    │   ├── tests-test_animate.lua---Cursor---works-002
    │   ├── tests-test_animate.lua---Cursor---works-003
    │   ├── tests-test_animate.lua---Cursor---works-004
    │   ├── tests-test_animate.lua---Cursor---works-005
    │   ├── tests-test_animate.lua---Cursor---works-when-cursor-and-or-marks-are-outside-of-line
    │   ├── tests-test_animate.lua---Cursor---works-when-cursor-and-or-marks-are-outside-of-line-002
    │   ├── tests-test_animate.lua---Cursor---works-when-cursor-and-or-marks-are-outside-of-line-003
    │   ├── tests-test_animate.lua---Cursor---works-when-cursor-and-or-marks-are-outside-of-line-004
    │   ├── tests-test_animate.lua---Cursor---works-when-cursor-and-or-marks-are-outside-of-line-005
    │   ├── tests-test_animate.lua---Cursor---works-when-cursor-and-or-marks-are-outside-of-line-006
    │   ├── tests-test_animate.lua---Cursor---works-when-cursor-and-or-marks-are-outside-of-line-007
    │   ├── tests-test_animate.lua---Cursor---works-when-cursor-and-or-marks-are-outside-of-line-008
    │   ├── tests-test_animate.lua---Cursor---works-when-cursor-and-or-marks-are-outside-of-line-009
    │   ├── tests-test_animate.lua---Cursor---works-when-movement-is-triggered-by-outside-command
    │   ├── tests-test_animate.lua---Cursor---works-when-movement-is-triggered-by-outside-command-002
    │   ├── tests-test_animate.lua---Cursor---works-when-movement-is-triggered-by-outside-command-003
    │   ├── tests-test_animate.lua---Cursor---works-when-movement-is-triggered-by-outside-command-004
    │   ├── tests-test_animate.lua---Cursor---works-when-movement-is-triggered-by-outside-command-005
    │   ├── tests-test_animate.lua---Cursor---works-with-horizontally-scrolled-window-view
    │   ├── tests-test_animate.lua---Cursor---works-with-horizontally-scrolled-window-view-002
    │   ├── tests-test_animate.lua---Cursor---works-with-horizontally-scrolled-window-view-003
    │   ├── tests-test_animate.lua---Cursor---works-with-horizontally-scrolled-window-view-004
    │   ├── tests-test_animate.lua---Cursor---works-with-horizontally-scrolled-window-view-005
    │   ├── tests-test_animate.lua---Cursor---works-with-multibyte-characters
    │   ├── tests-test_animate.lua---Cursor---works-with-multibyte-characters-002
    │   ├── tests-test_animate.lua---Cursor---works-with-multibyte-characters-003
    │   ├── tests-test_animate.lua---Cursor---works-with-multibyte-characters-004
    │   ├── tests-test_animate.lua---Cursor---works-with-multibyte-characters-005
    │   ├── tests-test_animate.lua---Cursor---works-with-multibyte-characters-006
    │   ├── tests-test_animate.lua---Cursor---works-with-multibyte-characters-007
    │   ├── tests-test_animate.lua---Cursor---works-with-multibyte-characters-008
    │   ├── tests-test_animate.lua---Cursor---works-with-tabs
    │   ├── tests-test_animate.lua---Cursor---works-with-tabs-002
    │   ├── tests-test_animate.lua---Cursor---works-with-tabs-003
    │   ├── tests-test_animate.lua---Cursor---works-with-tabs-004
    │   ├── tests-test_animate.lua---Cursor---works-with-tabs-005
    │   ├── tests-test_animate.lua---Cursor---works-with-tabs-006
    │   ├── tests-test_animate.lua---Resize---allows-immediate-another-resize-animation
    │   ├── tests-test_animate.lua---Resize---allows-immediate-another-resize-animation-002
    │   ├── tests-test_animate.lua---Resize---allows-immediate-another-resize-animation-003
    │   ├── tests-test_animate.lua---Resize---allows-immediate-another-resize-animation-004
    │   ├── tests-test_animate.lua---Resize---allows-immediate-another-resize-animation-005
    │   ├── tests-test_animate.lua---Resize---allows-immediate-another-resize-animation-006
    │   ├── tests-test_animate.lua---Resize---allows-immediate-another-resize-animation-007
    │   ├── tests-test_animate.lua---Resize---allows-immediate-another-resize-animation-008
    │   ├── tests-test_animate.lua---Resize---allows-immediate-another-resize-animation-009
    │   ├── tests-test_animate.lua---Resize---animates-only-for-equal-layouts
    │   ├── tests-test_animate.lua---Resize---animates-only-for-equal-layouts-002
    │   ├── tests-test_animate.lua---Resize---does-not-flicker-due-to-high-cursor-column
    │   ├── tests-test_animate.lua---Resize---does-not-flicker-due-to-high-cursor-column-002
    │   ├── tests-test_animate.lua---Resize---does-not-flicker-due-to-high-cursor-column-003
    │   ├── tests-test_animate.lua---Resize---does-not-flicker-due-to-high-cursor-column-004
    │   ├── tests-test_animate.lua---Resize---does-not-flicker-due-to-high-cursor-column-005
    │   ├── tests-test_animate.lua---Resize---does-not-flicker-due-to-high-cursor-column-006
    │   ├── tests-test_animate.lua---Resize---does-not-flicker-due-to-high-cursor-column-in-current-window
    │   ├── tests-test_animate.lua---Resize---does-not-flicker-due-to-high-cursor-column-in-current-window-002
    │   ├── tests-test_animate.lua---Resize---does-not-flicker-due-to-high-cursor-column-in-current-window-003
    │   ├── tests-test_animate.lua---Resize---does-not-flicker-due-to-high-cursor-column-in-current-window-004
    │   ├── tests-test_animate.lua---Resize---does-not-flicker-due-to-high-cursor-column-in-current-window-005
    │   ├── tests-test_animate.lua---Resize---does-not-flicker-due-to-high-cursor-column-in-current-window-006
    │   ├── tests-test_animate.lua---Resize---does-not-flicker-due-to-high-cursor-column-in-current-window-007
    │   ├── tests-test_animate.lua---Resize---does-not-flicker-due-to-high-cursor-column-in-current-window-008
    │   ├── tests-test_animate.lua---Resize---does-not-flicker-due-to-high-cursor-column-in-current-window-009
    │   ├── tests-test_animate.lua---Resize---does-not-flicker-due-to-high-cursor-column-in-current-window-010
    │   ├── tests-test_animate.lua---Resize---does-not-flicker-due-to-high-cursor-column-in-current-window-011
    │   ├── tests-test_animate.lua---Resize---is-not-animated-if-`subresize`-output-is-empty-or-`nil`
    │   ├── tests-test_animate.lua---Resize---is-not-animated-if-`subresize`-output-is-empty-or-`nil`-002
    │   ├── tests-test_animate.lua---Resize---respects-`enable`-config-setting
    │   ├── tests-test_animate.lua---Resize---respects-`vim.{g,b}.minianimate_disable`---test-+-args-{-'b'-}
    │   ├── tests-test_animate.lua---Resize---respects-`vim.{g,b}.minianimate_disable`---test-+-args-{-'b'-}-002
    │   ├── tests-test_animate.lua---Resize---respects-`vim.{g,b}.minianimate_disable`---test-+-args-{-'b'-}-003
    │   ├── tests-test_animate.lua---Resize---respects-`vim.{g,b}.minianimate_disable`---test-+-args-{-'g'-}
    │   ├── tests-test_animate.lua---Resize---respects-`vim.{g,b}.minianimate_disable`---test-+-args-{-'g'-}-002
    │   ├── tests-test_animate.lua---Resize---respects-`vim.{g,b}.minianimate_disable`---test-+-args-{-'g'-}-003
    │   ├── tests-test_animate.lua---Resize---respects-buffer-local-config
    │   ├── tests-test_animate.lua---Resize---works
    │   ├── tests-test_animate.lua---Resize---works-002
    │   ├── tests-test_animate.lua---Resize---works-003
    │   ├── tests-test_animate.lua---Resize---works-004
    │   ├── tests-test_animate.lua---Resize---works-005
    │   ├── tests-test_animate.lua---Resize---works-006
    │   ├── tests-test_animate.lua---Resize---works-007
    │   ├── tests-test_animate.lua---Resize---works-008
    │   ├── tests-test_animate.lua---Resize---works-009
    │   ├── tests-test_animate.lua---Resize---works-010
    │   ├── tests-test_animate.lua---Resize---works-011
    │   ├── tests-test_animate.lua---Resize---works-012
    │   ├── tests-test_animate.lua---Resize---works-013
    │   ├── tests-test_animate.lua---Resize---works-014
    │   ├── tests-test_animate.lua---Resize---works-015
    │   ├── tests-test_animate.lua---Resize---works-016
    │   ├── tests-test_animate.lua---Resize---works-017
    │   ├── tests-test_animate.lua---Resize---works-when-resize-is-triggered-by-outside-command
    │   ├── tests-test_animate.lua---Resize---works-when-resize-is-triggered-by-outside-command-002
    │   ├── tests-test_animate.lua---Resize---works-when-resize-is-triggered-by-outside-command-003
    │   ├── tests-test_animate.lua---Resize---works-when-resize-is-triggered-by-outside-command-004
    │   ├── tests-test_animate.lua---Resize---works-with-`winheight`-`winwidth`
    │   ├── tests-test_animate.lua---Resize---works-with-`winheight`-`winwidth`-002
    │   ├── tests-test_animate.lua---Resize---works-with-`winheight`-`winwidth`-003
    │   ├── tests-test_animate.lua---Resize---works-with-`winheight`-`winwidth`-004
    │   ├── tests-test_animate.lua---Resize---works-with-`winheight`-`winwidth`-005
    │   ├── tests-test_animate.lua---Resize---works-with-`winheight`-`winwidth`-006
    │   ├── tests-test_animate.lua---Resize---works-with-`winheight`-`winwidth`-007
    │   ├── tests-test_animate.lua---Resize---works-with-`winheight`-`winwidth`-008
    │   ├── tests-test_animate.lua---Resize---works-with-`winheight`-`winwidth`-009
    │   ├── tests-test_animate.lua---Resize---works-with-`winheight`-`winwidth`-010
    │   ├── tests-test_animate.lua---Resize---works-with-`winheight`-`winwidth`-011
    │   ├── tests-test_animate.lua---Resize---works-with-`winheight`-`winwidth`-012
    │   ├── tests-test_animate.lua---Resize---works-with-`winheight`-`winwidth`-013
    │   ├── tests-test_animate.lua---Resize---works-with-`winheight`-`winwidth`-014
    │   ├── tests-test_animate.lua---Resize---works-with-`winheight`-`winwidth`-015
    │   ├── tests-test_animate.lua---Resize---works-with-`winheight`-`winwidth`-016
    │   ├── tests-test_animate.lua---Resize---works-with-`winheight`-`winwidth`-017
    │   ├── tests-test_animate.lua---Resize---works-with-`winheight`-`winwidth`-018
    │   ├── tests-test_animate.lua---Resize---works-with-`winheight`-`winwidth`-019
    │   ├── tests-test_animate.lua---Scroll---allows-immediate-another-scroll-animation
    │   ├── tests-test_animate.lua---Scroll---allows-immediate-another-scroll-animation-002
    │   ├── tests-test_animate.lua---Scroll---allows-immediate-another-scroll-animation-003
    │   ├── tests-test_animate.lua---Scroll---allows-immediate-another-scroll-animation-004
    │   ├── tests-test_animate.lua---Scroll---allows-immediate-another-scroll-animation-005
    │   ├── tests-test_animate.lua---Scroll---allows-immediate-another-scroll-animation-006
    │   ├── tests-test_animate.lua---Scroll---does-not-animate-in-Select-mode
    │   ├── tests-test_animate.lua---Scroll---does-not-automatically-animate-after-buffer-change
    │   ├── tests-test_animate.lua---Scroll---does-not-automatically-animate-after-buffer-change-002
    │   ├── tests-test_animate.lua---Scroll---does-not-automatically-animate-result-of-'incsearch'
    │   ├── tests-test_animate.lua---Scroll---does-not-automatically-animate-result-of-'incsearch'-002
    │   ├── tests-test_animate.lua---Scroll---does-not-automatically-animate-result-of-'incsearch'-003
    │   ├── tests-test_animate.lua---Scroll---does-not-automatically-animate-result-of-'incsearch'-004
    │   ├── tests-test_animate.lua---Scroll---handles-mappings-with--Cmd--CR-
    │   ├── tests-test_animate.lua---Scroll---handles-mappings-with--Cmd--CR--002
    │   ├── tests-test_animate.lua---Scroll---respects-'scrolloff'-in-presence-of-folds
    │   ├── tests-test_animate.lua---Scroll---respects-'scrolloff'-in-presence-of-folds-002
    │   ├── tests-test_animate.lua---Scroll---respects-'scrolloff'-in-presence-of-folds-003
    │   ├── tests-test_animate.lua---Scroll---respects-'scrolloff'-in-presence-of-folds-004
    │   ├── tests-test_animate.lua---Scroll---respects-'scrolloff'-in-presence-of-folds-005
    │   ├── tests-test_animate.lua---Scroll---respects-folds
    │   ├── tests-test_animate.lua---Scroll---respects-folds-002
    │   ├── tests-test_animate.lua---Scroll---respects-folds-003
    │   ├── tests-test_animate.lua---Scroll---respects-folds-004
    │   ├── tests-test_animate.lua---Scroll---respects-folds-005
    │   ├── tests-test_animate.lua---Scroll---respects-global-'scrolloff'
    │   ├── tests-test_animate.lua---Scroll---respects-global-'scrolloff'-002
    │   ├── tests-test_animate.lua---Scroll---respects-global-'scrolloff'-003
    │   ├── tests-test_animate.lua---Scroll---respects-global-'scrolloff'-004
    │   ├── tests-test_animate.lua---Scroll---respects-global-'scrolloff'-005
    │   ├── tests-test_animate.lua---Scroll---respects-window-local-'scrolloff'
    │   ├── tests-test_animate.lua---Scroll---respects-window-local-'scrolloff'-002
    │   ├── tests-test_animate.lua---Scroll---respects-window-local-'scrolloff'-003
    │   ├── tests-test_animate.lua---Scroll---respects-window-local-'scrolloff'-004
    │   ├── tests-test_animate.lua---Scroll---respects-window-local-'scrolloff'-005
    │   ├── tests-test_animate.lua---Scroll---stops-on-buffer-change
    │   ├── tests-test_animate.lua---Scroll---stops-on-buffer-change-002
    │   ├── tests-test_animate.lua---Scroll---stops-on-buffer-change-003
    │   ├── tests-test_animate.lua---Scroll---stops-on-buffer-change-004
    │   ├── tests-test_animate.lua---Scroll---stops-on-window-change
    │   ├── tests-test_animate.lua---Scroll---stops-on-window-change-002
    │   ├── tests-test_animate.lua---Scroll---stops-on-window-change-003
    │   ├── tests-test_animate.lua---Scroll---stops-on-window-change-004
    │   ├── tests-test_animate.lua---Scroll---works
    │   ├── tests-test_animate.lua---Scroll---works-002
    │   ├── tests-test_animate.lua---Scroll---works-003
    │   ├── tests-test_animate.lua---Scroll---works-004
    │   ├── tests-test_animate.lua---Scroll---works-005
    │   ├── tests-test_animate.lua---Scroll---works-006
    │   ├── tests-test_animate.lua---Scroll---works-007
    │   ├── tests-test_animate.lua---Scroll---works-008
    │   ├── tests-test_animate.lua---Scroll---works-009
    │   ├── tests-test_animate.lua---Scroll---works-010
    │   ├── tests-test_animate.lua---Scroll---works-properly-just-after-buffer-change
    │   ├── tests-test_animate.lua---Scroll---works-properly-just-after-buffer-change-002
    │   ├── tests-test_animate.lua---Scroll---works-properly-just-after-window-change
    │   ├── tests-test_animate.lua---Scroll---works-properly-just-after-window-change-002
    │   ├── tests-test_animate.lua---Scroll---works-when-movement-is-triggered-by-outside-command
    │   ├── tests-test_animate.lua---Scroll---works-when-movement-is-triggered-by-outside-command-002
    │   ├── tests-test_animate.lua---Scroll---works-when-movement-is-triggered-by-outside-command-003
    │   ├── tests-test_animate.lua---Scroll---works-when-movement-is-triggered-by-outside-command-004
    │   ├── tests-test_animate.lua---Scroll---works-when-movement-is-triggered-by-outside-command-005
    │   ├── tests-test_basics.lua---Mappings---Toggle-options---respects-`config.silent`
    │   ├── tests-test_basics.lua---Mappings---Toggle-options---shows-feedback-about-new-value
    │   ├── tests-test_clue.lua---'mini.nvim'-compatibility---mini.align
    │   ├── tests-test_clue.lua---'mini.nvim'-compatibility---mini.align-002
    │   ├── tests-test_clue.lua---Clues---are-properly-sorted
    │   ├── tests-test_clue.lua---Clues---can-be-configured-after-load
    │   ├── tests-test_clue.lua---Clues---can-be-overridden-in-later-entries
    │   ├── tests-test_clue.lua---Clues---can-have-callable-description
    │   ├── tests-test_clue.lua---Clues---can-have-callables
    │   ├── tests-test_clue.lua---Clues---can-have-callables-002
    │   ├── tests-test_clue.lua---Clues---can-have-callables-003
    │   ├── tests-test_clue.lua---Clues---can-have-callables-004
    │   ├── tests-test_clue.lua---Clues---can-have-nested-subarrays
    │   ├── tests-test_clue.lua---Clues---handles-an-array-of-modes
    │   ├── tests-test_clue.lua---Clues---handles-an-array-of-modes-002
    │   ├── tests-test_clue.lua---Clues---handles-no-description
    │   ├── tests-test_clue.lua---Clues---handles-showing-group-clues-after-executing-key-with-postkeys
    │   ├── tests-test_clue.lua---Clues---handles-showing-group-clues-after-executing-key-with-postkeys-002
    │   ├── tests-test_clue.lua---Clues---has-proper-precedence
    │   ├── tests-test_clue.lua---Clues---respects-`vim.b.miniclue_config`
    │   ├── tests-test_clue.lua---Clues---shows-as-group-a-single-non-exact-clue
    │   ├── tests-test_clue.lua---Clues---shows-as-group-a-single-non-exact-clue-002
    │   ├── tests-test_clue.lua---Clues---shows-as-group-a-single-non-exact-clue-003
    │   ├── tests-test_clue.lua---Clues---silently-ignores-non-valid-clues
    │   ├── tests-test_clue.lua---Clues---uses-human-readable-names-for-special-keys
    │   ├── tests-test_clue.lua---Postkeys---closes-window-if-postkeys-do-not-end-up-key-querying
    │   ├── tests-test_clue.lua---Postkeys---persists-window-if-action-changes-tabpage
    │   ├── tests-test_clue.lua---Postkeys---persists-window-if-action-changes-tabpage-002
    │   ├── tests-test_clue.lua---Postkeys---shows-window-immediately
    │   ├── tests-test_clue.lua---Postkeys---works
    │   ├── tests-test_clue.lua---Postkeys---works-002
    │   ├── tests-test_clue.lua---Postkeys---works-003
    │   ├── tests-test_clue.lua---Postkeys---works-in-edge-cases
    │   ├── tests-test_clue.lua---Postkeys---works-in-edge-cases-002
    │   ├── tests-test_clue.lua---Postkeys---works-in-edge-cases-003
    │   ├── tests-test_clue.lua---Querying-keys---does-not-entirely-block-redraws
    │   ├── tests-test_clue.lua---Querying-keys---does-not-entirely-block-redraws-002
    │   ├── tests-test_clue.lua---Querying-keys---takes-into-account-user-supplied-clues
    │   ├── tests-test_clue.lua---Querying-keys---takes-into-account-user-supplied-clues-002
    │   ├── tests-test_clue.lua---Showing-keys---allows-zero-delay
    │   ├── tests-test_clue.lua---Showing-keys---can-have-'auto'-for-`row`-and-`col`-in-window-config
    │   ├── tests-test_clue.lua---Showing-keys---can-have-'auto'-for-`row`-and-`col`-in-window-config-002
    │   ├── tests-test_clue.lua---Showing-keys---can-have-'auto'-for-`row`-and-`col`-in-window-config-003
    │   ├── tests-test_clue.lua---Showing-keys---can-have-'auto'-for-`row`-and-`col`-in-window-config-004
    │   ├── tests-test_clue.lua---Showing-keys---can-have-`config.window.config.width='auto'`
    │   ├── tests-test_clue.lua---Showing-keys---can-have-callable-`config.window.config`
    │   ├── tests-test_clue.lua---Showing-keys---can-work-with-small-instance-dimensions
    │   ├── tests-test_clue.lua---Showing-keys---does-not-trigger-unnecessary-events
    │   ├── tests-test_clue.lua---Showing-keys---highlights-group-descriptions-differently
    │   ├── tests-test_clue.lua---Showing-keys---highlights-next-key-with-postkeys-differently
    │   ├── tests-test_clue.lua---Showing-keys---indicates-that-description-is-truncated
    │   ├── tests-test_clue.lua---Showing-keys---properly-translates-special-keys
    │   ├── tests-test_clue.lua---Showing-keys---properly-translates-special-keys-002
    │   ├── tests-test_clue.lua---Showing-keys---properly-translates-special-keys-003
    │   ├── tests-test_clue.lua---Showing-keys---properly-translates-special-keys-004
    │   ├── tests-test_clue.lua---Showing-keys---reacts-to-`VimResized`
    │   ├── tests-test_clue.lua---Showing-keys---reacts-to-`VimResized`-002
    │   ├── tests-test_clue.lua---Showing-keys---respects-'winborder'-option
    │   ├── tests-test_clue.lua---Showing-keys---respects-'winborder'-option-002
    │   ├── tests-test_clue.lua---Showing-keys---respects-'winborder'-option-003
    │   ├── tests-test_clue.lua---Showing-keys---respects-`config.window.config`
    │   ├── tests-test_clue.lua---Showing-keys---respects-`config.window.config`-002
    │   ├── tests-test_clue.lua---Showing-keys---respects-`config.window.delay`
    │   ├── tests-test_clue.lua---Showing-keys---respects-`config.window.delay`-002
    │   ├── tests-test_clue.lua---Showing-keys---respects-`config.window.delay`-003
    │   ├── tests-test_clue.lua---Showing-keys---respects-`scroll_down`-and-`scroll_up`-in-`config.window`
    │   ├── tests-test_clue.lua---Showing-keys---respects-`scroll_down`-and-`scroll_up`-in-`config.window`-002
    │   ├── tests-test_clue.lua---Showing-keys---respects-`scroll_down`-and-`scroll_up`-in-`config.window`-003
    │   ├── tests-test_clue.lua---Showing-keys---respects-`scroll_down`-and-`scroll_up`-in-`config.window`-004
    │   ├── tests-test_clue.lua---Showing-keys---respects-`scroll_down`-and-`scroll_up`-in-`config.window`-005
    │   ├── tests-test_clue.lua---Showing-keys---respects-`scroll_down`-and-`scroll_up`-in-`config.window`-006
    │   ├── tests-test_clue.lua---Showing-keys---respects-`scroll_down`-and-`scroll_up`-in-`config.window`-007
    │   ├── tests-test_clue.lua---Showing-keys---respects-`scroll_down`-and-`scroll_up`-in-`config.window`-008
    │   ├── tests-test_clue.lua---Showing-keys---respects-`scroll_down`-and-`scroll_up`-in-`config.window`-009
    │   ├── tests-test_clue.lua---Showing-keys---respects-`scroll_down`-and-`scroll_up`-in-`config.window`-010
    │   ├── tests-test_clue.lua---Showing-keys---respects-`vim.b.miniclue_config`
    │   ├── tests-test_clue.lua---Showing-keys---respects-tabline,-statusline,-cmdheight
    │   ├── tests-test_clue.lua---Showing-keys---respects-tabline,-statusline,-cmdheight-002
    │   ├── tests-test_clue.lua---Showing-keys---respects-tabline,-statusline,-cmdheight-003
    │   ├── tests-test_clue.lua---Showing-keys---respects-tabline,-statusline,-cmdheight-004
    │   ├── tests-test_clue.lua---Showing-keys---scroll-is-not-persistent
    │   ├── tests-test_clue.lua---Showing-keys---scroll-is-not-persistent-002
    │   ├── tests-test_clue.lua---Showing-keys---scroll-is-not-persistent-003
    │   ├── tests-test_clue.lua---Showing-keys---uses-query-clue-as-title
    │   ├── tests-test_clue.lua---Showing-keys---uses-query-clue-as-title-002
    │   ├── tests-test_clue.lua---Showing-keys---uses-query-clue-as-title-003
    │   ├── tests-test_clue.lua---Showing-keys---uses-query-clue-as-title-004
    │   ├── tests-test_clue.lua---Showing-keys---uses-query-clue-as-title-005
    │   ├── tests-test_clue.lua---Showing-keys---uses-query-clue-as-title-006
    │   ├── tests-test_clue.lua---Showing-keys---uses-query-clue-as-title-007
    │   ├── tests-test_clue.lua---Showing-keys---uses-query-clue-as-title-008
    │   ├── tests-test_clue.lua---Showing-keys---works
    │   ├── tests-test_clue.lua---Showing-keys---works-002
    │   ├── tests-test_clue.lua---Showing-keys---works-003
    │   ├── tests-test_clue.lua---Showing-keys---works-in-Command-line-window
    │   ├── tests-test_clue.lua---Showing-keys---works-in-Command-line-window-002
    │   ├── tests-test_clue.lua---Showing-keys---works-with-multibyte-characters
    │   ├── tests-test_clue.lua---Showing-keys---works-with-multibyte-characters-002
    │   ├── tests-test_clue.lua---Showing-keys---works-with-small-available-dimensions
    │   ├── tests-test_clue.lua---ensure_all_triggers()---works
    │   ├── tests-test_clue.lua---ensure_all_triggers()---works-002
    │   ├── tests-test_clue.lua---ensure_buf_triggers()---works
    │   ├── tests-test_clue.lua---gen_clues---builtin_completion()---works
    │   ├── tests-test_clue.lua---gen_clues---g()---works
    │   ├── tests-test_clue.lua---gen_clues---g()---works-002
    │   ├── tests-test_clue.lua---gen_clues---marks()---works
    │   ├── tests-test_clue.lua---gen_clues---marks()---works-002
    │   ├── tests-test_clue.lua---gen_clues---marks()---works-003
    │   ├── tests-test_clue.lua---gen_clues---marks()---works-004
    │   ├── tests-test_clue.lua---gen_clues---marks()---works-005
    │   ├── tests-test_clue.lua---gen_clues---marks()---works-006
    │   ├── tests-test_clue.lua---gen_clues---marks()---works-007
    │   ├── tests-test_clue.lua---gen_clues---marks()---works-008
    │   ├── tests-test_clue.lua---gen_clues---registers()---respects-`opts.show_contents`
    │   ├── tests-test_clue.lua---gen_clues---registers()---works
    │   ├── tests-test_clue.lua---gen_clues---registers()---works-002
    │   ├── tests-test_clue.lua---gen_clues---registers()---works-003
    │   ├── tests-test_clue.lua---gen_clues---registers()---works-004
    │   ├── tests-test_clue.lua---gen_clues---registers()---works-005
    │   ├── tests-test_clue.lua---gen_clues---registers()---works-006
    │   ├── tests-test_clue.lua---gen_clues---registers()---works-007
    │   ├── tests-test_clue.lua---gen_clues---registers()---works-008
    │   ├── tests-test_clue.lua---gen_clues---registers()---works-009
    │   ├── tests-test_clue.lua---gen_clues---square_brackets()---works
    │   ├── tests-test_clue.lua---gen_clues---square_brackets()---works-002
    │   ├── tests-test_clue.lua---gen_clues---windows()---works
    │   ├── tests-test_clue.lua---gen_clues---windows()---works-002
    │   ├── tests-test_clue.lua---gen_clues---z()---works
    │   ├── tests-test_clue.lua---gen_clues---z()---works-002
    │   ├── tests-test_clue.lua---setup()---ensures-valid-triggers-on-`LspAttach`-event
    │   ├── tests-test_cmdline.lua---Autocomplete---is-not-triggered-when-wildmenu-is-visible
    │   ├── tests-test_cmdline.lua---Autocomplete---works
    │   ├── tests-test_cmdline.lua---Autocomplete---works-002
    │   ├── tests-test_cmdline.lua---Autocomplete---works-003
    │   ├── tests-test_cmdline.lua---Autocomplete---works-004
    │   ├── tests-test_cmdline.lua---Autocomplete---works-005
    │   ├── tests-test_cmdline.lua---Autocomplete---works-in-different-command-types
    │   ├── tests-test_cmdline.lua---Autocomplete---works-in-different-command-types-002
    │   ├── tests-test_cmdline.lua---Autocomplete---works-in-different-command-types-003
    │   ├── tests-test_cmdline.lua---Autocomplete---works-in-different-command-types-004
    │   ├── tests-test_cmdline.lua---Autocomplete---works-in-edge-cases
    │   ├── tests-test_cmdline.lua---Autocomplete---works-in-edge-cases-002
    │   ├── tests-test_cmdline.lua---Autocomplete---works-in-edge-cases-003
    │   ├── tests-test_cmdline.lua---Autocomplete---works-with-different-completion-types
    │   ├── tests-test_cmdline.lua---Autocomplete---works-with-different-completion-types-002
    │   ├── tests-test_cmdline.lua---Autocomplete---works-with-different-completion-types-003
    │   ├── tests-test_cmdline.lua---Autopeek---correctly-computes-lines-to-show
    │   ├── tests-test_cmdline.lua---Autopeek---correctly-computes-lines-to-show-002
    │   ├── tests-test_cmdline.lua---Autopeek---correctly-computes-lines-to-show-003
    │   ├── tests-test_cmdline.lua---Autopeek---correctly-computes-lines-to-show-004
    │   ├── tests-test_cmdline.lua---Autopeek---correctly-computes-lines-to-show-005
    │   ├── tests-test_cmdline.lua---Autopeek---correctly-computes-lines-to-show-006
    │   ├── tests-test_cmdline.lua---Autopeek---correctly-computes-lines-to-show-007
    │   ├── tests-test_cmdline.lua---Autopeek---correctly-computes-lines-to-show-008
    │   ├── tests-test_cmdline.lua---Autopeek---correctly-computes-lines-to-show-009
    │   ├── tests-test_cmdline.lua---Autopeek---correctly-computes-lines-to-show-010
    │   ├── tests-test_cmdline.lua---Autopeek---correctly-shows-window-without-border
    │   ├── tests-test_cmdline.lua---Autopeek---correctly-shows-window-without-border-002
    │   ├── tests-test_cmdline.lua---Autopeek---correctly-shows-window-without-border-003
    │   ├── tests-test_cmdline.lua---Autopeek---correctly-shows-window-without-border-004
    │   ├── tests-test_cmdline.lua---Autopeek---correctly-shows-window-without-border-005
    │   ├── tests-test_cmdline.lua---Autopeek---correctly-shows-window-without-border-006
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-002
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-003
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-004
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-005
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-006
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-007
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-008
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-009
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-010
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-011
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-012
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-013
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-014
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-015
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-016
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-017
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-018
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-019
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-020
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-021
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-022
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-023
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-024
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-025
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-026
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-027
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-028
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-029
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-030
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-031
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-032
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-033
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-034
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-035
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-036
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-037
    │   ├── tests-test_cmdline.lua---Autopeek---fits-into-available-height-038
    │   ├── tests-test_cmdline.lua---Autopeek---hides-visual-selection
    │   ├── tests-test_cmdline.lua---Autopeek---hides-visual-selection-002
    │   ├── tests-test_cmdline.lua---Autopeek---ignores-'wrap'
    │   ├── tests-test_cmdline.lua---Autopeek---ignores-'wrap'-002
    │   ├── tests-test_cmdline.lua---Autopeek---ignores-'wrap'-003
    │   ├── tests-test_cmdline.lua---Autopeek---ignores-'wrap'-004
    │   ├── tests-test_cmdline.lua---Autopeek---is-shown-below-pmenu-and--C-d--output
    │   ├── tests-test_cmdline.lua---Autopeek---persists-for-the-entirety-of-command-typing
    │   ├── tests-test_cmdline.lua---Autopeek---persists-for-the-entirety-of-command-typing-002
    │   ├── tests-test_cmdline.lua---Autopeek---persists-for-the-entirety-of-command-typing-003
    │   ├── tests-test_cmdline.lua---Autopeek---reacts-to-`VimResized`
    │   ├── tests-test_cmdline.lua---Autopeek---reacts-to-`VimResized`-002
    │   ├── tests-test_cmdline.lua---Autopeek---reacts-to-`VimResized`-003
    │   ├── tests-test_cmdline.lua---Autopeek---reacts-to-`VimResized`-004
    │   ├── tests-test_cmdline.lua---Autopeek---reacts-to-command-line-height-change-during-typing
    │   ├── tests-test_cmdline.lua---Autopeek---reacts-to-command-line-height-change-during-typing-002
    │   ├── tests-test_cmdline.lua---Autopeek---reacts-to-command-line-height-change-during-typing-003
    │   ├── tests-test_cmdline.lua---Autopeek---respects-'winborder'
    │   ├── tests-test_cmdline.lua---Autopeek---respects-'winborder'-002
    │   ├── tests-test_cmdline.lua---Autopeek---respects-'winborder'-003
    │   ├── tests-test_cmdline.lua---Autopeek---respects-`config.autopeek.n_context`
    │   ├── tests-test_cmdline.lua---Autopeek---respects-`config.autopeek.n_context`-002
    │   ├── tests-test_cmdline.lua---Autopeek---respects-`config.autopeek.n_context`-003
    │   ├── tests-test_cmdline.lua---Autopeek---respects-`config.autopeek.n_context`-004
    │   ├── tests-test_cmdline.lua---Autopeek---respects-`config.autopeek.n_context`-005
    │   ├── tests-test_cmdline.lua---Autopeek---respects-`config.autopeek.n_context`-006
    │   ├── tests-test_cmdline.lua---Autopeek---respects-`config.autopeek.n_context`-007
    │   ├── tests-test_cmdline.lua---Autopeek---respects-`config.autopeek.window.config`
    │   ├── tests-test_cmdline.lua---Autopeek---respects-`config.autopeek.window.config`-002
    │   ├── tests-test_cmdline.lua---Autopeek---respects-`config.autopeek.window.config`-003
    │   ├── tests-test_cmdline.lua---Autopeek---respects-`config.autopeek.window.statuscolumn`
    │   ├── tests-test_cmdline.lua---Autopeek---respects-mappings
    │   ├── tests-test_cmdline.lua---Autopeek---updates-when-navigating-through-history
    │   ├── tests-test_cmdline.lua---Autopeek---updates-when-navigating-through-history-002
    │   ├── tests-test_cmdline.lua---Autopeek---updates-when-navigating-through-history-003
    │   ├── tests-test_cmdline.lua---Autopeek---updates-when-navigating-through-history-004
    │   ├── tests-test_cmdline.lua---Autopeek---works
    │   ├── tests-test_cmdline.lua---Autopeek---works-002
    │   ├── tests-test_cmdline.lua---Autopeek---works-003
    │   ├── tests-test_cmdline.lua---Autopeek---works-004
    │   ├── tests-test_cmdline.lua---Autopeek---works-005
    │   ├── tests-test_cmdline.lua---Autopeek---works-006
    │   ├── tests-test_cmdline.lua---Autopeek---works-007
    │   ├── tests-test_cmdline.lua---Autopeek---works-008
    │   ├── tests-test_cmdline.lua---Autopeek---works-009
    │   ├── tests-test_cmdline.lua---Autopeek---works-if-range-is-present-immediately
    │   ├── tests-test_cmdline.lua---Autopeek---works-when-regular-command-line-parsing-fails
    │   ├── tests-test_cmdline.lua---Autopeek---works-when-regular-command-line-parsing-fails-002
    │   ├── tests-test_cmdline.lua---Autopeek---works-when-regular-command-line-parsing-fails-003
    │   ├── tests-test_cmdline.lua---Autopeek---works-when-regular-command-line-parsing-fails-004
    │   ├── tests-test_cmdline.lua---Autopeek---works-when-regular-command-line-parsing-fails-005
    │   ├── tests-test_cmdline.lua---Autopeek---works-when-regular-command-line-parsing-fails-006
    │   ├── tests-test_cmdline.lua---Autopeek---works-when-regular-command-line-parsing-fails-007
    │   ├── tests-test_cmdline.lua---Autopeek---works-when-regular-command-line-parsing-fails-008
    │   ├── tests-test_cmdline.lua---Autopeek---works-when-regular-command-line-parsing-fails-009
    │   ├── tests-test_cmdline.lua---Autopeek---works-when-using-command-line-expression-register
    │   ├── tests-test_cmdline.lua---Autopeek---works-when-using-command-line-expression-register-002
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-'inccommand'
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-'inccommand'-002
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-'inccommand'-003
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-'inccommand'-004
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-'inccommand'-005
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-'inccommand'-006
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-different-'cmdheight'
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-different-'cmdheight'-002
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-every-kind-of-line-range
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-every-kind-of-line-range-002
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-every-kind-of-line-range-003
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-every-kind-of-line-range-004
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-every-kind-of-line-range-005
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-every-kind-of-line-range-006
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-every-kind-of-line-range-007
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-every-kind-of-line-range-008
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-every-kind-of-line-range-009
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-every-kind-of-line-range-010
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-every-kind-of-line-range-011
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-every-kind-of-line-range-012
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-every-kind-of-line-range-013
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-inverted-range
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-inverted-range-002
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-inverted-range-003
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-inverted-range-004
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-inverted-range-005
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-inverted-range-006
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-inverted-range-007
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-inverted-range-008
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-inverted-range-009
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-virtual-lines
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-virtual-lines-002
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-virtual-lines-003
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-virtual-lines-004
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-virtual-lines-005
    │   ├── tests-test_cmdline.lua---Autopeek---works-with-virtual-lines-006
    │   ├── tests-test_cmdline.lua---default_autopeek_statuscolumn()---respects-`opts`
    │   ├── tests-test_cmdline.lua---default_autopeek_statuscolumn()---respects-`opts`-002
    │   ├── tests-test_cmdline.lua---default_autopeek_statuscolumn()---respects-`opts`-003
    │   ├── tests-test_cmdline.lua---default_autopeek_statuscolumn()---respects-`opts`-004
    │   ├── tests-test_cmdline.lua---default_autopeek_statuscolumn()---works
    │   ├── tests-test_cmdline.lua---default_autopeek_statuscolumn()---works-002
    │   ├── tests-test_cmdline.lua---default_autopeek_statuscolumn()---works-003
    │   ├── tests-test_cmdline.lua---default_autopeek_statuscolumn()---works-004
    │   ├── tests-test_cmdline.lua---default_autopeek_statuscolumn()---works-005
    │   ├── tests-test_cmdline.lua---default_autopeek_statuscolumn()---works-006
    │   ├── tests-test_cmdline.lua---default_autopeek_statuscolumn()---works-with-wrapped-and-virtual-lines
    │   ├── tests-test_colors.lua---interactive()---works
    │   ├── tests-test_colors.lua---interactive()---works-002
    │   ├── tests-test_completion.lua---Autocompletion---forces-new-LSP-completion-at-LSP-trigger---test-+-args-{-'completefunc'-}
    │   ├── tests-test_completion.lua---Autocompletion---forces-new-LSP-completion-at-LSP-trigger---test-+-args-{-'completefunc'-}-002
    │   ├── tests-test_completion.lua---Autocompletion---forces-new-LSP-completion-at-LSP-trigger---test-+-args-{-'omnifunc'-}
    │   ├── tests-test_completion.lua---Autocompletion---forces-new-LSP-completion-at-LSP-trigger---test-+-args-{-'omnifunc'-}-002
    │   ├── tests-test_completion.lua---Autocompletion---forces-new-LSP-completion-for-`isIncomplete`-even-if-canceled
    │   ├── tests-test_completion.lua---Autocompletion---forces-new-LSP-completion-in-case-of-`isIncomplete`
    │   ├── tests-test_completion.lua---Autocompletion---forces-new-LSP-completion-in-case-of-`isIncomplete`-002
    │   ├── tests-test_completion.lua---Autocompletion---forces-new-LSP-completion-in-case-of-`isIncomplete`-003
    │   ├── tests-test_completion.lua---Autocompletion---respects-string-`config.fallback_action`
    │   ├── tests-test_completion.lua---Autocompletion---respects-string-`config.fallback_action`-002
    │   ├── tests-test_completion.lua---Autocompletion---works-with-LSP-client
    │   ├── tests-test_completion.lua---Autocompletion---works-with-`-BS-`
    │   ├── tests-test_completion.lua---Autocompletion---works-with-`-BS-`-002
    │   ├── tests-test_completion.lua---Autocompletion---works-with-`-BS-`-003
    │   ├── tests-test_completion.lua---Autocompletion---works-without-LSP-clients
    │   ├── tests-test_completion.lua---Information-window---accounts-for-border-when-picking-side
    │   ├── tests-test_completion.lua---Information-window---adjusts-for-top-bottom-code-block-delimiters
    │   ├── tests-test_completion.lua---Information-window---adjusts-for-top-bottom-code-block-delimiters-002
    │   ├── tests-test_completion.lua---Information-window---adjusts-title
    │   ├── tests-test_completion.lua---Information-window---adjusts-title-002
    │   ├── tests-test_completion.lua---Information-window---adjusts-window-width
    │   ├── tests-test_completion.lua---Information-window---can-be-adjusted-in-event
    │   ├── tests-test_completion.lua---Information-window---has-minimal-dimensions-for-small-text
    │   ├── tests-test_completion.lua---Information-window---ignores-data-from-first-response-if-server-can-resolve-completion-item
    │   ├── tests-test_completion.lua---Information-window---respects-'pumborder'-option
    │   ├── tests-test_completion.lua---Information-window---respects-'pumborder'-option-002
    │   ├── tests-test_completion.lua---Information-window---respects-'pumborder'-option-003
    │   ├── tests-test_completion.lua---Information-window---respects-'pumborder'-option-004
    │   ├── tests-test_completion.lua---Information-window---respects-'pumborder'-option-005
    │   ├── tests-test_completion.lua---Information-window---respects-'pumborder'-option-006
    │   ├── tests-test_completion.lua---Information-window---respects-'pumborder'-option-007
    │   ├── tests-test_completion.lua---Information-window---respects-'pumborder'-option-008
    │   ├── tests-test_completion.lua---Information-window---respects-'pumborder'-option-009
    │   ├── tests-test_completion.lua---Information-window---respects-`config.window.info`
    │   ├── tests-test_completion.lua---Information-window---respects-`config.window.info`-002
    │   ├── tests-test_completion.lua---Information-window---stylizes-markdown-with-concealed-characters
    │   ├── tests-test_completion.lua---Information-window---uses-`detail`-to-construct-content
    │   ├── tests-test_completion.lua---Information-window---uses-`detail`-to-construct-content-002
    │   ├── tests-test_completion.lua---Information-window---uses-`info`-field-from-not-LSP-source
    │   ├── tests-test_completion.lua---Information-window---works
    │   ├── tests-test_completion.lua---Information-window---works-without-attached-LSP-server
    │   ├── tests-test_completion.lua---Information-window---works-without-attached-LSP-server-002
    │   ├── tests-test_completion.lua---Manual-completion---respects-`abbr_hlgroup`-as-item-field
    │   ├── tests-test_completion.lua---Manual-completion---respects-`filterText`-during-built-in-filtering
    │   ├── tests-test_completion.lua---Manual-completion---respects-`filterText`-during-built-in-filtering-002
    │   ├── tests-test_completion.lua---Manual-completion---respects-`kind_hlgroup`-as-item-field
    │   ├── tests-test_completion.lua---Manual-completion---respects-`labelDetails`-from-LSP-response
    │   ├── tests-test_completion.lua---Manual-completion---uses-`vim.lsp.protocol.CompletionItemKind`-in-LSP-step
    │   ├── tests-test_completion.lua---Scroll---can-be-done-in-both-windows
    │   ├── tests-test_completion.lua---Scroll---can-be-done-in-both-windows-002
    │   ├── tests-test_completion.lua---Scroll---can-be-done-in-both-windows-003
    │   ├── tests-test_completion.lua---Scroll---can-be-done-in-both-windows-004
    │   ├── tests-test_completion.lua---Scroll---can-be-done-in-info-window
    │   ├── tests-test_completion.lua---Scroll---can-be-done-in-info-window-002
    │   ├── tests-test_completion.lua---Scroll---can-be-done-in-info-window-003
    │   ├── tests-test_completion.lua---Scroll---can-be-done-in-info-window-004
    │   ├── tests-test_completion.lua---Scroll---can-be-done-in-info-window-005
    │   ├── tests-test_completion.lua---Scroll---can-be-done-in-info-window-006
    │   ├── tests-test_completion.lua---Scroll---can-be-done-in-info-window-007
    │   ├── tests-test_completion.lua---Scroll---can-be-done-in-signature-window
    │   ├── tests-test_completion.lua---Scroll---can-be-done-in-signature-window-002
    │   ├── tests-test_completion.lua---Scroll---can-be-done-in-signature-window-003
    │   ├── tests-test_completion.lua---Scroll---can-be-done-in-signature-window-004
    │   ├── tests-test_completion.lua---Scroll---can-be-done-in-signature-window-005
    │   ├── tests-test_completion.lua---Scroll---respects-`config.mappings`
    │   ├── tests-test_completion.lua---Scroll---respects-`config.mappings`-002
    │   ├── tests-test_completion.lua---Scroll---respects-`config.mappings`-003
    │   ├── tests-test_completion.lua---Signature-help---accounts-for-border-when-picking-side
    │   ├── tests-test_completion.lua---Signature-help---adjusts-title
    │   ├── tests-test_completion.lua---Signature-help---adjusts-title-002
    │   ├── tests-test_completion.lua---Signature-help---adjusts-window-height
    │   ├── tests-test_completion.lua---Signature-help---can-be-adjusted-in-event
    │   ├── tests-test_completion.lua---Signature-help---handles-multiline-text
    │   ├── tests-test_completion.lua---Signature-help---has-minimal-dimensions-for-small-text
    │   ├── tests-test_completion.lua---Signature-help---respects-`config.window.signature`
    │   ├── tests-test_completion.lua---Signature-help---respects-`config.window.signature`-002
    │   ├── tests-test_completion.lua---Signature-help---stylizes-markdown-with-concealed-characters
    │   ├── tests-test_completion.lua---Signature-help---updates-highlighting-of-active-parameter
    │   ├── tests-test_completion.lua---Signature-help---updates-highlighting-of-active-parameter-002
    │   ├── tests-test_completion.lua---Signature-help---updates-highlighting-of-active-parameter-003
    │   ├── tests-test_completion.lua---Signature-help---updates-highlighting-of-active-parameter-004
    │   ├── tests-test_completion.lua---Signature-help---updates-highlighting-of-active-parameter-005
    │   ├── tests-test_completion.lua---Signature-help---updates-highlighting-of-active-parameter-006
    │   ├── tests-test_completion.lua---Signature-help---updates-without-delay-with-different-window
    │   ├── tests-test_completion.lua---Signature-help---updates-without-delay-with-different-window-002
    │   ├── tests-test_completion.lua---Signature-help---works
    │   ├── tests-test_completion.lua---Snippets---LSP-server-from-'mini.snippets'---works
    │   ├── tests-test_completion.lua---Snippets---LSP-server-from-'mini.snippets'---works-with-in-server-matching
    │   ├── tests-test_completion.lua---Snippets---are-not-inserted-if-have-no-tabstops-or-variables
    │   ├── tests-test_completion.lua---Snippets---properly-show-special-symbol-in-popup
    │   ├── tests-test_completion.lua---Snippets---respect-'mini.snippets'-config
    │   ├── tests-test_completion.lua---Snippets---show-full-snippet-text-as-info
    │   ├── tests-test_completion.lua---Snippets---show-full-snippet-text-as-info-002
    │   ├── tests-test_completion.lua---Snippets---work
    │   ├── tests-test_cursorword.lua---Highlighting---can-stop
    │   ├── tests-test_cursorword.lua---Highlighting---respects-MiniCursorwordCurrent-highlight-group
    │   ├── tests-test_cursorword.lua---Highlighting---works
    │   ├── tests-test_cursorword.lua---Highlighting---works-on-multibyte-character
    │   ├── tests-test_cursorword.lua---Highlighting---works-on-multibyte-character-002
    │   ├── tests-test_cursorword.lua---Highlighting---works-with-multiple-windows
    │   ├── tests-test_deps.lua---Commands----DepsAdd-works
    │   ├── tests-test_deps.lua---Commands----DepsShowLog-works
    │   ├── tests-test_deps.lua---Commands----DepsUpdate-works
    │   ├── tests-test_deps.lua---Commands----DepsUpdateOffline-works
    │   ├── tests-test_deps.lua---clean()---works
    │   ├── tests-test_deps.lua---clean()---works-002
    │   ├── tests-test_deps.lua---update()---can-fold-in-confirm-buffer
    │   ├── tests-test_deps.lua---update()---can-highlight-breaking-changes
    │   ├── tests-test_deps.lua---update()---can-work-with-non-default-branches
    │   ├── tests-test_deps.lua---update()---shows-empty-monitor-log
    │   ├── tests-test_deps.lua---update()---works
    │   ├── tests-test_diff.lua---Diff---`MiniDiffUpdated`-event-can-be-used-to-override-`minidiff_summary_string`-variable
    │   ├── tests-test_diff.lua---Diff---redraws-statusline-when-diff-is-updated
    │   ├── tests-test_diff.lua---Diff---redraws-statusline-when-diff-is-updated-002
    │   ├── tests-test_diff.lua---Overlay---always-highlights-whole-lines
    │   ├── tests-test_diff.lua---Overlay---scrolls-along-with-buffer-lines
    │   ├── tests-test_diff.lua---Overlay---scrolls-along-with-buffer-lines-002
    │   ├── tests-test_diff.lua---Overlay---word-diff---has-non-zero-interhunk-context
    │   ├── tests-test_diff.lua---Overlay---word-diff---works
    │   ├── tests-test_diff.lua---Overlay---word-diff---works-with-BOM-bytes
    │   ├── tests-test_diff.lua---Overlay---word-diff---works-with-multibyte-characters
    │   ├── tests-test_diff.lua---Overlay---word-diff---works-with-multibyte-characters-002
    │   ├── tests-test_diff.lua---Overlay---word-diff---works-with-multibyte-characters-003
    │   ├── tests-test_diff.lua---Overlay---word-diff---works-with-multibyte-characters-004
    │   ├── tests-test_diff.lua---Overlay---word-diff---works-with-multibyte-characters-005
    │   ├── tests-test_diff.lua---Overlay---word-diff---works-with-multibyte-characters-006
    │   ├── tests-test_diff.lua---Overlay---word-diff---works-with-multibyte-characters-007
    │   ├── tests-test_diff.lua---Overlay---word-diff---works-with-multibyte-characters-008
    │   ├── tests-test_diff.lua---Overlay---word-diff---works-with-multibyte-characters-009
    │   ├── tests-test_diff.lua---Overlay---word-diff---works-with-multibyte-characters-010
    │   ├── tests-test_diff.lua---Overlay---word-diff---works-with-one-of-lines-being-empty
    │   ├── tests-test_diff.lua---Overlay---word-diff---works-with-one-of-lines-being-empty-002
    │   ├── tests-test_diff.lua---Overlay---works
    │   ├── tests-test_diff.lua---Overlay---works-002
    │   ├── tests-test_diff.lua---Overlay---works-003
    │   ├── tests-test_diff.lua---Overlay---works-at-edge-lines
    │   ├── tests-test_diff.lua---Overlay---works-at-edge-lines-002
    │   ├── tests-test_diff.lua---Overlay---works-at-edge-lines-003
    │   ├── tests-test_diff.lua---Overlay---works-when-'change'-overlaps-with-'delete'
    │   ├── tests-test_diff.lua---Overlay---works-with-'add'-hunks
    │   ├── tests-test_diff.lua---Overlay---works-with-'change'-hunks
    │   ├── tests-test_diff.lua---Overlay---works-with-'change'-hunks-002
    │   ├── tests-test_diff.lua---Overlay---works-with-'delete'-hunks
    │   ├── tests-test_diff.lua---Visualization---can-be-visually-disabled
    │   ├── tests-test_diff.lua---Visualization---does-not-appear-if-there-is-no-gutter
    │   ├── tests-test_diff.lua---Visualization---forces-redraw-when-it-is-needed
    │   ├── tests-test_diff.lua---Visualization---forces-redraw-when-it-is-needed-002
    │   ├── tests-test_diff.lua---Visualization---reacts-to-hunk-lines-delete-move
    │   ├── tests-test_diff.lua---Visualization---reacts-to-hunk-lines-delete-move-002
    │   ├── tests-test_diff.lua---Visualization---respects-`view.signs`
    │   ├── tests-test_diff.lua---Visualization---respects-`view.style`
    │   ├── tests-test_diff.lua---Visualization---respects-`view.style`-002
    │   ├── tests-test_diff.lua---Visualization---shows-signcolumn-even-if-hunks-are-outside-of-view
    │   ├── tests-test_diff.lua---Visualization---shows-signcolumn-even-if-hunks-are-outside-of-view-002
    │   ├── tests-test_diff.lua---Visualization---works
    │   ├── tests-test_diff.lua---Visualization---works-with-'add'-hunks
    │   ├── tests-test_diff.lua---Visualization---works-with-'add'-hunks-002
    │   ├── tests-test_diff.lua---Visualization---works-with-'change'-hunks
    │   ├── tests-test_diff.lua---Visualization---works-with-'change'-hunks-002
    │   ├── tests-test_diff.lua---Visualization---works-with-'delete'-hunks
    │   ├── tests-test_diff.lua---Visualization---works-with-'delete'-hunks-002
    │   ├── tests-test_diff.lua---Visualization---works-with-'delete'-hunks-003
    │   ├── tests-test_diff.lua---disable()---works
    │   ├── tests-test_diff.lua---set_ref_text()---immediately-updates-diff-data-and-visualization
    │   ├── tests-test_diff.lua---set_ref_text()---removing-reference-text-removes-visualization
    │   ├── tests-test_diff.lua---set_ref_text()---removing-reference-text-removes-visualization-002
    │   ├── tests-test_diff.lua---toggle_overlay()---works
    │   ├── tests-test_diff.lua---toggle_overlay()---works-002
    │   ├── tests-test_diff.lua---toggle_overlay()---works-003
    │   ├── tests-test_diff.lua---toggle_overlay()---works-004
    │   ├── tests-test_diff.lua---toggle_overlay()---works-005
    │   ├── tests-test_extra.lua---pickers---buf_lines()---can-not-show-icons
    │   ├── tests-test_extra.lua---pickers---buf_lines()---respects-`local_opts.scope`
    │   ├── tests-test_extra.lua---pickers---buf_lines()---works
    │   ├── tests-test_extra.lua---pickers---colorschemes()---respects-`local_opts.preview_hl_groups`
    │   ├── tests-test_extra.lua---pickers---colorschemes()---works
    │   ├── tests-test_extra.lua---pickers---colorschemes()---works-002
    │   ├── tests-test_extra.lua---pickers---colorschemes()---works-with-preview
    │   ├── tests-test_extra.lua---pickers---colorschemes()---works-with-preview-002
    │   ├── tests-test_extra.lua---pickers---colorschemes()---works-with-preview-003
    │   ├── tests-test_extra.lua---pickers---commands()---respects-user-commands
    │   ├── tests-test_extra.lua---pickers---commands()---respects-user-commands-002
    │   ├── tests-test_extra.lua---pickers---commands()---works
    │   ├── tests-test_extra.lua---pickers---commands()---works-002
    │   ├── tests-test_extra.lua---pickers---diagnostic()---works
    │   ├── tests-test_extra.lua---pickers---diagnostic()---works-002
    │   ├── tests-test_extra.lua---pickers---explorer()---can-be-resumed
    │   ├── tests-test_extra.lua---pickers---explorer()---can-be-resumed-002
    │   ├── tests-test_extra.lua---pickers---explorer()---can-not-show-icons
    │   ├── tests-test_extra.lua---pickers---explorer()---can-not-show-icons-002
    │   ├── tests-test_extra.lua---pickers---explorer()---respects-`local_opts.filter`
    │   ├── tests-test_extra.lua---pickers---explorer()---respects-`local_opts.filter`-002
    │   ├── tests-test_extra.lua---pickers---explorer()---respects-`local_opts.sort`
    │   ├── tests-test_extra.lua---pickers---explorer()---respects-`local_opts.sort`-002
    │   ├── tests-test_extra.lua---pickers---explorer()---works
    │   ├── tests-test_extra.lua---pickers---explorer()---works-002
    │   ├── tests-test_extra.lua---pickers---explorer()---works-003
    │   ├── tests-test_extra.lua---pickers---explorer()---works-004
    │   ├── tests-test_extra.lua---pickers---explorer()---works-005
    │   ├── tests-test_extra.lua---pickers---explorer()---works-006
    │   ├── tests-test_extra.lua---pickers---git_branches()---works
    │   ├── tests-test_extra.lua---pickers---git_branches()---works-002
    │   ├── tests-test_extra.lua---pickers---git_commits()---works
    │   ├── tests-test_extra.lua---pickers---git_commits()---works-002
    │   ├── tests-test_extra.lua---pickers---git_files()---can-not-show-icons
    │   ├── tests-test_extra.lua---pickers---git_files()---works
    │   ├── tests-test_extra.lua---pickers---git_files()---works-002
    │   ├── tests-test_extra.lua---pickers---git_hunks()---respects-`local_opts.n_context`---test-+-args-{-0-}
    │   ├── tests-test_extra.lua---pickers---git_hunks()---respects-`local_opts.n_context`---test-+-args-{-0-}-002
    │   ├── tests-test_extra.lua---pickers---git_hunks()---respects-`local_opts.n_context`---test-+-args-{-0-}-003
    │   ├── tests-test_extra.lua---pickers---git_hunks()---respects-`local_opts.n_context`---test-+-args-{-20-}
    │   ├── tests-test_extra.lua---pickers---git_hunks()---respects-`local_opts.n_context`---test-+-args-{-20-}-002
    │   ├── tests-test_extra.lua---pickers---git_hunks()---respects-`local_opts.n_context`---test-+-args-{-20-}-003
    │   ├── tests-test_extra.lua---pickers---git_hunks()---works
    │   ├── tests-test_extra.lua---pickers---git_hunks()---works-002
    │   ├── tests-test_extra.lua---pickers---git_hunks()---works-003
    │   ├── tests-test_extra.lua---pickers---git_hunks()---works-004
    │   ├── tests-test_extra.lua---pickers---git_hunks()---works-005
    │   ├── tests-test_extra.lua---pickers---git_hunks()---works-006
    │   ├── tests-test_extra.lua---pickers---hipatterns()---respects-`local_opts.highlighters`
    │   ├── tests-test_extra.lua---pickers---hipatterns()---respects-`local_opts.scope`
    │   ├── tests-test_extra.lua---pickers---hipatterns()---works
    │   ├── tests-test_extra.lua---pickers---hipatterns()---works-002
    │   ├── tests-test_extra.lua---pickers---history()---works
    │   ├── tests-test_extra.lua---pickers---history()---works-002
    │   ├── tests-test_extra.lua---pickers---hl_groups()---respects-non-default-linked-highlight-groups
    │   ├── tests-test_extra.lua---pickers---hl_groups()---works
    │   ├── tests-test_extra.lua---pickers---hl_groups()---works-002
    │   ├── tests-test_extra.lua---pickers---keymaps()---shows-source-of-Lua-callback-in-preview
    │   ├── tests-test_extra.lua---pickers---keymaps()---shows-source-of-Lua-callback-in-preview-002
    │   ├── tests-test_extra.lua---pickers---keymaps()---shows-source-of-Lua-callback-in-preview-003
    │   ├── tests-test_extra.lua---pickers---keymaps()---works
    │   ├── tests-test_extra.lua---pickers---keymaps()---works-002
    │   ├── tests-test_extra.lua---pickers---list()---works-for-`change`
    │   ├── tests-test_extra.lua---pickers---list()---works-for-`change`-002
    │   ├── tests-test_extra.lua---pickers---list()---works-for-`jump`
    │   ├── tests-test_extra.lua---pickers---list()---works-for-`jump`-002
    │   ├── tests-test_extra.lua---pickers---list()---works-for-`location`
    │   ├── tests-test_extra.lua---pickers---list()---works-for-`location`-002
    │   ├── tests-test_extra.lua---pickers---list()---works-for-`location`-003
    │   ├── tests-test_extra.lua---pickers---list()---works-for-`location`-004
    │   ├── tests-test_extra.lua---pickers---list()---works-for-`quickfix`
    │   ├── tests-test_extra.lua---pickers---list()---works-for-`quickfix`-002
    │   ├── tests-test_extra.lua---pickers---list()---works-for-`quickfix`-003
    │   ├── tests-test_extra.lua---pickers---list()---works-for-`quickfix`-004
    │   ├── tests-test_extra.lua---pickers---lsp()---works-for-`declaration`
    │   ├── tests-test_extra.lua---pickers---lsp()---works-for-`declaration`-002
    │   ├── tests-test_extra.lua---pickers---lsp()---works-for-`definition`
    │   ├── tests-test_extra.lua---pickers---lsp()---works-for-`definition`-002
    │   ├── tests-test_extra.lua---pickers---lsp()---works-for-`document_symbol`
    │   ├── tests-test_extra.lua---pickers---lsp()---works-for-`document_symbol`-002
    │   ├── tests-test_extra.lua---pickers---lsp()---works-for-`document_symbol`-after-`MiniIcons.tweak_lsp_kind()`
    │   ├── tests-test_extra.lua---pickers---lsp()---works-for-`document_symbol`-after-`MiniIcons.tweak_lsp_kind()`-002
    │   ├── tests-test_extra.lua---pickers---lsp()---works-for-`document_symbol`-after-`MiniIcons.tweak_lsp_kind()`-003
    │   ├── tests-test_extra.lua---pickers---lsp()---works-for-`document_symbol`-with-'mini.icons'-set-up
    │   ├── tests-test_extra.lua---pickers---lsp()---works-for-`document_symbol`-with-'mini.icons'-set-up-002
    │   ├── tests-test_extra.lua---pickers---lsp()---works-for-`implementation`
    │   ├── tests-test_extra.lua---pickers---lsp()---works-for-`implementation`-002
    │   ├── tests-test_extra.lua---pickers---lsp()---works-for-`references`
    │   ├── tests-test_extra.lua---pickers---lsp()---works-for-`references`-002
    │   ├── tests-test_extra.lua---pickers---lsp()---works-for-`type_definition`
    │   ├── tests-test_extra.lua---pickers---lsp()---works-for-`type_definition`-002
    │   ├── tests-test_extra.lua---pickers---lsp()---works-for-`workspace_symbol`
    │   ├── tests-test_extra.lua---pickers---lsp()---works-for-`workspace_symbol`-002
    │   ├── tests-test_extra.lua---pickers---lsp()---works-for-`workspace_symbol`-after-`MiniIcons.tweak_lsp_kind()`
    │   ├── tests-test_extra.lua---pickers---lsp()---works-for-`workspace_symbol`-after-`MiniIcons.tweak_lsp_kind()`-002
    │   ├── tests-test_extra.lua---pickers---lsp()---works-for-`workspace_symbol`-after-`MiniIcons.tweak_lsp_kind()`-003
    │   ├── tests-test_extra.lua---pickers---lsp()---works-for-`workspace_symbol`-with-'mini.icons'-set-up
    │   ├── tests-test_extra.lua---pickers---lsp()---works-for-`workspace_symbol`-with-'mini.icons'-set-up-002
    │   ├── tests-test_extra.lua---pickers---manpages()---can-choose-in-split
    │   ├── tests-test_extra.lua---pickers---manpages()---works
    │   ├── tests-test_extra.lua---pickers---manpages()---works-002
    │   ├── tests-test_extra.lua---pickers---manpages()---works-003
    │   ├── tests-test_extra.lua---pickers---marks()---respects-`local_opts.scope`
    │   ├── tests-test_extra.lua---pickers---marks()---respects-`local_opts.scope`-002
    │   ├── tests-test_extra.lua---pickers---marks()---respects-`local_opts.scope`-003
    │   ├── tests-test_extra.lua---pickers---marks()---works
    │   ├── tests-test_extra.lua---pickers---marks()---works-002
    │   ├── tests-test_extra.lua---pickers---marks()---works-003
    │   ├── tests-test_extra.lua---pickers---marks()---works-004
    │   ├── tests-test_extra.lua---pickers---oldfiles()---can-not-show-icons
    │   ├── tests-test_extra.lua---pickers---oldfiles()---works
    │   ├── tests-test_extra.lua---pickers---options()---correctly-previews-deprecated-options
    │   ├── tests-test_extra.lua---pickers---options()---respects-set-options
    │   ├── tests-test_extra.lua---pickers---options()---respects-set-options-002
    │   ├── tests-test_extra.lua---pickers---options()---respects-set-options-003
    │   ├── tests-test_extra.lua---pickers---options()---works
    │   ├── tests-test_extra.lua---pickers---options()---works-002
    │   ├── tests-test_extra.lua---pickers---registers()---works
    │   ├── tests-test_extra.lua---pickers---registers()---works-002
    │   ├── tests-test_extra.lua---pickers---spellsuggest()---works
    │   ├── tests-test_extra.lua---pickers---spellsuggest()---works-002
    │   ├── tests-test_extra.lua---pickers---treesitter()---works
    │   ├── tests-test_extra.lua---pickers---treesitter()---works-002
    │   ├── tests-test_extra.lua---pickers---treesitter()---works-003
    │   ├── tests-test_extra.lua---pickers---visit_labels()---can-not-show-icons-after-choosing
    │   ├── tests-test_extra.lua---pickers---visit_labels()---respects-`local_opts.sort`
    │   ├── tests-test_extra.lua---pickers---visit_labels()---works
    │   ├── tests-test_extra.lua---pickers---visit_labels()---works-002
    │   ├── tests-test_extra.lua---pickers---visit_labels()---works-003
    │   ├── tests-test_extra.lua---pickers---visit_paths()---can-not-show-icons
    │   ├── tests-test_extra.lua---pickers---visit_paths()---works
    │   ├── tests-test_extra.lua---pickers---visit_paths()---works-002
    │   ├── tests-test_files.lua---Cursors---handle-`content.prefix`-returning-different-lengths
    │   ├── tests-test_files.lua---Cursors---shows-whole-line-after-horizontal-scroll
    │   ├── tests-test_files.lua---Cursors---shows-whole-line-after-horizontal-scroll-002
    │   ├── tests-test_files.lua---Default-explorer---works-in-`-edit-.`
    │   ├── tests-test_files.lua---Default-explorer---works-in-`-tabfind-.`
    │   ├── tests-test_files.lua---Default-explorer---works-in-`-tabfind-.`-002
    │   ├── tests-test_files.lua---Default-explorer---works-in-`-vsplit-.`
    │   ├── tests-test_files.lua---Default-explorer---works-in-`-vsplit-.`-002
    │   ├── tests-test_files.lua---Default-explorer---works-on-startup
    │   ├── tests-test_files.lua---Events---`MiniFilesWindowOpen`-can-be-used-to-tweak-window-config
    │   ├── tests-test_files.lua---Events---`MiniFilesWindowOpen`-can-be-used-to-tweak-window-config-002
    │   ├── tests-test_files.lua---Events---`MiniFilesWindowOpen`-can-be-used-to-tweak-window-config-003
    │   ├── tests-test_files.lua---Events---`MiniFilesWindowUpdate`-can-customize-internally-set-window-config-parts
    │   ├── tests-test_files.lua---Events---`MiniFilesWindowUpdate`-can-customize-internally-set-window-config-parts-002
    │   ├── tests-test_files.lua---Events---`MiniFilesWindowUpdate`-can-customize-internally-set-window-config-parts-003
    │   ├── tests-test_files.lua---Events---`MiniFilesWindowUpdate`-can-customize-internally-set-window-config-parts-004
    │   ├── tests-test_files.lua---Events---`MiniFilesWindowUpdate`-can-customize-internally-set-window-config-parts-005
    │   ├── tests-test_files.lua---File-manipulation---can-be-not-confirmed
    │   ├── tests-test_files.lua---File-manipulation---can-be-not-confirmed-002
    │   ├── tests-test_files.lua---File-manipulation---can-be-not-confirmed-with-preview
    │   ├── tests-test_files.lua---File-manipulation---can-be-not-confirmed-with-preview-002
    │   ├── tests-test_files.lua---File-manipulation---can-convert-file-into-directory
    │   ├── tests-test_files.lua---File-manipulation---can-convert-file-into-directory-002
    │   ├── tests-test_files.lua---File-manipulation---can-copy-directory
    │   ├── tests-test_files.lua---File-manipulation---can-copy-directory-002
    │   ├── tests-test_files.lua---File-manipulation---can-copy-directory-inside-itself
    │   ├── tests-test_files.lua---File-manipulation---can-copy-directory-inside-itself-002
    │   ├── tests-test_files.lua---File-manipulation---can-copy-directory-inside-new-directory
    │   ├── tests-test_files.lua---File-manipulation---can-copy-directory-inside-new-directory-002
    │   ├── tests-test_files.lua---File-manipulation---can-copy-file
    │   ├── tests-test_files.lua---File-manipulation---can-copy-file-002
    │   ├── tests-test_files.lua---File-manipulation---can-copy-file-inside-new-directory
    │   ├── tests-test_files.lua---File-manipulation---can-copy-file-inside-new-directory-002
    │   ├── tests-test_files.lua---File-manipulation---can-create
    │   ├── tests-test_files.lua---File-manipulation---can-create-002
    │   ├── tests-test_files.lua---File-manipulation---can-delete
    │   ├── tests-test_files.lua---File-manipulation---can-delete-002
    │   ├── tests-test_files.lua---File-manipulation---can-move-directory
    │   ├── tests-test_files.lua---File-manipulation---can-move-directory-002
    │   ├── tests-test_files.lua---File-manipulation---can-move-file
    │   ├── tests-test_files.lua---File-manipulation---can-move-file-002
    │   ├── tests-test_files.lua---File-manipulation---can-move-inside-new-directory
    │   ├── tests-test_files.lua---File-manipulation---can-move-inside-new-directory-002
    │   ├── tests-test_files.lua---File-manipulation---can-move-while-changing-basename
    │   ├── tests-test_files.lua---File-manipulation---can-move-while-changing-basename-002
    │   ├── tests-test_files.lua---File-manipulation---can-rename
    │   ├── tests-test_files.lua---File-manipulation---can-rename-002
    │   ├── tests-test_files.lua---File-manipulation---copy-does-not-override-existing-entry
    │   ├── tests-test_files.lua---File-manipulation---copy-does-not-override-existing-entry-002
    │   ├── tests-test_files.lua---File-manipulation---copy-does-not-override-existing-entry-003
    │   ├── tests-test_files.lua---File-manipulation---create-does-not-override-existing-entry
    │   ├── tests-test_files.lua---File-manipulation---create-does-not-override-existing-entry-002
    │   ├── tests-test_files.lua---File-manipulation---creates-files-in-nested-directories
    │   ├── tests-test_files.lua---File-manipulation---creates-files-in-nested-directories-002
    │   ├── tests-test_files.lua---File-manipulation---creates-nested-directories
    │   ├── tests-test_files.lua---File-manipulation---creates-nested-directories-002
    │   ├── tests-test_files.lua---File-manipulation---handles-backslash-on-Unix
    │   ├── tests-test_files.lua---File-manipulation---handles-backslash-on-Unix-002
    │   ├── tests-test_files.lua---File-manipulation---handles-move-directory-inside-itself
    │   ├── tests-test_files.lua---File-manipulation---handles-move-directory-inside-itself-002
    │   ├── tests-test_files.lua---File-manipulation---ignores-blank-lines
    │   ├── tests-test_files.lua---File-manipulation---ignores-blank-lines-002
    │   ├── tests-test_files.lua---File-manipulation---ignores-identical-user-copied-entries
    │   ├── tests-test_files.lua---File-manipulation---ignores-identical-user-copied-entries-002
    │   ├── tests-test_files.lua---File-manipulation---move-does-not-override-existing-entry
    │   ├── tests-test_files.lua---File-manipulation---move-does-not-override-existing-entry-002
    │   ├── tests-test_files.lua---File-manipulation---move-does-not-override-existing-entry-003
    │   ├── tests-test_files.lua---File-manipulation---move-works-again-after-undo
    │   ├── tests-test_files.lua---File-manipulation---move-works-again-after-undo-002
    │   ├── tests-test_files.lua---File-manipulation---rename-does-not-override-existing-entry
    │   ├── tests-test_files.lua---File-manipulation---rename-does-not-override-existing-entry-002
    │   ├── tests-test_files.lua---File-manipulation---rename-does-not-override-existing-entry-003
    │   ├── tests-test_files.lua---File-manipulation---rename-works-again-after-undo
    │   ├── tests-test_files.lua---File-manipulation---rename-works-again-after-undo-002
    │   ├── tests-test_files.lua---File-manipulation---respects-modified-hidden-buffers
    │   ├── tests-test_files.lua---File-manipulation---works-with-problematic-names
    │   ├── tests-test_files.lua---File-manipulation---works-with-problematic-names-002
    │   ├── tests-test_files.lua---Mappings---`go_in_plus`-supports--count-
    │   ├── tests-test_files.lua---Mappings---`go_in_plus`-supports--count--002
    │   ├── tests-test_files.lua---Mappings---`go_in_plus`-works
    │   ├── tests-test_files.lua---Mappings---`go_in`-supports--count-
    │   ├── tests-test_files.lua---Mappings---`go_in`-supports--count--002
    │   ├── tests-test_files.lua---Mappings---`go_in`-works
    │   ├── tests-test_files.lua---Mappings---`go_in`-works-in-linewise-Visual-mode
    │   ├── tests-test_files.lua---Mappings---`go_in`-works-in-linewise-Visual-mode-002
    │   ├── tests-test_files.lua---Mappings---`go_in`-works-in-linewise-Visual-mode-003
    │   ├── tests-test_files.lua---Mappings---`go_out_plus`-supports--count-
    │   ├── tests-test_files.lua---Mappings---`go_out_plus`-supports--count--002
    │   ├── tests-test_files.lua---Mappings---`go_out_plus`-supports--count--003
    │   ├── tests-test_files.lua---Mappings---`go_out_plus`-works
    │   ├── tests-test_files.lua---Mappings---`go_out_plus`-works-002
    │   ├── tests-test_files.lua---Mappings---`go_out_plus`-works-003
    │   ├── tests-test_files.lua---Mappings---`go_out`-supports--count-
    │   ├── tests-test_files.lua---Mappings---`go_out`-supports--count--002
    │   ├── tests-test_files.lua---Mappings---`go_out`-supports--count--003
    │   ├── tests-test_files.lua---Mappings---`go_out`-works
    │   ├── tests-test_files.lua---Mappings---`reset`-works
    │   ├── tests-test_files.lua---Mappings---`reset`-works-002
    │   ├── tests-test_files.lua---Mappings---`reset`-works-003
    │   ├── tests-test_files.lua---Mappings---`reveal_cwd`-works
    │   ├── tests-test_files.lua---Mappings---`reveal_cwd`-works-002
    │   ├── tests-test_files.lua---Mappings---`reveal_cwd`-works-003
    │   ├── tests-test_files.lua---Mappings---`show_help`-works
    │   ├── tests-test_files.lua---Mappings---`show_help`-works-002
    │   ├── tests-test_files.lua---Mappings---`show_help`-works-003
    │   ├── tests-test_files.lua---Mappings---`synchronize`-works
    │   ├── tests-test_files.lua---Mappings---`synchronize`-works-002
    │   ├── tests-test_files.lua---Mappings---`synchronize`-works-003
    │   ├── tests-test_files.lua---Mappings---`synchronize`-works-004
    │   ├── tests-test_files.lua---Mappings---`synchronize`-works-005
    │   ├── tests-test_files.lua---Mappings---`synchronize`-works-006
    │   ├── tests-test_files.lua---Mappings---`trim_left`-works
    │   ├── tests-test_files.lua---Mappings---`trim_right`-works
    │   ├── tests-test_files.lua---Preview---always-updates-with-cursor
    │   ├── tests-test_files.lua---Preview---can-work-after-renaming-with-small-overall-width
    │   ├── tests-test_files.lua---Preview---can-work-after-renaming-with-small-overall-width-002
    │   ├── tests-test_files.lua---Preview---does-not-highlight-big-files
    │   ├── tests-test_files.lua---Preview---is-not-removed-when-going-out
    │   ├── tests-test_files.lua---Preview---is-not-removed-when-going-out-002
    │   ├── tests-test_files.lua---Preview---is-not-shown-if-not-enough-space
    │   ├── tests-test_files.lua---Preview---previews-only-one-level-deep
    │   ├── tests-test_files.lua---Preview---respects-global-value-of-'list'-and-'listchars'-option
    │   ├── tests-test_files.lua---Preview---respects-global-value-of-'list'-and-'listchars'-option-002
    │   ├── tests-test_files.lua---Preview---respects-global-value-of-'list'-and-'listchars'-option-003
    │   ├── tests-test_files.lua---Preview---respects-global-value-of-'list'-and-'listchars'-option-004
    │   ├── tests-test_files.lua---Preview---works-after-`trim_left()`
    │   ├── tests-test_files.lua---Preview---works-for-directories
    │   ├── tests-test_files.lua---Preview---works-for-directories-002
    │   ├── tests-test_files.lua---Preview---works-for-directories-003
    │   ├── tests-test_files.lua---Preview---works-for-files
    │   ├── tests-test_files.lua---Preview---works-for-files-002
    │   ├── tests-test_files.lua---Preview---works-for-files-003
    │   ├── tests-test_files.lua---Preview---works-for-files-004
    │   ├── tests-test_files.lua---Preview---works-for-files-005
    │   ├── tests-test_files.lua---Preview---works-for-files-006
    │   ├── tests-test_files.lua---Preview---works-with-imaginary-paths
    │   ├── tests-test_files.lua---Preview---works-with-imaginary-paths-002
    │   ├── tests-test_files.lua---Preview---works-with-imaginary-paths-003
    │   ├── tests-test_files.lua---Preview---works-with-imaginary-paths-004
    │   ├── tests-test_files.lua---Preview---works-with-imaginary-paths-005
    │   ├── tests-test_files.lua---Preview---works-with-imaginary-paths-006
    │   ├── tests-test_files.lua---Preview---works-with-imaginary-paths-007
    │   ├── tests-test_files.lua---Preview---works-with-imaginary-paths-008
    │   ├── tests-test_files.lua---Windows---always-show-cursor-line-in-directories
    │   ├── tests-test_files.lua---Windows---always-show-cursor-line-in-directories-002
    │   ├── tests-test_files.lua---Windows---correctly-computes-part-of-branch-to-show
    │   ├── tests-test_files.lua---Windows---correctly-computes-part-of-branch-to-show-002
    │   ├── tests-test_files.lua---Windows---correctly-computes-part-of-branch-to-show-003
    │   ├── tests-test_files.lua---Windows---correctly-computes-part-of-branch-to-show-004
    │   ├── tests-test_files.lua---Windows---correctly-computes-part-of-branch-to-show-005
    │   ├── tests-test_files.lua---Windows---correctly-computes-part-of-branch-to-show-006
    │   ├── tests-test_files.lua---Windows---correctly-computes-part-of-branch-to-show-with-preview
    │   ├── tests-test_files.lua---Windows---correctly-highlight-content-during-editing
    │   ├── tests-test_files.lua---Windows---does-not-wrap-content
    │   ├── tests-test_files.lua---Windows---is-in-sync-with-cursor
    │   ├── tests-test_files.lua---Windows---is-in-sync-with-cursor-002
    │   ├── tests-test_files.lua---Windows---is-in-sync-with-cursor-003
    │   ├── tests-test_files.lua---Windows---is-in-sync-with-cursor-004
    │   ├── tests-test_files.lua---Windows---is-in-sync-with-cursor-005
    │   ├── tests-test_files.lua---Windows---never-shows-past-end-of-buffer
    │   ├── tests-test_files.lua---Windows---never-shows-past-end-of-buffer-002
    │   ├── tests-test_files.lua---Windows---never-shows-past-end-of-buffer-003
    │   ├── tests-test_files.lua---Windows---reacts-on-`VimResized`
    │   ├── tests-test_files.lua---Windows---reacts-on-`VimResized`-002
    │   ├── tests-test_files.lua---Windows---reacts-on-`VimResized`-003
    │   ├── tests-test_files.lua---Windows---reacts-on-`VimResized`-004
    │   ├── tests-test_files.lua---Windows---respect-'winborder'-option
    │   ├── tests-test_files.lua---Windows---respect-'winborder'-option-002
    │   ├── tests-test_files.lua---Windows---respect-'winborder'-option-003
    │   ├── tests-test_files.lua---Windows---respects-tabline-and-statusline-when-computing-height
    │   ├── tests-test_files.lua---Windows---respects-tabline-and-statusline-when-computing-height-002
    │   ├── tests-test_files.lua---Windows---respects-tabline-and-statusline-when-computing-height-003
    │   ├── tests-test_files.lua---Windows---respects-tabline-and-statusline-when-computing-height-004
    │   ├── tests-test_files.lua---Windows---respects-tabline-when-computing-position
    │   ├── tests-test_files.lua---Windows---works-with-too-small-dimensions
    │   ├── tests-test_files.lua---close()---checks-for-pending-file-system-actions
    │   ├── tests-test_files.lua---close()---checks-for-pending-file-system-actions-002
    │   ├── tests-test_files.lua---close()---checks-for-pending-file-system-actions-003
    │   ├── tests-test_files.lua---close()---handles-invalid-target-window
    │   ├── tests-test_files.lua---close()---handles-invalid-target-window-002
    │   ├── tests-test_files.lua---close()---works
    │   ├── tests-test_files.lua---close()---works-002
    │   ├── tests-test_files.lua---close()---works-per-tabpage
    │   ├── tests-test_files.lua---go_in()---warns-about-paths-not-present-on-disk
    │   ├── tests-test_files.lua---go_in()---works-on-directory
    │   ├── tests-test_files.lua---go_in()---works-on-directory-002
    │   ├── tests-test_files.lua---go_out()---root-update-reuses-buffers-without-their-update
    │   ├── tests-test_files.lua---go_out()---works-on-branch-root
    │   ├── tests-test_files.lua---go_out()---works-on-not-branch-root
    │   ├── tests-test_files.lua---open()---`content.prefix`-can-be-used-to-not-show-prefix
    │   ├── tests-test_files.lua---open()---`content.prefix`-can-return-`nil`
    │   ├── tests-test_files.lua---open()---`content.prefix`-can-return-`nil`-002
    │   ├── tests-test_files.lua---open()---`content.prefix`-can-return-`nil`-003
    │   ├── tests-test_files.lua---open()---`content.sort`-can-be-used-to-also-filter-items
    │   ├── tests-test_files.lua---open()---can-display-entries-with-newline-character
    │   ├── tests-test_files.lua---open()---can-display-entries-with-newline-character-002
    │   ├── tests-test_files.lua---open()---focuses-on-file-entry-when-opened-from-history
    │   ├── tests-test_files.lua---open()---focuses-on-file-entry-when-opened-from-history-002
    │   ├── tests-test_files.lua---open()---focuses-on-file-entry-when-opened-from-history-003
    │   ├── tests-test_files.lua---open()---focuses-on-file-entry-when-opened-from-history-004
    │   ├── tests-test_files.lua---open()---handles-backslash-on-Unix
    │   ├── tests-test_files.lua---open()---handles-problematic-entry-names
    │   ├── tests-test_files.lua---open()---history---handles-external-changes-between-calls
    │   ├── tests-test_files.lua---open()---history---handles-external-changes-between-calls-002
    │   ├── tests-test_files.lua---open()---history---is-shared-across-tabpages
    │   ├── tests-test_files.lua---open()---history---is-shared-across-tabpages-002
    │   ├── tests-test_files.lua---open()---history---is-shared-across-tabpages-003
    │   ├── tests-test_files.lua---open()---history---opens-from-history-by-default
    │   ├── tests-test_files.lua---open()---history---opens-from-history-by-default-002
    │   ├── tests-test_files.lua---open()---history---prefers-global-config-before-taking-from-history
    │   ├── tests-test_files.lua---open()---history---prefers-global-config-before-taking-from-history-002
    │   ├── tests-test_files.lua---open()---history---respects-`use_latest`
    │   ├── tests-test_files.lua---open()---history---respects-`use_latest`-002
    │   ├── tests-test_files.lua---open()---history---stores-whole-branch-and-not-only-visible-windows
    │   ├── tests-test_files.lua---open()---history---stores-whole-branch-and-not-only-visible-windows-002
    │   ├── tests-test_files.lua---open()---normalizes-before-first-refresh-when-focused-on-directory-with-`windows.preview`
    │   ├── tests-test_files.lua---open()---normalizes-before-first-refresh-when-focused-on-file
    │   ├── tests-test_files.lua---open()---properly-closes-currently-opened-explorer
    │   ├── tests-test_files.lua---open()---respects-`content.filter`
    │   ├── tests-test_files.lua---open()---respects-`content.filter`-002
    │   ├── tests-test_files.lua---open()---respects-`content.highlight`
    │   ├── tests-test_files.lua---open()---respects-`content.highlight`-002
    │   ├── tests-test_files.lua---open()---respects-`content.prefix`
    │   ├── tests-test_files.lua---open()---respects-`content.prefix`-002
    │   ├── tests-test_files.lua---open()---respects-`content.sort`
    │   ├── tests-test_files.lua---open()---respects-`content.sort`-002
    │   ├── tests-test_files.lua---open()---respects-`mappings`
    │   ├── tests-test_files.lua---open()---respects-`mappings`-002
    │   ├── tests-test_files.lua---open()---respects-`vim.b.minifiles_config`
    │   ├── tests-test_files.lua---open()---respects-`windows.max_number`
    │   ├── tests-test_files.lua---open()---respects-`windows.max_number`-002
    │   ├── tests-test_files.lua---open()---respects-`windows.preview`
    │   ├── tests-test_files.lua---open()---respects-`windows.preview`-002
    │   ├── tests-test_files.lua---open()---respects-`windows.width_focus`-and-`windows.width_nofocus`
    │   ├── tests-test_files.lua---open()---respects-`windows.width_focus`-and-`windows.width_nofocus`-002
    │   ├── tests-test_files.lua---open()---respects-`windows.width_preview`
    │   ├── tests-test_files.lua---open()---respects-`windows.width_preview`-002
    │   ├── tests-test_files.lua---open()---respects-`windows.width_preview`-003
    │   ├── tests-test_files.lua---open()---respects-`windows.width_preview`-004
    │   ├── tests-test_files.lua---open()---respects-`windows.width_preview`-005
    │   ├── tests-test_files.lua---open()---respects-`windows.width_preview`-006
    │   ├── tests-test_files.lua---open()---uses-`MiniIcons.get()`-with-full-path
    │   ├── tests-test_files.lua---open()---uses-icon-provider
    │   ├── tests-test_files.lua---open()---uses-icon-provider-002
    │   ├── tests-test_files.lua---open()---uses-icon-provider-003
    │   ├── tests-test_files.lua---open()---works-per-tabpage
    │   ├── tests-test_files.lua---open()---works-per-tabpage-002
    │   ├── tests-test_files.lua---open()---works-per-tabpage-003
    │   ├── tests-test_files.lua---open()---works-with-directory-path
    │   ├── tests-test_files.lua---open()---works-with-directory-path-002
    │   ├── tests-test_files.lua---open()---works-with-directory-path-003
    │   ├── tests-test_files.lua---open()---works-with-file-path
    │   ├── tests-test_files.lua---open()---works-with-file-path-002
    │   ├── tests-test_files.lua---refresh()---does-not-update-buffers-with-`nil`-`filter`-and-`sort`
    │   ├── tests-test_files.lua---refresh()---does-not-update-buffers-with-`nil`-`filter`-and-`sort`-002
    │   ├── tests-test_files.lua---refresh()---handles-presence-of-pending-file-system-actions
    │   ├── tests-test_files.lua---refresh()---handles-presence-of-pending-file-system-actions-002
    │   ├── tests-test_files.lua---refresh()---handles-presence-of-pending-file-system-actions-003
    │   ├── tests-test_files.lua---refresh()---handles-presence-of-pending-file-system-actions-004
    │   ├── tests-test_files.lua---refresh()---preserves-explorer-options
    │   ├── tests-test_files.lua---refresh()---preserves-explorer-options-002
    │   ├── tests-test_files.lua---refresh()---updates-buffers-with-non-empty-`content`
    │   ├── tests-test_files.lua---refresh()---updates-buffers-with-non-empty-`content`-002
    │   ├── tests-test_files.lua---refresh()---updates-buffers-with-non-empty-`content`-003
    │   ├── tests-test_files.lua---refresh()---updates-buffers-with-non-empty-`content`-004
    │   ├── tests-test_files.lua---refresh()---works
    │   ├── tests-test_files.lua---reset()---resets-all-cursors
    │   ├── tests-test_files.lua---reset()---resets-all-cursors-002
    │   ├── tests-test_files.lua---reset()---works
    │   ├── tests-test_files.lua---reset()---works-002
    │   ├── tests-test_files.lua---reset()---works-when-anchor-is-not-in-branch
    │   ├── tests-test_files.lua---reset()---works-when-anchor-is-not-in-branch-002
    │   ├── tests-test_files.lua---reveal_cwd()---properly-places-cursors
    │   ├── tests-test_files.lua---reveal_cwd()---properly-places-cursors-002
    │   ├── tests-test_files.lua---reveal_cwd()---works
    │   ├── tests-test_files.lua---reveal_cwd()---works-002
    │   ├── tests-test_files.lua---reveal_cwd()---works-when-not-inside-cwd
    │   ├── tests-test_files.lua---reveal_cwd()---works-when-not-inside-cwd-002
    │   ├── tests-test_files.lua---reveal_cwd()---works-when-root-is-already-cwd
    │   ├── tests-test_files.lua---reveal_cwd()---works-when-root-is-already-cwd-002
    │   ├── tests-test_files.lua---reveal_cwd()---works-with-preview
    │   ├── tests-test_files.lua---reveal_cwd()---works-with-preview-002
    │   ├── tests-test_files.lua---set_branch()---works
    │   ├── tests-test_files.lua---set_branch()---works-002
    │   ├── tests-test_files.lua---set_branch()---works-003
    │   ├── tests-test_files.lua---set_branch()---works-with-file-path-in-branch
    │   ├── tests-test_files.lua---set_branch()---works-with-file-path-in-branch-002
    │   ├── tests-test_files.lua---set_branch()---works-with-preview
    │   ├── tests-test_files.lua---show_help()---adjusts-window-width
    │   ├── tests-test_files.lua---show_help()---handles-bookmarks
    │   ├── tests-test_files.lua---show_help()---handles-mappings-without-description
    │   ├── tests-test_files.lua---show_help()---handles-non-default-mappings
    │   ├── tests-test_files.lua---show_help()---opens-relatively-current-window
    │   ├── tests-test_files.lua---show_help()---respects-'winborder'-option
    │   ├── tests-test_files.lua---show_help()---respects-'winborder'-option-002
    │   ├── tests-test_files.lua---show_help()---respects-'winborder'-option-003
    │   ├── tests-test_files.lua---show_help()---works
    │   ├── tests-test_files.lua---show_help()---works-002
    │   ├── tests-test_files.lua---synchronize()---can-update-external-file-system-changes
    │   ├── tests-test_files.lua---trim_left()---works
    │   ├── tests-test_files.lua---trim_left()---works-002
    │   ├── tests-test_files.lua---trim_left()---works-when-in-the-middle-of-the-branch
    │   ├── tests-test_files.lua---trim_left()---works-when-in-the-middle-of-the-branch-002
    │   ├── tests-test_files.lua---trim_right()---works
    │   ├── tests-test_files.lua---trim_right()---works-002
    │   ├── tests-test_files.lua---trim_right()---works-when-in-the-middle-of-the-branch
    │   ├── tests-test_files.lua---trim_right()---works-when-in-the-middle-of-the-branch-002
    │   ├── tests-test_git.lua----Git---completion---uses-correct-working-directory-for-paths
    │   ├── tests-test_git.lua----Git---completion---works-with-explicit-paths
    │   ├── tests-test_git.lua----Git---completion---works-with-explicit-paths-002
    │   ├── tests-test_git.lua----Git---completion---works-with-explicit-paths-003
    │   ├── tests-test_git.lua----Git---completion---works-with-explicit-paths-004
    │   ├── tests-test_git.lua----Git---completion---works-with-explicit-paths-005
    │   ├── tests-test_git.lua----Git---completion---works-with-not-supported-command
    │   ├── tests-test_git.lua----Git---completion---works-with-not-supported-command-002
    │   ├── tests-test_git.lua----Git---completion---works-with-not-supported-command-003
    │   ├── tests-test_git.lua----Git---completion---works-with-options
    │   ├── tests-test_git.lua----Git---completion---works-with-options-002
    │   ├── tests-test_git.lua----Git---completion---works-with-options-003
    │   ├── tests-test_git.lua----Git---completion---works-with-options-004
    │   ├── tests-test_git.lua----Git---completion---works-with-options-005
    │   ├── tests-test_git.lua----Git---completion---works-with-options-006
    │   ├── tests-test_git.lua----Git---completion---works-with-options-007
    │   ├── tests-test_git.lua----Git---completion---works-with-present-command-modifiers
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommand-targets
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommand-targets-002
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommand-targets-003
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommand-targets-004
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommand-targets-005
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommand-targets-006
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommand-targets-007
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommand-targets-008
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommand-targets-009
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommand-targets-010
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommand-targets-011
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommand-targets-012
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommand-targets-013
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommand-targets-014
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommand-targets-015
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommand-targets-016
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommand-targets-017
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommand-targets-018
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommand-targets-019
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommand-targets-020
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommand-targets-021
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommand-targets-022
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommand-targets-023
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommand-targets-024
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommand-targets-025
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommand-targets-026
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommand-targets-027
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommand-targets-028
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommand-targets-029
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommand-targets-030
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommands
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommands-002
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommands-003
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommands-004
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommands-005
    │   ├── tests-test_git.lua----Git---completion---works-with-subcommands-006
    │   ├── tests-test_git.lua---Tracking---redraws-statusline-when-summary-is-updated
    │   ├── tests-test_git.lua---Tracking---redraws-statusline-when-summary-is-updated-002
    │   ├── tests-test_git.lua---Tracking---redraws-statusline-when-summary-is-updated-003
    │   ├── tests-test_git.lua---Tracking---redraws-statusline-when-summary-is-updated-004
    │   ├── tests-test_git.lua---Tracking---redraws-statusline-when-summary-is-updated-005
    │   ├── tests-test_git.lua---diff_foldexpr()---works-in-`git-log`-output
    │   ├── tests-test_git.lua---diff_foldexpr()---works-in-`git-log`-output-002
    │   ├── tests-test_git.lua---diff_foldexpr()---works-in-`git-log`-output-003
    │   ├── tests-test_git.lua---diff_foldexpr()---works-in-`git-log`-output-004
    │   ├── tests-test_git.lua---diff_foldexpr()---works-in-diff-patch
    │   ├── tests-test_git.lua---diff_foldexpr()---works-in-diff-patch-002
    │   ├── tests-test_git.lua---diff_foldexpr()---works-in-diff-patch-003
    │   ├── tests-test_git.lua---diff_foldexpr()---works-in-diff-patch-004
    │   ├── tests-test_hipatterns.lua---Auto-enable---does-not-enable-in-not-proper-buffers
    │   ├── tests-test_hipatterns.lua---Auto-enable---makes-`-edit`-work
    │   ├── tests-test_hipatterns.lua---Auto-enable---makes-`-edit`-work-002
    │   ├── tests-test_hipatterns.lua---Auto-enable---works
    │   ├── tests-test_hipatterns.lua---Autocommands---resets-on-color-scheme-change
    │   ├── tests-test_hipatterns.lua---Autocommands---resets-on-color-scheme-change-002
    │   ├── tests-test_hipatterns.lua---Autocommands---resets-on-color-scheme-change-003
    │   ├── tests-test_hipatterns.lua---Highlighters---allows-array-`pattern`
    │   ├── tests-test_hipatterns.lua---Highlighters---allows-array-`pattern`-002
    │   ├── tests-test_hipatterns.lua---Highlighters---allows-callable-`group`
    │   ├── tests-test_hipatterns.lua---Highlighters---allows-callable-`pattern`
    │   ├── tests-test_hipatterns.lua---Highlighters---allows-frontier-pattern-in-`pattern`
    │   ├── tests-test_hipatterns.lua---Highlighters---allows-return-`nil`-`group`-to-not-highlight
    │   ├── tests-test_hipatterns.lua---Highlighters---allows-return-`nil`-`pattern`-to-not-highlight
    │   ├── tests-test_hipatterns.lua---Highlighters---allows-return-`nil`-`pattern`-to-not-highlight-002
    │   ├── tests-test_hipatterns.lua---Highlighters---allows-submatch-in-`pattern`
    │   ├── tests-test_hipatterns.lua---Highlighters---allows-submatch-in-`pattern`-002
    │   ├── tests-test_hipatterns.lua---Highlighters---allows-submatch-in-`pattern`-003
    │   ├── tests-test_hipatterns.lua---Highlighters---allows-submatch-in-`pattern`-004
    │   ├── tests-test_hipatterns.lua---Highlighters---allows-submatch-in-`pattern`-005
    │   ├── tests-test_hipatterns.lua---Highlighters---respects-`extmark_opts.priority`
    │   ├── tests-test_hipatterns.lua---Highlighters---respects-`extmark_opts.priority`-002
    │   ├── tests-test_hipatterns.lua---Highlighters---respects-`extmark_opts.priority`-003
    │   ├── tests-test_hipatterns.lua---Highlighters---respects-`extmark_opts`
    │   ├── tests-test_hipatterns.lua---Highlighters---silently-skips-wrong-entries
    │   ├── tests-test_hipatterns.lua---disable()---works
    │   ├── tests-test_hipatterns.lua---disable()---works-002
    │   ├── tests-test_hipatterns.lua---disable()---works-in-not-current-buffer
    │   ├── tests-test_hipatterns.lua---disable()---works-in-not-current-buffer-002
    │   ├── tests-test_hipatterns.lua---enable()---does-not-flicker-during-text-insert
    │   ├── tests-test_hipatterns.lua---enable()---does-not-flicker-during-text-insert-002
    │   ├── tests-test_hipatterns.lua---enable()---does-not-flicker-during-text-insert-003
    │   ├── tests-test_hipatterns.lua---enable()---reacts-to-buffer-enter
    │   ├── tests-test_hipatterns.lua---enable()---reacts-to-buffer-enter-002
    │   ├── tests-test_hipatterns.lua---enable()---reacts-to-delete-of-line-with-match
    │   ├── tests-test_hipatterns.lua---enable()---reacts-to-delete-of-line-with-match-002
    │   ├── tests-test_hipatterns.lua---enable()---reacts-to-delete-of-line-with-match-003
    │   ├── tests-test_hipatterns.lua---enable()---reacts-to-delete-of-line-with-match-004
    │   ├── tests-test_hipatterns.lua---enable()---reacts-to-filetype-change
    │   ├── tests-test_hipatterns.lua---enable()---reacts-to-filetype-change-002
    │   ├── tests-test_hipatterns.lua---enable()---reacts-to-filetype-change-003
    │   ├── tests-test_hipatterns.lua---enable()---reacts-to-text-change
    │   ├── tests-test_hipatterns.lua---enable()---reacts-to-text-change-002
    │   ├── tests-test_hipatterns.lua---enable()---reacts-to-text-change-003
    │   ├── tests-test_hipatterns.lua---enable()---reacts-to-text-change-004
    │   ├── tests-test_hipatterns.lua---enable()---reacts-to-text-change-005
    │   ├── tests-test_hipatterns.lua---enable()---reacts-to-window-scroll
    │   ├── tests-test_hipatterns.lua---enable()---reacts-to-window-scroll-002
    │   ├── tests-test_hipatterns.lua---enable()---reacts-to-window-scroll-003
    │   ├── tests-test_hipatterns.lua---enable()---reacts-to-window-scroll-004
    │   ├── tests-test_hipatterns.lua---enable()---respects-`vim.b.minihipatterns_config`
    │   ├── tests-test_hipatterns.lua---enable()---respects-`vim.b.minihipatterns_config`-002
    │   ├── tests-test_hipatterns.lua---enable()---respects-`vim.b.minihipatterns_config`-003
    │   ├── tests-test_hipatterns.lua---enable()---respects-`vim.{g,b}.minihipatterns_disable`---test-+-args-{-'b'-}
    │   ├── tests-test_hipatterns.lua---enable()---respects-`vim.{g,b}.minihipatterns_disable`---test-+-args-{-'g'-}
    │   ├── tests-test_hipatterns.lua---enable()---respects-global-config-after-`setup()`
    │   ├── tests-test_hipatterns.lua---enable()---works
    │   ├── tests-test_hipatterns.lua---enable()---works-in-not-current-buffer
    │   ├── tests-test_hipatterns.lua---enable()---works-in-not-normal-buffer
    │   ├── tests-test_hipatterns.lua---enable()---works-with-defaults
    │   ├── tests-test_hipatterns.lua---gen_highlighter---hex_color()---respects-`opts.filter`
    │   ├── tests-test_hipatterns.lua---gen_highlighter---hex_color()---respects-`opts.filter`-002
    │   ├── tests-test_hipatterns.lua---gen_highlighter---hex_color()---respects-`opts.priority`
    │   ├── tests-test_hipatterns.lua---gen_highlighter---hex_color()---respects-`opts.priority`-002
    │   ├── tests-test_hipatterns.lua---gen_highlighter---hex_color()---respects-`opts.priority`-003
    │   ├── tests-test_hipatterns.lua---gen_highlighter---hex_color()---works
    │   ├── tests-test_hipatterns.lua---gen_highlighter---hex_color()---works-with-style-'#'
    │   ├── tests-test_hipatterns.lua---gen_highlighter---hex_color()---works-with-style-'inline'
    │   ├── tests-test_hipatterns.lua---gen_highlighter---hex_color()---works-with-style-'line'
    │   ├── tests-test_hipatterns.lua---setup()---auto-enables-in-all-visible-buffers
    │   ├── tests-test_hipatterns.lua---setup()---auto-enables-in-all-visible-buffers-002
    │   ├── tests-test_hipatterns.lua---toggle()---works
    │   ├── tests-test_hipatterns.lua---toggle()---works-002
    │   ├── tests-test_hipatterns.lua---update()---works
    │   ├── tests-test_hipatterns.lua---update()---works-002
    │   ├── tests-test_hipatterns.lua---update()---works-003
    │   ├── tests-test_hipatterns.lua---update()---works-004
    │   ├── tests-test_hipatterns.lua---update()---works-005
    │   ├── tests-test_hipatterns.lua---update()---works-006
    │   ├── tests-test_indentscope.lua---Auto-drawing---by-default-is-not-done-for-incomplete-scope
    │   ├── tests-test_indentscope.lua---Auto-drawing---by-default-is-not-done-for-incomplete-scope-002
    │   ├── tests-test_indentscope.lua---Auto-drawing---by-default-is-not-done-for-incomplete-scope-003
    │   ├── tests-test_indentscope.lua---Auto-drawing---by-default-is-not-done-for-incomplete-scope-004
    │   ├── tests-test_indentscope.lua---Auto-drawing---by-default-is-not-done-for-incomplete-scope-005
    │   ├── tests-test_indentscope.lua---Auto-drawing---implements-debounce-style-delay
    │   ├── tests-test_indentscope.lua---Auto-drawing---implements-debounce-style-delay-002
    │   ├── tests-test_indentscope.lua---Auto-drawing---respects-ModeChanged-event
    │   ├── tests-test_indentscope.lua---Auto-drawing---respects-ModeChanged-event-002
    │   ├── tests-test_indentscope.lua---Auto-drawing---respects-ModeChanged-event-003
    │   ├── tests-test_indentscope.lua---Auto-drawing---respects-`config.draw.delay`
    │   ├── tests-test_indentscope.lua---Auto-drawing---respects-`config.draw.delay`-002
    │   ├── tests-test_indentscope.lua---Auto-drawing---respects-`config.draw.predicate`
    │   ├── tests-test_indentscope.lua---Auto-drawing---respects-`config.draw.predicate`-002
    │   ├── tests-test_indentscope.lua---Auto-drawing---respects-`config.draw.predicate`-003
    │   ├── tests-test_indentscope.lua---Auto-drawing---respects-`vim.{g,b}.miniindentscope_disable`---test-+-args-{-'b'-}
    │   ├── tests-test_indentscope.lua---Auto-drawing---respects-`vim.{g,b}.miniindentscope_disable`---test-+-args-{-'b'-}-002
    │   ├── tests-test_indentscope.lua---Auto-drawing---respects-`vim.{g,b}.miniindentscope_disable`---test-+-args-{-'g'-}
    │   ├── tests-test_indentscope.lua---Auto-drawing---respects-`vim.{g,b}.miniindentscope_disable`---test-+-args-{-'g'-}-002
    │   ├── tests-test_indentscope.lua---Auto-drawing---respects-common-events---test-+-args-{-'CursorMoved'-}
    │   ├── tests-test_indentscope.lua---Auto-drawing---respects-common-events---test-+-args-{-'CursorMovedI'-}
    │   ├── tests-test_indentscope.lua---Auto-drawing---respects-common-events---test-+-args-{-'TextChanged'-}
    │   ├── tests-test_indentscope.lua---Auto-drawing---respects-common-events---test-+-args-{-'TextChangedI'-}
    │   ├── tests-test_indentscope.lua---Auto-drawing---respects-common-events---test-+-args-{-'TextChangedP'-}
    │   ├── tests-test_indentscope.lua---Auto-drawing---updates-immediately-when-scopes-intersect
    │   ├── tests-test_indentscope.lua---Auto-drawing---updates-immediately-when-scopes-intersect-002
    │   ├── tests-test_indentscope.lua---Auto-drawing---works-in-Insert-mode
    │   ├── tests-test_indentscope.lua---Auto-drawing---works-in-Insert-mode-002
    │   ├── tests-test_indentscope.lua---Auto-drawing---works-in-Insert-mode-003
    │   ├── tests-test_indentscope.lua---Auto-drawing---works-in-Normal-mode
    │   ├── tests-test_indentscope.lua---Auto-drawing---works-in-Normal-mode-002
    │   ├── tests-test_indentscope.lua---Auto-drawing---works-in-Normal-mode-003
    │   ├── tests-test_indentscope.lua---draw()---does-not-overshadow-'listchars'
    │   ├── tests-test_indentscope.lua---draw()---does-not-round-time-of-every-animation-step
    │   ├── tests-test_indentscope.lua---draw()---respects-`config.draw.animation`
    │   ├── tests-test_indentscope.lua---draw()---respects-`config.draw.animation`-002
    │   ├── tests-test_indentscope.lua---draw()---respects-`config.draw.animation`-003
    │   ├── tests-test_indentscope.lua---draw()---respects-`config.draw.animation`-004
    │   ├── tests-test_indentscope.lua---draw()---respects-`config.draw.priority`
    │   ├── tests-test_indentscope.lua---draw()---respects-`config.draw.priority`-002
    │   ├── tests-test_indentscope.lua---draw()---respects-`config.symbol`
    │   ├── tests-test_indentscope.lua---draw()---respects-`config.symbol`-002
    │   ├── tests-test_indentscope.lua---draw()---shows-symbols-on-wrapped-lines-without-overlapping
    │   ├── tests-test_indentscope.lua---draw()---shows-symbols-on-wrapped-lines-without-overlapping-002
    │   ├── tests-test_indentscope.lua---draw()---shows-symbols-on-wrapped-lines-without-overlapping-003
    │   ├── tests-test_indentscope.lua---draw()---works
    │   ├── tests-test_indentscope.lua---draw()---works-002
    │   ├── tests-test_indentscope.lua---draw()---works-003
    │   ├── tests-test_indentscope.lua---draw()---works-004
    │   ├── tests-test_indentscope.lua---undraw()---works
    │   ├── tests-test_indentscope.lua---undraw()---works-002
    │   ├── tests-test_jump.lua---Delayed-highlighting---done-only-if-actually-jumping
    │   ├── tests-test_jump.lua---Delayed-highlighting---implements-debounce-style-delay
    │   ├── tests-test_jump.lua---Delayed-highlighting---implements-debounce-style-delay-002
    │   ├── tests-test_jump.lua---Delayed-highlighting---implements-debounce-style-delay-003
    │   ├── tests-test_jump.lua---Delayed-highlighting---never-highlights-in-Insert-mode
    │   ├── tests-test_jump.lua---Delayed-highlighting---never-highlights-in-Insert-mode-002
    │   ├── tests-test_jump.lua---Delayed-highlighting---respects-'ignorecase'
    │   ├── tests-test_jump.lua---Delayed-highlighting---respects-'smartcase'
    │   ├── tests-test_jump.lua---Delayed-highlighting---respects-`config.delay.highlight`---test-+-args-{-'backward'-}
    │   ├── tests-test_jump.lua---Delayed-highlighting---respects-`config.delay.highlight`---test-+-args-{-'backward'-}-002
    │   ├── tests-test_jump.lua---Delayed-highlighting---respects-`config.delay.highlight`---test-+-args-{-'backward_till'-}
    │   ├── tests-test_jump.lua---Delayed-highlighting---respects-`config.delay.highlight`---test-+-args-{-'backward_till'-}-002
    │   ├── tests-test_jump.lua---Delayed-highlighting---respects-`config.delay.highlight`---test-+-args-{-'forward'-}
    │   ├── tests-test_jump.lua---Delayed-highlighting---respects-`config.delay.highlight`---test-+-args-{-'forward'-}-002
    │   ├── tests-test_jump.lua---Delayed-highlighting---respects-`config.delay.highlight`---test-+-args-{-'forward_till'-}
    │   ├── tests-test_jump.lua---Delayed-highlighting---respects-`config.delay.highlight`---test-+-args-{-'forward_till'-}-002
    │   ├── tests-test_jump.lua---Delayed-highlighting---respects-`vim.b.minijump_config`
    │   ├── tests-test_jump.lua---Delayed-highlighting---respects-`vim.b.minijump_config`-002
    │   ├── tests-test_jump.lua---Delayed-highlighting---stops-immediately-when-not-jumping
    │   ├── tests-test_jump.lua---Delayed-highlighting---stops-immediately-when-not-jumping-002
    │   ├── tests-test_jump.lua---Delayed-highlighting---updates-immediately-within-same-jumping
    │   ├── tests-test_jump.lua---Delayed-highlighting---updates-immediately-within-same-jumping-002
    │   ├── tests-test_jump.lua---Delayed-highlighting---updates-immediately-within-same-jumping-003
    │   ├── tests-test_jump.lua---Delayed-highlighting---works---test-+-args-{-'backward'-}
    │   ├── tests-test_jump.lua---Delayed-highlighting---works---test-+-args-{-'backward'-}-002
    │   ├── tests-test_jump.lua---Delayed-highlighting---works---test-+-args-{-'backward_till'-}
    │   ├── tests-test_jump.lua---Delayed-highlighting---works---test-+-args-{-'backward_till'-}-002
    │   ├── tests-test_jump.lua---Delayed-highlighting---works---test-+-args-{-'forward'-}
    │   ├── tests-test_jump.lua---Delayed-highlighting---works---test-+-args-{-'forward'-}-002
    │   ├── tests-test_jump.lua---Delayed-highlighting---works---test-+-args-{-'forward_till'-}
    │   ├── tests-test_jump.lua---Delayed-highlighting---works---test-+-args-{-'forward_till'-}-002
    │   ├── tests-test_jump.lua---Jumping-with-f-t-F-T---respects-`config.silent`
    │   ├── tests-test_jump.lua---Jumping-with-f-t-F-T---shows-reminder-after-one-idle-second
    │   ├── tests-test_jump.lua---Jumping-with-f-t-F-T---shows-reminder-after-one-idle-second-002
    │   ├── tests-test_jump.lua---Stop-jumping-after-idle---works
    │   ├── tests-test_jump.lua---Stop-jumping-after-idle---works-002
    │   ├── tests-test_jump.lua---Stop-jumping-after-idle---works-if-should-be-done-before-target-highlighting
    │   ├── tests-test_jump2d.lua---builtin_opts.line_start---works
    │   ├── tests-test_jump2d.lua---builtin_opts.single_character---shows-reminder-after-one-idle-second
    │   ├── tests-test_jump2d.lua---builtin_opts.word_start---works
    │   ├── tests-test_jump2d.lua---builtin_opts.word_start---works-002
    │   ├── tests-test_jump2d.lua---builtin_opts.word_start---works-with-multibyte-characters
    │   ├── tests-test_jump2d.lua---default_spotter()---correctly-merges-'overlapping'-spots
    │   ├── tests-test_jump2d.lua---default_spotter()---spots-before-and-after-punctuation
    │   ├── tests-test_jump2d.lua---default_spotter()---spots-first-capital-letter
    │   ├── tests-test_jump2d.lua---default_spotter()---spots-start-and-end-of-words
    │   ├── tests-test_jump2d.lua---default_spotter()---works
    │   ├── tests-test_jump2d.lua---default_spotter()---works-(almost)-with-multibyte-character
    │   ├── tests-test_jump2d.lua---gen_spotter---pattern()---handles-patterns-with-'^'-and-'$'---test-+-args-{-'.()..$',-'none'-}
    │   ├── tests-test_jump2d.lua---gen_spotter---pattern()---handles-patterns-with-'^'-and-'$'---test-+-args-{-'...$',-'end'-}
    │   ├── tests-test_jump2d.lua---gen_spotter---pattern()---handles-patterns-with-'^'-and-'$'---test-+-args-{-'...$',-'start'-}
    │   ├── tests-test_jump2d.lua---gen_spotter---pattern()---handles-patterns-with-'^'-and-'$'---test-+-args-{-'^.()..',-'none'-}
    │   ├── tests-test_jump2d.lua---gen_spotter---pattern()---handles-patterns-with-'^'-and-'$'---test-+-args-{-'^...',-'end'-}
    │   ├── tests-test_jump2d.lua---gen_spotter---pattern()---handles-patterns-with-'^'-and-'$'---test-+-args-{-'^...',-'start'-}
    │   ├── tests-test_jump2d.lua---gen_spotter---pattern()---respects-`pattern`-argument
    │   ├── tests-test_jump2d.lua---gen_spotter---pattern()---respects-`side`-argument---test-+-args-{-'%S+',-'end'-}
    │   ├── tests-test_jump2d.lua---gen_spotter---pattern()---respects-`side`-argument---test-+-args-{-'%S+',-'start'-}
    │   ├── tests-test_jump2d.lua---gen_spotter---pattern()---respects-`side`-argument---test-+-args-{-'.().',-'none'-}
    │   ├── tests-test_jump2d.lua---gen_spotter---pattern()---works
    │   ├── tests-test_jump2d.lua---gen_spotter---pattern()---works-in-edge-cases
    │   ├── tests-test_jump2d.lua---gen_spotter---pattern()---works-with-multibyte-characters
    │   ├── tests-test_jump2d.lua---gen_spotter---pattern()---works-with-multibyte-characters-002
    │   ├── tests-test_jump2d.lua---gen_spotter---union()---works
    │   ├── tests-test_jump2d.lua---gen_spotter---vimpattern---respects-`pattern`-argument
    │   ├── tests-test_jump2d.lua---gen_spotter---vimpattern---works
    │   ├── tests-test_jump2d.lua---gen_spotter---vimpattern---works-002
    │   ├── tests-test_jump2d.lua---gen_spotter---vimpattern---works-with-anchored-patterns
    │   ├── tests-test_jump2d.lua---gen_spotter---vimpattern---works-with-anchored-patterns-002
    │   ├── tests-test_jump2d.lua---gen_spotter---vimpattern---works-with-anchored-patterns-003
    │   ├── tests-test_jump2d.lua---gen_spotter---vimpattern---works-with-anchored-patterns-004
    │   ├── tests-test_jump2d.lua---gen_spotter---vimpattern---works-with-multibyte-characters
    │   ├── tests-test_jump2d.lua---setup()---applies-`config.mappings`
    │   ├── tests-test_jump2d.lua---start()---allows-`hook.before_start`-to-modify-spotter
    │   ├── tests-test_jump2d.lua---start()---handles-overlapping-multi-step-labels
    │   ├── tests-test_jump2d.lua---start()---handles-overlapping-multi-step-labels-002
    │   ├── tests-test_jump2d.lua---start()---handles-overlapping-multi-step-labels-003
    │   ├── tests-test_jump2d.lua---start()---handles-overlapping-multi-step-labels-004
    │   ├── tests-test_jump2d.lua---start()---handles-very-big-`view.n_steps_ahead`
    │   ├── tests-test_jump2d.lua---start()---handles-very-big-`view.n_steps_ahead`-002
    │   ├── tests-test_jump2d.lua---start()---highlights-unique-labels-with-different-highlight-group
    │   ├── tests-test_jump2d.lua---start()---ignores-current-window-during-label-computation---test-+-args-{-'bottomleft'-}
    │   ├── tests-test_jump2d.lua---start()---ignores-current-window-during-label-computation---test-+-args-{-'topright'-}
    │   ├── tests-test_jump2d.lua---start()---ignores-cursor-position-during-label-computation---test-+-args-{-1,-1-}
    │   ├── tests-test_jump2d.lua---start()---ignores-cursor-position-during-label-computation---test-+-args-{-2,-0-}
    │   ├── tests-test_jump2d.lua---start()---ignores-cursor-position-during-label-computation---test-+-args-{-3,-0-}
    │   ├── tests-test_jump2d.lua---start()---ignores-cursor-position-during-label-computation---test-+-args-{-3,-3-}
    │   ├── tests-test_jump2d.lua---start()---ignores-not-focusable-windows
    │   ├── tests-test_jump2d.lua---start()---jumps-immediately-to-single-spot
    │   ├── tests-test_jump2d.lua---start()---overrides-`config`-from-`opts`-argument
    │   ├── tests-test_jump2d.lua---start()---respects-`allowed_lines.blank`
    │   ├── tests-test_jump2d.lua---start()---respects-`allowed_lines.blank`-002
    │   ├── tests-test_jump2d.lua---start()---respects-`allowed_lines.cursor_-`---test-+-args-{-'cursor_after'-}
    │   ├── tests-test_jump2d.lua---start()---respects-`allowed_lines.cursor_-`---test-+-args-{-'cursor_after'-}-002
    │   ├── tests-test_jump2d.lua---start()---respects-`allowed_lines.cursor_-`---test-+-args-{-'cursor_at'-}
    │   ├── tests-test_jump2d.lua---start()---respects-`allowed_lines.cursor_-`---test-+-args-{-'cursor_at'-}-002
    │   ├── tests-test_jump2d.lua---start()---respects-`allowed_lines.cursor_-`---test-+-args-{-'cursor_before'-}
    │   ├── tests-test_jump2d.lua---start()---respects-`allowed_lines.cursor_-`---test-+-args-{-'cursor_before'-}-002
    │   ├── tests-test_jump2d.lua---start()---respects-`allowed_lines.fold`
    │   ├── tests-test_jump2d.lua---start()---respects-`allowed_lines.fold`-002
    │   ├── tests-test_jump2d.lua---start()---respects-`allowed_windows`---test-+-args-{-{current-=-false,not_current-=-false}-}
    │   ├── tests-test_jump2d.lua---start()---respects-`allowed_windows`---test-+-args-{-{current-=-false,not_current-=-false}-}-002
    │   ├── tests-test_jump2d.lua---start()---respects-`allowed_windows`---test-+-args-{-{current-=-false}-}
    │   ├── tests-test_jump2d.lua---start()---respects-`allowed_windows`---test-+-args-{-{current-=-false}-}-002
    │   ├── tests-test_jump2d.lua---start()---respects-`allowed_windows`---test-+-args-{-{not_current-=-false}-}
    │   ├── tests-test_jump2d.lua---start()---respects-`allowed_windows`---test-+-args-{-{not_current-=-false}-}-002
    │   ├── tests-test_jump2d.lua---start()---respects-`config.silent`
    │   ├── tests-test_jump2d.lua---start()---respects-`labels`
    │   ├── tests-test_jump2d.lua---start()---respects-`labels`-002
    │   ├── tests-test_jump2d.lua---start()---respects-`opts.hl_group_dim`
    │   ├── tests-test_jump2d.lua---start()---respects-`spotter`
    │   ├── tests-test_jump2d.lua---start()---respects-`spotter`-002
    │   ├── tests-test_jump2d.lua---start()---respects-`view.dim`
    │   ├── tests-test_jump2d.lua---start()---respects-`view.dim`-002
    │   ├── tests-test_jump2d.lua---start()---respects-`view.dim`-003
    │   ├── tests-test_jump2d.lua---start()---respects-`view.n_steps_ahead`
    │   ├── tests-test_jump2d.lua---start()---respects-`view.n_steps_ahead`-002
    │   ├── tests-test_jump2d.lua---start()---respects-`view.n_steps_ahead`-003
    │   ├── tests-test_jump2d.lua---start()---respects-`view.n_steps_ahead`-004
    │   ├── tests-test_jump2d.lua---start()---respects-`view.n_steps_ahead`-005
    │   ├── tests-test_jump2d.lua---start()---respects-`vim.{g,b}.minijump2d_disable`---test-+-args-{-'b'-}
    │   ├── tests-test_jump2d.lua---start()---respects-`vim.{g,b}.minijump2d_disable`---test-+-args-{-'g'-}
    │   ├── tests-test_jump2d.lua---start()---respects-folds
    │   ├── tests-test_jump2d.lua---start()---respects-folds-002
    │   ├── tests-test_jump2d.lua---start()---shows-reminder-after-one-idle-second
    │   ├── tests-test_jump2d.lua---start()---shows-reminder-after-one-idle-second-002
    │   ├── tests-test_jump2d.lua---start()---shows-reminder-after-one-idle-second-003
    │   ├── tests-test_jump2d.lua---start()---stops-jumping-if-not-label-was-typed---test-+-args-{-'-C-c-'-}
    │   ├── tests-test_jump2d.lua---start()---stops-jumping-if-not-label-was-typed---test-+-args-{-'-Down-'-}
    │   ├── tests-test_jump2d.lua---start()---stops-jumping-if-not-label-was-typed---test-+-args-{-'-Esc-'-}
    │   ├── tests-test_jump2d.lua---start()---traverses-floating-windows-at-the-end
    │   ├── tests-test_jump2d.lua---start()---traverses-visible-'regular'-windows-based-on-their-layout
    │   ├── tests-test_jump2d.lua---start()---uses-`-CR-`-to-jump-to-first-available-spot
    │   ├── tests-test_jump2d.lua---start()---uses-`spotter`-with-correct-arguments
    │   ├── tests-test_jump2d.lua---start()---uses-only-all-visible-windows-by-default
    │   ├── tests-test_jump2d.lua---start()---uses-only-visible-lines
    │   ├── tests-test_jump2d.lua---start()---uses-only-visible-lines-002
    │   ├── tests-test_jump2d.lua---start()---works
    │   ├── tests-test_jump2d.lua---start()---works-002
    │   ├── tests-test_jump2d.lua---start()---works-in-Operator-pending-mode
    │   ├── tests-test_jump2d.lua---start()---works-in-Operator-pending-mode-002
    │   ├── tests-test_jump2d.lua---start()---works-in-Operator-pending-mode-003
    │   ├── tests-test_jump2d.lua---start()---works-in-Operator-pending-mode-004
    │   ├── tests-test_jump2d.lua---start()---works-in-Visual-mode
    │   ├── tests-test_jump2d.lua---start()---works-in-Visual-mode-002
    │   ├── tests-test_jump2d.lua---stop()---clears-all-highlighting
    │   ├── tests-test_jump2d.lua---stop()---clears-all-highlighting-002
    │   ├── tests-test_jump2d.lua---stop()---works
    │   ├── tests-test_jump2d.lua---stop()---works-002
    │   ├── tests-test_map.lua---Cursor-in-map-window---opens-enough-folds-in-source-window
    │   ├── tests-test_map.lua---Cursor-in-map-window---opens-enough-folds-in-source-window-002
    │   ├── tests-test_map.lua---Pure-scrollbar---is-active-when-width-is-lower-than-offset
    │   ├── tests-test_map.lua---Pure-scrollbar---is-active-when-width-is-lower-than-offset-002
    │   ├── tests-test_map.lua---Pure-scrollbar---is-active-when-width-is-lower-than-offset-003
    │   ├── tests-test_map.lua---Pure-scrollbar---works
    │   ├── tests-test_map.lua---Pure-scrollbar---works-002
    │   ├── tests-test_map.lua---Scrollbar---updates-on-cursor-movement
    │   ├── tests-test_map.lua---Scrollbar---updates-on-cursor-movement-002
    │   ├── tests-test_map.lua---Scrollbar---updates-on-cursor-movement-003
    │   ├── tests-test_map.lua---Scrollbar---updates-on-cursor-movement-004
    │   ├── tests-test_map.lua---Scrollbar---updates-on-source-window-scrolling
    │   ├── tests-test_map.lua---Scrollbar---updates-on-source-window-scrolling-002
    │   ├── tests-test_map.lua---Window---does-not-account-for-folds
    │   ├── tests-test_map.lua---Window---does-not-account-for-folds-002
    │   ├── tests-test_map.lua---Window---does-not-account-for-folds-003
    │   ├── tests-test_map.lua---Window---does-not-respect-'winborder'-option
    │   ├── tests-test_map.lua---Window---fully-updates-on-buffer-enter
    │   ├── tests-test_map.lua---Window---fully-updates-on-buffer-enter-002
    │   ├── tests-test_map.lua---Window---fully-updates-on-buffer-write
    │   ├── tests-test_map.lua---Window---fully-updates-on-buffer-write-002
    │   ├── tests-test_map.lua---Window---fully-updates-on-mode-change-to-Normal
    │   ├── tests-test_map.lua---Window---fully-updates-on-mode-change-to-Normal-002
    │   ├── tests-test_map.lua---Window---fully-updates-on-text-change-in-Normal-mode
    │   ├── tests-test_map.lua---Window---fully-updates-on-text-change-in-Normal-mode-002
    │   ├── tests-test_map.lua---Window---fully-updates-on-vim-resize
    │   ├── tests-test_map.lua---Window---fully-updates-on-vim-resize-002
    │   ├── tests-test_map.lua---gen_encode_symbols---can-be-used-as-`MiniMap.config.symbols.encode`
    │   ├── tests-test_map.lua---gen_encode_symbols---can-be-used-as-part-of-`opts.symbols.encode`
    │   ├── tests-test_map.lua---gen_integration---builtin_search()---respects-documented-keymaps
    │   ├── tests-test_map.lua---gen_integration---builtin_search()---respects-documented-keymaps-002
    │   ├── tests-test_map.lua---gen_integration---builtin_search()---respects-documented-keymaps-003
    │   ├── tests-test_map.lua---gen_integration---builtin_search()---respects-documented-keymaps-004
    │   ├── tests-test_map.lua---gen_integration---builtin_search()---updates-when-appropriate
    │   ├── tests-test_map.lua---gen_integration---builtin_search()---updates-when-appropriate-002
    │   ├── tests-test_map.lua---gen_integration---builtin_search()---updates-when-appropriate-003
    │   ├── tests-test_map.lua---gen_integration---builtin_search()---updates-when-appropriate-004
    │   ├── tests-test_map.lua---gen_integration---builtin_search()---updates-when-appropriate-005
    │   ├── tests-test_map.lua---gen_integration---builtin_search()---works
    │   ├── tests-test_map.lua---gen_integration---builtin_search()---works-002
    │   ├── tests-test_map.lua---gen_integration---diagnostic()---respects-`hl_groups`-argument
    │   ├── tests-test_map.lua---gen_integration---diagnostic()---respects-`hl_groups`-argument-002
    │   ├── tests-test_map.lua---gen_integration---diagnostic()---respects-`hl_groups`-argument-003
    │   ├── tests-test_map.lua---gen_integration---diagnostic()---respects-`hl_groups`-argument-004
    │   ├── tests-test_map.lua---gen_integration---diagnostic()---updates-when-appropriate
    │   ├── tests-test_map.lua---gen_integration---diagnostic()---updates-when-appropriate-002
    │   ├── tests-test_map.lua---gen_integration---diagnostic()---works
    │   ├── tests-test_map.lua---gen_integration---diff()---works
    │   ├── tests-test_map.lua---gen_integration---gitsigns()---respects-`hl_groups`-argument
    │   ├── tests-test_map.lua---gen_integration---gitsigns()---updates-when-appropriate
    │   ├── tests-test_map.lua---gen_integration---gitsigns()---updates-when-appropriate-002
    │   ├── tests-test_map.lua---gen_integration---gitsigns()---works
    │   ├── tests-test_map.lua---open()---allows-more-than-single-character-in-scroll-symbols
    │   ├── tests-test_map.lua---open()---can-open-pure-scrollbar
    │   ├── tests-test_map.lua---open()---respects-`MiniMapNormal`-highlight-group
    │   ├── tests-test_map.lua---open()---respects-`opts.integrations`-argument
    │   ├── tests-test_map.lua---open()---respects-`opts.symbols`-argument
    │   ├── tests-test_map.lua---open()---respects-`opts.symbols`-argument-002
    │   ├── tests-test_map.lua---open()---respects-`opts.window`-argument
    │   ├── tests-test_map.lua---open()---shows-appropriate-integration-counts
    │   ├── tests-test_map.lua---open()---works
    │   ├── tests-test_map.lua---refresh()---respects-`opts.integrations`-argument
    │   ├── tests-test_map.lua---refresh()---respects-`opts.symbols`-argument
    │   ├── tests-test_map.lua---refresh()---respects-`opts.window`-argument
    │   ├── tests-test_map.lua---refresh()---respects-`parts`-argument
    │   ├── tests-test_map.lua---refresh()---respects-`parts`-argument-002
    │   ├── tests-test_map.lua---refresh()---respects-`parts`-argument-003
    │   ├── tests-test_map.lua---refresh()---respects-`parts`-argument-004
    │   ├── tests-test_map.lua---refresh()---respects-`parts`-argument-005
    │   ├── tests-test_map.lua---refresh()---respects-`vim.{g,b}.minimap_disable`---test-+-args-{-'b'-}
    │   ├── tests-test_map.lua---refresh()---respects-`vim.{g,b}.minimap_disable`---test-+-args-{-'g'-}
    │   ├── tests-test_map.lua---refresh()---works
    │   ├── tests-test_map.lua---refresh()---works-002
    │   ├── tests-test_misc.lua---zoom()---respects-'winborder'-option
    │   ├── tests-test_misc.lua---zoom()---respects-'winborder'-option-002
    │   ├── tests-test_misc.lua---zoom()---respects-'winborder'-option-003
    │   ├── tests-test_misc.lua---zoom()---respects-`config`-argument
    │   ├── tests-test_misc.lua---zoom()---respects-`config`-argument-002
    │   ├── tests-test_misc.lua---zoom()---respects-`config`-argument-003
    │   ├── tests-test_misc.lua---zoom()---respects-`config`-argument-004
    │   ├── tests-test_misc.lua---zoom()---respects-`config`-argument-005
    │   ├── tests-test_misc.lua---zoom()---respects-`config`-argument-006
    │   ├── tests-test_misc.lua---zoom()---respects-`config`-argument-007
    │   ├── tests-test_misc.lua---zoom()---respects-`config`-argument-008
    │   ├── tests-test_misc.lua---zoom()---respects-`config`-argument-009
    │   ├── tests-test_misc.lua---zoom()---works
    │   ├── tests-test_notify.lua---LSP-progress---handles-not-present-data
    │   ├── tests-test_notify.lua---LSP-progress---handles-not-present-data-002
    │   ├── tests-test_notify.lua---LSP-progress---handles-not-present-data-003
    │   ├── tests-test_notify.lua---LSP-progress---respects-`lsp_progress.duration_last`
    │   ├── tests-test_notify.lua---LSP-progress---respects-`lsp_progress.duration_last`-002
    │   ├── tests-test_notify.lua---LSP-progress---works
    │   ├── tests-test_notify.lua---LSP-progress---works-002
    │   ├── tests-test_notify.lua---LSP-progress---works-003
    │   ├── tests-test_notify.lua---LSP-progress---works-004
    │   ├── tests-test_notify.lua---LSP-progress---works-005
    │   ├── tests-test_notify.lua---Window---computes-default-dimensions-based-on-buffer-content
    │   ├── tests-test_notify.lua---Window---computes-default-dimensions-based-on-buffer-content-002
    │   ├── tests-test_notify.lua---Window---fully-updates-on-vim-resize
    │   ├── tests-test_notify.lua---Window---fully-updates-on-vim-resize-002
    │   ├── tests-test_notify.lua---Window---fully-updates-on-vim-resize-003
    │   ├── tests-test_notify.lua---Window---fully-updates-on-vim-resize-004
    │   ├── tests-test_notify.lua---Window---handles-width-computation-for-empty-lines-inside-notification-buffer
    │   ├── tests-test_notify.lua---Window---respects-'winborder'-option
    │   ├── tests-test_notify.lua---Window---respects-'winborder'-option-002
    │   ├── tests-test_notify.lua---Window---respects-'winborder'-option-003
    │   ├── tests-test_notify.lua---Window---respects-`content.format`
    │   ├── tests-test_notify.lua---Window---respects-`content.sort`
    │   ├── tests-test_notify.lua---Window---respects-`window.config`
    │   ├── tests-test_notify.lua---Window---respects-`window.config`-002
    │   ├── tests-test_notify.lua---Window---respects-`window.config`-003
    │   ├── tests-test_notify.lua---Window---respects-`window.max_width_share`
    │   ├── tests-test_notify.lua---Window---respects-`window.max_width_share`-002
    │   ├── tests-test_notify.lua---Window---respects-`window.max_width_share`-003
    │   ├── tests-test_notify.lua---Window---respects-`window.max_width_share`-004
    │   ├── tests-test_notify.lua---Window---respects-tabline-statusline-cmdline
    │   ├── tests-test_notify.lua---Window---respects-tabline-statusline-cmdline-002
    │   ├── tests-test_notify.lua---Window---respects-tabline-statusline-cmdline-003
    │   ├── tests-test_notify.lua---Window---respects-tabline-statusline-cmdline-004
    │   ├── tests-test_notify.lua---Window---respects-tabline-statusline-cmdline-005
    │   ├── tests-test_notify.lua---Window---respects-tabline-statusline-cmdline-006
    │   ├── tests-test_notify.lua---Window---respects-tabline-statusline-cmdline-007
    │   ├── tests-test_notify.lua---Window---respects-tabline-statusline-cmdline-008
    │   ├── tests-test_notify.lua---Window---respects-tabline-statusline-cmdline-009
    │   ├── tests-test_notify.lua---Window---respects-tabline-statusline-cmdline-010
    │   ├── tests-test_notify.lua---Window---shows-start-of-buffer-if-it-does-not-fit-whole
    │   ├── tests-test_notify.lua---Window---works-with-multiline-messages
    │   ├── tests-test_notify.lua---Window---wraps-text
    │   ├── tests-test_notify.lua---Window---wraps-text-002
    │   ├── tests-test_notify.lua---add()---allows-empty-string-message
    │   ├── tests-test_notify.lua---add()---works
    │   ├── tests-test_notify.lua---clear()---works
    │   ├── tests-test_notify.lua---clear()---works-002
    │   ├── tests-test_notify.lua---make_notify()---works
    │   ├── tests-test_notify.lua---refresh()---respects-`vim.{g,b}.mininotify_disable`---test-+-args-{-'b'-}
    │   ├── tests-test_notify.lua---refresh()---respects-`vim.{g,b}.mininotify_disable`---test-+-args-{-'b'-}-002
    │   ├── tests-test_notify.lua---refresh()---respects-`vim.{g,b}.mininotify_disable`---test-+-args-{-'b'-}-003
    │   ├── tests-test_notify.lua---refresh()---respects-`vim.{g,b}.mininotify_disable`---test-+-args-{-'g'-}
    │   ├── tests-test_notify.lua---refresh()---respects-`vim.{g,b}.mininotify_disable`---test-+-args-{-'g'-}-002
    │   ├── tests-test_notify.lua---refresh()---respects-`vim.{g,b}.mininotify_disable`---test-+-args-{-'g'-}-003
    │   ├── tests-test_notify.lua---remove()---works
    │   ├── tests-test_notify.lua---remove()---works-002
    │   ├── tests-test_notify.lua---remove()---works-with-several-active-notifications
    │   ├── tests-test_notify.lua---remove()---works-with-several-active-notifications-002
    │   ├── tests-test_notify.lua---show_history()---respects-`content.format`
    │   ├── tests-test_notify.lua---show_history()---reuses-history-buffer
    │   ├── tests-test_notify.lua---show_history()---shows-all-notifications
    │   ├── tests-test_notify.lua---show_history()---sorts-by-update-time
    │   ├── tests-test_notify.lua---show_history()---works
    │   ├── tests-test_notify.lua---update()---works
    │   ├── tests-test_notify.lua---update()---works-002
    │   ├── tests-test_operators.lua---Exchange---can-be-canceled
    │   ├── tests-test_operators.lua---Exchange---can-be-canceled-002
    │   ├── tests-test_operators.lua---Exchange---correctly-highlights-first-step-with-'selection=exclusive'
    │   ├── tests-test_operators.lua---Exchange---highlights-first-step---test-+-args-{-'blockwise'-}
    │   ├── tests-test_operators.lua---Exchange---highlights-first-step---test-+-args-{-'charwise'-}
    │   ├── tests-test_operators.lua---Exchange---highlights-first-step---test-+-args-{-'linewise'-}
    │   ├── tests-test_operators.lua---Exchange---works-with-multibyte-characters
    │   ├── tests-test_operators.lua---Exchange---works-with-multibyte-characters-002
    │   ├── tests-test_operators.lua---Exchange---works-with-multibyte-characters-003
    │   ├── tests-test_operators.lua---Exchange---works-with-multibyte-characters-004
    │   ├── tests-test_operators.lua---Exchange---works-with-multibyte-characters-005
    │   ├── tests-test_operators.lua---Multiply---works-with-`cmdheight=0`
    │   ├── tests-test_operators.lua---Multiply---works-with-`cmdheight=0`-002
    │   ├── tests-test_operators.lua---Replace---works-with-`cmdheight=0`
    │   ├── tests-test_operators.lua---Replace---works-with-`cmdheight=0`-002
    │   ├── tests-test_pairs.lua----BS--action---works
    │   ├── tests-test_pick.lua----Pick---has-proper-complete
    │   ├── tests-test_pick.lua----Pick---has-proper-complete-002
    │   ├── tests-test_pick.lua----Pick---has-proper-complete-003
    │   ├── tests-test_pick.lua----Pick---works
    │   ├── tests-test_pick.lua----Pick---works-002
    │   ├── tests-test_pick.lua---Caret---moves-by-query-parts
    │   ├── tests-test_pick.lua---Caret---moves-by-query-parts-002
    │   ├── tests-test_pick.lua---Caret---moves-by-query-parts-003
    │   ├── tests-test_pick.lua---Caret---works
    │   ├── tests-test_pick.lua---Caret---works-002
    │   ├── tests-test_pick.lua---Caret---works-003
    │   ├── tests-test_pick.lua---Choose---works-for-split-tab-variations
    │   ├── tests-test_pick.lua---Choose---works-for-split-tab-variations-002
    │   ├── tests-test_pick.lua---Choose---works-for-split-tab-variations-003
    │   ├── tests-test_pick.lua---Info-view---is-updated-after-moving-marking-current-item
    │   ├── tests-test_pick.lua---Info-view---is-updated-after-moving-marking-current-item-002
    │   ├── tests-test_pick.lua---Info-view---is-updated-after-moving-marking-current-item-003
    │   ├── tests-test_pick.lua---Info-view---is-updated-after-moving-marking-current-item-004
    │   ├── tests-test_pick.lua---Info-view---respects-custom-mappings
    │   ├── tests-test_pick.lua---Info-view---supports-vertical-and-horizontal-scroll
    │   ├── tests-test_pick.lua---Info-view---supports-vertical-and-horizontal-scroll-002
    │   ├── tests-test_pick.lua---Info-view---supports-vertical-and-horizontal-scroll-003
    │   ├── tests-test_pick.lua---Info-view---supports-vertical-and-horizontal-scroll-004
    │   ├── tests-test_pick.lua---Info-view---works
    │   ├── tests-test_pick.lua---Main-view---properly-computes-items-range-to-show
    │   ├── tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-002
    │   ├── tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-003
    │   ├── tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-004
    │   ├── tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-005
    │   ├── tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-006
    │   ├── tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-007
    │   ├── tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-008
    │   ├── tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-009
    │   ├── tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-010
    │   ├── tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-011
    │   ├── tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-012
    │   ├── tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-013
    │   ├── tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-014
    │   ├── tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-015
    │   ├── tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-016
    │   ├── tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-017
    │   ├── tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-018
    │   ├── tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-019
    │   ├── tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-020
    │   ├── tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-021
    │   ├── tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-022
    │   ├── tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-023
    │   ├── tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-024
    │   ├── tests-test_pick.lua---Main-view---properly-computes-items-range-to-show-025
    │   ├── tests-test_pick.lua---Main-view---shows-marked-items-across-queries
    │   ├── tests-test_pick.lua---Main-view---shows-marked-items-across-queries-002
    │   ├── tests-test_pick.lua---Main-view---supports-horizontal-scroll
    │   ├── tests-test_pick.lua---Main-view---supports-horizontal-scroll-002
    │   ├── tests-test_pick.lua---Main-view---supports-horizontal-scroll-003
    │   ├── tests-test_pick.lua---Main-view---supports-horizontal-scroll-004
    │   ├── tests-test_pick.lua---Main-view---supports-horizontal-scroll-005
    │   ├── tests-test_pick.lua---Main-view---supports-horizontal-scroll-006
    │   ├── tests-test_pick.lua---Main-view---works-with-`content_from_bottom`=true
    │   ├── tests-test_pick.lua---Main-view---works-with-`content_from_bottom`=true-002
    │   ├── tests-test_pick.lua---Main-view---works-with-`content_from_bottom`=true-003
    │   ├── tests-test_pick.lua---Main-view---works-with-`content_from_bottom`=true-004
    │   ├── tests-test_pick.lua---Main-view---works-with-`content_from_bottom`=true-005
    │   ├── tests-test_pick.lua---Main-view---works-with-`content_from_bottom`=true-006
    │   ├── tests-test_pick.lua---Main-view---works-with-`content_from_bottom`=true-007
    │   ├── tests-test_pick.lua---Main-view---works-with-`content_from_bottom`=true-008
    │   ├── tests-test_pick.lua---Main-view---works-with-`content_from_bottom`=true-009
    │   ├── tests-test_pick.lua---Main-view---works-with-`content_from_bottom`=true-010
    │   ├── tests-test_pick.lua---Mark---works-without-items-set
    │   ├── tests-test_pick.lua---Matching---dedicated-event-can-update-window-config
    │   ├── tests-test_pick.lua---Matching---dedicated-event-can-update-window-config-002
    │   ├── tests-test_pick.lua---Matching---dedicated-event-can-update-window-config-003
    │   ├── tests-test_pick.lua---Matching---dedicated-event-can-update-window-config-004
    │   ├── tests-test_pick.lua---Move---works-when-no-items-are-set
    │   ├── tests-test_pick.lua---Overall-view---adjusts-dimensions-respecting-border
    │   ├── tests-test_pick.lua---Overall-view---adjusts-dimensions-respecting-border-002
    │   ├── tests-test_pick.lua---Overall-view---adjusts-dimensions-respecting-border-003
    │   ├── tests-test_pick.lua---Overall-view---adjusts-dimensions-respecting-border-004
    │   ├── tests-test_pick.lua---Overall-view---adjusts-dimensions-respecting-border-005
    │   ├── tests-test_pick.lua---Overall-view---adjusts-dimensions-respecting-border-006
    │   ├── tests-test_pick.lua---Overall-view---adjusts-dimensions-respecting-border-007
    │   ├── tests-test_pick.lua---Overall-view---adjusts-dimensions-respecting-border-008
    │   ├── tests-test_pick.lua---Overall-view---adjusts-dimensions-respecting-border-009
    │   ├── tests-test_pick.lua---Overall-view---adjusts-dimensions-respecting-border-010
    │   ├── tests-test_pick.lua---Overall-view---adjusts-dimensions-respecting-border-011
    │   ├── tests-test_pick.lua---Overall-view---adjusts-dimensions-respecting-border-012
    │   ├── tests-test_pick.lua---Overall-view---adjusts-dimensions-respecting-border-013
    │   ├── tests-test_pick.lua---Overall-view---adjusts-dimensions-respecting-border-014
    │   ├── tests-test_pick.lua---Overall-view---adjusts-dimensions-respecting-border-015
    │   ├── tests-test_pick.lua---Overall-view---adjusts-dimensions-respecting-border-016
    │   ├── tests-test_pick.lua---Overall-view---allows-'none'-as-border
    │   ├── tests-test_pick.lua---Overall-view---allows-very-large-dimensions
    │   ├── tests-test_pick.lua---Overall-view---correctly-infers-footer-empty-space
    │   ├── tests-test_pick.lua---Overall-view---correctly-infers-footer-empty-space-002
    │   ├── tests-test_pick.lua---Overall-view---correctly-infers-footer-empty-space-003
    │   ├── tests-test_pick.lua---Overall-view---correctly-infers-footer-empty-space-004
    │   ├── tests-test_pick.lua---Overall-view---does-not-show-footer-if-items-are-not-set
    │   ├── tests-test_pick.lua---Overall-view---is-shown-over-number-and-sign-columns
    │   ├── tests-test_pick.lua---Overall-view---respects-'winborder'-option
    │   ├── tests-test_pick.lua---Overall-view---respects-'winborder'-option-002
    │   ├── tests-test_pick.lua---Overall-view---respects-'winborder'-option-003
    │   ├── tests-test_pick.lua---Overall-view---respects-'winborder'-option-004
    │   ├── tests-test_pick.lua---Overall-view---respects-`options.content_from_bottom`-with-footer
    │   ├── tests-test_pick.lua---Overall-view---respects-tabline,-statusline,-'cmdheight'
    │   ├── tests-test_pick.lua---Overall-view---respects-tabline,-statusline,-'cmdheight'-002
    │   ├── tests-test_pick.lua---Overall-view---respects-tabline,-statusline,-'cmdheight'-003
    │   ├── tests-test_pick.lua---Overall-view---respects-tabline,-statusline,-'cmdheight'-004
    │   ├── tests-test_pick.lua---Overall-view---respects-tabline,-statusline,-'cmdheight'-005
    │   ├── tests-test_pick.lua---Overall-view---respects-tabline,-statusline,-'cmdheight'-006
    │   ├── tests-test_pick.lua---Overall-view---sanitizes-picker-name
    │   ├── tests-test_pick.lua---Overall-view---sanitizes-picker-name-002
    │   ├── tests-test_pick.lua---Overall-view---shows-prompt
    │   ├── tests-test_pick.lua---Overall-view---shows-prompt-002
    │   ├── tests-test_pick.lua---Overall-view---shows-prompt-003
    │   ├── tests-test_pick.lua---Overall-view---shows-prompt-004
    │   ├── tests-test_pick.lua---Overall-view---shows-prompt-005
    │   ├── tests-test_pick.lua---Overall-view---truncates-footer
    │   ├── tests-test_pick.lua---Overall-view---truncates-footer-002
    │   ├── tests-test_pick.lua---Overall-view---truncates-footer-003
    │   ├── tests-test_pick.lua---Overall-view---truncates-prompt
    │   ├── tests-test_pick.lua---Overall-view---truncates-prompt-002
    │   ├── tests-test_pick.lua---Overall-view---truncates-prompt-003
    │   ├── tests-test_pick.lua---Overall-view---truncates-prompt-004
    │   ├── tests-test_pick.lua---Overall-view---truncates-prompt-005
    │   ├── tests-test_pick.lua---Overall-view---truncates-prompt-006
    │   ├── tests-test_pick.lua---Overall-view---truncates-prompt-007
    │   ├── tests-test_pick.lua---Overall-view---truncates-prompt-008
    │   ├── tests-test_pick.lua---Overall-view---truncates-prompt-009
    │   ├── tests-test_pick.lua---Overall-view---truncates-prompt-010
    │   ├── tests-test_pick.lua---Overall-view---truncates-prompt-011
    │   ├── tests-test_pick.lua---Overall-view---truncates-prompt-012
    │   ├── tests-test_pick.lua---Overall-view---truncates-prompt-013
    │   ├── tests-test_pick.lua---Overall-view---uses-footer-for-extra-info
    │   ├── tests-test_pick.lua---Overall-view---uses-footer-for-extra-info-002
    │   ├── tests-test_pick.lua---Overall-view---uses-footer-for-extra-info-003
    │   ├── tests-test_pick.lua---Overall-view---uses-footer-for-extra-info-004
    │   ├── tests-test_pick.lua---Overall-view---uses-footer-for-extra-info-005
    │   ├── tests-test_pick.lua---Overall-view---uses-footer-for-extra-info-006
    │   ├── tests-test_pick.lua---Overall-view---works-with-small-available-dimensions
    │   ├── tests-test_pick.lua---Paste---works
    │   ├── tests-test_pick.lua---Paste---works-002
    │   ├── tests-test_pick.lua---Paste---works-003
    │   ├── tests-test_pick.lua---Preview---does-explicit-redraw-several-times
    │   ├── tests-test_pick.lua---Preview---does-explicit-redraw-several-times-002
    │   ├── tests-test_pick.lua---Preview---is-updated-after-moving-current-item
    │   ├── tests-test_pick.lua---Preview---is-updated-after-moving-current-item-002
    │   ├── tests-test_pick.lua---Preview---respects-global-value-of-'list'-and-'listchars'-option
    │   ├── tests-test_pick.lua---Preview---respects-global-value-of-'list'-and-'listchars'-option-002
    │   ├── tests-test_pick.lua---Preview---respects-global-value-of-'list'-and-'listchars'-option-003
    │   ├── tests-test_pick.lua---Preview---respects-global-value-of-'list'-and-'listchars'-option-004
    │   ├── tests-test_pick.lua---Preview---supports-vertical-and-horizontal-scroll
    │   ├── tests-test_pick.lua---Preview---supports-vertical-and-horizontal-scroll-002
    │   ├── tests-test_pick.lua---Preview---supports-vertical-and-horizontal-scroll-003
    │   ├── tests-test_pick.lua---Preview---supports-vertical-and-horizontal-scroll-004
    │   ├── tests-test_pick.lua---Preview---works
    │   ├── tests-test_pick.lua---Refine---works
    │   ├── tests-test_pick.lua---Refine---works-002
    │   ├── tests-test_pick.lua---Refine---works-003
    │   ├── tests-test_pick.lua---Refine---works-when-no-items-are-set
    │   ├── tests-test_pick.lua---builtin.buffers()---respects-`local_opts.include_current`
    │   ├── tests-test_pick.lua---builtin.buffers()---respects-`local_opts.include_unlisted`
    │   ├── tests-test_pick.lua---builtin.buffers()---respects-`source.show`-from-config
    │   ├── tests-test_pick.lua---builtin.buffers()---works
    │   ├── tests-test_pick.lua---builtin.files()---respects-`source.show`-from-config
    │   ├── tests-test_pick.lua---builtin.files()---works
    │   ├── tests-test_pick.lua---builtin.grep()---respects-`source.show`-from-config
    │   ├── tests-test_pick.lua---builtin.grep()---works
    │   ├── tests-test_pick.lua---builtin.grep()---works-002
    │   ├── tests-test_pick.lua---builtin.grep_live()---has-custom-'add-glob'-mapping
    │   ├── tests-test_pick.lua---builtin.grep_live()---respects-`source.show`-from-config
    │   ├── tests-test_pick.lua---builtin.grep_live()---works
    │   ├── tests-test_pick.lua---builtin.help()---handles-consecutive-applications
    │   ├── tests-test_pick.lua---builtin.help()---has-proper-preview
    │   ├── tests-test_pick.lua---builtin.help()---works
    │   ├── tests-test_pick.lua---builtin.help()---works-002
    │   ├── tests-test_pick.lua---builtin.help()---works-for-help-tags-with-special-characters
    │   ├── tests-test_pick.lua---builtin.help()---works-when-help-window-is-already-opened
    │   ├── tests-test_pick.lua---builtin.help()---works-with-`builtin.resume()`
    │   ├── tests-test_pick.lua---builtin.help()---works-with-`builtin.resume()`-002
    │   ├── tests-test_pick.lua---builtin.resume()---works
    │   ├── tests-test_pick.lua---default_match()---works-with-active-picker
    │   ├── tests-test_pick.lua---default_match()---works-with-active-picker-002
    │   ├── tests-test_pick.lua---default_preview()---can-be-used-in-outside-preview-window
    │   ├── tests-test_pick.lua---default_preview()---does-not-highlight-big-files
    │   ├── tests-test_pick.lua---default_preview()---does-not-highlight-big-files-002
    │   ├── tests-test_pick.lua---default_preview()---has-fallback
    │   ├── tests-test_pick.lua---default_preview()---has-fallback-002
    │   ├── tests-test_pick.lua---default_preview()---has-syntax-highlighting-in-buffer
    │   ├── tests-test_pick.lua---default_preview()---has-syntax-highlighting-in-buffer-002
    │   ├── tests-test_pick.lua---default_preview()---has-syntax-highlighting-in-file-path
    │   ├── tests-test_pick.lua---default_preview()---has-syntax-highlighting-in-file-path-002
    │   ├── tests-test_pick.lua---default_preview()---loads-context-in-buffer
    │   ├── tests-test_pick.lua---default_preview()---loads-context-in-buffer-002
    │   ├── tests-test_pick.lua---default_preview()---loads-context-in-buffer-003
    │   ├── tests-test_pick.lua---default_preview()---loads-context-in-file-path
    │   ├── tests-test_pick.lua---default_preview()---loads-context-in-file-path-002
    │   ├── tests-test_pick.lua---default_preview()---loads-context-in-file-path-003
    │   ├── tests-test_pick.lua---default_preview()---respects-`opts.line_position`---1-+-args-{-'bottom'-}
    │   ├── tests-test_pick.lua---default_preview()---respects-`opts.line_position`---1-+-args-{-'bottom'-}-002
    │   ├── tests-test_pick.lua---default_preview()---respects-`opts.line_position`---1-+-args-{-'center'-}
    │   ├── tests-test_pick.lua---default_preview()---respects-`opts.line_position`---1-+-args-{-'center'-}-002
    │   ├── tests-test_pick.lua---default_preview()---respects-`opts.line_position`---1-+-args-{-'top'-}
    │   ├── tests-test_pick.lua---default_preview()---respects-`opts.line_position`---1-+-args-{-'top'-}-002
    │   ├── tests-test_pick.lua---default_preview()---respects-`opts.n_context_lines`
    │   ├── tests-test_pick.lua---default_preview()---respects-`opts.n_context_lines`-002
    │   ├── tests-test_pick.lua---default_preview()---respects-`source.cwd`
    │   ├── tests-test_pick.lua---default_preview()---shows-line-in-buffer
    │   ├── tests-test_pick.lua---default_preview()---shows-line-in-file-path
    │   ├── tests-test_pick.lua---default_preview()---shows-line-in-file-path-002
    │   ├── tests-test_pick.lua---default_preview()---shows-position-in-buffer
    │   ├── tests-test_pick.lua---default_preview()---shows-position-in-file-path
    │   ├── tests-test_pick.lua---default_preview()---shows-position-in-file-path-002
    │   ├── tests-test_pick.lua---default_preview()---shows-region-in-buffer
    │   ├── tests-test_pick.lua---default_preview()---shows-region-in-buffer-002
    │   ├── tests-test_pick.lua---default_preview()---shows-region-in-file-path
    │   ├── tests-test_pick.lua---default_preview()---shows-region-in-file-path-002
    │   ├── tests-test_pick.lua---default_preview()---works
    │   ├── tests-test_pick.lua---default_preview()---works-for-URI-path
    │   ├── tests-test_pick.lua---default_preview()---works-for-buffer
    │   ├── tests-test_pick.lua---default_preview()---works-for-buffer-002
    │   ├── tests-test_pick.lua---default_preview()---works-for-buffer-003
    │   ├── tests-test_pick.lua---default_preview()---works-for-buffer-004
    │   ├── tests-test_pick.lua---default_preview()---works-for-buffer-005
    │   ├── tests-test_pick.lua---default_preview()---works-for-directory-path
    │   ├── tests-test_pick.lua---default_preview()---works-for-directory-path-002
    │   ├── tests-test_pick.lua---default_preview()---works-for-file-path
    │   ├── tests-test_pick.lua---default_preview()---works-for-file-path-002
    │   ├── tests-test_pick.lua---default_preview()---works-for-file-path-003
    │   ├── tests-test_pick.lua---default_preview()---works-for-file-path-004
    │   ├── tests-test_pick.lua---default_preview()---works-for-file-path-with-tilde
    │   ├── tests-test_pick.lua---default_preview()---works-for-relative-file-path
    │   ├── tests-test_pick.lua---default_preview()---works-for-relative-file-path-002
    │   ├── tests-test_pick.lua---default_preview()---works-without-active-picker
    │   ├── tests-test_pick.lua---default_preview()---works-without-active-picker-002
    │   ├── tests-test_pick.lua---default_show()---handles-edge-cases
    │   ├── tests-test_pick.lua---default_show()---handles-query-similar-to-`default_match`
    │   ├── tests-test_pick.lua---default_show()---handles-query-similar-to-`default_match`-002
    │   ├── tests-test_pick.lua---default_show()---handles-query-similar-to-`default_match`-003
    │   ├── tests-test_pick.lua---default_show()---handles-query-similar-to-`default_match`-004
    │   ├── tests-test_pick.lua---default_show()---handles-query-similar-to-`default_match`-005
    │   ├── tests-test_pick.lua---default_show()---handles-stritems-with-non-trivial-whitespace
    │   ├── tests-test_pick.lua---default_show()---respects-'ignorecase'-'smartcase'
    │   ├── tests-test_pick.lua---default_show()---respects-'ignorecase'-'smartcase'-002
    │   ├── tests-test_pick.lua---default_show()---respects-'ignorecase'-'smartcase'-003
    │   ├── tests-test_pick.lua---default_show()---respects-'ignorecase'-'smartcase'-004
    │   ├── tests-test_pick.lua---default_show()---respects-'ignorecase'-'smartcase'-005
    │   ├── tests-test_pick.lua---default_show()---respects-'ignorecase'-'smartcase'-006
    │   ├── tests-test_pick.lua---default_show()---respects-`opts.icons`
    │   ├── tests-test_pick.lua---default_show()---respects-`opts.icons`-002
    │   ├── tests-test_pick.lua---default_show()---respects-`opts.icons`-003
    │   ├── tests-test_pick.lua---default_show()---respects-`opts.show_icons`
    │   ├── tests-test_pick.lua---default_show()---respects-`opts.show_icons`-002
    │   ├── tests-test_pick.lua---default_show()---respects-`opts.show_icons`-003
    │   ├── tests-test_pick.lua---default_show()---respects-`opts.show_icons`-004
    │   ├── tests-test_pick.lua---default_show()---shows-best-match
    │   ├── tests-test_pick.lua---default_show()---shows-best-match-002
    │   ├── tests-test_pick.lua---default_show()---works
    │   ├── tests-test_pick.lua---default_show()---works-with-multibyte-characters
    │   ├── tests-test_pick.lua---default_show()---works-with-multibyte-characters-002
    │   ├── tests-test_pick.lua---default_show()---works-with-non-single-char-entries-queries
    │   ├── tests-test_pick.lua---default_show()---works-with-non-single-char-entries-queries-002
    │   ├── tests-test_pick.lua---default_show()---works-with-non-single-char-entries-queries-003
    │   ├── tests-test_pick.lua---default_show()---works-without-active-picker
    │   ├── tests-test_pick.lua---default_show()---works-without-active-picker-002
    │   ├── tests-test_pick.lua---refresh()---is-called-on-`VimResized`
    │   ├── tests-test_pick.lua---refresh()---is-called-on-`VimResized`-002
    │   ├── tests-test_pick.lua---refresh()---recomputes-window-config
    │   ├── tests-test_pick.lua---refresh()---recomputes-window-config-002
    │   ├── tests-test_pick.lua---refresh()---works
    │   ├── tests-test_pick.lua---refresh()---works-002
    │   ├── tests-test_pick.lua---set_picker_items()---recomputes-visible-range
    │   ├── tests-test_pick.lua---set_picker_match_inds()---can-set-current-match-index
    │   ├── tests-test_pick.lua---set_picker_match_inds()---can-set-marked-match-indexes
    │   ├── tests-test_pick.lua---set_picker_match_inds()---can-set-marked-match-indexes-002
    │   ├── tests-test_pick.lua---set_picker_match_inds()---works
    │   ├── tests-test_pick.lua---set_picker_opts()---works
    │   ├── tests-test_pick.lua---set_picker_opts()---works-002
    │   ├── tests-test_pick.lua---set_picker_opts()---works-003
    │   ├── tests-test_pick.lua---set_picker_query()---works
    │   ├── tests-test_pick.lua---start()---can-be-started-without-explicit-items
    │   ├── tests-test_pick.lua---start()---correctly-computes-stritems
    │   ├── tests-test_pick.lua---start()---respects-`options.content_from_bottom`
    │   ├── tests-test_pick.lua---start()---respects-`source.items`
    │   ├── tests-test_pick.lua---start()---respects-`source.items`-002
    │   ├── tests-test_pick.lua---start()---respects-`source.items`-003
    │   ├── tests-test_pick.lua---start()---respects-`source.items`-004
    │   ├── tests-test_pick.lua---start()---respects-`source.match`
    │   ├── tests-test_pick.lua---start()---respects-`source.name`
    │   ├── tests-test_pick.lua---start()---respects-`source.preview`
    │   ├── tests-test_pick.lua---start()---respects-`source.preview`-002
    │   ├── tests-test_pick.lua---start()---respects-`source.show`
    │   ├── tests-test_pick.lua---start()---respects-`source.show`-002
    │   ├── tests-test_pick.lua---start()---respects-`vim.b.minipick_config`
    │   ├── tests-test_pick.lua---start()---respects-`window.config`
    │   ├── tests-test_pick.lua---start()---respects-`window.config`-002
    │   ├── tests-test_pick.lua---start()---respects-`window.prompt_caret`
    │   ├── tests-test_pick.lua---start()---respects-`window.prompt_caret`-002
    │   ├── tests-test_pick.lua---start()---respects-`window.prompt_prefix`
    │   ├── tests-test_pick.lua---start()---respects-`window.prompt_prefix`-002
    │   ├── tests-test_pick.lua---start()---respects-`window.prompt_prefix`-003
    │   ├── tests-test_pick.lua---start()---respects-`window.prompt_prefix`-004
    │   ├── tests-test_pick.lua---start()---respects-global-config
    │   ├── tests-test_pick.lua---start()---stops-currently-active-picker
    │   ├── tests-test_pick.lua---start()---stops-improperly-aborted-previous-picker
    │   ├── tests-test_pick.lua---start()---stops-improperly-aborted-previous-picker-002
    │   ├── tests-test_pick.lua---start()---tracks-lost-focus
    │   ├── tests-test_pick.lua---start()---tracks-lost-focus-002
    │   ├── tests-test_pick.lua---start()---tracks-lost-focus-003
    │   ├── tests-test_pick.lua---start()---works
    │   ├── tests-test_pick.lua---start()---works-002
    │   ├── tests-test_pick.lua---start()---works-on-Neovim-0.9
    │   ├── tests-test_pick.lua---start()---works-on-Neovim-0.9-002
    │   ├── tests-test_pick.lua---start()---works-with-window-footer
    │   ├── tests-test_pick.lua---start()---works-with-window-footer-002
    │   ├── tests-test_pick.lua---stop()---works
    │   ├── tests-test_pick.lua---stop()---works-002
    │   ├── tests-test_pick.lua---ui_select()---respects-`opts.preview_item`
    │   ├── tests-test_pick.lua---ui_select()---respects-`start_opts`
    │   ├── tests-test_pick.lua---ui_select()---shows-only-original-item-in-preview
    │   ├── tests-test_pick.lua---ui_select()---works
    │   ├── tests-test_snippets.lua---Interaction-with-built-in-completion---no-affect-of-'exausted'-popup-during-jump
    │   ├── tests-test_snippets.lua---Interaction-with-built-in-completion---squashed-tabstops
    │   ├── tests-test_snippets.lua---Interaction-with-built-in-completion---squashed-tabstops-002
    │   ├── tests-test_snippets.lua---Session---autostop---is-not-triggered-if-final-tabstop-is-not-current
    │   ├── tests-test_snippets.lua---Session---choices---are-always-shown-all-at-once
    │   ├── tests-test_snippets.lua---Session---choices---are-always-shown-all-at-once-002
    │   ├── tests-test_snippets.lua---Session---choices---are-always-shown-all-at-once-003
    │   ├── tests-test_snippets.lua---Session---choices---work-with-default-'completeopt'
    │   ├── tests-test_snippets.lua---Session---choices---work-with-default-'completeopt'-002
    │   ├── tests-test_snippets.lua---Session---choices---works
    │   ├── tests-test_snippets.lua---Session---choices---works-002
    │   ├── tests-test_snippets.lua---Session---does-not-show-'Pattern-not-found'-message
    │   ├── tests-test_snippets.lua---Session---highlighting---uses-same-highlighting-for-whole-placeholder-for-current-tabstop
    │   ├── tests-test_snippets.lua---Session---highlighting---uses-same-highlighting-for-whole-placeholder-for-current-tabstop-002
    │   ├── tests-test_snippets.lua---Session---highlighting---uses-same-highlighting-for-whole-placeholder-for-current-tabstop-003
    │   ├── tests-test_snippets.lua---Session---linked-tabstops---are-updated-immediately-when-typing
    │   ├── tests-test_snippets.lua---Session---linked-tabstops---are-updated-immediately-when-typing-002
    │   ├── tests-test_snippets.lua---Session---linked-tabstops---are-updated-immediately-when-typing-003
    │   ├── tests-test_snippets.lua---Session---linked-tabstops---jumps-to-the-first-node
    │   ├── tests-test_snippets.lua---Session---linked-tabstops---jumps-to-the-first-node-002
    │   ├── tests-test_snippets.lua---Session---linked-tabstops---jumps-to-the-first-node-003
    │   ├── tests-test_snippets.lua---Session---linked-tabstops---validates-that-session-data-is-valid
    │   ├── tests-test_snippets.lua---Session---linked-tabstops---validates-that-session-data-is-valid-002
    │   ├── tests-test_snippets.lua---Session---nesting---can-be-done-outside-of-current-session-region
    │   ├── tests-test_snippets.lua---Session---nesting---does-not-nest-if-no-tabstops-in-new-session
    │   ├── tests-test_snippets.lua---Session---nesting---works-and-triggers-events
    │   ├── tests-test_snippets.lua---Session---nesting---works-and-triggers-events-002
    │   ├── tests-test_snippets.lua---Session---nesting---works-and-triggers-events-003
    │   ├── tests-test_snippets.lua---Session---nesting---works-and-triggers-events-004
    │   ├── tests-test_snippets.lua---Session---nesting---works-and-triggers-events-005
    │   ├── tests-test_snippets.lua---Session---persists-after-`-edit`
    │   ├── tests-test_snippets.lua---Session---preserves-order-of-'squashed'-empty-tabstops
    │   ├── tests-test_snippets.lua---Session---preserves-order-of-'squashed'-empty-tabstops-002
    │   ├── tests-test_snippets.lua---Session---preserves-order-of-'squashed'-empty-tabstops-003
    │   ├── tests-test_snippets.lua---Session---preserves-order-of-'squashed'-empty-tabstops-004
    │   ├── tests-test_snippets.lua---Session---preserves-order-of-'squashed'-empty-tabstops-005
    │   ├── tests-test_snippets.lua---Tricky-snippets---intertwined-nested-tabstops
    │   ├── tests-test_snippets.lua---Tricky-snippets---intertwined-nested-tabstops-002
    │   ├── tests-test_snippets.lua---Tricky-snippets---intertwined-nested-tabstops-003
    │   ├── tests-test_snippets.lua---Tricky-snippets---intertwined-nested-tabstops-004
    │   ├── tests-test_snippets.lua---Tricky-snippets---intertwined-nested-tabstops-005
    │   ├── tests-test_snippets.lua---Tricky-snippets---intertwined-nested-tabstops-006
    │   ├── tests-test_snippets.lua---Tricky-snippets---nested-empty-tabstops
    │   ├── tests-test_snippets.lua---Tricky-snippets---nested-empty-tabstops,-another
    │   ├── tests-test_snippets.lua---Tricky-snippets---nested-empty-tabstops,-another-002
    │   ├── tests-test_snippets.lua---Tricky-snippets---nested-empty-tabstops,-another-003
    │   ├── tests-test_snippets.lua---Tricky-snippets---nested-empty-tabstops,-another-004
    │   ├── tests-test_snippets.lua---Tricky-snippets---nested-empty-tabstops,-another-005
    │   ├── tests-test_snippets.lua---Tricky-snippets---nested-empty-tabstops,-another-006
    │   ├── tests-test_snippets.lua---Tricky-snippets---nested-empty-tabstops-002
    │   ├── tests-test_snippets.lua---Tricky-snippets---nested-empty-tabstops-003
    │   ├── tests-test_snippets.lua---Tricky-snippets---nested-empty-tabstops-004
    │   ├── tests-test_snippets.lua---Tricky-snippets---nested-empty-tabstops-005
    │   ├── tests-test_snippets.lua---Tricky-snippets---nested-empty-tabstops-006
    │   ├── tests-test_snippets.lua---Tricky-snippets---squashed-linked-empty-consecutive-tabstops
    │   ├── tests-test_snippets.lua---Tricky-snippets---squashed-linked-empty-consecutive-tabstops-002
    │   ├── tests-test_snippets.lua---Tricky-snippets---squashed-linked-empty-consecutive-tabstops-003
    │   ├── tests-test_snippets.lua---Tricky-snippets---squashed-linked-empty-consecutive-tabstops-004
    │   ├── tests-test_snippets.lua---Tricky-snippets---squashed-linked-empty-consecutive-tabstops-005
    │   ├── tests-test_snippets.lua---Tricky-snippets---squashed-linked-empty-interleaving-tabstops
    │   ├── tests-test_snippets.lua---Tricky-snippets---squashed-linked-empty-interleaving-tabstops-002
    │   ├── tests-test_snippets.lua---Tricky-snippets---squashed-linked-empty-interleaving-tabstops-003
    │   ├── tests-test_snippets.lua---Tricky-snippets---squashed-linked-empty-interleaving-tabstops-004
    │   ├── tests-test_snippets.lua---Tricky-snippets---squashed-linked-empty-interleaving-tabstops-005
    │   ├── tests-test_snippets.lua---Tricky-snippets---squashed-linked-tabstops-with-placeholders
    │   ├── tests-test_snippets.lua---Tricky-snippets---squashed-linked-tabstops-with-placeholders-002
    │   ├── tests-test_snippets.lua---Tricky-snippets---squashed-linked-tabstops-with-placeholders-003
    │   ├── tests-test_snippets.lua---Various-snippets---placeholders
    │   ├── tests-test_snippets.lua---Various-snippets---placeholders-002
    │   ├── tests-test_snippets.lua---Various-snippets---placeholders-003
    │   ├── tests-test_snippets.lua---Various-snippets---placeholders-004
    │   ├── tests-test_snippets.lua---Various-snippets---placeholders-005
    │   ├── tests-test_snippets.lua---Various-snippets---placeholders-006
    │   ├── tests-test_snippets.lua---Various-snippets---placeholders-007
    │   ├── tests-test_snippets.lua---Various-snippets---tabstop
    │   ├── tests-test_snippets.lua---Various-snippets---tabstop-002
    │   ├── tests-test_snippets.lua---default_insert()---respects-`opts.empty_tabstop`-and-`opts.empty_tabstop_final`
    │   ├── tests-test_snippets.lua---default_insert()---respects-`opts.lookup`
    │   ├── tests-test_snippets.lua---session.stop()---ensures-next-nested-session-is-valid
    │   ├── tests-test_snippets.lua---session.stop()---works
    │   ├── tests-test_snippets.lua---session.stop()---works-002
    │   ├── tests-test_snippets.lua---session.stop()---works-003
    │   ├── tests-test_starter.lua---Default-content---'Recent-files'-section---displays-only-readable-files
    │   ├── tests-test_starter.lua---Default-content---'Recent-files'-section---present-even-if-no-recent-files
    │   ├── tests-test_starter.lua---Default-content---'Sessions'-section---present-even-if-no-sessions-detected
    │   ├── tests-test_starter.lua---Default-content---'Sessions'-section---works
    │   ├── tests-test_starter.lua---Default-content---computes-`header`-depending-on-time-of-day---test-+-args-{-'00'-}
    │   ├── tests-test_starter.lua---Default-content---computes-`header`-depending-on-time-of-day---test-+-args-{-'04'-}
    │   ├── tests-test_starter.lua---Default-content---computes-`header`-depending-on-time-of-day---test-+-args-{-'08'-}
    │   ├── tests-test_starter.lua---Default-content---computes-`header`-depending-on-time-of-day---test-+-args-{-'12'-}
    │   ├── tests-test_starter.lua---Default-content---computes-`header`-depending-on-time-of-day---test-+-args-{-'16'-}
    │   ├── tests-test_starter.lua---Default-content---computes-`header`-depending-on-time-of-day---test-+-args-{-'20'-}
    │   ├── tests-test_starter.lua---Default-content---works
    │   ├── tests-test_starter.lua---Highlighting---uses-`MiniStarterItemBullet`
    │   ├── tests-test_starter.lua---Highlighting---uses-`MiniStarterItemBullet`-002
    │   ├── tests-test_starter.lua---Highlighting---works-for-current-item
    │   ├── tests-test_starter.lua---Highlighting---works-for-current-item-002
    │   ├── tests-test_starter.lua---Highlighting---works-for-querying
    │   ├── tests-test_starter.lua---Highlighting---works-for-querying-002
    │   ├── tests-test_starter.lua---Highlighting---works-for-querying-003
    │   ├── tests-test_starter.lua---Querying---works-with-`cmdheight=0`
    │   ├── tests-test_starter.lua---Resize---updates-Starter-buffer
    │   ├── tests-test_starter.lua---gen_hook---adding_bullet()---respects-`bullet`-argument
    │   ├── tests-test_starter.lua---gen_hook---adding_bullet()---works
    │   ├── tests-test_starter.lua---gen_hook---aligning()---handles-small-windows
    │   ├── tests-test_starter.lua---gen_hook---aligning()---has-output-respecting-`buf_id`-argument
    │   ├── tests-test_starter.lua---gen_hook---aligning()---has-output-respecting-`buf_id`-argument-002
    │   ├── tests-test_starter.lua---gen_hook---aligning()---respects-arguments---test-+-args-{-''center',-'bottom''-}
    │   ├── tests-test_starter.lua---gen_hook---aligning()---respects-arguments---test-+-args-{-''center',-'center''-}
    │   ├── tests-test_starter.lua---gen_hook---aligning()---respects-arguments---test-+-args-{-''center',-'top''-}
    │   ├── tests-test_starter.lua---gen_hook---aligning()---respects-arguments---test-+-args-{-''left',-'bottom''-}
    │   ├── tests-test_starter.lua---gen_hook---aligning()---respects-arguments---test-+-args-{-''left',-'center''-}
    │   ├── tests-test_starter.lua---gen_hook---aligning()---respects-arguments---test-+-args-{-''left',-'top''-}
    │   ├── tests-test_starter.lua---gen_hook---aligning()---respects-arguments---test-+-args-{-''right',-'bottom''-}
    │   ├── tests-test_starter.lua---gen_hook---aligning()---respects-arguments---test-+-args-{-''right',-'center''-}
    │   ├── tests-test_starter.lua---gen_hook---aligning()---respects-arguments---test-+-args-{-''right',-'top''-}
    │   ├── tests-test_starter.lua---gen_hook---aligning()---works
    │   ├── tests-test_starter.lua---gen_hook---indexing()---respects-arguments---test-+-args-{-''all',-nil'-}
    │   ├── tests-test_starter.lua---gen_hook---indexing()---respects-arguments---test-+-args-{-''section',-nil'-}
    │   ├── tests-test_starter.lua---gen_hook---indexing()---respects-arguments---test-+-args-{-'nil,-{-'AAA'-}'-}
    │   ├── tests-test_starter.lua---gen_hook---indexing()---respects-arguments---test-+-args-{-'nil,-{}'-}
    │   ├── tests-test_starter.lua---gen_hook---indexing()---works
    │   ├── tests-test_starter.lua---gen_hook---padding()---respects-arguments---test-+-args-{-'0,-2'-}
    │   ├── tests-test_starter.lua---gen_hook---padding()---respects-arguments---test-+-args-{-'2,-0'-}
    │   ├── tests-test_starter.lua---gen_hook---padding()---respects-arguments---test-+-args-{-'2,-2'-}
    │   ├── tests-test_starter.lua---gen_hook---padding()---works
    │   ├── tests-test_starter.lua---get_content()---works
    │   ├── tests-test_starter.lua---open()---respects-`vim.b.ministarter_config`
    │   ├── tests-test_starter.lua---refresh()---respects-`config.silent`
    │   ├── tests-test_starter.lua---refresh()---respects-`config.silent`-002
    │   ├── tests-test_starter.lua---refresh()---respects-`vim.b.ministarter_config`
    │   ├── tests-test_starter.lua---refresh()---respects-`vim.b.ministarter_config`-002
    │   ├── tests-test_starter.lua---sections---recent_files()---correctly-identifies-files-from-current-directory
    │   ├── tests-test_starter.lua---sections---recent_files()---respects-`show_path`
    │   ├── tests-test_starter.lua---sections---recent_files()---respects-files-in-subdirectories
    │   ├── tests-test_starter.lua---sections---works
    │   ├── tests-test_statusline.lua---Default-content---active---test-+-args-{-120-}
    │   ├── tests-test_statusline.lua---Default-content---active---test-+-args-{-39-}
    │   ├── tests-test_statusline.lua---Default-content---active---test-+-args-{-40-}
    │   ├── tests-test_statusline.lua---Def
Download .txt
SYMBOL INDEX (5 symbols across 1 files)

FILE: benchmarks/starter/make_summary.py
  function read_csv_columns (line 7) | def read_csv_columns(csv_path):
  function summarise_array (line 18) | def summarise_array(x):
  function save_md_summary (line 28) | def save_md_summary(summary, output_path):
  function compute_summary (line 47) | def compute_summary(csv_path):
  function main (line 52) | def main():
Copy disabled (too large) Download .json
Condensed preview — 2783 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (10,873K chars).
[
  {
    "path": ".github/DISCUSSION_TEMPLATE/q-a.yml",
    "chars": 1653,
    "preview": "labels: [question]\nbody:\n  - type: checkboxes\n    id: guidelines\n    attributes:\n      label: Contributing guidelines\n  "
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug-report.yml",
    "chars": 4550,
    "preview": "name: Bug report\ndescription: Report a problem with the existing module(s)\nlabels: [bug]\nbody:\n  - type: checkboxes\n    "
  },
  {
    "path": ".github/ISSUE_TEMPLATE/config.yml",
    "chars": 199,
    "preview": "blank_issues_enabled: false\ncontact_links:\n  - name: Question\n    url: https://github.com/nvim-mini/mini.nvim/discussion"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature-request.yml",
    "chars": 1947,
    "preview": "name: Feature request\ndescription: Describe a new feature you would like to see\nlabels: [feature-request]\nbody:\n  - type"
  },
  {
    "path": ".github/PULL_REQUEST_TEMPLATE.md",
    "chars": 210,
    "preview": "- [ ] I have read [CONTRIBUTING.md](https://github.com/nvim-mini/mini.nvim/blob/main/CONTRIBUTING.md)\n- [ ] I have read "
  },
  {
    "path": ".github/workflows/quality-control.yml",
    "chars": 3800,
    "preview": "name: Quality Control\n\non:\n  push:\n    branches-ignore: [ sync, stable ]\n  pull_request:\n    branches-ignore: [ sync, st"
  },
  {
    "path": ".gitignore",
    "chars": 36,
    "preview": "doc/tags\ndual\n.nvim.lua\nSession.vim\n"
  },
  {
    "path": ".pre-commit-config.yaml",
    "chars": 512,
    "preview": "repos:\n  - repo: local\n    hooks:\n      - id: stylua\n        name: StyLua\n        language: system\n        entry: stylua"
  },
  {
    "path": ".stylua.toml",
    "chars": 179,
    "preview": "column_width = 120\nline_endings = \"Unix\"\nindent_type = \"Spaces\"\nindent_width = 2\nquote_style = \"AutoPreferSingle\"\ncall_p"
  },
  {
    "path": ".styluaignore",
    "chars": 5,
    "preview": "dual\n"
  },
  {
    "path": "CHANGELOG.md",
    "chars": 61262,
    "preview": "This is the log of changes for past and current development versions. It lists changes in user-facing functionality per "
  },
  {
    "path": "CODE_OF_CONDUCT.md",
    "chars": 5502,
    "preview": "# Contributor Code of Conduct\n\n## Our Pledge\n\nWe as members, contributors, and leaders pledge to make participation in o"
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 14359,
    "preview": "# Contributing\n\nThank you for your willingness to contribute to 'mini.nvim'. It means a lot!\n\nYou can make contributions"
  },
  {
    "path": "LICENSE",
    "chars": 1074,
    "preview": "MIT License\n\nCopyright (c) 2021 Evgeni Chasnovski\n\nPermission is hereby granted, free of charge, to any person obtaining"
  },
  {
    "path": "MAINTAINING.md",
    "chars": 21604,
    "preview": "# Maintaining\n\nThis document contains knowledge about specifically maintaining 'mini.nvim'. It assumes general knowledge"
  },
  {
    "path": "Makefile",
    "chars": 1613,
    "preview": "NVIM_EXEC ?= nvim\n\nall: test documentation\n\n# Use `make test` to run tests for all modules\ntest:\n\tfor nvim_exec in $(NVI"
  },
  {
    "path": "README.md",
    "chars": 18650,
    "preview": "<p align=\"center\"> <img src=\"logo.png\" alt=\"mini.nvim\" style=\"max-width:100%;border:solid 2px\"/> </p>\n\n### All-in-one pl"
  },
  {
    "path": "TESTING.md",
    "chars": 35760,
    "preview": "# How to test with 'mini.test'\n\nWriting tests for Neovim Lua plugin is hard. Writing good tests for Neovim Lua plugin is"
  },
  {
    "path": "benchmarks/starter/.gitignore",
    "chars": 18,
    "preview": "startup-times.csv\n"
  },
  {
    "path": "benchmarks/starter/README.md",
    "chars": 3151,
    "preview": "# Benchmarks for 'mini.starter'\n\nThis directory contains code and results of benchmarking 'mini.starter' and its alterna"
  },
  {
    "path": "benchmarks/starter/benchmark.sh",
    "chars": 1778,
    "preview": "#! /bin/bash\n\n# Perform benchmarking of startup times with different Neovim 'init' files.\n# Execute `nvim -u <*> --start"
  },
  {
    "path": "benchmarks/starter/init-files/init_dashboard-alpha.lua",
    "chars": 1172,
    "preview": "vim.cmd([[set packpath=/tmp/nvim/site]])\nvim.cmd([[packadd alpha-nvim]])\n\nlocal alpha = require('alpha')\nlocal dashboard"
  },
  {
    "path": "benchmarks/starter/init-files/init_dashboard-original.lua",
    "chars": 1079,
    "preview": "vim.cmd([[set packpath=/tmp/nvim/site]])\nvim.cmd([[packadd dashboard-nvim]])\n\nvim.g.mapleader = ' '\nvim.g.dashboard_defa"
  },
  {
    "path": "benchmarks/starter/init-files/init_dashboard-starter.lua",
    "chars": 579,
    "preview": "vim.cmd([[set packpath=/tmp/nvim/site]])\nvim.cmd([[packadd mini.nvim]])\n\nlocal starter = require('mini.starter')\nstarter"
  },
  {
    "path": "benchmarks/starter/init-files/init_empty.lua",
    "chars": 192,
    "preview": "vim.cmd([[set packpath=/tmp/nvim/site]])\n\n-- Close Neovim just after fully opening it. Randomize to make \"more real\".\nvi"
  },
  {
    "path": "benchmarks/starter/init-files/init_starter-default.lua",
    "chars": 256,
    "preview": "vim.cmd([[set packpath=/tmp/nvim/site]])\nvim.cmd([[packadd mini.nvim]])\n\nrequire('mini.starter').setup()\n\n-- Close Neovi"
  },
  {
    "path": "benchmarks/starter/init-files/init_startify-alpha.lua",
    "chars": 376,
    "preview": "vim.cmd([[set packpath=/tmp/nvim/site]])\nvim.cmd([[packadd alpha-nvim]])\n\nlocal alpha = require('alpha')\nlocal startify "
  },
  {
    "path": "benchmarks/starter/init-files/init_startify-original.lua",
    "chars": 261,
    "preview": "vim.cmd([[set packpath=/tmp/nvim/site]])\nvim.cmd([[packadd vim-startify]])\n\nvim.g.startify_custom_header = ''\n\n-- Close "
  },
  {
    "path": "benchmarks/starter/init-files/init_startify-starter.lua",
    "chars": 617,
    "preview": "vim.cmd([[set packpath=/tmp/nvim/site]])\nvim.cmd([[packadd mini.nvim]])\n\nlocal starter = require('mini.starter')\nstarter"
  },
  {
    "path": "benchmarks/starter/install.sh",
    "chars": 347,
    "preview": "#! /bin/bash\nPLUGINPATH=/tmp/nvim/site/pack/bench/opt\nrm -rf $PLUGINPATH\nmkdir -p $PLUGINPATH\ncd $PLUGINPATH\n\ngit clone "
  },
  {
    "path": "benchmarks/starter/make_summary.py",
    "chars": 1720,
    "preview": "#!/usr/bin/env python\nimport argparse\nimport csv\nimport statistics\n\n\ndef read_csv_columns(csv_path):\n    with open(csv_p"
  },
  {
    "path": "benchmarks/starter/startup-summary.md",
    "chars": 690,
    "preview": "| init file          | median | mean   | stdev | minimum | maximum |\n| ---                | ---    | ---    | ---   | --"
  },
  {
    "path": "colors/miniautumn.lua",
    "chars": 2240,
    "preview": "-- \"Cooling autumn\"\n--\n-- Params for `make_palette` used to make palette (colors in OKLch):\n--   Dark : bg=15-2-315; fg="
  },
  {
    "path": "colors/minicyan.lua",
    "chars": 2144,
    "preview": "-- Color scheme 'minicyan'\n-- Derived from base16 (https://github.com/chriskempson/base16) and\n-- mini_palette palette g"
  },
  {
    "path": "colors/minischeme.lua",
    "chars": 2149,
    "preview": "-- Color scheme 'minischeme'\n-- Derived from base16 (https://github.com/chriskempson/base16) and\n-- mini_palette palette"
  },
  {
    "path": "colors/minispring.lua",
    "chars": 2080,
    "preview": "-- \"Blooming spring\"\n--\n-- Params for `make_palette` used to make palette (colors in OKLch):\n--   Dark : bg=15-3-135; fg"
  },
  {
    "path": "colors/minisummer.lua",
    "chars": 1830,
    "preview": "-- \"Hot summer\"\n--\n-- Params for `make_palette` used to make palette (colors in OKLch):\n--   Dark:  bg=15-1-45; fg=85-1-"
  },
  {
    "path": "colors/miniwinter.lua",
    "chars": 1987,
    "preview": "-- \"Icy winter\"\n--\n-- Params for `make_palette` used to make palette (colors in OKLch):\n--   Dark:  bg=15-3-225; fg=85-1"
  },
  {
    "path": "colors/randomhue.lua",
    "chars": 449,
    "preview": "local hues = require('mini.hues')\n\n-- Generate random config with initialized random seed (otherwise it won't be\n-- rand"
  },
  {
    "path": "doc/mini-ai.txt",
    "chars": 38460,
    "preview": "*mini.ai* Extend and create a/i textobjects\n\nMIT License Copyright (c) 2022 Evgeni Chasnovski\n\n-------------------------"
  },
  {
    "path": "doc/mini-align.txt",
    "chars": 35120,
    "preview": "*mini.align* Align text interactively\n\nMIT License Copyright (c) 2022 Evgeni Chasnovski\n\n-------------------------------"
  },
  {
    "path": "doc/mini-animate.txt",
    "chars": 38856,
    "preview": "*mini.animate* Animate common Neovim actions\n\nMIT License Copyright (c) 2022 Evgeni Chasnovski\n\n------------------------"
  },
  {
    "path": "doc/mini-base16.txt",
    "chars": 12511,
    "preview": "*mini.base16* Base16 colorscheme creation\n\nMIT License Copyright (c) 2021 Evgeni Chasnovski\n\n---------------------------"
  },
  {
    "path": "doc/mini-basics.txt",
    "chars": 12854,
    "preview": "*mini.basics* Common configuration presets\n\nMIT License Copyright (c) 2023 Evgeni Chasnovski\n\n--------------------------"
  },
  {
    "path": "doc/mini-bracketed.txt",
    "chars": 28334,
    "preview": "*mini.bracketed* Go forward/backward with square brackets\n\nMIT License Copyright (c) 2023 Evgeni Chasnovski\n\n-----------"
  },
  {
    "path": "doc/mini-bufremove.txt",
    "chars": 4796,
    "preview": "*mini.bufremove* Remove buffers\n\nMIT License Copyright (c) 2021 Evgeni Chasnovski\n\n-------------------------------------"
  },
  {
    "path": "doc/mini-clue.txt",
    "chars": 28117,
    "preview": "*mini.clue* Show next key clues\n\nMIT License Copyright (c) 2023 Evgeni Chasnovski\n\n-------------------------------------"
  },
  {
    "path": "doc/mini-cmdline.txt",
    "chars": 16168,
    "preview": "*mini.cmdline* Command line tweaks\n\nMIT License Copyright (c) 2025 Evgeni Chasnovski\n\n----------------------------------"
  },
  {
    "path": "doc/mini-colors.txt",
    "chars": 37607,
    "preview": "*mini.colors* Tweak and save any color scheme\n\nMIT License Copyright (c) 2023 Evgeni Chasnovski\n\n-----------------------"
  },
  {
    "path": "doc/mini-comment.txt",
    "chars": 8926,
    "preview": "*mini.comment* Comment lines\n\nMIT License Copyright (c) 2021 Evgeni Chasnovski\n\n----------------------------------------"
  },
  {
    "path": "doc/mini-completion.txt",
    "chars": 21811,
    "preview": "*mini.completion* Completion and signature help\n\nMIT License Copyright (c) 2021 Evgeni Chasnovski\n\n---------------------"
  },
  {
    "path": "doc/mini-cursorword.txt",
    "chars": 3820,
    "preview": "*mini.cursorword* Autohighlight word under cursor\n\nMIT License Copyright (c) 2021 Evgeni Chasnovski\n\n-------------------"
  },
  {
    "path": "doc/mini-deps.txt",
    "chars": 23733,
    "preview": "*mini.deps* Plugin manager\n\nMIT License Copyright (c) 2024 Evgeni Chasnovski\n\n------------------------------------------"
  },
  {
    "path": "doc/mini-diff.txt",
    "chars": 27665,
    "preview": "*mini.diff* Work with diff hunks\n\nMIT License Copyright (c) 2024 Evgeni Chasnovski\n\n------------------------------------"
  },
  {
    "path": "doc/mini-doc.txt",
    "chars": 20671,
    "preview": "*mini.doc* Generate Neovim help files\n\nMIT License Copyright (c) 2022 Evgeni Chasnovski\n\n-------------------------------"
  },
  {
    "path": "doc/mini-extra.txt",
    "chars": 34277,
    "preview": "*mini.extra* Extra 'mini.nvim' functionality\n\nMIT License Copyright (c) 2023 Evgeni Chasnovski\n\n------------------------"
  },
  {
    "path": "doc/mini-files.txt",
    "chars": 39727,
    "preview": "*mini.files* Navigate and manipulate file system\n\nMIT License Copyright (c) 2023 Evgeni Chasnovski\n\n--------------------"
  },
  {
    "path": "doc/mini-fuzzy.txt",
    "chars": 6545,
    "preview": "*mini.fuzzy* Fuzzy matching\n\nMIT License Copyright (c) 2021 Evgeni Chasnovski\n\n-----------------------------------------"
  },
  {
    "path": "doc/mini-git.txt",
    "chars": 18794,
    "preview": "*mini.git* Git integration\n\nMIT License Copyright (c) 2024 Evgeni Chasnovski\n\n------------------------------------------"
  },
  {
    "path": "doc/mini-hipatterns.txt",
    "chars": 20357,
    "preview": "*mini.hipatterns* Highlight patterns in text\n\nMIT License Copyright (c) 2023 Evgeni Chasnovski\n\n------------------------"
  },
  {
    "path": "doc/mini-hues.txt",
    "chars": 17824,
    "preview": "*mini.hues* Generate configurable color scheme\n\nMIT License Copyright (c) 2023 Evgeni Chasnovski\n\n----------------------"
  },
  {
    "path": "doc/mini-icons.txt",
    "chars": 20971,
    "preview": "*mini.icons* Icon provider\n\nMIT License Copyright (c) 2024 Evgeni Chasnovski\n\n------------------------------------------"
  },
  {
    "path": "doc/mini-indentscope.txt",
    "chars": 22629,
    "preview": "*mini.indentscope* Visualize and work with indent scope\n\nMIT License Copyright (c) 2022 Evgeni Chasnovski\n\n-------------"
  },
  {
    "path": "doc/mini-jump.txt",
    "chars": 7802,
    "preview": "*mini.jump* Jump to next/previous single character\n\nMIT License Copyright (c) 2021 Evgeni Chasnovski, Adam Blažek\n\n-----"
  },
  {
    "path": "doc/mini-jump2d.txt",
    "chars": 21374,
    "preview": "*mini.jump2d* Jump within visible lines\n\nMIT License Copyright (c) 2022 Evgeni Chasnovski\n\n-----------------------------"
  },
  {
    "path": "doc/mini-keymap.txt",
    "chars": 20649,
    "preview": "*mini.keymap* Special key mappings\n\nMIT License Copyright (c) 2025 Evgeni Chasnovski\n\n----------------------------------"
  },
  {
    "path": "doc/mini-map.txt",
    "chars": 31039,
    "preview": "*mini.map* Window with buffer text overview\n\nMIT License Copyright (c) 2022 Evgeni Chasnovski\n\n-------------------------"
  },
  {
    "path": "doc/mini-misc.txt",
    "chars": 17698,
    "preview": "*mini.misc* Miscellaneous functions\n\nMIT License Copyright (c) 2021 Evgeni Chasnovski\n\n---------------------------------"
  },
  {
    "path": "doc/mini-move.txt",
    "chars": 6672,
    "preview": "*mini.move* Move any selection in any direction\n\nMIT License Copyright (c) 2023 Evgeni Chasnovski\n\n---------------------"
  },
  {
    "path": "doc/mini-notify.txt",
    "chars": 16654,
    "preview": "*mini.notify* Show notifications\n\nMIT License Copyright (c) 2024 Evgeni Chasnovski\n\n------------------------------------"
  },
  {
    "path": "doc/mini-nvim.txt",
    "chars": 22645,
    "preview": "*mini.nvim* Collection of minimal, independent and fast Lua modules\n\nMIT License Copyright (c) 2021 Evgeni Chasnovski\n\n-"
  },
  {
    "path": "doc/mini-operators.txt",
    "chars": 18976,
    "preview": "*mini.operators* Text edit operators\n\nMIT License Copyright (c) 2023 Evgeni Chasnovski\n\n--------------------------------"
  },
  {
    "path": "doc/mini-pairs.txt",
    "chars": 14916,
    "preview": "*mini.pairs* Autopairs\n\nMIT License Copyright (c) 2021 Evgeni Chasnovski\n\n----------------------------------------------"
  },
  {
    "path": "doc/mini-pick.txt",
    "chars": 60167,
    "preview": "*mini.pick* Pick anything\n\nMIT License Copyright (c) 2023 Evgeni Chasnovski\n\n-------------------------------------------"
  },
  {
    "path": "doc/mini-sessions.txt",
    "chars": 9877,
    "preview": "*mini.sessions* Session management\n\nMIT License Copyright (c) 2021 Evgeni Chasnovski\n\n----------------------------------"
  },
  {
    "path": "doc/mini-snippets.txt",
    "chars": 59243,
    "preview": "*mini.snippets* Manage and expand snippets\n\nMIT License Copyright (c) 2024 Evgeni Chasnovski\n\n--------------------------"
  },
  {
    "path": "doc/mini-splitjoin.txt",
    "chars": 21416,
    "preview": "*mini.splitjoin* Split and join arguments\n\nMIT License Copyright (c) 2023 Evgeni Chasnovski\n\n---------------------------"
  },
  {
    "path": "doc/mini-starter.txt",
    "chars": 25638,
    "preview": "*mini.starter* Start screen\n\nMIT License Copyright (c) 2021 Evgeni Chasnovski\n\n-----------------------------------------"
  },
  {
    "path": "doc/mini-statusline.txt",
    "chars": 14135,
    "preview": "*mini.statusline* Statusline\n\nMIT License Copyright (c) 2021 Evgeni Chasnovski\n\n----------------------------------------"
  },
  {
    "path": "doc/mini-surround.txt",
    "chars": 39186,
    "preview": "*mini.surround* Surround actions\n\nMIT License Copyright (c) 2021 Evgeni Chasnovski\n\n------------------------------------"
  },
  {
    "path": "doc/mini-tabline.txt",
    "chars": 5667,
    "preview": "*mini.tabline* Tabline\n\nMIT License Copyright (c) 2021 Evgeni Chasnovski\n\n----------------------------------------------"
  },
  {
    "path": "doc/mini-test.txt",
    "chars": 43795,
    "preview": "*mini.test* Test Neovim plugins\n\nMIT License Copyright (c) 2022 Evgeni Chasnovski\n\n-------------------------------------"
  },
  {
    "path": "doc/mini-trailspace.txt",
    "chars": 3693,
    "preview": "*mini.trailspace* Trailspace (highlight and remove)\n\nMIT License Copyright (c) 2021 Evgeni Chasnovski\n\n-----------------"
  },
  {
    "path": "doc/mini-visits.txt",
    "chars": 40037,
    "preview": "*mini.visits* Track and reuse file system visits\n\nMIT License Copyright (c) 2023 Evgeni Chasnovski\n\n--------------------"
  },
  {
    "path": "lua/mini/ai.lua",
    "chars": 92371,
    "preview": "--- *mini.ai* Extend and create a/i textobjects\n---\n--- MIT License Copyright (c) 2022 Evgeni Chasnovski\n\n--- Enhance so"
  },
  {
    "path": "lua/mini/align.lua",
    "chars": 76716,
    "preview": "--- *mini.align* Align text interactively\n---\n--- MIT License Copyright (c) 2022 Evgeni Chasnovski\n\n--- Rich and flexibl"
  },
  {
    "path": "lua/mini/animate.lua",
    "chars": 82213,
    "preview": "--- *mini.animate* Animate common Neovim actions\n---\n--- MIT License Copyright (c) 2022 Evgeni Chasnovski\n\n--- Features:"
  },
  {
    "path": "lua/mini/base16.lua",
    "chars": 80465,
    "preview": "--- *mini.base16* Base16 colorscheme creation\n---\n--- MIT License Copyright (c) 2021 Evgeni Chasnovski\n\n--- Fast impleme"
  },
  {
    "path": "lua/mini/basics.lua",
    "chars": 32814,
    "preview": "--- *mini.basics* Common configuration presets\n---\n--- MIT License Copyright (c) 2023 Evgeni Chasnovski\n\n--- Install, cr"
  },
  {
    "path": "lua/mini/bracketed.lua",
    "chars": 82415,
    "preview": "--- *mini.bracketed* Go forward/backward with square brackets\n---\n--- MIT License Copyright (c) 2023 Evgeni Chasnovski\n\n"
  },
  {
    "path": "lua/mini/bufremove.lua",
    "chars": 9391,
    "preview": "--- *mini.bufremove* Remove buffers\n---\n--- MIT License Copyright (c) 2021 Evgeni Chasnovski\n\n--- Features:\n--- - Unshow"
  },
  {
    "path": "lua/mini/clue.lua",
    "chars": 85446,
    "preview": "--- *mini.clue* Show next key clues\n---\n--- MIT License Copyright (c) 2023 Evgeni Chasnovski\n\n--- Features:\n--- - Implem"
  },
  {
    "path": "lua/mini/cmdline.lua",
    "chars": 49983,
    "preview": "--- *mini.cmdline* Command line tweaks\n---\n--- MIT License Copyright (c) 2025 Evgeni Chasnovski\n\n--- Features:\n---\n--- -"
  },
  {
    "path": "lua/mini/colors.lua",
    "chars": 99705,
    "preview": "--- *mini.colors* Tweak and save any color scheme\n---\n--- MIT License Copyright (c) 2023 Evgeni Chasnovski\n\n--- Features"
  },
  {
    "path": "lua/mini/comment.lua",
    "chars": 23963,
    "preview": "--- *mini.comment* Comment lines\n---\n--- MIT License Copyright (c) 2021 Evgeni Chasnovski\n\n--- Features:\n--- - Commentin"
  },
  {
    "path": "lua/mini/completion.lua",
    "chars": 90811,
    "preview": "--- *mini.completion* Completion and signature help\n---\n--- MIT License Copyright (c) 2021 Evgeni Chasnovski\n\n--- Key de"
  },
  {
    "path": "lua/mini/cursorword.lua",
    "chars": 10906,
    "preview": "--- *mini.cursorword* Autohighlight word under cursor\n---\n--- MIT License Copyright (c) 2021 Evgeni Chasnovski\n\n--- Feat"
  },
  {
    "path": "lua/mini/deps.lua",
    "chars": 64469,
    "preview": "--- *mini.deps* Plugin manager\n---\n--- MIT License Copyright (c) 2024 Evgeni Chasnovski\n\n--- Features:\n---\n--- - Manage "
  },
  {
    "path": "lua/mini/diff.lua",
    "chars": 78733,
    "preview": "--- *mini.diff* Work with diff hunks\n---\n--- MIT License Copyright (c) 2024 Evgeni Chasnovski\n\n--- Features:\n---\n--- - V"
  },
  {
    "path": "lua/mini/doc.lua",
    "chars": 54673,
    "preview": "--- *mini.doc* Generate Neovim help files\n---\n--- MIT License Copyright (c) 2022 Evgeni Chasnovski\n\n--- Key design ideas"
  },
  {
    "path": "lua/mini/extra.lua",
    "chars": 91530,
    "preview": "--- *mini.extra* Extra 'mini.nvim' functionality\n---\n--- MIT License Copyright (c) 2023 Evgeni Chasnovski\n\n--- Extra use"
  },
  {
    "path": "lua/mini/files.lua",
    "chars": 115094,
    "preview": "--- *mini.files* Navigate and manipulate file system\n---\n--- MIT License Copyright (c) 2023 Evgeni Chasnovski\n\n--- Featu"
  },
  {
    "path": "lua/mini/fuzzy.lua",
    "chars": 14261,
    "preview": "--- *mini.fuzzy* Fuzzy matching\n---\n--- MIT License Copyright (c) 2021 Evgeni Chasnovski\n\n--- Features:\n--- - Minimal an"
  },
  {
    "path": "lua/mini/git.lua",
    "chars": 72757,
    "preview": "--- *mini.git* Git integration\n---\n--- MIT License Copyright (c) 2024 Evgeni Chasnovski\n\n--- Features:\n---\n--- - Automat"
  },
  {
    "path": "lua/mini/hipatterns.lua",
    "chars": 40098,
    "preview": "--- *mini.hipatterns* Highlight patterns in text\n---\n--- MIT License Copyright (c) 2023 Evgeni Chasnovski\n\n--- Features:"
  },
  {
    "path": "lua/mini/hues.lua",
    "chars": 93665,
    "preview": "--- *mini.hues* Generate configurable color scheme\n---\n--- MIT License Copyright (c) 2023 Evgeni Chasnovski\n\n--- Feature"
  },
  {
    "path": "lua/mini/icons.lua",
    "chars": 122496,
    "preview": "--- *mini.icons* Icon provider\n---\n--- MIT License Copyright (c) 2024 Evgeni Chasnovski\n\n--- Features:\n---\n--- - Provide"
  },
  {
    "path": "lua/mini/indentscope.lua",
    "chars": 46767,
    "preview": "--- *mini.indentscope* Visualize and work with indent scope\n---\n--- MIT License Copyright (c) 2022 Evgeni Chasnovski\n\n--"
  },
  {
    "path": "lua/mini/init.lua",
    "chars": 23504,
    "preview": "--- *mini.nvim* Collection of minimal, independent and fast Lua modules\n---\n--- MIT License Copyright (c) 2021 Evgeni Ch"
  },
  {
    "path": "lua/mini/jump.lua",
    "chars": 22759,
    "preview": "--- *mini.jump* Jump to next/previous single character\n---\n--- MIT License Copyright (c) 2021 Evgeni Chasnovski, Adam Bl"
  },
  {
    "path": "lua/mini/jump2d.lua",
    "chars": 46863,
    "preview": "--- *mini.jump2d* Jump within visible lines\n---\n--- MIT License Copyright (c) 2022 Evgeni Chasnovski\n\n--- Jump within vi"
  },
  {
    "path": "lua/mini/keymap.lua",
    "chars": 41018,
    "preview": "--- *mini.keymap* Special key mappings\n---\n--- MIT License Copyright (c) 2025 Evgeni Chasnovski\n\n--- Features:\n---\n--- -"
  },
  {
    "path": "lua/mini/map.lua",
    "chars": 67375,
    "preview": "--- *mini.map* Window with buffer text overview\n---\n--- MIT License Copyright (c) 2022 Evgeni Chasnovski\n\n--- Features:\n"
  },
  {
    "path": "lua/mini/misc.lua",
    "chars": 36057,
    "preview": "--- *mini.misc* Miscellaneous functions\n---\n--- MIT License Copyright (c) 2021 Evgeni Chasnovski\n\n--- Features the follo"
  },
  {
    "path": "lua/mini/move.lua",
    "chars": 19338,
    "preview": "--- *mini.move* Move any selection in any direction\n---\n--- MIT License Copyright (c) 2023 Evgeni Chasnovski\n\n--- Featur"
  },
  {
    "path": "lua/mini/notify.lua",
    "chars": 35124,
    "preview": "--- *mini.notify* Show notifications\n---\n--- MIT License Copyright (c) 2024 Evgeni Chasnovski\n\n--- Features:\n---\n--- - S"
  },
  {
    "path": "lua/mini/operators.lua",
    "chars": 52193,
    "preview": "--- *mini.operators* Text edit operators\n---\n--- MIT License Copyright (c) 2023 Evgeni Chasnovski\n\n--- Features:\n--- - O"
  },
  {
    "path": "lua/mini/pairs.lua",
    "chars": 26840,
    "preview": "--- *mini.pairs* Autopairs\n---\n--- MIT License Copyright (c) 2021 Evgeni Chasnovski\n\n--- Features:\n--- - Functionality t"
  },
  {
    "path": "lua/mini/pick.lua",
    "chars": 155550,
    "preview": "--- *mini.pick* Pick anything\n---\n--- MIT License Copyright (c) 2023 Evgeni Chasnovski\n\n--- Features:\n---\n--- - Single w"
  },
  {
    "path": "lua/mini/sessions.lua",
    "chars": 23877,
    "preview": "--- *mini.sessions* Session management\n---\n--- MIT License Copyright (c) 2021 Evgeni Chasnovski\n\n--- Read, write, and de"
  },
  {
    "path": "lua/mini/snippets.lua",
    "chars": 127870,
    "preview": "--- *mini.snippets* Manage and expand snippets\n---\n--- MIT License Copyright (c) 2024 Evgeni Chasnovski\n\n--- Snippet is "
  },
  {
    "path": "lua/mini/splitjoin.lua",
    "chars": 42279,
    "preview": "--- *mini.splitjoin* Split and join arguments\n---\n--- MIT License Copyright (c) 2023 Evgeni Chasnovski\n\n--- Features:\n--"
  },
  {
    "path": "lua/mini/starter.lua",
    "chars": 59303,
    "preview": "--- *mini.starter* Start screen\n---\n--- MIT License Copyright (c) 2021 Evgeni Chasnovski\n\n--- Displayed items are fully "
  },
  {
    "path": "lua/mini/statusline.lua",
    "chars": 27337,
    "preview": "--- *mini.statusline* Statusline\n---\n--- MIT License Copyright (c) 2021 Evgeni Chasnovski\n\n--- Features:\n--- - Define ow"
  },
  {
    "path": "lua/mini/surround.lua",
    "chars": 100483,
    "preview": "--- *mini.surround* Surround actions\n---\n--- MIT License Copyright (c) 2021 Evgeni Chasnovski\n\n--- Fast and feature-rich"
  },
  {
    "path": "lua/mini/tabline.lua",
    "chars": 19646,
    "preview": "--- *mini.tabline* Tabline\n---\n--- MIT License Copyright (c) 2021 Evgeni Chasnovski\n\n--- Key idea: show all listed buffe"
  },
  {
    "path": "lua/mini/test.lua",
    "chars": 96556,
    "preview": "--- *mini.test* Test Neovim plugins\n---\n--- MIT License Copyright (c) 2022 Evgeni Chasnovski\n\n--- Features:\n--- - Test a"
  },
  {
    "path": "lua/mini/trailspace.lua",
    "chars": 7539,
    "preview": "--- *mini.trailspace* Trailspace (highlight and remove)\n---\n--- MIT License Copyright (c) 2021 Evgeni Chasnovski\n\n--- Fe"
  },
  {
    "path": "lua/mini/visits.lua",
    "chars": 61951,
    "preview": "--- *mini.visits* Track and reuse file system visits\n---\n--- MIT License Copyright (c) 2023 Evgeni Chasnovski\n\n--- Featu"
  },
  {
    "path": "readmes/mini-ai.md",
    "chars": 7651,
    "preview": "<p align=\"center\"> <img src=\"https://github.com/nvim-mini/assets/blob/main/logo-2/logo-ai_readme.png?raw=true\" alt=\"mini"
  },
  {
    "path": "readmes/mini-align.md",
    "chars": 8245,
    "preview": "<p align=\"center\"> <img src=\"https://github.com/nvim-mini/assets/blob/main/logo-2/logo-align_readme.png?raw=true\" alt=\"m"
  },
  {
    "path": "readmes/mini-animate.md",
    "chars": 8904,
    "preview": "<p align=\"center\"> <img src=\"https://github.com/nvim-mini/assets/blob/main/logo-2/logo-animate_readme.png?raw=true\" alt="
  },
  {
    "path": "readmes/mini-base16.md",
    "chars": 9590,
    "preview": "<p align=\"center\"> <img src=\"https://github.com/nvim-mini/assets/blob/main/logo-2/logo-base16_readme.png?raw=true\" alt=\""
  },
  {
    "path": "readmes/mini-basics.md",
    "chars": 7454,
    "preview": "<p align=\"center\"> <img src=\"https://github.com/nvim-mini/assets/blob/main/logo-2/logo-basics_readme.png?raw=true\" alt=\""
  },
  {
    "path": "readmes/mini-bracketed.md",
    "chars": 9304,
    "preview": "<p align=\"center\"> <img src=\"https://github.com/nvim-mini/assets/blob/main/logo-2/logo-bracketed_readme.png?raw=true\" al"
  },
  {
    "path": "readmes/mini-bufremove.md",
    "chars": 5480,
    "preview": "<p align=\"center\"> <img src=\"https://github.com/nvim-mini/assets/blob/main/logo-2/logo-bufremove_readme.png?raw=true\" al"
  },
  {
    "path": "readmes/mini-clue.md",
    "chars": 10212,
    "preview": "<p align=\"center\"> <img src=\"https://github.com/nvim-mini/assets/blob/main/logo-2/logo-clue_readme.png?raw=true\" alt=\"mi"
  },
  {
    "path": "readmes/mini-cmdline.md",
    "chars": 6786,
    "preview": "<p align=\"center\"> <img src=\"https://github.com/nvim-mini/assets/blob/main/logo-2/logo-cmdline_readme.png?raw=true\" alt="
  },
  {
    "path": "readmes/mini-colors.md",
    "chars": 7687,
    "preview": "<p align=\"center\"> <img src=\"https://github.com/nvim-mini/assets/blob/main/logo-2/logo-colors_readme.png?raw=true\" alt=\""
  },
  {
    "path": "readmes/mini-comment.md",
    "chars": 7140,
    "preview": "<p align=\"center\"> <img src=\"https://github.com/nvim-mini/assets/blob/main/logo-2/logo-comment_readme.png?raw=true\" alt="
  },
  {
    "path": "readmes/mini-completion.md",
    "chars": 10569,
    "preview": "<p align=\"center\"> <img src=\"https://github.com/nvim-mini/assets/blob/main/logo-2/logo-completion_readme.png?raw=true\" a"
  },
  {
    "path": "readmes/mini-cursorword.md",
    "chars": 5451,
    "preview": "<p align=\"center\"> <img src=\"https://github.com/nvim-mini/assets/blob/main/logo-2/logo-cursorword_readme.png?raw=true\" a"
  },
  {
    "path": "readmes/mini-deps.md",
    "chars": 11528,
    "preview": "<p align=\"center\"> <img src=\"https://github.com/nvim-mini/assets/blob/main/logo-2/logo-deps_readme.png?raw=true\" alt=\"mi"
  },
  {
    "path": "readmes/mini-diff.md",
    "chars": 12675,
    "preview": "<p align=\"center\"> <img src=\"https://github.com/nvim-mini/assets/blob/main/logo-2/logo-diff_readme.png?raw=true\" alt=\"mi"
  },
  {
    "path": "readmes/mini-doc.md",
    "chars": 8498,
    "preview": "<p align=\"center\"> <img src=\"https://github.com/nvim-mini/assets/blob/main/logo-2/logo-doc_readme.png?raw=true\" alt=\"min"
  },
  {
    "path": "readmes/mini-extra.md",
    "chars": 6253,
    "preview": "<p align=\"center\"> <img src=\"https://github.com/nvim-mini/assets/blob/main/logo-2/logo-extra_readme.png?raw=true\" alt=\"m"
  },
  {
    "path": "readmes/mini-files.md",
    "chars": 9288,
    "preview": "<p align=\"center\"> <img src=\"https://github.com/nvim-mini/assets/blob/main/logo-2/logo-files_readme.png?raw=true\" alt=\"m"
  },
  {
    "path": "readmes/mini-fuzzy.md",
    "chars": 5247,
    "preview": "<p align=\"center\"> <img src=\"https://github.com/nvim-mini/assets/blob/main/logo-2/logo-fuzzy_readme.png?raw=true\" alt=\"m"
  },
  {
    "path": "readmes/mini-git.md",
    "chars": 6607,
    "preview": "<p align=\"center\"> <img src=\"https://github.com/nvim-mini/assets/blob/main/logo-2/logo-git_readme.png?raw=true\" alt=\"min"
  },
  {
    "path": "readmes/mini-hipatterns.md",
    "chars": 6731,
    "preview": "<p align=\"center\"> <img src=\"https://github.com/nvim-mini/assets/blob/main/logo-2/logo-hipatterns_readme.png?raw=true\" a"
  },
  {
    "path": "readmes/mini-hues.md",
    "chars": 15569,
    "preview": "<p align=\"center\"> <img src=\"https://github.com/nvim-mini/assets/blob/main/logo-2/logo-hues_readme.png?raw=true\" alt=\"mi"
  },
  {
    "path": "readmes/mini-icons.md",
    "chars": 8243,
    "preview": "<p align=\"center\"> <img src=\"https://github.com/nvim-mini/assets/blob/main/logo-2/logo-icons_readme.png?raw=true\" alt=\"m"
  },
  {
    "path": "readmes/mini-indentscope.md",
    "chars": 8114,
    "preview": "<p align=\"center\"> <img src=\"https://github.com/nvim-mini/assets/blob/main/logo-2/logo-indentscope_readme.png?raw=true\" "
  },
  {
    "path": "readmes/mini-jump.md",
    "chars": 6227,
    "preview": "<p align=\"center\"> <img src=\"https://github.com/nvim-mini/assets/blob/main/logo-2/logo-jump_readme.png?raw=true\" alt=\"mi"
  },
  {
    "path": "readmes/mini-jump2d.md",
    "chars": 7936,
    "preview": "<p align=\"center\"> <img src=\"https://github.com/nvim-mini/assets/blob/main/logo-2/logo-jump2d_readme.png?raw=true\" alt=\""
  },
  {
    "path": "readmes/mini-keymap.md",
    "chars": 8346,
    "preview": "<p align=\"center\"> <img src=\"https://github.com/nvim-mini/assets/blob/main/logo-2/logo-keymap_readme.png?raw=true\" alt=\""
  },
  {
    "path": "readmes/mini-map.md",
    "chars": 8167,
    "preview": "<p align=\"center\"> <img src=\"https://github.com/nvim-mini/assets/blob/main/logo-2/logo-map_readme.png?raw=true\" alt=\"min"
  },
  {
    "path": "readmes/mini-misc.md",
    "chars": 6127,
    "preview": "<p align=\"center\"> <img src=\"https://github.com/nvim-mini/assets/blob/main/logo-2/logo-misc_readme.png?raw=true\" alt=\"mi"
  },
  {
    "path": "readmes/mini-move.md",
    "chars": 6604,
    "preview": "<p align=\"center\"> <img src=\"https://github.com/nvim-mini/assets/blob/main/logo-2/logo-move_readme.png?raw=true\" alt=\"mi"
  },
  {
    "path": "readmes/mini-notify.md",
    "chars": 6256,
    "preview": "<p align=\"center\"> <img src=\"https://github.com/nvim-mini/assets/blob/main/logo-2/logo-notify_readme.png?raw=true\" alt=\""
  },
  {
    "path": "readmes/mini-operators.md",
    "chars": 6720,
    "preview": "<p align=\"center\"> <img src=\"https://github.com/nvim-mini/assets/blob/main/logo-2/logo-operators_readme.png?raw=true\" al"
  },
  {
    "path": "readmes/mini-pairs.md",
    "chars": 7022,
    "preview": "<p align=\"center\"> <img src=\"https://github.com/nvim-mini/assets/blob/main/logo-2/logo-pairs_readme.png?raw=true\" alt=\"m"
  },
  {
    "path": "readmes/mini-pick.md",
    "chars": 12028,
    "preview": "<p align=\"center\"> <img src=\"https://github.com/nvim-mini/assets/blob/main/logo-2/logo-pick_readme.png?raw=true\" alt=\"mi"
  },
  {
    "path": "readmes/mini-sessions.md",
    "chars": 6503,
    "preview": "<p align=\"center\"> <img src=\"https://github.com/nvim-mini/assets/blob/main/logo-2/logo-sessions_readme.png?raw=true\" alt"
  },
  {
    "path": "readmes/mini-snippets.md",
    "chars": 19387,
    "preview": "<p align=\"center\"> <img src=\"https://github.com/nvim-mini/assets/blob/main/logo-2/logo-snippets_readme.png?raw=true\" alt"
  },
  {
    "path": "readmes/mini-splitjoin.md",
    "chars": 7761,
    "preview": "<p align=\"center\"> <img src=\"https://github.com/nvim-mini/assets/blob/main/logo-2/logo-splitjoin_readme.png?raw=true\" al"
  },
  {
    "path": "readmes/mini-starter.md",
    "chars": 7546,
    "preview": "<p align=\"center\"> <img src=\"https://github.com/nvim-mini/assets/blob/main/logo-2/logo-starter_readme.png?raw=true\" alt="
  },
  {
    "path": "readmes/mini-statusline.md",
    "chars": 6601,
    "preview": "<p align=\"center\"> <img src=\"https://github.com/nvim-mini/assets/blob/main/logo-2/logo-statusline_readme.png?raw=true\" a"
  },
  {
    "path": "readmes/mini-surround.md",
    "chars": 8666,
    "preview": "<p align=\"center\"> <img src=\"https://github.com/nvim-mini/assets/blob/main/logo-2/logo-surround_readme.png?raw=true\" alt"
  },
  {
    "path": "readmes/mini-tabline.md",
    "chars": 6536,
    "preview": "<p align=\"center\"> <img src=\"https://github.com/nvim-mini/assets/blob/main/logo-2/logo-tabline_readme.png?raw=true\" alt="
  },
  {
    "path": "readmes/mini-test.md",
    "chars": 7646,
    "preview": "<p align=\"center\"> <img src=\"https://github.com/nvim-mini/assets/blob/main/logo-2/logo-test_readme.png?raw=true\" alt=\"mi"
  },
  {
    "path": "readmes/mini-trailspace.md",
    "chars": 5534,
    "preview": "<p align=\"center\"> <img src=\"https://github.com/nvim-mini/assets/blob/main/logo-2/logo-trailspace_readme.png?raw=true\" a"
  },
  {
    "path": "readmes/mini-visits.md",
    "chars": 9979,
    "preview": "<p align=\"center\"> <img src=\"https://github.com/nvim-mini/assets/blob/main/logo-2/logo-visits_readme.png?raw=true\" alt=\""
  },
  {
    "path": "scripts/dual_log.sh",
    "chars": 401,
    "preview": "# Check standalone repos result\nlocal_repos=\"$( ls -d dual/repos/*/ )\"\n\nfor repo in $local_repos; do\n  cd $repo > /dev/n"
  },
  {
    "path": "scripts/dual_push.sh",
    "chars": 376,
    "preview": "# Push standalone repos result\nlocal_repos=\"$( ls -d dual/repos/*/ )\"\n\nfor repo in $local_repos; do\n  cd $repo > /dev/nu"
  },
  {
    "path": "scripts/dual_release.sh",
    "chars": 2533,
    "preview": "# Make release from current commits\n# **IMPORTANT**: sync repos (`make dual_sync` and `make dual_push`) before this\n\n# R"
  },
  {
    "path": "scripts/dual_sync.sh",
    "chars": 3293,
    "preview": "# Perform local sync of standalone repositories, but only if on `main` branch\nbranch=\"$( git symbolic-ref --short HEAD )"
  },
  {
    "path": "scripts/init-deps-example.lua",
    "chars": 2151,
    "preview": "-- Clone 'mini.nvim' manually in a way that it gets managed by 'mini.deps'\nlocal path_package = vim.fn.stdpath('data') ."
  },
  {
    "path": "scripts/lint-filename-length.sh",
    "chars": 505,
    "preview": "#!/usr/bin/env bash\n\n# Exact value of maximum length is chosen as a \"reasonably high but not bigger\n# than 143 (maximum "
  },
  {
    "path": "scripts/lintcommit-ci.sh",
    "chars": 438,
    "preview": "#!/usr/bin/env bash\n\nmsg_file_dir='lintcommit-msg-files/'\nmkdir -p $msg_file_dir\nfunction cleanup {\n  rm -rf $msg_file_d"
  },
  {
    "path": "scripts/lintcommit.lua",
    "chars": 12434,
    "preview": "-- Validate commit message. Designed to be run as pre-commit hook and in CI.\n--\n-- Each Neovim's argument for when it is"
  },
  {
    "path": "scripts/minidoc.lua",
    "chars": 822,
    "preview": "local minidoc = require('mini.doc')\n\nif _G.MiniDoc == nil then minidoc.setup() end\n\nlocal modules = {\n  'ai',\n  'align',"
  },
  {
    "path": "scripts/minimal_init.lua",
    "chars": 1265,
    "preview": "-- Add project root as full path to runtime path (in order to be able to\n-- `require()`) modules from this module\nvim.cm"
  },
  {
    "path": "scripts/minitest.lua",
    "chars": 102,
    "preview": "local minitest = require('mini.test')\n\nif _G.MiniTest == nil then minitest.setup() end\nminitest.run()\n"
  },
  {
    "path": "tests/dir-ai/mock-nvim-treesitter/lua/nvim-treesitter/init.lua",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "tests/dir-ai/mock-nvim-treesitter/lua/nvim-treesitter/query.lua",
    "chars": 1894,
    "preview": "local new_match = function(range, metadata_range)\n  return {\n    -- Allow emulating tree-sitter directives that can comp"
  },
  {
    "path": "tests/dir-bracketed/dir-a/file-aa",
    "chars": 63,
    "preview": "Placeholder to test file-related functions of 'mini.bracketed'\n"
  },
  {
    "path": "tests/dir-bracketed/file-a",
    "chars": 63,
    "preview": "Placeholder to test file-related functions of 'mini.bracketed'\n"
  },
  {
    "path": "tests/dir-bracketed/file-b",
    "chars": 63,
    "preview": "Placeholder to test file-related functions of 'mini.bracketed'\n"
  },
  {
    "path": "tests/dir-bracketed/file-c",
    "chars": 63,
    "preview": "Placeholder to test file-related functions of 'mini.bracketed'\n"
  },
  {
    "path": "tests/dir-bracketed/file-d",
    "chars": 63,
    "preview": "Placeholder to test file-related functions of 'mini.bracketed'\n"
  },
  {
    "path": "tests/dir-bracketed/file-e",
    "chars": 63,
    "preview": "Placeholder to test file-related functions of 'mini.bracketed'\n"
  },
  {
    "path": "tests/dir-bracketed/mock/diagnostic.lua",
    "chars": 2317,
    "preview": "local lines = {\n  'Error Warning Info Hint',\n  '  Error  ',\n  '  Warning  ',\n  '  Info  ',\n  '  Hint  ',\n  'Hint Info Wa"
  },
  {
    "path": "tests/dir-bracketed/mock/treesitter.lua",
    "chars": 2376,
    "preview": "-- Mock tree-sitter as if node is a region inside balanced `{}`\n\n-- Find enclosing balanced `{}`. If `accept_at_cursor`,"
  },
  {
    "path": "tests/dir-cmdline/compiler/testcompiler.vim",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "tests/dir-cmdline/fileA",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "tests/dir-cmdline/fileB",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "tests/dir-cmdline/keymap/testkeymap.vim",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "tests/dir-cmdline/pack/test/opt/testplugin/plugin/testplugin.vim",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "tests/dir-colors/mock_cs/colors/mock_cs.lua",
    "chars": 559,
    "preview": "vim.cmd('highlight clear')\nvim.g.colors_name = 'mock_cs'\n\n--stylua: ignore start\nvim.api.nvim_set_hl(0, 'Normal',       "
  }
]

// ... and 2583 more files (download for full content)

About this extraction

This page contains the full source code of the nvim-mini/mini.nvim GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 2783 files (9.8 MB), approximately 2.8M tokens, and a symbol index with 5 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!