feat(telescope): use git_files or find_files for files

This commit is contained in:
Folke Lemaitre
2023-01-08 10:08:02 +01:00
parent 53c08e7aa1
commit 531f8baf5e
2 changed files with 19 additions and 4 deletions

View File

@ -43,10 +43,10 @@ return {
version = false, -- telescope did only one release, so use HEAD for now
keys = {
{ "<leader>/", util.telescope("live_grep"), desc = "Find in Files (Grep)" },
{ "<leader><space>", util.telescope("find_files"), desc = "Find Files (root dir)" },
{ "<leader><space>", util.telescope("files"), desc = "Find Files (root dir)" },
{ "<leader>fb", "<cmd>Telescope buffers<cr>", desc = "Buffers" },
{ "<leader>ff", util.telescope("find_files"), desc = "Find Files (root dir)" },
{ "<leader>fF", util.telescope("find_files", { cwd = false }), desc = "Find Files (cwd)" },
{ "<leader>ff", util.telescope("files"), desc = "Find Files (root dir)" },
{ "<leader>fF", util.telescope("files", { cwd = false }), desc = "Find Files (cwd)" },
{ "<leader>fr", "<cmd>Telescope oldfiles<cr>", desc = "Recent" },
{ "<leader>gc", "<cmd>Telescope git_commits<CR>", desc = "commits" },
{ "<leader>gs", "<cmd>Telescope git_status<CR>", desc = "status" },

View File

@ -54,9 +54,24 @@ function M.get_root()
return root
end
-- this will return a function that calls telescope.
-- cwd will defautlt to lazyvim.util.get_root
-- for `files`, git_files or find_files will be chosen depending on .git
function M.telescope(builtin, opts)
local params = { builtin = builtin, opts = opts }
return function()
require("telescope.builtin")[builtin](vim.tbl_deep_extend("force", { cwd = M.get_root() }, opts or {}))
builtin = params.builtin
opts = params.opts
opts = vim.tbl_deep_extend("force", { cwd = M.get_root() }, opts or {})
if builtin == "files" then
if vim.loop.fs_stat((opts.cwd or vim.loop.cwd()) .. "/.git") then
opts.show_untracked = true
builtin = "git_files"
else
builtin = "find_files"
end
end
require("telescope.builtin")[builtin](opts)
end
end