Mateusz Russak
9deac32a40
refactor: all usages going through the explorer
2024-07-28 10:16:02 +02:00
Mateusz Russak
82ba116bbd
refactor( #2829 ): multi instance nvim-tree.explorer.sorters ( #2835 )
...
* refactor: multi instance nvim-tree.explorer.sorters
* fix: linter errors
* fix: style
* fix: according to code review
* chore: removed comment
* fix: missing cfg params in sorters
* tidy following rebase
* tidy following rebase
---------
Co-authored-by: Alexander Courtis <alex@courtis.org>
2024-07-27 13:54:40 +10:00
Mateusz Russak
908478a0e0
refactor( #2828 ): multi instance nvim-tree.explorer.filters ( #2841 )
...
* refactor(#2828 ): multi instance nvim-tree.explorer.filters
* fix: style
* fix: apply suggestions from code review
Co-authored-by: Alexander Courtis <alex@courtis.org>
---------
Co-authored-by: Alexander Courtis <alex@courtis.org>
2024-07-27 13:29:27 +10:00
Alexander Courtis
26632f496e
chore( #2731 ): neovim luadoc 0.10 compliance ( #2786 )
...
* refactor(#2731 ): resolve warnings
* refactor(#2731 ): resolve warnings
* refactor(#2731 ): resolve warnings
* refactor(#2731 ): resolve warnings, type gymnastics
* refactor(#2731 ): resolve warnings, type gymnastics
* refactor(#2731 ): resolve warnings
* refactor(#2731 ): resolve warnings
* refactor(#2731 ): handle cwd unavailable when opening
* refactor(#2731 ): resolve warnings
* refactor(#2731 ): resolve warnings
* refactor(#2731 ): resolve warnings
* refactor(#2731 ): resolve warnings, type gymnastics
* refactor(#2731 ): resolve warnings
* refactor(#2731 ): resolve warnings
* refactor(#2731 ): style
* refactor(#2731 ): add _meta library, explicit check disables
* refactor(#2731 ): add lua-language-server manual install instructions
* refactor(#2731 ): resolve warnings
* refactor(#2731 ): explicitly set all diagnostics, reduce deprecated to hint
* Revert "refactor(#2731 ): resolve warnings"
This reverts commit 9c0526b7b0 .
* Revert "refactor(#2731 ): resolve warnings"
This reverts commit f534fbc606 .
* refactor(#2731 ): handle directory unavailable when deleting
* refactor(#2731 ): resolve warnings
* refactor(#2731 ): resolve warnings
* refactor(#2731 ): resolve warnings
* refactor(#2731 ): resolve warnings
* refactor(#2731 ): resolve warnings
* refactor(#2731 ): resolve warnings
* refactor(#2731 ): resolve warnings
* refactor(#2731 ): handle directory unavailable when creating explorer
* refactor(#2731 ): add all nvim lua libraries
* refactor(#2731 ): resolve warnings
* refactor(#2731 ): remove vim global
* refactor(#2731 ): disable deprecated until we have a 0.9->0.10 story
2024-06-01 15:24:03 +10:00
remvn
2d97059661
fix: bookmark filter shows marked directory children ( #2719 )
...
* fix: bookmark filter include marked-directory's children
* fix(perf): add path_type to filter functions
* fix: replace undefined type
* fix: correct Node.fs_stat type
* fix: file info popup check fs_stat not nil
* refactor: add stat to should_filter, Node constructor
* perf: early return if bookmark is empty
---------
Co-authored-by: Alexander Courtis <alex@courtis.org>
2024-03-30 13:21:55 +11:00
Alexander Courtis
e9c5abe073
feat( #2415 ): colour and highlight overhaul, see :help nvim-tree-highlight-overhaul ( #2455 )
...
* feat(#2415 ): granular highlight_diagnostics, normalise groups (#2454 )
* chore: normalise colours and enable cterm (#2471 )
* feat(#2415 ): granular highlight_git, normalise git groups (#2487 )
* docs: update CONTRIBUTING.md (#2485 )
* feat(#2415 ): granular highlight_git, normalise git groups
* feat(#2415 ): normalise and add modified groups
* feat(#2415 ): create Decorator class for modified and bookmarks
* feat(#2415 ): create DecoratorDiagnostics
* feat(#2415 ): create DecoratorGit
* feat(#2415 ): create DecoratorGit
* add DecoratorCopied DecoratorCut
* add DecoratorOpened
* remove unloaded_bufnr checks as the view debouncer takes care of it
* Add `renderer.highlight_git` to accepted strings
* fix(#2415 ): builder refactor (#2538 )
* simplify builder signs
* decorators take care of themselves and are priority ordered
* simplify builder hl groups
* refactor builder for icon arrays
* builder use decorators generically
* fix(#2415 ): harden sign creation (#2539 )
* fix(#2415 ): harden unicode signs
* Decorator tidy
* normalise git sign creation and tidy
* tidy builder
* NvimTreeBookmarkIcon
* tidy HL doc
* tidy HL doc
* tidy HL doc
* tidy builder doc
* standardise on '---@param'
* DiagnosticWarning -> DiagnosticWarn
* annotate decorators
* limit to two highlight groups for line rendering
* style
* apply #2519
* feat(#2415 ): combined hl groups (#2601 )
* feat(#2415 ): create combined highlight groups
* feat(#2415 ): create combined highlight groups
* feat(#2415 ): create combined highlight groups
* ci: allow workflow_dispatch (#2620 )
* one and only one hl namespace, required winhl removal
* small tidies
* colors.lua -> appearance.lua
* full-name uses one and only namespace
* don't highlight fast, just apply to namespace, safer win_set_hl
* gut builder (#2622 )
collapse Builder
* fix group_empty function check
* feat(#2415 ): highlight-overhaul release date
---------
Co-authored-by: Akmadan23 <azadahmadi@mailo.com>
2024-01-20 16:12:13 +11:00
Azad
13f967f8e7
chore: add type annotations and resolve LSP warnings ( #2555 )
...
* chore: add type annotations to (almost) all functions
* stylua
* Add classes for symlink nodes
* Replace deprecated `@vararg`
* Move node classes to `node` module
* Fix `Symlink*` classes
* add vim and libuv runtime for luals, qualify libuv types
* add scripts/luals-check, not quite ready for CI
* additional nil checks for git/init.lua and git/runner.lua
* additional nil checks for nvim-tree.lua
* wrap vim.cmd-as-a-function calls inside functions
* vim.tbl_filter predicate returns booleans
* Revert "add scripts/luals-check, not quite ready for CI"
This reverts commit c70229cad9 .
* Add `MinimalNode` class in `marks` module
* Fix various LSP warnings
* stylua
* Fix `Explorer` class, update related annotations and add necessary checks
* Add missing annotations to `live-filter`
* Add temporary aliases for `uv.*` types
* Resolve remaining LSP warnings
* Revert changes not related to internal types
* Minor adjustments
* Update doc comments style
* Minor adjustments (pt. 2)
---------
Co-authored-by: Alexander Courtis <alex@courtis.org>
2023-12-09 11:34:35 +11:00
Alexander Courtis
28c3980b25
fix( #2382 ): git watcher handles worktrees and submodules, via --absolute-git-dir when it is available ( #2389 )
...
* fix(#2382 ): use --absolute-git-dir when available
* fix(#2382 ): use --absolute-git-dir when available
* fix(#2382 ): rename private git members, destroy git watchers on purge
* fix(#2382 ): consistent naming of toplevel
* fix(#2382 ): more doc and safety
* fix(#2382 ): consistent naming of toplevel
* fix(#2382 ): consistent naming of toplevel
2023-09-02 12:05:34 +10:00
Alexander Courtis
4e36850811
fix( #2301 ): various git folder status fixes ( #2373 )
...
* fix(#2301 ): reloader handles grouped
* fix(#2301 ): explore uses correct git project for grouped
* fix(#2301 ): update parent status correctly across repositories
* fix(#2301 ): missing require
2023-08-20 12:53:41 +10:00
Alexander Courtis
ace64228ad
feat( #2305 ): find file refreshes up the tree when node is not present ( #2358 )
2023-08-14 11:08:16 +10:00
Alexander Courtis
c1466f991a
fix( #2327 ): set parent folder git ignore status following file update ( #2328 )
...
* fix(#1931 ): do not execute git status in git ignored directories
* fix(#1931 ): reload.refresh_node is always asynchronous
* fix(#2327 ): set parent folder ignore status following file update
2023-07-29 16:28:19 +10:00
Alexander Courtis
273c1700eb
fix( #1931 ): do not execute git status in git ignored directories ( #2326 )
...
* fix(#1931 ): do not execute git status in git ignored directories
* fix(#1931 ): reload.refresh_node is always asynchronous
2023-07-23 17:12:49 +10:00
Alexander Courtis
1fe32286db
fix( #2293 ): remove unnecessary git status during find file ( #2294 )
2023-07-01 11:28:20 +10:00
Alexander Courtis
6ad5c26f4d
feat( #2079 ): sort_by may return predefined sort ( #2123 )
...
* feat(#2079 ): prefactor
* feat(#2079 ): sort_by may return a predefined string
2023-04-15 15:53:40 +10:00
Alexander Courtis
0ef3d4613f
feat( #1974 ): experimental.git.async see https://github.com/nvim-tree/nvim-tree.lua/issues/2104 ( #2094 )
...
* async git watcher reload; callback hell for now
* async git watcher reload; revert unnecessary extractions
* async git watcher reload; callback and non-callback functions are required for sync codepaths that loop
* async git watcher reload
* async git watcher reload
* feat(#1974 ): experimental.git.async
* feat(#1974 ): experimental.git.async
2023-04-03 16:20:52 +10:00
Alexander Courtis
9c97e6449b
fix( #1961 ): stop unnecessary find file refreshes, avoid find file refresh cycles ( #2010 )
2023-02-21 10:34:01 +11:00
Alexander Courtis
08a0aa1a3b
Revert "fix( #1961 ): cycle detection on refresh, preventing infinite loop ( #1996 )"
...
This reverts commit 4222bb875d .
2023-02-15 09:24:12 +11:00
Alexander Courtis
4222bb875d
fix( #1961 ): cycle detection on refresh, preventing infinite loop ( #1996 )
...
* #1961 diagnostic logging refresh_nodes_for_path
* #1961 add cycle detection to refresh_nodes_for_path
* #1961 escape special characters on when path matching during refresh
* #1961 escape special characters on when path matching during refresh
2023-02-14 15:08:41 +11:00
Alexander Courtis
b712b82b0c
fix( #1961 ): harden profiling functions ( #1986 )
2023-02-11 17:05:01 +11:00
Alexander Courtis
e0166d1469
fix( #1831 ): remove instrumentation ( #1968 )
2023-02-04 16:54:36 +11:00
gegoune
3ce0a8e770
feat(git): support DA state, fix( #1822 ): test directory capable of watching before presenting it ( #1905 )
...
* fix(#1822 ): test directory capable of watching before presenting it (#1901 )
* feat(git): support `DA` state
Co-authored-by: Alexander Courtis <alex@courtis.org>
2023-01-10 13:32:53 +11:00
Alexander Courtis
3c4958ab3d
fix( #1831 ): remove windows executable functionality due to occasional vim freeze and performance concerns ( #1868 )
...
* #1831 exploratory testing: disable file executable checks
* fix(#1831 ): remove windows executable functionality
2022-12-31 12:34:55 +11:00
Alexander Courtis
547db6e929
fix( #1831 ): remove error messages that were previously unreachable and add no value
2022-12-19 15:11:12 +11:00
Richard Li
29788cc32a
fix(git): git folder fixes and improvements ( #1809 )
...
* coding style
* outlined git.show_on_open_dirs behavior
* show some icon on opendir even if show_on_open_dir=false
and show all children's status on parent
* fixed renamed icon not showing
* sorted icons
* removed DU from deleted as file will show up in tree
* fixed update_git_status in reloaders not tested
* fixed Api.git.reload()
Tested update_git_status in reloaders.lua
* sort icon only if not git signcolumn
* fixed crashing when root dir isn't git dir
* made git.show_on_dirs doc more concise
* git_statuses -> git_status for consistency
* explorer/common.lua -> explorer/node.lua
* fixed #1784 conflict
* don't order icons
* Revert "don't order icons"
This reverts commit 23f6276ef7 .
2022-12-17 17:05:33 +11:00
Alexander Courtis
89c79cb33b
fix( #1831 ): improve fs_scandir error handling, add profiling
2022-12-17 16:59:09 +11:00
Alexander Courtis
c5dc80c36b
feat(view): add filters.git_clean, filters.no_buffer ( #1784 )
...
* feat(view): add filters.git_clean
* feat(view): add filters.git_clean
* feat(view): add filters.no_buffer
* feat(view): filters.no_buffer misses unloaded, handles buffer in/out
* feat(view): filters.no_buffer matches directories specifically
* feat(view): filters.no_buffer clarify targets
* feat: add placeholder filters.diagnostics_ok, refactor filters
* feat(view): remove placeholder filters.diagnostics_ok
2022-12-10 15:55:33 +11:00
Alexander Courtis
b17358ff4d
fix( #1731 #1723 #1716 ): handle all external file system changes ( #1757 )
...
* fix(#1731 ): watcher refreshes node rather than the first node matching absolute path, profile refresh
* fix(#1731 ): reload explorer reloads closed folders
* fix(#1731 ): do not fire folder created event on file create
* fix(#1731 ): reload profile absolute path, not link to
* fix(#1731 ): find-file locks/profiles on real path, reloads when watchers disabled
* Revert "fix(#1731 ): reload explorer reloads closed folders"
This reverts commit 5dfd8bd2fa .
* fix(#1731 ): tidy watch reload
* fix(#1731 ): move refresh_node from watch to reload
* fix(#1731 ): find-file reloads all nodes for the containing directory
* fix(#1731 ): create-file refreshes synchronously
* fix(#1731 ): remove unused watch node
* fix(#1731 ): find-file refreshes root
* fix(#1716 ): create-file invokes find-file
* fix(#1731 ): refresh path walks down the tree to the targedt
2022-11-26 14:19:09 +11:00
Alexander Courtis
8cc369695b
fix: replace vim.* "requires" with explicit calls to vim functions ( #1701 )
2022-11-06 10:37:33 +11:00
kylo252
6ca6f99e76
feat(notify): add notify.threshold ( #1693 )
...
* feat: configurable notification level
add `notify.threshold` to setup opts
* feat: configurable notification level: add threshold example doc
* feat: configurable notification level: log always comes last
Co-authored-by: Alexander Courtis <alex@courtis.org>
2022-11-01 10:24:40 +11:00
Piotr Doan
4a725c0ca5
fix( #1555 ): incorrect exe highlight in Windows filesystem from WSL ( #1557 )
2022-08-29 10:53:23 +10:00
Sebastian Volland
049cdd3073
fix( #1518 ): sort_by=modification_time not reordering on refresh. ( #1519 )
2022-08-22 14:19:06 +10:00
Sebastian Volland
c5fba1ec18
fix( #1520 ): file type changes are not detected. ( #1521 )
2022-08-22 11:41:11 +10:00
kiyan
630305c233
fix(executable): prevent nil extensions in executable check
...
fix on windows
fixes #1444
2022-07-19 14:11:53 +02:00
Klesh Wong
b754eb8359
fix(explorer): reload executable stat ( #1427 )
2022-07-19 11:25:41 +02:00
kiyan
18447132fc
feat(notify): switch all print/nvim_*write statements to utils.notify
2022-07-18 14:04:48 +02:00
Alexander Courtis
06e48c29c4
chore(watchers): refactor events and make debouncer safe
...
- fs poll -> fs events
- make debouncer safe and fix diagnostics events
2022-07-17 08:50:24 +02:00
Kiyan
b0d27c09b6
feat(explorer): add filesystem watchers ( #1304 )
...
* feat(explorer): add experimental watchers
This commit introduces watchers to update the tree.
This behavior is introduced behind an "filesystem_watchers" option
which should prevent instabilities.
It will become the default at some point.
Co-authored-by: Alexander Courtis <alex@courtis.org>
2022-06-05 12:39:39 +02:00
kiyan
5e900c2f29
refacto: tree explorer root should be absolute_path not cwd
2022-05-29 11:40:06 +02:00
Alexander Courtis
c3b7be8d19
add .luarc.json for lua-language-server and fix a couple of nits ( #1296 )
2022-05-28 11:16:54 +02:00
Alexander Courtis
3ba383d591
chore/remove globals ( #1279 )
...
* remove renderer globals: nvim_tree_add_trailing nvim_tree_highlight_opened_files nvim_tree_root_folder_modifier nvim_tree_special_files
* remove renderer globals: nvim_tree_icon_padding
* remove renderer globals: nvim_tree_symlink_arrow
* remove renderer globals: nvim_tree_show_icons, nvim_tree_show_icons
* remove renderer globals: nvim_tree_git_hl
* remove renderer globals: nvim_tree_group_empty
* remove renderer globals: respect_buf_cwd
* remove renderer globals: nvim_tree_create_in_closed_folder
* remove globals: consistency in legacy checks
* remove renderer globals: nvim_tree_special_files
* renderer.icons.symbols -> glyphs
2022-05-28 11:08:40 +10:00
Kiyan
6343813a35
feat(live-filter): add ability to live filter out nodes in the tree ( #1056 )
2022-05-17 10:03:49 +02:00
Alexander Courtis
f85af83f13
#1217 show git status for link targets, when no status on the link itself ( #1263 )
2022-05-14 09:34:53 +02:00
kiyan
95a5c2d4bc
fix: add parent ref to nodes
...
also refactor movement go to parent
fixes #1148
2022-04-21 20:39:14 +02:00
Alexander Courtis
1bdef08cfa
#1059 protect against duplicates ( #1143 )
2022-04-09 14:59:38 +02:00
Kiyan
0816064a8b
chore: add stylua to format the codebase, and run on CI ( #1055 )
2022-03-06 17:33:30 +01:00
kiyan
76d181d480
refacto: move filters and sorters in their own modules
...
Also exclude filters is taken into account in git ignore
fixes #892
2022-03-06 14:14:56 +01:00
kiyan
527d88d54e
refacto: simplify interface of reload and explore
...
also make common group empty check in explorer utils
2022-02-20 15:08:36 +01:00
kiyan
2e1f82d8c0
fix: reload group_next properly
...
fixes #948
2022-02-17 20:08:33 +01:00
Kiyan
3f4ed9b6c2
fix: reload git status of existing nodes ( #975 )
2022-02-13 13:44:09 +01:00
kiyan
e42a4337d0
fix: do not group empty at root
2022-02-07 21:16:59 +01:00