Commit Graph

1701 Commits

Author SHA1 Message Date
Alexander Courtis
8f73cbb7d2 fix(#3323): experiment with removing window picker status line clearing, for vim._core.ui2 case 2026-05-01 09:46:12 +10:00
Alexander Courtis
f9bfc0059e fix(#3324): deprecated BufModifiedSet event replaced by OptionSet event for Nvim 0.13+ (#3325)
* fix(#3324): deprecated BufModifiedSet event replaced by OptionSet event for Nvim 0.13+

* fix(#3324): deprecated BufModifiedSet event replaced by OptionSet event for Nvim 0.13+

* ci: remove help-check for Nvim nightly
2026-05-01 08:31:56 +10:00
dependabot[bot]
24cfcc9437 chore(deps): bump googleapis/release-please-action from 4 to 5 (#3319)
Bumps [googleapis/release-please-action](https://github.com/googleapis/release-please-action) from 4 to 5.
- [Release notes](https://github.com/googleapis/release-please-action/releases)
- [Changelog](https://github.com/googleapis/release-please-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/googleapis/release-please-action/compare/v4...v5)

---
updated-dependencies:
- dependency-name: googleapis/release-please-action
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-26 09:20:37 +10:00
dependabot[bot]
5f65bd3d93 chore(deps): bump leafo/gh-actions-lua from 12 to 13 (#3320)
Bumps [leafo/gh-actions-lua](https://github.com/leafo/gh-actions-lua) from 12 to 13.
- [Release notes](https://github.com/leafo/gh-actions-lua/releases)
- [Commits](https://github.com/leafo/gh-actions-lua/compare/v12...v13)

---
updated-dependencies:
- dependency-name: leafo/gh-actions-lua
  dependency-version: '13'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Alexander Courtis <alex@courtis.org>
2026-04-26 09:18:06 +10:00
Alexander Courtis
5a1d08bc0c docs: remove lintdoc from help-check, skip the name checker during help-update (#3322)
* docs: remove lintdoc from help-check, skip the name checker during help-update

* docs: test new help-check

* Revert "docs: test new help-check"

This reverts commit 52128372ca.
2026-04-26 09:16:14 +10:00
Tomasz N
d277467fc0 fix(#3312): correct cursor when full name shown, requires nvim 0.12.2+ (#3316)
fix(full-name): lower `zindex` to get consistent cursor shape

See https://github.com/neovim/neovim/pull/39054
2026-04-16 10:51:29 +10:00
Alexander Courtis
509962f21a docs: update to 0.12 help format, remove blank line help suppression (#3314)
doc: update to 0.12 help format, remove blank line help suppression
2026-04-07 11:09:12 +10:00
github-actions[bot]
85d1145ac7 chore(master): release nvim-tree 1.17.0 (#3296)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
v1.17 v1.17.0 nvim-tree-v1.17.0
2026-04-07 10:46:51 +10:00
Alexander Courtis
7adc5679fe feat(#3310): minimum neovim version 0.10 (#3311)
* feat(#3310): minimum neovim version 0.10

* feat(#3310): minimum neovim version 0.10

* feat(#3310): minimum neovim version 0.10

* feat(#3310): minimum neovim version 0.10

* feat(#3310): minimum neovim version 0.10

* feat(#3310): minimum neovim version 0.10

* feat(#3310): minimum neovim version 0.10

* feat(#3310): minimum neovim version 0.10
2026-04-07 10:37:49 +10:00
Alexander Courtis
31503ad5d8 perf(#3231): decrease setup time: optimise setup and defer requires until tree open (#3308)
* perf(#3257): remove devicons setup

* perf(#3257): remove padding setup

* perf(#3257): remove appearance and log setup

* perf(#3257): remove appearance setup

* perf(#3257): remove rename-file setup

* perf(#3257): remove devicons setup

* perf(#3257): remove appearance setup

* perf(#3257): inline require legacy notify

* perf(#3257): inline require events notify

* perf(#3257): inline require log notify

* perf(#3253): extract change-root

* perf(#3253): extract open_on_directory

* perf(#3253): extract tab_enter

* perf(#3253): move requires inline

* perf(#3253): extract au find-file, view

* perf(#3253): extract manage_netrw

* perf(#3253): extract purge_all_state and document

* perf(#3253): move full-name setup_autocommands to main

* perf(#3253): unextract au find-file for laziness

* perf(#3253): short-circuit open_on_directory au

* perf(#3253): extract autocmd

* perf(#3253): move all setup requires inside the function
2026-04-02 13:33:16 +11:00
Alexander Courtis
02ccbcd4af fix: system open native requires nvim 0.10 (#3309) 2026-04-01 13:52:44 +11:00
Alexander Courtis
3603f069ff perf(#3257): remove setup for renderer, log, appearance (#3307)
* perf(#3257): remove devicons setup

* perf(#3257): remove padding setup

* perf(#3257): remove appearance and log setup

* perf(#3257): remove appearance setup

* perf(#3257): remove rename-file setup

* perf(#3257): remove devicons setup

* perf(#3257): remove appearance setup

* perf(#3257): inline require legacy notify

* perf(#3257): inline require events notify

* perf(#3257): inline require log notify
2026-03-31 12:21:08 +11:00
Alexander Courtis
4cbe79526f perf(#3257): remove setup for view, extracting view-state (#3306)
* perf(#3257): extract view-state

* fix(#3257): move prev_focused_node from View to LiveFilter
2026-03-30 14:22:19 +11:00
Alexander Courtis
b548cfef00 fix(#3257): error when calling api.tree.find_file (#3304) 2026-03-28 15:07:18 +11:00
Alexander Courtis
ec0efb06b0 fix(#3301): setup with empty config fails (#3303) 2026-03-28 13:06:40 +11:00
Alexander Courtis
43a3bb4b26 perf(#3257): remove setup for actions modules, full-name and explorer (#3299)
* perf(#3257): remove remove-file setup

* perf(#3257): remove rename-file setup

* perf(#3257): remove trash setup

* perf(#3257): remove actions.fs init

* perf(#3257): remove file-popup setup

* perf(#3257): remove open-file setup

* perf(#3257): remove system-open setup

* perf(#3257): remove open-file setup

* perf(#3257): remove actions.node init

* perf(#3257): remove change-dir setup

* perf(#3257): remove find-file setup

* perf(#3257): remove open setup

* perf(#3257): remove toggle setup

* perf(#3257): remove resize setup

* perf(#3257): remove finders init

* perf(#3257): remove moves init

* perf(#3257): remove tree init

* perf(#3257): remove explorer setup

* perf(#3257): view uses config.g

* perf(#3257): move os from utils to config, removing requires

* perf(#3257): move os from utils to config, removing requires

* perf(#3257): move os from utils to config, removing requires

* perf(#3257): remove watch setup

* perf(#3257): remove notify setup

* perf(#3257): remove full-name setup

* perf(#3257): remove padding setup

* Revert "perf(#3257): remove padding setup"

This reverts commit 862db0366b.
2026-03-28 11:21:57 +11:00
Alexander Courtis
6eaf74c991 feat(#3292): add nvim_tree.config.filesystem_watchers.whitelist_dirs - strongly recommended for windows (#3298)
* feat(#3292): add nvim_tree.config.filesystem_watchers.whitelist_dirs

* feat(#3292): add nvim_tree.config.filesystem_watchers.whitelist_dirs

* feat(#3292): add nvim_tree.config.filesystem_watchers.whitelist_dirs
2026-03-26 10:40:03 +11:00
Alexander Courtis
3d385d3346 perf(#3257): remove setup for modules: buffers, diagnostics, git, help, keymap, lib, watcher (#3295)
* perf(#3257): remove keymap setup

* perf(#3257): remove diagnostics setup

* perf(#3257): remove diagnostics setup

* perf(#3257): remove help setup

* perf(#3257): remove help setup

* perf(#3257): remove watcher setup

* perf(#3257): remove buffers setup

* perf(#3257): remove lib setup

* perf(#3257): remove git setup

* perf(#3257): remove git utils setup

* perf(#3257): remove buffers setup
2026-03-24 10:42:27 +11:00
Vlad Ceban
f37ebac811 fix(#3293): marks.bulk operations filter descendant nodes (#3294) 2026-03-23 10:49:34 +11:00
Alexander Courtis
dfeeb12aaa refactor(#3255): all API is lazily loaded (#3287)
* refactor(#3255): wire node.navigate.sibling API impl directly to functions

* refactor(#3255): wire fs.rename API impl directly to functions

* refactor(#3255): wire node.navigate.parent API impl directly to functions

* refactor(#3255): wire remaining node.navigate API impl directly to functions

* refactor(#3255): wire node.open API impl directly to functions, move edit and open_or_expand_or_dir_up to open-file

* refactor(#3255): wire tree.change_root API impl directly to a function in new action module change-dir

* refactor(#3255): lazy post requires, split into formatted groups

* refactor(#3255): all post are lazy

* refactor(#3255): all post are wrapped consistently

* refactor(#3255): all pre are lazy

* refactor(#3255): move Event to meta

* refactor(#3255): ensure all args passed to api

* refactor(#3255): ensure all args passed to api, fix incorrectly documented api interface

* refactor(#3255): ensure all args passed to api, fix incorrectly documented api interface

* refactor(#3255): ensure all args passed to api

* refactor(#3255): add visual mode wrappers

* refactor(#3255): define @enum nvim_tree.api.events.Event

* refactor(#3255): merge api pre and post

* refactor(#3255): merge api pre and post

* refactor(#3255): merge api pre and post
2026-03-20 15:13:24 +11:00
github-actions[bot]
e16cd38962 chore(master): release nvim-tree 1.16.0 (#3291)
* chore(master): release nvim-tree 1.16.0

* chore(master): tidy changelog

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Alexander Courtis <alex@courtis.org>
v1.16 v1.16.0 nvim-tree-v1.16.0 compat-nvim-0.9
2026-03-18 09:00:38 +11:00
Alexander Courtis
2eefa8303b ci: migrate to googleapis/release-please-action (#3290)
* ci: migrate to googleapis/release-please-action

* ci: migrate to googleapis/release-please-action

* ci: migrate to googleapis/release-please-action

* ci: migrate to googleapis/release-please-action

* ci: migrate to googleapis/release-please-action
2026-03-18 08:55:11 +11:00
Vlad Ceban
b3772adec8 fix(##3288): restore single-item paste conflict prompts (#3289) 2026-03-15 15:21:22 +11:00
Vlad Ceban
9197f3ee3f feat(#2994): add visual mode operations: copy, cut, delete, trash, toggle bookmark (#3268)
feat(#2994): add visual selection operations
2026-03-13 14:11:48 +11:00
Alexander Courtis
e1ad8b9683 chore: build scripts use sed -E for cross-OS compatibility (#3275)
* chore: build scripts use sed -E for cross-OS compatibility

* chore: build scripts use sed -E for cross-OS compatibility

---------

Co-authored-by: Uanela Como <104281989+Uanela@users.noreply.github.com>
2026-03-12 10:02:53 +11:00
Alexander Courtis
4b30847c91 docs: clarify root_folder_label=false (not true) to disable, tidy nvim_tree_config.renderer help (#3286)
docs: root_folder_label=false to disable, tidy nvim_tree_config.renderer help
2026-03-05 14:07:36 +11:00
Alexander Courtis
c8d8d515c2 perf(#3284): re-draw instead of refreshing the tree when a buffer is modified (#3285) 2026-03-04 11:53:00 +11:00
Šimon Mandlík
c988e28942 fix(#3281): fix a bug when a view width of -1 is returned from a function (#3283) 2026-02-28 15:27:13 +11:00
Fidel Yin
018a078c1e fix(#3187): prevent closing the last non-floating window when deleting files (#3282) 2026-02-27 14:51:18 +11:00
Alexander Courtis
ae16aab5fd refactor(#3256): move setup/config related functionality to new module config.lua (#3262)
* refactor(#3253): move setup/config related functionality to new module config.lua

* refactor(#3253): add api.config, tidy new config module

* refactor(#3253): add api.config, tidy new config module

* refactor(#3253): add api.config, tidy new config module

* refactor(#3253): format

* refactor(#3256): fix doc generator

* refactor(#3256): fix doc generator

* refactor(#3256): strongly type legacy config

* refactor(#3256): legacy config consistent parameter naming

* refactor(#3256): fix bad rebase
2026-02-25 13:18:42 +11:00
Alexander Courtis
87594aa7c8 fix: allow 0 (unlimited) filesystem_watchers.max_events which is the new default, except for windows at 1000 (#3279) 2026-02-24 17:27:31 +11:00
Alexander Courtis
e49b0d9bfa fix(#3251): pass git.timeout to all vim.system git calls (#3277) 2026-02-24 10:35:08 +11:00
Alexander Courtis
1b5d96696b docs: AI usage policy (#3276)
* docs: AI usage policy

* docs: AI usage policy
2026-02-24 09:12:57 +11:00
Uanela Como
5499299746 fix(#3178): handle Windows paths in ignore_dirs and add .zig-cache to defaults (#3261)
* feat: add .zig-cache in default ignored_dirs

* feat: correctly add .zig-cache in default ignored_dirs

* fix(#3178): handle windows paths in ignore_dirs

* fix: remove unsed print statement

* fix: tab formatting

* chore: match with documentation

* chore: double espace backslashes and revert unrelated formatting

* chore: correctly rever unrelated formatting

* chore: indenting explorer/watch

* fix: remove unneeded print

* chore: remove unneeded true check

* chore: adding .zig-cache into nvim-tree.lua

* chore: add /.zig-cache under filesystem_watchers

* chore: regenerate docs
2026-02-23 13:07:24 +11:00
Alexander Courtis
e11ce83ed9 chore(#3271): add new format-check, rename style-fix to format-fix (#3273)
* chore(#3271): add new format-check, rename style-fix to format-fix

* chore(#3271): CI install CodeFormat from luarocks

* chore(#3271): CI install CodeFormat from luarocks

* chore(#3271): CI install CodeFormat from luarocks

* chore(#3271): remove bad printf after format-check failure

* chore(#3271): install CodeFormat from binary as luarocks is too slow

* chore(#3271): no broken windows - all formatting fixed
2026-02-18 10:49:39 +11:00
Alexander Courtis
5dd95eaa23 docs: explicitly state no AI review tools on PRs (#3272) 2026-02-18 10:36:14 +11:00
Alexander Courtis
fa3c45875f fix(#3267): renderer.icons.*_placement 'right_align' at the right hand edge, not the right of the name (#3270) 2026-02-16 18:15:10 +11:00
Devansh Sharma
516f95e8ef docs: fix default mappings function name in examples: api.map.on_attach.default (#3269)
docs: fix default mappings function name
2026-02-16 09:48:09 +11:00
Alexander Courtis
1df1960d0e fix(#3265): rename module api.health to api.appearance, to avoid :checkhealth detection (#3266) 2026-02-14 11:17:44 +11:00
Alexander Courtis
2f1010ca77 docs: help links regular-expression instead of vim.regex (#3264)
doc: help: link regular-expression instead of vim.regex
2026-02-13 13:44:18 +11:00
Alexander Courtis
0f4d2d6998 fix: increase filesystem_watchers.max_events from 100 to 1000 (#3263)
* fix: increase filesystem_watchers.max_events from 100 to 1000

* fix: increase filesystem_watchers.max_events from 100 to 1000

* fix: increase filesystem_watchers.max_events from 100 to 1000
2026-02-13 13:37:19 +11:00
Alexander Courtis
118057ebd2 docs(#3241): add api.Decorator and Class meta with generated help, harden decorator rendering, api.decorator.UserDecorator changed to nvim_tree.api.Decorator in a non-breaking manner (#3259)
* doc(#2934): POC to use gen_vimdoc.lua for decorator meta

* doc(#2934): use injected gen_vimdoc.lua from nvim source, move decorators to main help

* doc(#2934): tidy and harden scripts

* doc(#2934): add nvim_tree.Config meta classes, add nvim_tree.api. meta classes

* doc(#2934): add nvim_tree.Config to help

* doc(#2934): add nvim_tree.api classes to help

* doc(#2934): tidy and correct nvim_tree.Config.UI and nvim_tree.Config.Actions

* doc(#2934): tidy and correct nvim_tree.Config.HijackDirectories, format and order nvim_tree.Config

* doc(#2934): tidy and nvim_tree.Config top level

* doc(#2934): tidy and format nvim_tree.Config.LiveFilter, Modified, Tab, Trash

* doc(#2934): tidy and format nvim_tree.Config.FilesystemWatchers, Log

* doc(#2934): split nvim_tree.Config into files, Sort and HijackDirectories populate others placeholder

* doc(#2934): more generic gen_vimdoc_config module config

* doc(#2934): tidy Config.HijackDirectories and Actions, move them into place

* doc(#2934): tidy Config.Modified, move into place

* doc(#2934): tidy Config.LiveFilter, move into place

* doc(#2934): tidy Config.FilesystemWatchers, move into place

* doc(#2934): tidy Config.Trash, move into place

* doc(#2934): tidy Config.Tab, move into place

* doc(#2934): tidy Config.UI, move into place

* doc(#2934): tidy Config.Log, move into place

* doc(#2934): tidy Config.Notify, move into place

* doc(#2934): tidy Config.SystemOpen, move into place

* doc(#2934): tidy Config.Help, move into place

* doc(#2934): tidy Config.Help, move into place

* doc(#2934): tidy Config.Help, move into place

* doc(#2934): tidy Config.Diagnostics, move into place

* doc(#2934): remove api/decorator as they are out of scope, revert api_decorator.lua changes, retain api opts classes but make them exact

* doc(#2934): tidy Config.Filters, move into place

* doc(#2934): tidy Config.FilesystemWatchers, move into place

* doc(#2934): tidy Config.FilesystemWatchers, Git, move into place

* doc(#2934): tidy Config.UpdateFocusedFile, move into place

* doc(#2934): tidy Config.Sort, move into place

* doc(#2934): tidy Config.View, move into place

* doc(#2934): tidy Config.View, move into place

* docs(#2934): type DEFAULT_OPTS, use bracketed references to keep luals happy

* docs(#2934): tidy, inline some classes

* docs(#2934): tidy Config.Renderer

* docs(#2934): remove problematic glyphs, tidy other glyphs

* docs(#2934): tidy Config.Renderer, ensure functions are parenthesised when necessary

* docs(#2934): tidy Config.Renderer

* docs(#2934): tidy Config.Renderer, move into place

* docs(#2934): tidy Config.Renderer

* docs(#2934): tidy Config.FilesystemWatchers

* docs(#2934): fix broken links

* docs(#2934): fix broken links

* docs(#2934): fix broken links

* docs(#2934): fix broken links

* docs(#2934): refer to nvim in help, not neovim, as this trips the lintdoc spell checker

* docs(#2934): fix broken links

* docs(#2934): add lintdoc.sh, fix some branding spelling

* docs(#2934): update old config links

* docs(#2934): remove 5. Opts, 8.2  Highlight: Overhaul, 15.1  Index: Opts, update links as needed

* docs(#2934): remove indices

* docs(#2934): add bookmarks, put long descriptions into @brief

* docs(#2934): move hidden display to verbatim new section

* docs(#2934): add config lsp examples, link setup

* docs(#2934): normalise heading formatting, remove TOC

* docs(#2934): move all icon and highlight info into a table

* docs(#2934): move all icon and highlight info into a new section

* docs(#2934): normalise all icon and highlight

* docs(#2934): extract nvim_tree.Config field descriptions to class overview

* docs(#2934): consistent string formatting

* docs(#2934): normalise all icon and highlight

* docs(#2934): remove @briefs as they are shown above the class tag

* docs(#2934): don't <pre> filters

* docs(#2934): add experimental example

* docs(#2934): add gen_vimdoc.sh to CI

* docs(#2934): add gen_vimdoc.sh to CI

* docs(#2934): add gen_vimdoc.sh to CI

* docs(#2934): temporarily --ignore-blank-lines during help check

* docs(#2934): add lintdoc.sh to CI

* docs(#2934): add lintdoc.sh to CI

* docs(#2934): add lintdoc.sh to CI

* docs(#2934): move Nvim build and help-check to the end for faster turnaround

* docs(#2934): use make lintdoc target directly

* docs(#2934): CONTRIBUTING.md updates for help generation and lint

* docs(#2934): revert API opts classes changes

* docs(#2934): harden gen and lint scripts, moving things out of nvim-tree source to prevent luals upset

* docs(#2934): harden gen and lint scripts, moving things out of nvim-tree source to prevent luals upset

* docs(#2934): fix lintdoc make target

* docs(#3088): extract api/tree.lua

* docs(#3088): extract api/tree.lua

* docs(#2934): move help diff check after lint

* docs(#3088): update api.tree references, remove old doc

* docs(#3088): extract api/config/mappings.lua

* docs(#3088): api.config.mappings -> api.map

* docs(#3088): extract api/filter.lua

* docs(#3088): move api.git into api.tree

* docs(#3088): extract api/health.lua, tidy formatting

* docs(#3088): extract api/health.lua, tidy formatting

* docs(#3088): remove command descriptions, show lua, link to api

* docs(#3088): extract api/marks.lua

* docs(#3088): remove completed legacy api.lua members

* docs(#3088): extract api/events.lua

* docs(#3088): extract api/events.lua

* docs(#3088): extract api/fs.lua

* docs(#3088): extract api/commands.lua

* docs(#3088): extract api/node.lua functions, doc TODO

* docs(#3088): move all nvim-tree-api to generated doc

* docs(#3088): old api is now impl, use new api

* docs(#3088): extract api/node.lua functions, doc WIP

* docs(#3088): extract api/node.lua functions, doc WIP

* docs(#3088): extract api/node.lua functions, doc WIP

* docs(#3088): extract api/node.lua functions

* docs(#3088): move api into _meta

* docs(#3088): move api-impl out of meta, restore it to its original state with a hyrdrate function

* docs(#3088): remove old Api classes, rename impl Api -> api

* docs(#3088): tidy migrated annotations

* docs(#3088): format nvim_tree.api.commands

* docs(#3088): separate api classes at the end

* docs(#3088): polish vimdoc config

* docs(#3088): format

* docs(#2934): polish vimdoc config

* docs(#2934): snake case config class names

* docs(#2934): snake case config alias names

* docs(#2934): note help tag prefixes

* docs(#2934): snake case config sections

* docs(#2934): move default config to end

* docs(#2934): move setup doc from config to quickstart and setup

* docs(#2934): index contributing

* docs(#3088): cleanup following merge

* docs(#3088): tidy section names

* docs(#3088): split node.navigate and open, move all filters into api.filter

* docs(#3088): hidden->custom toggle default desc

* docs(#3088): add legacy filter api mappings

* docs(#3088): tidy api meta

* docs(#3088): always exclude meta from luacheck, it doesn't offer anything useful

* docs(#3088): extract fs.copy, fix api node param optionality, move legacy api to legacy.lua

* docs(#3088): correct optionality of nvim_tree.config.view.width fields

* docs(#3088): hydrate API before setup with error functions, with some hydrated with their concrete function, wrap removal TODO

* docs(#3088): remove api impl error wrap

* docs(#3088): split api pre and post, add more comments

* docs(#3088): split api pre and post, add more comments

* docs(#3088): extract post impl functions, lazy some requires

* docs(#3088): lazy api impl requires

* Revert "docs(#3088): lazy api impl requires"

This reverts commit c6ea6c5be1.

* docs(#3088): minimise api pre following tests

* docs(#3088): move node classes under api with logical order

* docs(#3088): document node and git classes, namespace internal and external git classes, redact node subclasses

* docs(#3088): fix merge issue

* docs(#3088): tidy pre comments

* docs(#3088): collapse node and fs submodules

* docs(#3088): move api help and classes back into api.lua

* docs(#3088): resize command calls api, not view

* docs(#3088): tidy api map names

* docs(#3088): revert api.git refactor, provide deprecated api meta

* docs(#3088): add deprecated api @see

* docs(#3088): class fixes following merge, disable luacheck on scripts

* docs(#3088): Node:should_expand nops

* docs(#3088): fix _git return

* docs(#3088): add meta for legacy api

* docs(#3088): mark deprecated api modules, use proper namespacing for deprecateds

* docs(#3088): gen_vimdoc now uses full paths, requires a patch for a FIXME

* docs(#3088): add vim_gendoc patches

* Revert "docs(#3088): add vim_gendoc patches"

This reverts commit ebb99093d2.

* Revert "docs(#3088): gen_vimdoc now uses full paths, requires a patch for a FIXME"

This reverts commit ff0184a260.

* docs(#3088): split gen_vimdoc_config into chunks to avoid filename clashes, as gen_vimdoc keys sections by filename

* docs(#3088): move legacy api into api.impl.legacy, fixes following testing

* docs(#3088): remove merge leftover

* docs(#3088): tidy contrib

* docs(#3088): clarify backwards compatibility

* docs(#3088): clarify help generation in contributing

* docs(#3088): contributing index

* docs(#3088): help-update.sh -> help-defaults.sh now using a /tmp file to prevent runaway FS updates

* docs(#3088): help-update.sh -> help-defaults.sh now using a /tmp file to prevent runaway FS updates

* docs(#3088): CI runs make lintdoc to avoid muddying help-check with unnecessary build and possible Nvim lint failures

* docs(#3088): unify help and readme, clarify some wording

* docs(#3088): test a readme toc

* docs(#3088): test a readme toc

* docs(#3088): unify help generation and lint into vimdoc.sh, generation uses nvim source build to execute (#3260)

* docs(#3241): unify help generation and lint into vimdoc.sh, generation uses nvim source build to execute

* docs(#3241): unify help generation and lint into vimdoc.sh, generation uses nvim source build to execute

* docs(#3241): unify help generation and lint into vimdoc.sh, generation uses nvim source build to execute

* docs(#3241): unify help generation and lint into vimdoc.sh, generation uses nvim source build to execute

* docs(#3241): namespace decorator types

* docs(#3241): namespace decorator types

* docs(#3241): namespace decorator types

* docs(#3241): api exposes nvim_tree.api.decorator.Decorator interface, UserDecorator deprecated

* docs(#3241): move decorator meta into place

* docs(#3241): generate decorator help

* docs(#3241): separate api and class generation configs, namespace classes without their filename, nicer generation placeholder

* docs(#3241): fix potential bug in builder: passing a nil node to a user decorator

* docs(#3241): nvim-tree-api-decorator brief

* docs(#3241): Decorator class documentation

* docs(#3241): add placholder to vimdoc.sh

* docs(#3241): extract nvim_tree.config.renderer.decorator, add decorators to hl help section

* docs(#3241): use general nvim_tree.api.highlighted_string

* docs(#3241): add nvim-tree-class-decorator-example

* docs(#3241): move renderer alias doc to the class

* docs(#3241): Class -> nvim_tree.Class

* docs(#3241): Class -> nvim_tree.Class

* docs(#3241): document nvim_tree.Class

* docs(#3241): fix help lua indentation

* docs(#3241): extract builtin decorator interface, partially complete

* docs(#3241): extracted BuiltinDecorator

* docs(#3241): add BuiltinDecorator constructor

* docs(#3241): revert api function changes

* docs(#3241): revert api function changes

* docs(#3241): vimdoc polish

* docs(#3241): tidy

* docs(#3241): tidy
2026-02-13 12:58:03 +11:00
Alexander Courtis
c0b18e4879 docs(#3088): add nvim-tree.api* function and class meta, generate help API, lazy load API before setup, rename some API in a non-breaking manner (#3244)
* doc(#2934): POC to use gen_vimdoc.lua for decorator meta

* doc(#2934): use injected gen_vimdoc.lua from nvim source, move decorators to main help

* doc(#2934): tidy and harden scripts

* doc(#2934): add nvim_tree.Config meta classes, add nvim_tree.api. meta classes

* doc(#2934): add nvim_tree.Config to help

* doc(#2934): add nvim_tree.api classes to help

* doc(#2934): tidy and correct nvim_tree.Config.UI and nvim_tree.Config.Actions

* doc(#2934): tidy and correct nvim_tree.Config.HijackDirectories, format and order nvim_tree.Config

* doc(#2934): tidy and nvim_tree.Config top level

* doc(#2934): tidy and format nvim_tree.Config.LiveFilter, Modified, Tab, Trash

* doc(#2934): tidy and format nvim_tree.Config.FilesystemWatchers, Log

* doc(#2934): split nvim_tree.Config into files, Sort and HijackDirectories populate others placeholder

* doc(#2934): more generic gen_vimdoc_config module config

* doc(#2934): tidy Config.HijackDirectories and Actions, move them into place

* doc(#2934): tidy Config.Modified, move into place

* doc(#2934): tidy Config.LiveFilter, move into place

* doc(#2934): tidy Config.FilesystemWatchers, move into place

* doc(#2934): tidy Config.Trash, move into place

* doc(#2934): tidy Config.Tab, move into place

* doc(#2934): tidy Config.UI, move into place

* doc(#2934): tidy Config.Log, move into place

* doc(#2934): tidy Config.Notify, move into place

* doc(#2934): tidy Config.SystemOpen, move into place

* doc(#2934): tidy Config.Help, move into place

* doc(#2934): tidy Config.Help, move into place

* doc(#2934): tidy Config.Help, move into place

* doc(#2934): tidy Config.Diagnostics, move into place

* doc(#2934): remove api/decorator as they are out of scope, revert api_decorator.lua changes, retain api opts classes but make them exact

* doc(#2934): tidy Config.Filters, move into place

* doc(#2934): tidy Config.FilesystemWatchers, move into place

* doc(#2934): tidy Config.FilesystemWatchers, Git, move into place

* doc(#2934): tidy Config.UpdateFocusedFile, move into place

* doc(#2934): tidy Config.Sort, move into place

* doc(#2934): tidy Config.View, move into place

* doc(#2934): tidy Config.View, move into place

* docs(#2934): type DEFAULT_OPTS, use bracketed references to keep luals happy

* docs(#2934): tidy, inline some classes

* docs(#2934): tidy Config.Renderer

* docs(#2934): remove problematic glyphs, tidy other glyphs

* docs(#2934): tidy Config.Renderer, ensure functions are parenthesised when necessary

* docs(#2934): tidy Config.Renderer

* docs(#2934): tidy Config.Renderer, move into place

* docs(#2934): tidy Config.Renderer

* docs(#2934): tidy Config.FilesystemWatchers

* docs(#2934): fix broken links

* docs(#2934): fix broken links

* docs(#2934): fix broken links

* docs(#2934): fix broken links

* docs(#2934): refer to nvim in help, not neovim, as this trips the lintdoc spell checker

* docs(#2934): fix broken links

* docs(#2934): add lintdoc.sh, fix some branding spelling

* docs(#2934): update old config links

* docs(#2934): remove 5. Opts, 8.2  Highlight: Overhaul, 15.1  Index: Opts, update links as needed

* docs(#2934): remove indices

* docs(#2934): add bookmarks, put long descriptions into @brief

* docs(#2934): move hidden display to verbatim new section

* docs(#2934): add config lsp examples, link setup

* docs(#2934): normalise heading formatting, remove TOC

* docs(#2934): move all icon and highlight info into a table

* docs(#2934): move all icon and highlight info into a new section

* docs(#2934): normalise all icon and highlight

* docs(#2934): extract nvim_tree.Config field descriptions to class overview

* docs(#2934): consistent string formatting

* docs(#2934): normalise all icon and highlight

* docs(#2934): remove @briefs as they are shown above the class tag

* docs(#2934): don't <pre> filters

* docs(#2934): add experimental example

* docs(#2934): add gen_vimdoc.sh to CI

* docs(#2934): add gen_vimdoc.sh to CI

* docs(#2934): add gen_vimdoc.sh to CI

* docs(#2934): temporarily --ignore-blank-lines during help check

* docs(#2934): add lintdoc.sh to CI

* docs(#2934): add lintdoc.sh to CI

* docs(#2934): add lintdoc.sh to CI

* docs(#2934): move Nvim build and help-check to the end for faster turnaround

* docs(#2934): use make lintdoc target directly

* docs(#2934): CONTRIBUTING.md updates for help generation and lint

* docs(#2934): revert API opts classes changes

* docs(#2934): harden gen and lint scripts, moving things out of nvim-tree source to prevent luals upset

* docs(#2934): harden gen and lint scripts, moving things out of nvim-tree source to prevent luals upset

* docs(#2934): fix lintdoc make target

* docs(#3088): extract api/tree.lua

* docs(#3088): extract api/tree.lua

* docs(#2934): move help diff check after lint

* docs(#3088): update api.tree references, remove old doc

* docs(#3088): extract api/config/mappings.lua

* docs(#3088): api.config.mappings -> api.map

* docs(#3088): extract api/filter.lua

* docs(#3088): move api.git into api.tree

* docs(#3088): extract api/health.lua, tidy formatting

* docs(#3088): extract api/health.lua, tidy formatting

* docs(#3088): remove command descriptions, show lua, link to api

* docs(#3088): extract api/marks.lua

* docs(#3088): remove completed legacy api.lua members

* docs(#3088): extract api/events.lua

* docs(#3088): extract api/events.lua

* docs(#3088): extract api/fs.lua

* docs(#3088): extract api/commands.lua

* docs(#3088): extract api/node.lua functions, doc TODO

* docs(#3088): move all nvim-tree-api to generated doc

* docs(#3088): old api is now impl, use new api

* docs(#3088): extract api/node.lua functions, doc WIP

* docs(#3088): extract api/node.lua functions, doc WIP

* docs(#3088): extract api/node.lua functions, doc WIP

* docs(#3088): extract api/node.lua functions

* docs(#3088): move api into _meta

* docs(#3088): move api-impl out of meta, restore it to its original state with a hyrdrate function

* docs(#3088): remove old Api classes, rename impl Api -> api

* docs(#3088): tidy migrated annotations

* docs(#3088): format nvim_tree.api.commands

* docs(#3088): separate api classes at the end

* docs(#3088): polish vimdoc config

* docs(#3088): format

* docs(#2934): polish vimdoc config

* docs(#2934): snake case config class names

* docs(#2934): snake case config alias names

* docs(#2934): note help tag prefixes

* docs(#2934): snake case config sections

* docs(#2934): move default config to end

* docs(#2934): move setup doc from config to quickstart and setup

* docs(#2934): index contributing

* docs(#3088): cleanup following merge

* docs(#3088): tidy section names

* docs(#3088): split node.navigate and open, move all filters into api.filter

* docs(#3088): hidden->custom toggle default desc

* docs(#3088): add legacy filter api mappings

* docs(#3088): tidy api meta

* docs(#3088): always exclude meta from luacheck, it doesn't offer anything useful

* docs(#3088): extract fs.copy, fix api node param optionality, move legacy api to legacy.lua

* docs(#3088): correct optionality of nvim_tree.config.view.width fields

* docs(#3088): hydrate API before setup with error functions, with some hydrated with their concrete function, wrap removal TODO

* docs(#3088): remove api impl error wrap

* docs(#3088): split api pre and post, add more comments

* docs(#3088): split api pre and post, add more comments

* docs(#3088): extract post impl functions, lazy some requires

* docs(#3088): lazy api impl requires

* Revert "docs(#3088): lazy api impl requires"

This reverts commit c6ea6c5be1.

* docs(#3088): minimise api pre following tests

* docs(#3088): move node classes under api with logical order

* docs(#3088): document node and git classes, namespace internal and external git classes, redact node subclasses

* docs(#3088): fix merge issue

* docs(#3088): tidy pre comments

* docs(#3088): collapse node and fs submodules

* docs(#3088): move api help and classes back into api.lua

* docs(#3088): resize command calls api, not view

* docs(#3088): tidy api map names

* docs(#3088): revert api.git refactor, provide deprecated api meta

* docs(#3088): add deprecated api @see

* docs(#3088): class fixes following merge, disable luacheck on scripts

* docs(#3088): Node:should_expand nops

* docs(#3088): fix _git return

* docs(#3088): add meta for legacy api

* docs(#3088): mark deprecated api modules, use proper namespacing for deprecateds

* docs(#3088): gen_vimdoc now uses full paths, requires a patch for a FIXME

* docs(#3088): add vim_gendoc patches

* Revert "docs(#3088): add vim_gendoc patches"

This reverts commit ebb99093d2.

* Revert "docs(#3088): gen_vimdoc now uses full paths, requires a patch for a FIXME"

This reverts commit ff0184a260.

* docs(#3088): split gen_vimdoc_config into chunks to avoid filename clashes, as gen_vimdoc keys sections by filename

* docs(#3088): move legacy api into api.impl.legacy, fixes following testing

* docs(#3088): remove merge leftover

* docs(#3088): tidy contrib

* docs(#3088): clarify backwards compatibility

* docs(#3088): clarify help generation in contributing

* docs(#3088): contributing index

* docs(#3088): help-update.sh -> help-defaults.sh now using a /tmp file to prevent runaway FS updates

* docs(#3088): help-update.sh -> help-defaults.sh now using a /tmp file to prevent runaway FS updates

* docs(#3088): CI runs make lintdoc to avoid muddying help-check with unnecessary build and possible Nvim lint failures

* docs(#3088): unify help and readme, clarify some wording

* docs(#3088): test a readme toc

* docs(#3088): test a readme toc

* docs(#3088): unify help generation and lint into vimdoc.sh, generation uses nvim source build to execute (#3260)

* docs(#3241): unify help generation and lint into vimdoc.sh, generation uses nvim source build to execute

* docs(#3241): unify help generation and lint into vimdoc.sh, generation uses nvim source build to execute

* docs(#3241): unify help generation and lint into vimdoc.sh, generation uses nvim source build to execute

* docs(#3241): unify help generation and lint into vimdoc.sh, generation uses nvim source build to execute
2026-02-12 11:10:36 +11:00
Alexander Courtis
037d89e60f docs(#3243): renderer.hidden_display help documentation is generated (#3258) 2026-01-31 15:31:37 +11:00
Alexander Courtis
c07ce43527 fix(#3198): add filesystem_watchers.max_events to handle runaway filesystem events on PowerShell (#3232)
* fix(#3198): add filesystem_watchers.max_outstanding_events which disables filesystem watchers on a directory when runaway events are received

* fix(#3198): document filesystem_watchers.max_events

* fix(#3198): document filesystem_watchers.max_events
2026-01-27 12:28:05 +11:00
Uanela Como
89d9621aa4 refactor(#3225): multi instance expand (#3234)
* wip(explorer): rename :expand to :expand_dir_node and all places using it

* wip: move expand function to directory

* refactor: move expand functionality to node methods

Move expansion logic from actions/tree/modifiers/expand.lua into
DirectoryNode and Explorer methods. Update API to use new methods
via wrap_explorer. Remove expand module and its setup calls.

* refactor(directory): correctly calling class methods and passing correct values

* fix: moving directory and file nodes require to avoid circular depency

* fix(node): correctly calling expand on parent without circular dependency

* fix(node.directory): fix <E> not expanding all folders

* refactor(node.director): move gen_iterator to expand and safely call descend_until_empty

* feat: move collapse to tree actions and remove modifiers folder

* feat: move should_expand to Node for better OO

* chore: add should_expand in DirectoryNode to avoid circular dependecy

* fix(explorer): correctly calling expand as a class method

* fix: adding underscore on unsed variables

* chore: move descend_until_empty to local function

* fix(directory): correctly pass node instead of self ot should_descend
2026-01-27 11:01:15 +11:00
xiantang
b93dbb9b58 refactor: use Node objects in Filters:bookmark for improved type safety (#3252)
* refactor: use Node objects in Filters:bookmark for improved type safety

* docs(filters): add clarifying comments to bookmark filter logic
2026-01-25 10:35:57 +11:00
Uanela Como
1701e41b07 refactor(#2988): multi-instance change-dir (#3233)
* chore: moving root action dir-up to explorer class

* chore(explorer): moving requires to top level

* wip(explorer): moved all change-dir functions to explorer class

* wip(explorer): rename M.current_tab to self.current_tab

* chore(explorer): move change_dir root action to explorer and replace all places using change_dir to use it from explorer

* refactor(explorer): changing _foldername to folder_name

* wip(explorer): rename expand method to expand_dir_node and all places using it

* wip(explorer): mark private methods and remove add_profiling_to method

* fix: allow changing root to file`s parent directory and fix restrict_above_cwd config path

* refactor(api): moving change_root_to_node to Explorer:change_dir_to_node

* fix(explorer): get new explorer before redrawing on <C-]>

* docs(explorer): adding link to PR discussion for more context

* fix(explorer): correctly check config.actions.change_dir for change_dir related methods

* fix: correctly pass explorer as first arg when calling explorer methods in lua/nvim-tree

* fix: correctly pass args to change_dir

* fix: check for explorer before force_dirchange in open_on_directory

* fix: check if force_dirchange should call core.init
2026-01-24 12:58:32 +11:00
xiantang
5757bcf044 fix(#3248): bookmark filter shows contents of marked directories (#3249)
fix: restore bookmark filter for marked directories
2026-01-23 16:25:05 +11:00
Alexander Courtis
869fc957ed docs(#2934): add nvim_tree.config* classes with generated help and new nvim-tree-icons-highlighting help section (#3235)
* doc(#2934): POC to use gen_vimdoc.lua for decorator meta

* doc(#2934): use injected gen_vimdoc.lua from nvim source, move decorators to main help

* doc(#2934): tidy and harden scripts

* doc(#2934): add nvim_tree.Config meta classes, add nvim_tree.api. meta classes

* doc(#2934): add nvim_tree.Config to help

* doc(#2934): add nvim_tree.api classes to help

* doc(#2934): tidy and correct nvim_tree.Config.UI and nvim_tree.Config.Actions

* doc(#2934): tidy and correct nvim_tree.Config.HijackDirectories, format and order nvim_tree.Config

* doc(#2934): tidy and nvim_tree.Config top level

* doc(#2934): tidy and format nvim_tree.Config.LiveFilter, Modified, Tab, Trash

* doc(#2934): tidy and format nvim_tree.Config.FilesystemWatchers, Log

* doc(#2934): split nvim_tree.Config into files, Sort and HijackDirectories populate others placeholder

* doc(#2934): more generic gen_vimdoc_config module config

* doc(#2934): tidy Config.HijackDirectories and Actions, move them into place

* doc(#2934): tidy Config.Modified, move into place

* doc(#2934): tidy Config.LiveFilter, move into place

* doc(#2934): tidy Config.FilesystemWatchers, move into place

* doc(#2934): tidy Config.Trash, move into place

* doc(#2934): tidy Config.Tab, move into place

* doc(#2934): tidy Config.UI, move into place

* doc(#2934): tidy Config.Log, move into place

* doc(#2934): tidy Config.Notify, move into place

* doc(#2934): tidy Config.SystemOpen, move into place

* doc(#2934): tidy Config.Help, move into place

* doc(#2934): tidy Config.Help, move into place

* doc(#2934): tidy Config.Help, move into place

* doc(#2934): tidy Config.Diagnostics, move into place

* doc(#2934): remove api/decorator as they are out of scope, revert api_decorator.lua changes, retain api opts classes but make them exact

* doc(#2934): tidy Config.Filters, move into place

* doc(#2934): tidy Config.FilesystemWatchers, move into place

* doc(#2934): tidy Config.FilesystemWatchers, Git, move into place

* doc(#2934): tidy Config.UpdateFocusedFile, move into place

* doc(#2934): tidy Config.Sort, move into place

* doc(#2934): tidy Config.View, move into place

* doc(#2934): tidy Config.View, move into place

* docs(#2934): type DEFAULT_OPTS, use bracketed references to keep luals happy

* docs(#2934): tidy, inline some classes

* docs(#2934): tidy Config.Renderer

* docs(#2934): remove problematic glyphs, tidy other glyphs

* docs(#2934): tidy Config.Renderer, ensure functions are parenthesised when necessary

* docs(#2934): tidy Config.Renderer

* docs(#2934): tidy Config.Renderer, move into place

* docs(#2934): tidy Config.Renderer

* docs(#2934): tidy Config.FilesystemWatchers

* docs(#2934): fix broken links

* docs(#2934): fix broken links

* docs(#2934): fix broken links

* docs(#2934): fix broken links

* docs(#2934): refer to nvim in help, not neovim, as this trips the lintdoc spell checker

* docs(#2934): fix broken links

* docs(#2934): add lintdoc.sh, fix some branding spelling

* docs(#2934): update old config links

* docs(#2934): remove 5. Opts, 8.2  Highlight: Overhaul, 15.1  Index: Opts, update links as needed

* docs(#2934): remove indices

* docs(#2934): add bookmarks, put long descriptions into @brief

* docs(#2934): move hidden display to verbatim new section

* docs(#2934): add config lsp examples, link setup

* docs(#2934): normalise heading formatting, remove TOC

* docs(#2934): move all icon and highlight info into a table

* docs(#2934): move all icon and highlight info into a new section

* docs(#2934): normalise all icon and highlight

* docs(#2934): extract nvim_tree.Config field descriptions to class overview

* docs(#2934): consistent string formatting

* docs(#2934): normalise all icon and highlight

* docs(#2934): remove @briefs as they are shown above the class tag

* docs(#2934): don't <pre> filters

* docs(#2934): add experimental example

* docs(#2934): add gen_vimdoc.sh to CI

* docs(#2934): add gen_vimdoc.sh to CI

* docs(#2934): add gen_vimdoc.sh to CI

* docs(#2934): temporarily --ignore-blank-lines during help check

* docs(#2934): add lintdoc.sh to CI

* docs(#2934): add lintdoc.sh to CI

* docs(#2934): add lintdoc.sh to CI

* docs(#2934): move Nvim build and help-check to the end for faster turnaround

* docs(#2934): use make lintdoc target directly

* docs(#2934): CONTRIBUTING.md updates for help generation and lint

* docs(#2934): revert API opts classes changes

* docs(#2934): harden gen and lint scripts, moving things out of nvim-tree source to prevent luals upset

* docs(#2934): harden gen and lint scripts, moving things out of nvim-tree source to prevent luals upset

* docs(#2934): fix lintdoc make target

* docs(#2934): polish vimdoc config

* docs(#2934): snake case config class names

* docs(#2934): snake case config alias names

* docs(#2934): note help tag prefixes

* docs(#2934): snake case config sections

* docs(#2934): move default config to end

* docs(#2934): move setup doc from config to quickstart and setup

* docs(#2934): index contributing

* docs(#2934): tidy gitignore

* docs(#2934): tidy formatting

* docs(#2934): lint and check scripts, rewrite luals check script following upstream changes

* docs(#2934): script tidying

* docs(#2934): add a temporary codestyle violation to test scripts

* Revert "docs(#2934): add a temporary codestyle violation to test scripts"

This reverts commit fca4dbf70a.

* docs(#2934): remove class from config section headers
2026-01-22 12:23:55 +11:00