2 config.action("show diff in diffnav", function()
3 local change_id = context.change_id()
4 if not change_id or change_id == "" then
5 flash({ text = "No revision selected", error = true })
9 exec_shell(string.format("jj diff -r %q --git --color always | diffnav", change_id))
10 end, { desc = "show diff in diffnav", key = "ctrl+d", scope = "revisions" })
12 config.action("copy-change-id", function()
13 local id = context.change_id()
16 flash("Copied: " .. id)
18 end, { key = "Y", scope = "revisions", desc = "copy change id" })
20 config.action("new_then_describe", function()
21 jj("new", "-A", revisions.current())
23 local new_change_id = jj("log", "-r", "@", "-T", "change_id.shortest()", "--no-graph")
24 revisions.navigate({ to = new_change_id })
25 revisions.start_inline_describe()
26 end, { key = "N", scope = "revisions", desc = "new then describe" })
28 config.action("new_commit", function()
29 if revisions.start_inline_describe() then
30 jj("new", revisions.current())
32 revisions.navigate({ to = "@" })
34 end, { key = "c", scope = "revisions", desc = "new commit" })
36 config.action("previous", function()
37 revisions.navigate({ to = "@-" })
38 end, { key = "shift+k", scope = "revisions", desc = "previous commit" })
40 config.action("next", function()
41 revisions.navigate({ to = "@+" })
42 end, { key = "shift+i", scope = "revisions", desc = "next commit" })