From 58ec6eca1c3704d130d749843e16fbf6c8cdc57e Mon Sep 17 00:00:00 2001 From: James Trew <66286082+jamestrew@users.noreply.github.com> Date: Mon, 24 Jun 2024 23:15:17 -0400 Subject: [PATCH] fix(builtin.lsp): respect `file_ignore_patterns` opt for direct jumps (#3173) --- lua/telescope/builtin/__lsp.lua | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/lua/telescope/builtin/__lsp.lua b/lua/telescope/builtin/__lsp.lua index 3bf5ed3..9d8522a 100644 --- a/lua/telescope/builtin/__lsp.lua +++ b/lua/telescope/builtin/__lsp.lua @@ -148,6 +148,25 @@ local apply_action_handler = function(action, items, opts) return items end +---@param items vim.lsp.util.locations_to_items.ret[] +---@param opts table +---@return vim.lsp.util.locations_to_items.ret[] +local function filter_file_ignore_patters(items, opts) + local file_ignore_patterns = vim.F.if_nil(opts.file_ignore_patterns, conf.file_ignore_patterns, {}) + if vim.tbl_isempty(file_ignore_patterns) then + return items + end + + return vim.tbl_filter(function(item) + for _, patt in ipairs(file_ignore_patterns) do + if string.match(item.filename, patt) then + return false + end + end + return true + end, items) +end + ---@param action telescope.lsp.list_or_jump_action ---@param title string prompt title ---@param funname string: name of the calling function @@ -176,6 +195,7 @@ local function list_or_jump(action, title, funname, params, opts) local offset_encoding = vim.lsp.get_client_by_id(ctx.client_id).offset_encoding local items = vim.lsp.util.locations_to_items(locations, offset_encoding) items = apply_action_handler(action, items, opts) + items = filter_file_ignore_patters(items, opts) if vim.tbl_isempty(items) then utils.notify(funname, {