Commit Graph

1712 Commits

Author SHA1 Message Date
github-actions[bot]
084bf35e75 chore(master): release nvim-tree 1.19.0 2026-07-15 22:42:40 +00:00
Simon Barth
4213bd6eab style(#3223): change prompt of create file to "Create " (#3350) 2026-07-16 08:42:15 +10:00
Igor Lacerda
cf18a662cd feat: experiment: restore nvim-tree on session load, see https://github.com/nvim-tree/nvim-tree.lua/issues/3343 (#3335)
* feat: restore buffers after loading a session

* feat(sessions): invalid json handling

* feat(sessions): switch to "persist in a file" strategy

* docs: no longer needs to toggle sessionoptions flag

---------

Co-authored-by: Alexander Courtis <alex@courtis.org>
2026-07-10 11:27:15 +10:00
Alexander Courtis
a797d5e201 fix(#3346): api.tree.resize: 'configure_width' (a nil value) (#3347) 2026-07-09 10:21:38 +10:00
Alexander Courtis
35d3511e7a refactor(#3344): temporarily allow deprecated nvim_win_set_width until a replacement is provided (#3345) 2026-07-07 11:09:35 +10:00
Uanela Como
7ff7040bf6 docs: update README with cut, copy, and paste features between instances (#3342)
Update README with cut, copy, and paste features between instances
2026-07-02 11:05:47 +10:00
github-actions[bot]
531b807b8f chore(master): release nvim-tree 1.18.0 (#3318)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
v1 v1.18 v1.18.0 nvim-tree-v1.18.0
2026-07-01 12:53:44 +10:00
Uanela Como
c760c92667 feat(#1549): p will paste files from another nvim-tree instance, gp will cut/paste (#3336)
* feat: add copy absolute path with protocol into public api

* feat: add helper get_basename into node

* feat: add gby keymap, and allow visual mode for copy.basename|absolute_path

* feat(clipboard): add opts for adding protocol in reg operations

* feat(api): allow visual operation in absolute_path*

* feat: add paste with protocol to keymap+api

* feat: add paste with protocol to clipboard

* feat: add configurable clipboard protocol

* fix: filter descendant nodes on copy_absolute_path_with_protocol

* refactor: change clip protocol keymaps to bgy and bgp

* wip

* fix(clipboad): correctly show the number of copied nodes on bgy

* chore: remove bgy, bgp and add gp + gx

* chore: update api/fs.lua and api impl.lua to match new keymaps

* fix: correctly pass the function to new keymaps

* chore: remove use_protocol and use use_register + cut options

* chore: update docs

* chore: move node:get_basename to cliboard_

* chore(clipboard): remove vim.cmd workaround in favor of vim.fn.setreg

* chore: use newline as separator instead of comma

* refactor(clipboard): simplify copying node attribute and allow all to work in visual mode

* refactor(keymap): remove gx, use gp to move

* feat(clipboard): always copy/cut to register and make `p` pick local data or register data

* refactor(docs): update api docs and rename paste_while_cutting to move

* fix: correctly format keymaps

* chore: regenerate docs

* fix: remove unused apis

* chore: copy clipboard.data to register on copy/cut

* chore: revert copy_node_attribute

* refactor: remove visual mode from copy.basename|filename|path

* chore: update docs

* chore: add fs.move api and update docs

* chore: destroy dummy nodes and prevent empty paths nodes parsing

* fix: _meta/api/fs.lua and docs

* fix(clipboard): destroy dummy nodes from register on paste

* fix(clipboard): correctly check for local paste operation
2026-07-01 10:11:03 +10:00
dependabot[bot]
8e8be709c9 chore(deps): bump actions/checkout from 6 to 7 (#3340)
Bumps [actions/checkout](https://github.com/actions/checkout) from 6 to 7.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '7'
  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-06-20 13:16:28 +10:00
Alexander Courtis
fb343438d4 docs: generated help fields are sorted as of v0.12.3 (#3337)
* doc: generated help fields are sorted as of v0.12.3

* ci: add weekly trigger for CI job
2026-06-15 12:30:16 +10:00
Sean McCollum
82f58063d6 docs: spelling error (#3333) 2026-06-08 14:32:39 +10:00
Alexander Courtis
07f541fcaa fix(#3327): pass nvim_tree.api.node.open.Opts to all applicable nvim_tree.api.node.open function (#3329)
* fix(#3327): pass nvim_tree.api.node.open.Opts to all applicable nvim_tree.api.node.open function

* fix(#3327): pass nvim_tree.api.node.open.Opts to all applicable nvim_tree.api.node.open function

* fix(#3327): pass nvim_tree.api.node.open.Opts to all applicable nvim_tree.api.node.open function

* fix(#3327): pass nvim_tree.api.node.open.Opts to all applicable nvim_tree.api.node.open function

* fix(#3327): pass nvim_tree.api.node.open.Opts to all applicable nvim_tree.api.node.open function
2026-05-16 08:49:14 +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