46 lines
1.7 KiB
Lua
46 lines
1.7 KiB
Lua
---@diagnostic disable: undefined-global
|
|
local M = {}
|
|
|
|
function M.setup()
|
|
-- Base Telescope configuration
|
|
require('telescope').setup {
|
|
defaults = {
|
|
mappings = {
|
|
i = { ['<C-h>'] = 'which_key' },
|
|
n = { ['?'] = 'which_key' },
|
|
},
|
|
},
|
|
extensions = {
|
|
['ui-select'] = { require('telescope.themes').get_dropdown() },
|
|
},
|
|
}
|
|
|
|
-- Load extensions
|
|
pcall(require('telescope').load_extension, 'fzf')
|
|
pcall(require('telescope').load_extension, 'ui-select')
|
|
|
|
-- Apply keymaps from core.keymaps
|
|
local keymaps = require('core.keymaps').telescope_keymaps
|
|
for _, mapping in ipairs(keymaps) do
|
|
vim.keymap.set(mapping.mode, mapping.lhs, mapping.rhs, mapping.opts)
|
|
end
|
|
|
|
-- Additional builtins mapping (if not handled by core)
|
|
local builtin = require 'telescope.builtin'
|
|
vim.keymap.set('n', 'gr', builtin.lsp_references, { desc = 'LSP: [G]oto [R]eferences' })
|
|
vim.keymap.set('n', 'gd', builtin.lsp_definitions, { desc = 'LSP: [G]oto [D]efinition' })
|
|
vim.keymap.set('n', 'gI', builtin.lsp_implementations, { desc = 'LSP: [G]oto [I]mplementation' })
|
|
-- Other mappings moved from inline config
|
|
vim.keymap.set('n', '<leader>/', function()
|
|
builtin.current_buffer_fuzzy_find(require('telescope.themes').get_dropdown { winblend = 10, previewer = false })
|
|
end, { desc = '[/] Fuzzily search in current buffer' })
|
|
vim.keymap.set('n', '<leader>s/', function()
|
|
builtin.live_grep { grep_open_files = true, prompt_title = 'Live Grep in Open Files' }
|
|
end, { desc = '[S]earch [/] in Open Files' })
|
|
vim.keymap.set('n', '<leader>sn', function()
|
|
builtin.find_files { cwd = vim.fn.stdpath 'config' }
|
|
end, { desc = '[S]earch [N]eovim files' })
|
|
end
|
|
|
|
return M
|