1
Fork 0
satellite/dotfiles/neovim/lua/my/plugins/telescope.lua

77 lines
1.9 KiB
Lua
Raw Normal View History

2022-12-27 20:45:43 +01:00
local env = require("my.helpers.env")
local telescope = {
"nvim-telescope/telescope.nvim",
cmd = "Telescope",
dependencies = {
{ "nvim-telescope/telescope-fzf-native.nvim", build = "make" },
"nvim-telescope/telescope-file-browser.nvim",
"nvim-lua/plenary.nvim"
},
version = "0.1.x",
pin = true,
cond = env.vscode.not_active(),
}
local M = telescope
2022-09-25 22:03:11 +02:00
local function find_files_by_extension(extension)
return "find_files find_command=rg,--files,--glob=**/*." .. extension
end
2022-10-09 03:28:51 +02:00
local function with_theme(base, theme)
return base .. " theme=" .. theme
end
local defaultTheme = "ivy"
2022-09-25 22:03:11 +02:00
local keybinds = {
2022-10-09 03:28:51 +02:00
{ "<C-P>", "find_files", "Find files" },
2022-12-27 14:02:03 +01:00
{ "<Leader>ft", find_files_by_extension("tex"), "[F]ind [t]ex files" },
{ "<Leader>fl", find_files_by_extension("lua"), "[F]ind [l]ua files" },
{
"<Leader>fp",
find_files_by_extension("purs"),
"[F]ind [p]urescript files",
},
{ "<Leader>d", "diagnostics", "[D]iagnostics" },
{ "<C-F>", "live_grep", "[F]ind in project" },
{ "<C-S-F>", "file_browser", "[F]ile browser" },
{ "<Leader>t", "builtin", "[T]elescope pickers" },
2022-09-25 22:03:11 +02:00
}
2022-09-25 22:03:11 +02:00
local function mkAction(action)
2022-12-27 14:02:03 +01:00
if not string.find(action, "theme=") then
action = with_theme(action, defaultTheme)
end
2022-10-09 03:28:51 +02:00
2022-12-27 20:45:43 +01:00
return "<cmd>Telescope " .. action .. "<cr>"
2022-09-25 22:03:11 +02:00
end
2022-12-27 20:45:43 +01:00
function telescope.init()
2022-09-25 22:03:11 +02:00
for _, mapping in pairs(keybinds) do
2022-10-09 03:28:51 +02:00
vim.keymap.set("n", mapping[1], mkAction(mapping[2]), { desc = mapping[3] })
2022-09-25 22:03:11 +02:00
end
2022-02-22 21:52:01 +01:00
end
2022-12-27 20:45:43 +01:00
function telescope.config()
2022-08-08 16:25:54 +02:00
local settings = {
defaults = { mappings = { i = { ["<C-h>"] = "which_key" } } },
pickers = { find_files = { hidden = true } },
2022-12-27 20:45:43 +01:00
extensions = {
file_browser = { path = "%:p:h" },
fzf = {
fuzzy = true,
override_generic_sorter = true,
override_file_sorter = true,
},
},
2022-08-08 16:25:54 +02:00
}
2022-02-22 21:52:01 +01:00
2022-08-08 16:25:54 +02:00
require("telescope").setup(settings)
2022-12-27 20:45:43 +01:00
require("telescope").load_extension("fzf")
2022-12-27 14:02:03 +01:00
require("telescope").load_extension("file_browser")
end
return M