Skip to content

Commit 697bfac

Browse files
authored
feat: add filters.git_ignored (prev git.ignore), apply "Toggle Filter:" prefix to mapping descriptions (#2325)
1 parent a6daf50 commit 697bfac

File tree

7 files changed

+87
-84
lines changed

7 files changed

+87
-84
lines changed

doc/nvim-tree-lua.txt

Lines changed: 71 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -137,59 +137,59 @@ Open the tree: `:NvimTreeOpen`
137137

138138
Show the mappings: `g?`
139139

140-
`<C-]>` CD |nvim-tree-api.tree.change_root_to_node()|
141-
`<C-e>` Open: In Place |nvim-tree-api.node.open.replace_tree_buffer()|
142-
`<C-k>` Info |nvim-tree-api.node.show_info_popup()|
143-
`<C-r>` Rename: Omit Filename |nvim-tree-api.fs.rename_sub()|
144-
`<C-t>` Open: New Tab |nvim-tree-api.node.open.tab()|
145-
`<C-v>` Open: Vertical Split |nvim-tree-api.node.open.vertical()|
146-
`<C-x>` Open: Horizontal Split |nvim-tree-api.node.open.horizontal()|
147-
`<BS>` Close Directory |nvim-tree-api.node.navigate.parent_close()|
148-
`<CR>` Open |nvim-tree-api.node.open.edit()|
149-
`<Tab>` Open Preview |nvim-tree-api.node.open.preview()|
150-
`>` Next Sibling |nvim-tree-api.node.navigate.sibling.next()|
151-
`<` Previous Sibling |nvim-tree-api.node.navigate.sibling.prev()|
152-
`.` Run Command |nvim-tree-api.node.run.cmd()|
153-
`-` Up |nvim-tree-api.tree.change_root_to_parent()|
154-
`a` Create |nvim-tree-api.fs.create()|
155-
`bd` Delete Bookmarked |nvim-tree-api.marks.bulk.delete()|
156-
`bmv` Move Bookmarked |nvim-tree-api.marks.bulk.move()|
157-
`B` Toggle No Buffer |nvim-tree-api.tree.toggle_no_buffer_filter()|
158-
`c` Copy |nvim-tree-api.fs.copy.node()|
159-
`C` Toggle Git Clean |nvim-tree-api.tree.toggle_git_clean_filter()|
160-
`[c` Prev Git |nvim-tree-api.node.navigate.git.prev()|
161-
`]c` Next Git |nvim-tree-api.node.navigate.git.next()|
162-
`d` Delete |nvim-tree-api.fs.remove()|
163-
`D` Trash |nvim-tree-api.fs.trash()|
164-
`E` Expand All |nvim-tree-api.tree.expand_all()|
165-
`e` Rename: Basename |nvim-tree-api.fs.rename_basename()|
166-
`]e` Next Diagnostic |nvim-tree-api.node.navigate.diagnostics.next()|
167-
`[e` Prev Diagnostic |nvim-tree-api.node.navigate.diagnostics.prev()|
168-
`F` Clean Filter |nvim-tree-api.live_filter.clear()|
169-
`f` Filter |nvim-tree-api.live_filter.start()|
170-
`g?` Help |nvim-tree-api.tree.toggle_help()|
171-
`gy` Copy Absolute Path |nvim-tree-api.fs.copy.absolute_path()|
172-
`H` Toggle Dotfiles |nvim-tree-api.tree.toggle_hidden_filter()|
173-
`I` Toggle Git Ignore |nvim-tree-api.tree.toggle_gitignore_filter()|
174-
`J` Last Sibling |nvim-tree-api.node.navigate.sibling.last()|
175-
`K` First Sibling |nvim-tree-api.node.navigate.sibling.first()|
176-
`m` Toggle Bookmark |nvim-tree-api.marks.toggle()|
177-
`o` Open |nvim-tree-api.node.open.edit()|
178-
`O` Open: No Window Picker |nvim-tree-api.node.open.no_window_picker()|
179-
`p` Paste |nvim-tree-api.fs.paste()|
180-
`P` Parent Directory |nvim-tree-api.node.navigate.parent()|
181-
`q` Close |nvim-tree-api.tree.close()|
182-
`r` Rename |nvim-tree-api.fs.rename()|
183-
`R` Refresh |nvim-tree-api.tree.reload()|
184-
`s` Run System |nvim-tree-api.node.run.system()|
185-
`S` Search |nvim-tree-api.tree.search_node()|
186-
`U` Toggle Hidden |nvim-tree-api.tree.toggle_custom_filter()|
187-
`W` Collapse |nvim-tree-api.tree.collapse_all()|
188-
`x` Cut |nvim-tree-api.fs.cut()|
189-
`y` Copy Name |nvim-tree-api.fs.copy.filename()|
190-
`Y` Copy Relative Path |nvim-tree-api.fs.copy.relative_path()|
191-
`<2-LeftMouse>` Open |nvim-tree-api.node.open.edit()|
192-
`<2-RightMouse>` CD |nvim-tree-api.tree.change_root_to_node()|
140+
`<C-]>` CD |nvim-tree-api.tree.change_root_to_node()|
141+
`<C-e>` Open: In Place |nvim-tree-api.node.open.replace_tree_buffer()|
142+
`<C-k>` Info |nvim-tree-api.node.show_info_popup()|
143+
`<C-r>` Rename: Omit Filename |nvim-tree-api.fs.rename_sub()|
144+
`<C-t>` Open: New Tab |nvim-tree-api.node.open.tab()|
145+
`<C-v>` Open: Vertical Split |nvim-tree-api.node.open.vertical()|
146+
`<C-x>` Open: Horizontal Split |nvim-tree-api.node.open.horizontal()|
147+
`<BS>` Close Directory |nvim-tree-api.node.navigate.parent_close()|
148+
`<CR>` Open |nvim-tree-api.node.open.edit()|
149+
`<Tab>` Open Preview |nvim-tree-api.node.open.preview()|
150+
`>` Next Sibling |nvim-tree-api.node.navigate.sibling.next()|
151+
`<` Previous Sibling |nvim-tree-api.node.navigate.sibling.prev()|
152+
`.` Run Command |nvim-tree-api.node.run.cmd()|
153+
`-` Up |nvim-tree-api.tree.change_root_to_parent()|
154+
`a` Create |nvim-tree-api.fs.create()|
155+
`bd` Delete Bookmarked |nvim-tree-api.marks.bulk.delete()|
156+
`bmv` Move Bookmarked |nvim-tree-api.marks.bulk.move()|
157+
`B` Toggle Filter: No Buffer |nvim-tree-api.tree.toggle_no_buffer_filter()|
158+
`c` Copy |nvim-tree-api.fs.copy.node()|
159+
`C` Toggle Filter: Git Clean |nvim-tree-api.tree.toggle_git_clean_filter()|
160+
`[c` Prev Git |nvim-tree-api.node.navigate.git.prev()|
161+
`]c` Next Git |nvim-tree-api.node.navigate.git.next()|
162+
`d` Delete |nvim-tree-api.fs.remove()|
163+
`D` Trash |nvim-tree-api.fs.trash()|
164+
`E` Expand All |nvim-tree-api.tree.expand_all()|
165+
`e` Rename: Basename |nvim-tree-api.fs.rename_basename()|
166+
`]e` Next Diagnostic |nvim-tree-api.node.navigate.diagnostics.next()|
167+
`[e` Prev Diagnostic |nvim-tree-api.node.navigate.diagnostics.prev()|
168+
`F` Clean Filter |nvim-tree-api.live_filter.clear()|
169+
`f` Filter |nvim-tree-api.live_filter.start()|
170+
`g?` Help |nvim-tree-api.tree.toggle_help()|
171+
`gy` Copy Absolute Path |nvim-tree-api.fs.copy.absolute_path()|
172+
`H` Toggle Filter: Dotfiles |nvim-tree-api.tree.toggle_hidden_filter()|
173+
`I` Toggle Filter: Git Ignore |nvim-tree-api.tree.toggle_gitignore_filter()|
174+
`J` Last Sibling |nvim-tree-api.node.navigate.sibling.last()|
175+
`K` First Sibling |nvim-tree-api.node.navigate.sibling.first()|
176+
`m` Toggle Bookmark |nvim-tree-api.marks.toggle()|
177+
`o` Open |nvim-tree-api.node.open.edit()|
178+
`O` Open: No Window Picker |nvim-tree-api.node.open.no_window_picker()|
179+
`p` Paste |nvim-tree-api.fs.paste()|
180+
`P` Parent Directory |nvim-tree-api.node.navigate.parent()|
181+
`q` Close |nvim-tree-api.tree.close()|
182+
`r` Rename |nvim-tree-api.fs.rename()|
183+
`R` Refresh |nvim-tree-api.tree.reload()|
184+
`s` Run System |nvim-tree-api.node.run.system()|
185+
`S` Search |nvim-tree-api.tree.search_node()|
186+
`U` Toggle Filter: Hidden |nvim-tree-api.tree.toggle_custom_filter()|
187+
`W` Collapse |nvim-tree-api.tree.collapse_all()|
188+
`x` Cut |nvim-tree-api.fs.cut()|
189+
`y` Copy Name |nvim-tree-api.fs.copy.filename()|
190+
`Y` Copy Relative Path |nvim-tree-api.fs.copy.relative_path()|
191+
`<2-LeftMouse>` Open |nvim-tree-api.node.open.edit()|
192+
`<2-RightMouse>` CD |nvim-tree-api.tree.change_root_to_node()|
193193

194194
==============================================================================
195195
3. COMMANDS *nvim-tree-commands*
@@ -448,6 +448,7 @@ applying configuration.
448448
},
449449
},
450450
filters = {
451+
git_ignored = true,
451452
dotfiles = false,
452453
git_clean = false,
453454
no_buffer = false,
@@ -461,7 +462,6 @@ applying configuration.
461462
},
462463
git = {
463464
enable = true,
464-
ignore = true,
465465
show_on_dirs = true,
466466
show_on_open_dirs = true,
467467
disable_for_dirs = {},
@@ -738,11 +738,6 @@ Git integration with icons and colors.
738738
Enable / disable the feature.
739739
Type: `boolean`, Default: `true`
740740

741-
*nvim-tree.git.ignore*
742-
Ignore files based on `.gitignore`. Requires |git.enable| `= true`
743-
Toggle via the `toggle_git_ignored` action, default mapping `I`.
744-
Type: `boolean`, Default: `true`
745-
746741
*nvim-tree.git.show_on_dirs*
747742
Show status icons of children when directory itself has no status icon.
748743
Type: `boolean`, Default: `true`
@@ -1113,33 +1108,38 @@ UI rendering setup
11131108
*nvim-tree.filters*
11141109
Filtering options.
11151110

1111+
*nvim-tree.filters.git_ignored* (previously `git.ignore`)
1112+
Ignore files based on `.gitignore`. Requires |git.enable| `= true`
1113+
Toggle via |nvim-tree-api.tree.toggle_gitignore_filter()|, default `I`
1114+
Type: `boolean`, Default: `true`
1115+
11161116
*nvim-tree.filters.dotfiles*
11171117
Do not show dotfiles: files starting with a `.`
1118-
Toggle via the `toggle_dotfiles` action, default mapping `H`.
1118+
Toggle via |nvim-tree-api.tree.toggle_hidden_filter()|, default `H`
11191119
Type: `boolean`, Default: `false`
11201120

11211121
*nvim-tree.filters.git_clean*
11221122
Do not show files with no git status. This will show ignored files when
1123-
|nvim-tree.git.ignore| is set, as they are effectively dirty.
1124-
Toggle via the `toggle_git_clean` action, default mapping `C`.
1123+
|nvim-tree.filters.git_ignored| is set, as they are effectively dirty.
1124+
Toggle via |nvim-tree-api.tree.toggle_git_clean_filter()|, default `C`
11251125
Type: `boolean`, Default: `false`
11261126

11271127
*nvim-tree.filters.no_buffer*
11281128
Do not show files that have no |buflisted()| buffer.
1129-
Toggle via the `toggle_no_buffer` action, default mapping `B`.
1129+
Toggle via |nvim-tree-api.tree.toggle_no_buffer_filter()|, default `B`
11301130
For performance reasons this may not immediately update on buffer
11311131
delete/wipe. A reload or filesystem event will result in an update.
11321132
Type: `boolean`, Default: `false`
11331133

11341134
*nvim-tree.filters.custom*
11351135
Custom list of vim regex for file/directory names that will not be shown.
11361136
Backslashes must be escaped e.g. "^\\.git". See |string-match|.
1137-
Toggle via the `toggle_custom` action, default mapping `U`.
1137+
Toggle via |nvim-tree-api.tree.toggle_custom_filter()|, default `U`
11381138
Type: {string}, Default: `{}`
11391139

11401140
*nvim-tree.filters.exclude*
11411141
List of directories or files to exclude from filtering: always show them.
1142-
Overrides `git.ignore`, `filters.dotfiles` and `filters.custom`.
1142+
Overrides `filters.git_ignored`, `filters.dotfiles` and `filters.custom`.
11431143
Type: {string}, Default: `{}`
11441144

11451145
*nvim-tree.trash*
@@ -1503,7 +1503,7 @@ tree.expand_all() *nvim-tree-api.tree.expand_all()*
15031503

15041504
*nvim-tree-api.tree.toggle_gitignore_filter()*
15051505
tree.toggle_gitignore_filter()
1506-
Toggle |nvim-tree.git.ignore| filter.
1506+
Toggle |nvim-tree.filters.git_ignored| filter.
15071507

15081508
*nvim-tree-api.tree.toggle_git_clean_filter()*
15091509
tree.toggle_git_clean_filter()
@@ -1961,9 +1961,9 @@ You are encouraged to copy these to your own |nvim-tree.on_attach| function.
19611961
vim.keymap.set('n', 'a', api.fs.create, opts('Create'))
19621962
vim.keymap.set('n', 'bd', api.marks.bulk.delete, opts('Delete Bookmarked'))
19631963
vim.keymap.set('n', 'bmv', api.marks.bulk.move, opts('Move Bookmarked'))
1964-
vim.keymap.set('n', 'B', api.tree.toggle_no_buffer_filter, opts('Toggle No Buffer'))
1964+
vim.keymap.set('n', 'B', api.tree.toggle_no_buffer_filter, opts('Toggle Filter: No Buffer'))
19651965
vim.keymap.set('n', 'c', api.fs.copy.node, opts('Copy'))
1966-
vim.keymap.set('n', 'C', api.tree.toggle_git_clean_filter, opts('Toggle Git Clean'))
1966+
vim.keymap.set('n', 'C', api.tree.toggle_git_clean_filter, opts('Toggle Filter: Git Clean'))
19671967
vim.keymap.set('n', '[c', api.node.navigate.git.prev, opts('Prev Git'))
19681968
vim.keymap.set('n', ']c', api.node.navigate.git.next, opts('Next Git'))
19691969
vim.keymap.set('n', 'd', api.fs.remove, opts('Delete'))
@@ -1976,8 +1976,8 @@ You are encouraged to copy these to your own |nvim-tree.on_attach| function.
19761976
vim.keymap.set('n', 'f', api.live_filter.start, opts('Filter'))
19771977
vim.keymap.set('n', 'g?', api.tree.toggle_help, opts('Help'))
19781978
vim.keymap.set('n', 'gy', api.fs.copy.absolute_path, opts('Copy Absolute Path'))
1979-
vim.keymap.set('n', 'H', api.tree.toggle_hidden_filter, opts('Toggle Dotfiles'))
1980-
vim.keymap.set('n', 'I', api.tree.toggle_gitignore_filter, opts('Toggle Git Ignore'))
1979+
vim.keymap.set('n', 'H', api.tree.toggle_hidden_filter, opts('Toggle Filter: Dotfiles'))
1980+
vim.keymap.set('n', 'I', api.tree.toggle_gitignore_filter, opts('Toggle Filter: Git Ignore'))
19811981
vim.keymap.set('n', 'J', api.node.navigate.sibling.last, opts('Last Sibling'))
19821982
vim.keymap.set('n', 'K', api.node.navigate.sibling.first, opts('First Sibling'))
19831983
vim.keymap.set('n', 'm', api.marks.toggle, opts('Toggle Bookmark'))
@@ -1990,7 +1990,7 @@ You are encouraged to copy these to your own |nvim-tree.on_attach| function.
19901990
vim.keymap.set('n', 'R', api.tree.reload, opts('Refresh'))
19911991
vim.keymap.set('n', 's', api.node.run.system, opts('Run System'))
19921992
vim.keymap.set('n', 'S', api.tree.search_node, opts('Search'))
1993-
vim.keymap.set('n', 'U', api.tree.toggle_custom_filter, opts('Toggle Hidden'))
1993+
vim.keymap.set('n', 'U', api.tree.toggle_custom_filter, opts('Toggle Filter: Hidden'))
19941994
vim.keymap.set('n', 'W', api.tree.collapse_all, opts('Collapse'))
19951995
vim.keymap.set('n', 'x', api.fs.cut, opts('Cut'))
19961996
vim.keymap.set('n', 'y', api.fs.copy.filename, opts('Copy Name'))

lua/nvim-tree.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -500,6 +500,7 @@ local DEFAULT_OPTS = { -- BEGIN_DEFAULT_OPTS
500500
},
501501
},
502502
filters = {
503+
git_ignored = true,
503504
dotfiles = false,
504505
git_clean = false,
505506
no_buffer = false,
@@ -513,7 +514,6 @@ local DEFAULT_OPTS = { -- BEGIN_DEFAULT_OPTS
513514
},
514515
git = {
515516
enable = true,
516-
ignore = true,
517517
show_on_dirs = true,
518518
show_on_open_dirs = true,
519519
disable_for_dirs = {},

lua/nvim-tree/explorer/filters.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ function M.setup(opts)
131131
M.config = {
132132
filter_custom = true,
133133
filter_dotfiles = opts.filters.dotfiles,
134-
filter_git_ignored = opts.git.ignore,
134+
filter_git_ignored = opts.filters.git_ignored,
135135
filter_git_clean = opts.filters.git_clean,
136136
filter_no_buffer = opts.filters.no_buffer,
137137
}

lua/nvim-tree/keymap-legacy.lua

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -102,9 +102,9 @@ local DEFAULT_ON_ATTACH = [[
102102
vim.keymap.set('n', 'a', api.fs.create, opts('Create'))
103103
vim.keymap.set('n', 'bd', api.marks.bulk.delete, opts('Delete Bookmarked'))
104104
vim.keymap.set('n', 'bmv', api.marks.bulk.move, opts('Move Bookmarked'))
105-
vim.keymap.set('n', 'B', api.tree.toggle_no_buffer_filter, opts('Toggle No Buffer'))
105+
vim.keymap.set('n', 'B', api.tree.toggle_no_buffer_filter, opts('Toggle Filter: No Buffer'))
106106
vim.keymap.set('n', 'c', api.fs.copy.node, opts('Copy'))
107-
vim.keymap.set('n', 'C', api.tree.toggle_git_clean_filter, opts('Toggle Git Clean'))
107+
vim.keymap.set('n', 'C', api.tree.toggle_git_clean_filter, opts('Toggle Filter: Git Clean'))
108108
vim.keymap.set('n', '[c', api.node.navigate.git.prev, opts('Prev Git'))
109109
vim.keymap.set('n', ']c', api.node.navigate.git.next, opts('Next Git'))
110110
vim.keymap.set('n', 'd', api.fs.remove, opts('Delete'))
@@ -117,8 +117,8 @@ local DEFAULT_ON_ATTACH = [[
117117
vim.keymap.set('n', 'f', api.live_filter.start, opts('Filter'))
118118
vim.keymap.set('n', 'g?', api.tree.toggle_help, opts('Help'))
119119
vim.keymap.set('n', 'gy', api.fs.copy.absolute_path, opts('Copy Absolute Path'))
120-
vim.keymap.set('n', 'H', api.tree.toggle_hidden_filter, opts('Toggle Dotfiles'))
121-
vim.keymap.set('n', 'I', api.tree.toggle_gitignore_filter, opts('Toggle Git Ignore'))
120+
vim.keymap.set('n', 'H', api.tree.toggle_hidden_filter, opts('Toggle Filter: Dotfiles'))
121+
vim.keymap.set('n', 'I', api.tree.toggle_gitignore_filter, opts('Toggle Filter: Git Ignore'))
122122
vim.keymap.set('n', 'J', api.node.navigate.sibling.last, opts('Last Sibling'))
123123
vim.keymap.set('n', 'K', api.node.navigate.sibling.first, opts('First Sibling'))
124124
vim.keymap.set('n', 'm', api.marks.toggle, opts('Toggle Bookmark'))
@@ -131,7 +131,7 @@ local DEFAULT_ON_ATTACH = [[
131131
vim.keymap.set('n', 'R', api.tree.reload, opts('Refresh'))
132132
vim.keymap.set('n', 's', api.node.run.system, opts('Run System'))
133133
vim.keymap.set('n', 'S', api.tree.search_node, opts('Search'))
134-
vim.keymap.set('n', 'U', api.tree.toggle_custom_filter, opts('Toggle Hidden'))
134+
vim.keymap.set('n', 'U', api.tree.toggle_custom_filter, opts('Toggle Filter: Hidden'))
135135
vim.keymap.set('n', 'W', api.tree.collapse_all, opts('Collapse'))
136136
vim.keymap.set('n', 'x', api.fs.cut, opts('Cut'))
137137
vim.keymap.set('n', 'y', api.fs.copy.filename, opts('Copy Name'))

0 commit comments

Comments
 (0)