@@ -42,6 +42,7 @@ local Api = {
4242 commands = {},
4343 diagnostics = {},
4444 decorator = {},
45+ filters = {},
4546}
4647
4748--- Print error when setup not called.
@@ -92,7 +93,7 @@ local function wrap_node_or_nil(fn)
9293 end
9394end
9495
95- --- Invoke a member' s method on the singleton explorer.
96+ --- Invoke a member" s method on the singleton explorer.
9697--- Print error when setup not called.
9798--- @param explorer_member string explorer member name
9899--- @param member_method string method name to invoke on member
@@ -108,7 +109,18 @@ local function wrap_explorer_member_args(explorer_member, member_method, ...)
108109 end )
109110end
110111
111- --- Invoke a member's method on the singleton explorer.
112+ --- @param filter_api_method string
113+ --- @return fun ( path : string ): boolean
114+ local function wrap_explorer_filter_function (filter_api_method )
115+ return wrap (function (path )
116+ local explorer = core .get_explorer ()
117+ if explorer then
118+ return explorer .filters .api [filter_api_method ](explorer .filters , path )
119+ end
120+ end )
121+ end
122+
123+ --- Invoke a member"s method on the singleton explorer.
112124--- Print error when setup not called.
113125--- @param explorer_member string explorer member name
114126--- @param member_method string method name to invoke on member
@@ -356,4 +368,12 @@ end)
356368--- @type nvim_tree.api.decorator.UserDecorator
357369Api .decorator .UserDecorator = UserDecorator --[[ @as nvim_tree.api.decorator.UserDecorator]]
358370
371+ Api .filters .custom = wrap_explorer_filter_function (" custom" )
372+ Api .filters .dotfile = wrap_explorer_filter_function (" dotfile" )
373+ Api .filters .git_ignored = wrap_explorer_filter_function (" git_ignored" )
374+ Api .filters .git_clean = wrap_explorer_filter_function (" git_clean" )
375+ Api .filters .no_buffer = wrap_explorer_filter_function (" no_buffer" )
376+ Api .filters .no_bookmark = wrap_explorer_filter_function (" no_bookmark" )
377+ Api .filters .filter_reason = wrap_explorer_filter_function (" filter_reason" )
378+
359379return Api
0 commit comments