|
1 | 1 | local view = require("nvim-tree.view")
|
2 | 2 | local utils = require("nvim-tree.utils")
|
| 3 | + |
3 | 4 | local Iterator = require("nvim-tree.iterators.node-iterator")
|
| 5 | +local DirectoryNode = require("nvim-tree.node.directory") |
4 | 6 |
|
5 | 7 | ---@class LiveFilter
|
6 | 8 | ---@field explorer Explorer
|
@@ -31,17 +33,19 @@ local function reset_filter(self, node_)
|
31 | 33 | return
|
32 | 34 | end
|
33 | 35 |
|
34 |
| - node_.hidden_stats = vim.tbl_deep_extend("force", node_.hidden_stats or {}, { |
35 |
| - live_filter = 0, |
36 |
| - }) |
| 36 | + local dir_ = node_:as(DirectoryNode) |
| 37 | + if dir_ then |
| 38 | + dir_.hidden_stats = vim.tbl_deep_extend("force", dir_.hidden_stats or {}, { live_filter = 0, }) |
| 39 | + end |
37 | 40 |
|
38 | 41 | Iterator.builder(node_.nodes)
|
39 | 42 | :hidden()
|
40 | 43 | :applier(function(node)
|
41 | 44 | node.hidden = false
|
42 |
| - node.hidden_stats = vim.tbl_deep_extend("force", node.hidden_stats or {}, { |
43 |
| - live_filter = 0, |
44 |
| - }) |
| 45 | + local dir = node:as(DirectoryNode) |
| 46 | + if dir then |
| 47 | + dir.hidden_stats = vim.tbl_deep_extend("force", dir.hidden_stats or {}, { live_filter = 0, }) |
| 48 | + end |
45 | 49 | end)
|
46 | 50 | :iterate()
|
47 | 51 | end
|
@@ -85,7 +89,7 @@ local function matches(self, node)
|
85 | 89 | return vim.regex(self.filter):match_str(name) ~= nil
|
86 | 90 | end
|
87 | 91 |
|
88 |
| ----@param node_ Node? |
| 92 | +---@param node_ DirectoryNode? |
89 | 93 | function LiveFilter:apply_filter(node_)
|
90 | 94 | if not self.filter or self.filter == "" then
|
91 | 95 | reset_filter(self, node_)
|
|
0 commit comments