mirror of
https://github.com/LazyVim/starter.git
synced 2026-07-24 21:41:04 +00:00
Telescope branch files
This commit is contained in:
parent
d9cf230f57
commit
1ceefb0eae
3 changed files with 45 additions and 1 deletions
|
|
@ -15,4 +15,28 @@ M.close_terminal_buffer = function(new_tab)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function M.branch_files(opts)
|
||||||
|
opts = opts or {}
|
||||||
|
local include_deleted = opts.include_deleted or false
|
||||||
|
|
||||||
|
-- Get current branch; if empty, we're probably not in a git repo.
|
||||||
|
local current_branch = vim.fn.systemlist("git branch --show-current")[1]
|
||||||
|
if not current_branch or current_branch == "" then
|
||||||
|
print("Not inside a git repository!")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Check if master exists: if so, use origin/master, else origin/main.
|
||||||
|
vim.fn.system("git rev-parse --verify master > /dev/null 2>&1")
|
||||||
|
local base_branch = (vim.v.shell_error == 0) and "origin/master" or "origin/main"
|
||||||
|
|
||||||
|
-- If not including deleted files, filter them out.
|
||||||
|
local diff_filter = include_deleted and "" or "--diff-filter=d"
|
||||||
|
local git_cmd =
|
||||||
|
string.format("git diff --name-status %s %s...%s | awk '{print $2}'", diff_filter, base_branch, current_branch)
|
||||||
|
return vim.fn.systemlist(git_cmd)
|
||||||
|
end
|
||||||
|
|
||||||
|
M.branch_files()
|
||||||
|
|
||||||
return M
|
return M
|
||||||
|
|
|
||||||
|
|
@ -69,7 +69,7 @@ return {
|
||||||
|
|
||||||
local set = LazyVim.safe_keymap_set
|
local set = LazyVim.safe_keymap_set
|
||||||
|
|
||||||
set("n", "<leader>h", function()
|
set("n", "<leader>H", function()
|
||||||
toggle_telescope(harpoon:list())
|
toggle_telescope(harpoon:list())
|
||||||
end, { desc = "Open harpoon window" })
|
end, { desc = "Open harpoon window" })
|
||||||
end,
|
end,
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,23 @@
|
||||||
-- lua/plugins/telescope.lua
|
-- lua/plugins/telescope.lua
|
||||||
-- https://www.lazyvim.org/extras/editor/telescope
|
-- https://www.lazyvim.org/extras/editor/telescope
|
||||||
|
local function searchBranchFiles()
|
||||||
|
local results = require("mj.utils").branch_files()
|
||||||
|
local pickers = require("telescope.pickers")
|
||||||
|
local finders = require("telescope.finders")
|
||||||
|
local sorters = require("telescope.sorters")
|
||||||
|
local previewers = require("telescope.previewers")
|
||||||
|
|
||||||
|
pickers
|
||||||
|
.new({}, {
|
||||||
|
prompt_title = "Branch Files",
|
||||||
|
finder = finders.new_table({
|
||||||
|
results = results,
|
||||||
|
}),
|
||||||
|
sorter = sorters.get_generic_fuzzy_sorter(),
|
||||||
|
previewer = previewers.vim_buffer_cat.new({}),
|
||||||
|
})
|
||||||
|
:find()
|
||||||
|
end
|
||||||
return {
|
return {
|
||||||
{
|
{
|
||||||
"nvim-telescope/telescope.nvim",
|
"nvim-telescope/telescope.nvim",
|
||||||
|
|
@ -14,6 +32,8 @@ return {
|
||||||
vim.keymap.set("n", "<Space>sg", function()
|
vim.keymap.set("n", "<Space>sg", function()
|
||||||
require("mj.telescope.grep_with_args").setup()
|
require("mj.telescope.grep_with_args").setup()
|
||||||
end, { desc = "Custom Live Grep With args" })
|
end, { desc = "Custom Live Grep With args" })
|
||||||
|
|
||||||
|
vim.keymap.set("n", "<leader>h", searchBranchFiles, { desc = "Telescope find branch files" })
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue