* 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
* 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
* feat: allow passing node to collapse all
* refactor: use snake case
* feat: handle api legacy calls and update signature
* refactor: make sure open is a boolean
* doc: collapse_all
* Revert "doc: collapse_all"
This reverts commit d243da3e14.
* add api.node.collapse
* add api.node.expand
* add api.node.expand
---------
Co-authored-by: Alexander Courtis <alex@courtis.org>
* feat: ungrouping empty directories
* add a new api to toggle empty folders
* solve comments
* solve comments
* update help
---------
Co-authored-by: juefei yan <juefeiyan@juefeis-MacBook-Air.local>
Co-authored-by: Alexander Courtis <alex@courtis.org>
* feat(#2148): add rename_full in API
* feat(#2148): add default mapping 'u' for rename_full
---------
Co-authored-by: Alexander Courtis <alex@courtis.org>
* chore(mappings): migrate legacy mappings under the hood
* chore(mappings): POC for help and :help on_attach keymaps
* chore(mappings): POC for help and :help on_attach keymaps
* chore(mappings): add desc to all mappings, show in help, reformat help
* chore(mappings): add desc to all mappings
* chore(mappings): add desc to all mappings
* chore(mappings): escape help keys
* chore(mappings): migrate legacy mappings under the hood: map keymap to legacy mappings
* chore(mappings): migrate legacy mappings under the hood: remove dispatch
* Revert "chore(mappings): migrate legacy mappings under the hood: remove dispatch"
This reverts commit f6f439ba59.
* chore(mappings): migrate legacy mappings under the hood: pass node to action_cb
* chore(mappings): migrate legacy mappings under the hood: remove dispatch
* chore(mappings): migrate legacy mappings under the hood: replace mappigns with keymaps in help
* chore(mappings): generate on_attach from user's legacy mappings
* chore(mappings): generate on_attach from user's legacy mappings
* chore(mappings): merge cleanup
* chore(mappings): use default mappings when on_attach not present, log legacy migration
* on_attach is default or user only, legacy and generation includes defaults (#1777)
* chore(mappings): remove mappings via vim.keymap.del instead of filtering mappings, to allow for multiple ways of specifying a key
* doc: specify that the terminal emulator must be configured to use the patched font
* feat(renderer): add NvimTreeOpenedFolderIcon NvimTreeClosedFolderIcon (#1768)
* feat: Add highlight group for opened folder
closes#1674
* docs: Add NvimTreeOpenedFolderIcon default
* feat: Add NvimTreeClosedFolderIcon highlight group
Defaults to NvimTreeFolderIcon
* feat: add diagnostics.show_on_open_dirs git.show_on_open_dirs (#1778)
* feat(diagnostics): only show diagnostic on closed folder
* feat(git): only show git icon on closed folder
* docs: Update feature_request.md (#1788)
* Update feature_request.md
Closes#1654
* Update feature_request.md
Co-authored-by: Alexander Courtis <alex@courtis.org>
* 1786 git next prev land on dirs (#1787)
* Filtered dir with git status that are open when show_on_open_dir is false
* refactored for single source of truth of existence of git status on a node
Putting `has_git_status()` in `explorer.common` because that's where node.status is constructed
Or at least I think that's where it's constructed
* 1786 semantic nit
Co-authored-by: Alexander Courtis <alex@courtis.org>
* fix(git): git rename not showing up for the renamed file (#1783)
* fixed git rename not showing up for the renamed file
* considered " -> " being a part of the filename
Fixed -> pattern to escape -
Fixed "\"" and "\\" in filename
* using string.find(, , true) to match plain ->
* Using -z and removed unnecessary logic
* feat(view): always enable cursorline, users may change this behaviour via Event.TreeOpen (#1814)
* Update view.lua
* set cursorline to true
* feat(event): dispatch Event.NodeRenamed on cut-paste (#1817)
* 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
* doc: consolidate and clarify :help examples
* doc: format help
* feat: paste and create always target closed folder, remove create_in_closed_folder (#1802)
* Fix default for file creation in closed directories
* Make paste in closed directories consistent with create
* doc: clarify create_in_closed_folder
* Remove create_in_closed_folder option
* doc: clarify create_in_closed_folder removal message (whoops)
Co-authored-by: Alexander Courtis <alex@courtis.org>
* on_attach is user's or default, nothing else; legacy generated on_attach includes defaults
Co-authored-by: baahrens <bahrens@compeon.de>
Co-authored-by: Richard Li <38484873+chomosuke@users.noreply.github.com>
Co-authored-by: gegoune <69750637+gegoune@users.noreply.github.com>
Co-authored-by: rishabhjain9191 <rishabh.jain9191@gmail.com>
Co-authored-by: Anton <14187674+antosha417@users.noreply.github.com>
Co-authored-by: Eric Haynes <ehaynes99@gmail.com>
* on_attach_default hardcoded
* format default_on_attach
* source default on_attach directly
* remove human mappings help
* simplified on_attach generation
* simplified on_attach generation
* generate default on_attach
* generate default on_attach
* split out keymap_legacy
* add recently introduced mappings
* legacy api.config.mappings.active and default
* legacy api.config.mappings.active and default
* on_attach help and readme
* legacy generate handles action = ""
* legacy generate handles action =
* legacy generate gives defaults when no user mappings
* legacy generate handles action = ""
* legacy generate api handles overrides
* legacy generate handles subsequent setup, on_attach retains deep copies of legacy config
* add wiki link to generated on_attach
* add opts helper function for on_attach, prefixing 'nvim-tree: '
---------
Co-authored-by: kiyan <yazdani.kiyan@protonmail.com>
Co-authored-by: baahrens <bahrens@compeon.de>
Co-authored-by: Richard Li <38484873+chomosuke@users.noreply.github.com>
Co-authored-by: gegoune <69750637+gegoune@users.noreply.github.com>
Co-authored-by: rishabhjain9191 <rishabh.jain9191@gmail.com>
Co-authored-by: Anton <14187674+antosha417@users.noreply.github.com>
Co-authored-by: Eric Haynes <ehaynes99@gmail.com>