Skip to content

Commit 7495975

Browse files
alex-courtiskyazdani42baahrenschomosukegegoune
authored
feat: automated migration from view.mappings.list to on_attach, see https://github.com/nvim-tree/nvim-tree.lua/wiki/Migrating-To-on_attach (#1579)
* 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 f6f439b. * 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>
1 parent 9c97e64 commit 7495975

14 files changed

+769
-1177
lines changed

README.md

Lines changed: 9 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@ Take a look at the [wiki](https://github.com/nvim-tree/nvim-tree.lua/wiki) for S
3030

3131
Existing `*_on_setup*` mechanisms have been removed in favour of [Open At Startup](https://github.com/nvim-tree/nvim-tree.lua/wiki/Open-At-Startup)
3232

33+
## New Mapping Method 2023-02-27
34+
35+
[:help nvim-tree.view.mappings](doc/nvim-tree-lua.txt) have been deprecated in favour of [:help nvim-tree.on_attach](doc/nvim-tree-lua.txt). Please visit [Migrating To on_attach](https://github.com/nvim-tree/nvim-tree.lua/wiki/Migrating-To-on_attach) to transition.
36+
3337
## Requirements
3438

3539
[neovim >=0.8.0](https://github.com/neovim/neovim/wiki/Installing-Neovim)
@@ -77,14 +81,6 @@ require("nvim-tree").setup()
7781
-- OR setup with some options
7882
require("nvim-tree").setup({
7983
sort_by = "case_sensitive",
80-
view = {
81-
width = 30,
82-
mappings = {
83-
list = {
84-
{ key = "u", action = "dir_up" },
85-
},
86-
},
87-
},
8884
renderer = {
8985
group_empty = true,
9086
},
@@ -96,7 +92,7 @@ require("nvim-tree").setup({
9692

9793
For complete list of available configuration options see [:help nvim-tree-setup](doc/nvim-tree-lua.txt)
9894

99-
Each option is documented in `:help nvim-tree.OPTION_NAME`. Nested options can be accessed by appending `.`, for example [:help nvim-tree.view.mappings](doc/nvim-tree-lua.txt)
95+
Each option is documented in `:help nvim-tree.OPTION_NAME`. Nested options can be accessed by appending `.`, for example [:help nvim-tree.filters.dotfiles](doc/nvim-tree-lua.txt)
10096

10197
## Commands
10298

@@ -114,10 +110,10 @@ Basic commands:
114110

115111
## Mappings
116112

117-
nvim-tree comes with number of mappings; for default mappings please see [:help nvim-tree-default-mappings](doc/nvim-tree-lua.txt), for way of configuring mappings see [:help nvim-tree-mappings](doc/nvim-tree-lua.txt)
118-
119113
`g?` toggles help, showing all the mappings and their actions.
120114

115+
To customise your mappings see [:help nvim-tree.on_attach](doc/nvim-tree-lua.txt) and [:help nvim-tree-mappings](doc/nvim-tree-lua.txt)
116+
121117
## Roadmap
122118

123119
nvim-tree is stable and new major features will not be added. The focus is on existing user experience.
@@ -133,25 +129,13 @@ Development is focused on:
133129

134130
## API
135131

136-
nvim-tree exposes a public API. This is non breaking, with additions made as necessary.
132+
nvim-tree exposes a public API. This is non breaking, with additions made as necessary. See [:help nvim-tree-api](doc/nvim-tree-lua.txt)
137133

138134
See wiki [Recipes](https://github.com/nvim-tree/nvim-tree.lua/wiki/Recipes) and [Tips](https://github.com/nvim-tree/nvim-tree.lua/wiki/Tips) for ideas and insipration.
139135

140136
Please raise a [feature request](https://github.com/nvim-tree/nvim-tree.lua/issues/new?assignees=&labels=feature+request&template=feature_request.md&title=) if the API is insufficent for your needs. [Contributions](#Contributing) are always welcome.
141137

142-
[:help nvim-tree-api](doc/nvim-tree-lua.txt)
143-
144-
### Events
145-
146-
Users may subscribe to events that nvim-tree will dispatch in a variety of situations.
147-
148-
[:help nvim-tree-events](doc/nvim-tree-lua.txt)
149-
150-
### Actions
151-
152-
Custom actions may be mapped which can invoke API or perform your own actions.
153-
154-
[:help nvim-tree-mappings](doc/nvim-tree-lua.txt)
138+
You may also subscribe to events that nvim-tree will dispatch in a variety of situations, see [:help nvim-tree-events](doc/nvim-tree-lua.txt)
155139

156140
## Contributing
157141

0 commit comments

Comments
 (0)