|
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