63 lines
2 KiB
Lua
63 lines
2 KiB
Lua
local map = vim.keymap.set
|
|
|
|
map('n', '<leader>ff', require('telescope.builtin').find_files, { desc = "Find files" })
|
|
map('n', '<leader>fg', require('telescope.builtin').live_grep, { desc = "Live grep" })
|
|
map('n', '<leader>fb', require('telescope.builtin').buffers, { desc = "Buffers" })
|
|
map('n', '<leader>fh', require('telescope.builtin').help_tags, { desc = "Help tags" })
|
|
|
|
-- Project-specific ignored dirs for Telescope
|
|
local function load_local_ignore()
|
|
local cwd = vim.fn.getcwd()
|
|
local config_path = cwd .. "/.nvim.lua"
|
|
if vim.fn.filereadable(config_path) == 1 then
|
|
local ok, config = pcall(dofile, config_path)
|
|
if ok and config.fzf_ignore_dirs then
|
|
return config.fzf_ignore_dirs
|
|
end
|
|
end
|
|
return {}
|
|
end
|
|
|
|
local ignored = load_local_ignore()
|
|
local ignore_patterns = vim.tbl_map(function(d) return "**/" .. d .. "/*" end, ignored)
|
|
|
|
require('telescope').setup {
|
|
defaults = {
|
|
file_ignore_patterns = ignore_patterns,
|
|
}
|
|
}
|
|
|
|
-- za: Telescope open in current tab
|
|
vim.keymap.set('n', 'za', function()
|
|
require("telescope.builtin").find_files()
|
|
end, { desc = "Telescope: open file in current tab" })
|
|
|
|
-- zt: Telescope open in new tab
|
|
vim.keymap.set('n', 'zt', function()
|
|
require("telescope.builtin").find_files({
|
|
attach_mappings = function(_, map)
|
|
map("i", "<CR>", function(prompt_bufnr)
|
|
local actions = require("telescope.actions")
|
|
local action_state = require("telescope.actions.state")
|
|
local entry = action_state.get_selected_entry()
|
|
actions.close(prompt_bufnr)
|
|
vim.cmd("tabedit " .. entry.value)
|
|
end)
|
|
return true
|
|
end,
|
|
})
|
|
end, { desc = "Telescope: open file in new tab" })
|
|
|
|
-- FZF
|
|
|
|
vim.keymap.set('n', 'zs', ':FZF<CR>', { noremap = true, silent = true })
|
|
vim.api.nvim_create_user_command('FZFInTab', function()
|
|
vim.fn['fzf#run'](vim.fn['fzf#wrap']({
|
|
sink = function(selected)
|
|
vim.cmd('tabedit ' .. selected)
|
|
end
|
|
}))
|
|
end, {})
|
|
|
|
vim.keymap.set('n', 'zy', ':FZFInTab<CR>', { noremap = true, silent = true })
|
|
|