Use the real files when diffing against current revision

This allows users to get lsp functionalities and run `gf` to navigate to
the file in a different tab.
This commit is contained in:
Trung Lam
2026-02-13 10:08:15 +01:00
committed by Nicolas GB
parent 7827458568
commit 27ab6707be
2 changed files with 26 additions and 0 deletions
+8
View File
@@ -17,6 +17,14 @@ local function diff_two_changes(left, right)
return
end
--- Omit the commit id when left is the current revision,
--- allowing codediff to use the actual file instead of a virtual buffer.
local commit_id_current = utils.get_current_commit_id()
if commit_id_current == commit_id_left then
vim.cmd(string.format("CodeDiff %s", commit_id_right))
return
end
vim.cmd(string.format("CodeDiff %s %s", commit_id_right, commit_id_left))
end
+18
View File
@@ -370,6 +370,24 @@ function M.get_commit_id(revset)
return vim.trim(output)
end
---
--- Get the commit id of the current revision
--- @return string|nil
function M.get_current_commit_id()
local output, success = runner.execute_command(
"jj log --no-graph -r '@' -T 'commit_id' --quiet",
"Error extracting current revision's commit id",
nil,
true
)
if not success or not output then
return nil
end
return vim.trim(output)
end
--- Extract the description from the describe text
--- @param lines string[] The lines of a described change
--- @return string|nil