feat: add merge conflict UI and telescope picker

- Add unclash.nvim for interactive merge conflict resolution
  (inline highlighting, action buttons, 3-way merge editor,
  snacks picker integration)
- Enable LazyVim telescope extra with fzf-native for fuzzy finding
This commit is contained in:
2026-09-10 11:12:36 -06:00
parent b548abcf80
commit 670f6325a1
2 changed files with 66 additions and 1 deletions
+3 -1
View File
@@ -6,7 +6,7 @@ if not (vim.uv or vim.loop).fs_stat(lazypath) then
if vim.v.shell_error ~= 0 then
vim.api.nvim_echo({
{ "Failed to clone lazy.nvim:\n", "ErrorMsg" },
{ out, "WarningMsg" },
{ out, "WarningMsg" },
{ "\nPress any key to exit..." },
}, true, {})
vim.fn.getchar()
@@ -30,6 +30,8 @@ require("lazy").setup({
colorscheme = "catppuccin-mocha",
},
},
-- Import LazyVim extras for the picker
{ import = "lazyvim.plugins.extras.editor.telescope" },
-- Import LazyVim extras for languages
{ import = "lazyvim.plugins.extras.lang.go" },
{ import = "lazyvim.plugins.extras.lang.json" },
+63
View File
@@ -12,4 +12,67 @@ return {
},
},
},
{
"madmaxieee/unclash.nvim",
lazy = false,
opts = {
action_buttons = {
enabled = true,
},
annotations = {
enabled = true,
},
},
keys = {
{
"]x",
function()
require("unclash").next_conflict()
end,
desc = "Next Conflict",
},
{
"[x",
function()
require("unclash").prev_conflict()
end,
desc = "Prev Conflict",
},
{
"<leader>co",
function()
require("unclash").open_merge_editor()
end,
desc = "Open Merge Editor",
},
{
"<leader>cc",
function()
require("unclash").accept_current()
end,
desc = "Accept Current",
},
{
"<leader>ci",
function()
require("unclash").accept_incoming()
end,
desc = "Accept Incoming",
},
{
"<leader>cb",
function()
require("unclash").accept_both()
end,
desc = "Accept Both",
},
{
"<leader>fx",
function()
require("unclash.snacks").pick()
end,
desc = "Pick Conflicts",
},
},
},
}