From 9afb34fd2669b2ed8a6f64360c5848510d050563 Mon Sep 17 00:00:00 2001 From: Marty Oehme Date: Sat, 23 Aug 2025 12:38:45 +0200 Subject: [PATCH] nvim: Improve jj diff conflict resolution Currently invoked via `jj resolve --tool diffconflicts` --- nvim/.config/nvim/lazy-lock.json | 1 + nvim/.config/nvim/lua/plugins/git.lua | 18 +++++++++++++++--- vcs/jj/config/jj/config.toml | 11 +++++++++++ 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/nvim/.config/nvim/lazy-lock.json b/nvim/.config/nvim/lazy-lock.json index 372427c..10f302f 100644 --- a/nvim/.config/nvim/lazy-lock.json +++ b/nvim/.config/nvim/lazy-lock.json @@ -29,6 +29,7 @@ "hunk.nvim": { "branch": "master", "commit": "1e0a4d719c780bb8b0690a54915601508ced321e" }, "image.nvim": { "branch": "master", "commit": "a4638ec549c6aa56264cb0371255192ff37a8a90" }, "img-clip.nvim": { "branch": "main", "commit": "0bb8b5ced45c2672c70184c87d014194b0705815" }, + "jj-diffconflicts": { "branch": "feat/remove-instruction-message", "commit": "ee3f9179b2ab94d5177d3935fbf2bc94258d3541" }, "jupytext.nvim": { "branch": "main", "commit": "c8baf3ad344c59b3abd461ecc17fc16ec44d0f7b" }, "lazy-events.nvim": { "branch": "main", "commit": "63802b7ddc852bdfa29e33b158d52429276fa742" }, "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, diff --git a/nvim/.config/nvim/lua/plugins/git.lua b/nvim/.config/nvim/lua/plugins/git.lua index f0b49fa..02b59c1 100644 --- a/nvim/.config/nvim/lua/plugins/git.lua +++ b/nvim/.config/nvim/lua/plugins/git.lua @@ -104,8 +104,20 @@ return { { "nvim-tree/nvim-web-devicons", optional = true }, }, cmd = { "DiffEditor" }, - config = function() - require("hunk").setup() - end, + -- config = function() + -- require("hunk").setup() + -- end, + opts = { + keys = { + global = { + quit = { "q" }, + }, + diff = { -- default to toggling line on both sides of diff with a + toggle_line = { "s" }, -- imagine it is '[s]ingle side' + toggle_line_pair = { "a" }, + }, + }, + }, }, + { "rafikdraoui/jj-diffconflicts", lazy = false }, } diff --git a/vcs/jj/config/jj/config.toml b/vcs/jj/config/jj/config.toml index 773e3e0..58b5e40 100644 --- a/vcs/jj/config/jj/config.toml +++ b/vcs/jj/config/jj/config.toml @@ -13,6 +13,17 @@ private-commits = "description(glob-i:'WIP:*') | description(glob-i:'PRIVATE:*') [ui] default-command = ["log", "-T", "builtin_log_oneline", "-r", "stack()"] diff-editor = ["nvim", "-c", "DiffEditor $left $right $output"] +diff-instructions = false # don't add the JJ-INSTRUCTIONS file to diffs +merge-editor = "dc" + +[merge-tools.dc] # the 'diffconflicts' plugin for nvim +program = "nvim" +merge-args = [ + "-c", "let g:jj_diffconflicts_marker_length=$marker_length", + "-c", "let g:jj_diffconflicts_turn_off_instructions=1", + "-c", "JJDiffConflicts!", "$output", "$base", "$left", "$right" +] +merge-tool-edits-conflict-markers = true # use delta as formatter but _only_ for diff and show # see: https://github.com/jj-vcs/jj/discussions/4690#discussioncomment-12388965