* feat(#2827): Multi Instance: Refactor: nvim-tree.live-filter
* refactor: all usages going through the explorer
* fix: api and filtration
* fix: style
* Update lua/nvim-tree/api.lua
Co-authored-by: Alexander Courtis <alex@courtis.org>
* docs: add missing live filter luadocs
---------
Co-authored-by: Alexander Courtis <alex@courtis.org>
* feat(icon_placement): Allow right_align icon_placemente for decorator using ext_marks nvim api
* feat(icon_placement): Allow right_align icon_placemente for decorator using ext_marks nvim api
feat(icon_placement): Allow right_align icon_placemente for decorator using ext_marks nvim api
* feat(icon_placement): consolidate doc
* fix: extra namespace added to avoid colision between right_align and full_name features
* feat(hidden_display): Allow fine grained rendering of hidden files in
a folder
* feat(hidden_display): update defaults in Builder to allow rendering
* feat(hidden_display): Rename opts function name for the feature
* feat(#2349): add "right_align" option for renderer.icons.*_placement (#2846)
* feat(icon_placement): Allow right_align icon_placemente for decorator using ext_marks nvim api
* feat(icon_placement): Allow right_align icon_placemente for decorator using ext_marks nvim api
feat(icon_placement): Allow right_align icon_placemente for decorator using ext_marks nvim api
* feat(icon_placement): consolidate doc
* fix: extra namespace added to avoid colision between right_align and full_name features
* style: rename namespace_id
---------
Co-authored-by: Alexander Courtis <alex@courtis.org>
* docs: update docs
* feat(hidden_display): Simplification and better performance by not sorting and grouping virtual lines
* Update doc/nvim-tree-lua.txt
Co-authored-by: Alexander Courtis <alex@courtis.org>
* style: hidden_stats is better
* docs: change to hidden_stats
* add separate namespace for virtual lines
* help: add highlight group
---------
Co-authored-by: Alexander Courtis <alex@courtis.org>
* 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>
* feat(hidden_decorator): Allow hidden (dotfiles) to be highlighted, both icon and name (this not related to git highlights).
Better defaults
squashed
docs(hidden)
docs(hidden)
docs(hidden)
* fix(typo): small typo on hl groups
* feat(hidden_dotfile_highlight): make a file that has a dotfile parent be also a dotfile
* docs: update docs on hidden highlight
---------
Co-authored-by: Alexander Courtis <alex@courtis.org>
* 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>
* fix: bookmark filter should include parent directory
* fix: dont match mark's siblings
* fix: match mark from the start
---------
Co-authored-by: Alexander Courtis <alex@courtis.org>
* feat(#2654): add `binaries` field to `filters`
* feat(#2648): allow functions in `filters.custom`
* ci: fix: stylua check
* ci: fix: add new keybind and config to docs
* fix: replace os-specific binary filter with `vim.fn.executable`
* fix: remove function and mapping for `binaries` filter
* fix: add `node` parameter to custom filter function
* fix: update doc for custom filter function signature
* fix: add custom filter to `ACCEPTED_TYPES`
* fix: accept single function for custom filter
* fix: change custom filter on `ACCEPTED_TYPES`
* fix: revert to using `path` for custom filter function
* fix: use `function` type for custom filter
* fix: type for custom filter in help
* fix: custom filter single function no longer mutates `M.config.filter_custom`
* fix: remove dead `if` statement in custom filter
* fix: separate custom filter function from `M.ignore_list`
* doc nit
---------
Co-authored-by: darcy <44690813+darccyy@users.noreply.github.com>
Co-authored-by: Alexander Courtis <alex@courtis.org>
* 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
* feat(#2364): add option to show files first
* Refactor `folders_or_files_first` function
* Improve readability
* Remove `fallback` from `folders_or_files_first` function
---------
Co-authored-by: Alexander Courtis <alex@courtis.org>
* 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
* feat: Watch $GIT_DIR for git changes, if set
While rarely used, it's possible to set the $GIT_DIR environment
variable to instruct git to use a directory other than `.git`.
This checks if that environment variable is set; if it is, the plugin
will watch that directory. If it's not set, it'll fall back to the
default `.git` directory.
* fix: Don't create two watchers for $GIT_DIR
This will ignore a path for watching if EITHER it's '.git', or the value
of $GIT_DIR (if it's set).
If $GIT_DIR is not set, the vim.env object returns `nil`, which will
never match `path`.
* fix: Attempt to make a relative $GIT_DIR absolute
* feat: adds new type of sorting based on the filename's suffix
* chore(syntax): using string colon methods
* fix(regex): use alphanumeric match for extensions
* feat: adds new type of sorting based on the filename's suffix
---------
Co-authored-by: Alexander Courtis <alex@courtis.org>
* fix(extension/sorter): fallbacks to C.name when both exts are the same or nil
* fix(nil): files with no extension
* fix(nil): files with no extension
---------
Co-authored-by: Alexander Courtis <alex@courtis.org>
* feat: adds new type of sorting based on vim's filetype detection
* fix(ft/sorter): fallbacks to C.name when both ft's are nil or equal
* feat: adds new type of sorting based on vim's filetype detection
---------
Co-authored-by: Alexander Courtis <alex@courtis.org>
* #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
* fix(#1822): test directory capable of watching before presenting it (#1901)
* feat(git): support `DA` state
Co-authored-by: Alexander Courtis <alex@courtis.org>
* 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.