Skip to content

Commit d9908fd

Browse files
Kozororkibhagwan
authored andcommitted
feat(treesitter): filter treesitter nodes with opts.node_filter
1 parent fc42c4c commit d9908fd

File tree

2 files changed

+3
-2
lines changed

2 files changed

+3
-2
lines changed

lua/fzf-lua/defaults.lua

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1180,6 +1180,7 @@ M.defaults.blines = vim.tbl_deep_extend("force", M.defaults.lines
11801180
---@class fzf-lua.config.Treesitter: fzf-lua.config.Base
11811181
---Buffer number to search, default: current buffer.
11821182
---@field bufnr? integer
1183+
---@field node_filter? function
11831184
M.defaults.treesitter = {
11841185
previewer = M._default_previewer_fn,
11851186
file_icons = false, ---@type integer|boolean

lua/fzf-lua/providers/buffers.lua

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -592,10 +592,10 @@ M.treesitter = function(opts)
592592
for _, definition in ipairs(get(bufnr0)) do
593593
local nodes = get_local_nodes(definition)
594594
for _, node in ipairs(nodes) do
595-
if node.node then
595+
node.kind = node.kind and node.kind:gsub(".*%.", "")
596+
if node.node and (not opts.node_filter or opts.node_filter(node, node.kind)) then
596597
vim.schedule(function()
597598
-- Remove node prefix, e.g. `locals.definition.var`
598-
node.kind = node.kind and node.kind:gsub(".*%.", "")
599599
local lnum, col, _, _ = ts.get_node_range(node.node)
600600
local node_text = ts.get_node_text(node.node, bufnr0)
601601
local node_kind = node.kind and utils.ansi_from_hl(kind2hl(node.kind), node.kind)

0 commit comments

Comments
 (0)