diff --git a/modules/cli/tools/jujutsu.nix b/modules/cli/tools/jujutsu.nix index 27c1aef..72b637a 100644 --- a/modules/cli/tools/jujutsu.nix +++ b/modules/cli/tools/jujutsu.nix @@ -1,4 +1,4 @@ -{...}: { +{pkgs, ...}: { programs.jujutsu = { enable = true; settings = { @@ -36,4 +36,5 @@ }; }; }; + home.packages = with pkgs; [jjui]; } diff --git a/nvim/lua/plugins/git.lua b/nvim/lua/plugins/git.lua index f7d55b4..a27d20f 100644 --- a/nvim/lua/plugins/git.lua +++ b/nvim/lua/plugins/git.lua @@ -92,29 +92,6 @@ return { local cmd = require("jj.cmd") vim.keymap.set("n", "jd", cmd.describe, { desc = "JJ describe" }) vim.keymap.set("n", "jc", cmd.commit, { desc = "JJ commit" }) - vim.keymap.set("n", "jjl", cmd.log, { desc = "jj log " }) - vim.keymap.set("n", "jL", function() - cmd.log({ revisions = "'all()'" }) - end, { desc = "jj log all" }) - vim.keymap.set("n", "je", cmd.edit, { desc = "JJ edit" }) - vim.keymap.set("n", "jn", cmd.new, { desc = "JJ new" }) - vim.keymap.set("n", "jq", cmd.squash, { desc = "JJ squash" }) - vim.keymap.set("n", "ju", cmd.undo, { desc = "JJ undo" }) - vim.keymap.set("n", "jy", cmd.redo, { desc = "JJ redo" }) - vim.keymap.set("n", "jr", cmd.rebase, { desc = "JJ rebase" }) - vim.keymap.set("n", "jbc", cmd.bookmark_create, { desc = "JJ bookmark create" }) - vim.keymap.set("n", "jbd", cmd.bookmark_delete, { desc = "JJ bookmark delete" }) - vim.keymap.set("n", "jbm", cmd.bookmark_move, { desc = "JJ bookmark move" }) - vim.keymap.set("n", "ja", cmd.abandon, { desc = "JJ abandon" }) - vim.keymap.set("n", "jf", cmd.fetch, { desc = "JJ fetch" }) - vim.keymap.set("n", "jp", cmd.push, { desc = "JJ push" }) - vim.keymap.set("n", "jpr", cmd.open_pr, { desc = "JJ PR" }) - vim.keymap.set("n", "jpl", function() - cmd.open_pr({ list_bookmarks = true }) - end, { desc = "JJ PR list" }) - vim.keymap.set("n", "jt", function() - cmd.j("tug") - end, { desc = "JJ tug" }) end }, } diff --git a/nvim/lua/plugins/opencode.lua b/nvim/lua/plugins/opencode.lua index 2da0f8d..2d0c064 100644 --- a/nvim/lua/plugins/opencode.lua +++ b/nvim/lua/plugins/opencode.lua @@ -1,3 +1,29 @@ +local opencode_cmd = 'opencode --port' +---@type snacks.terminal.Opts +local snacks_terminal_opts = { + win = { + position = 'right', + enter = true, + on_win = function(win) + require('opencode.terminal').setup(win.win) + end, + }, +} +---@type opencode.Opts +vim.g.opencode_opts = { + server = { + start = function() + require('snacks.terminal').open(opencode_cmd, snacks_terminal_opts) + end, + stop = function() + require('snacks.terminal').get(opencode_cmd, snacks_terminal_opts):close() + end, + toggle = function() + require('snacks.terminal').toggle(opencode_cmd, snacks_terminal_opts) + end, + }, +} + return { { "opencode-nvim", @@ -18,6 +44,7 @@ return { end, desc = "Add range to opencode", mode = { "n", "x" }, + expr = true, }, { "gll", @@ -25,6 +52,7 @@ return { return require("opencode").operator("@this ") .. "_" end, desc = "Add line to opencode", + expr = true, }, { "gL", diff --git a/nvim/lua/plugins/snacks.lua b/nvim/lua/plugins/snacks.lua index da73861..2c0af0f 100644 --- a/nvim/lua/plugins/snacks.lua +++ b/nvim/lua/plugins/snacks.lua @@ -45,6 +45,7 @@ return { "snacks-nvim", event = "DeferredUIEnter", opts = { + terminal = {}, input = { enabled = true, }, @@ -89,6 +90,14 @@ return { blend = 0, }, }, + terminal = { + keys = { + term_normal = false, + }, + wo = { + winbar = "", + } + } }, picker = { win = { @@ -286,6 +295,10 @@ return { vim.keymap.set("n", "jl", Snacks.picker.jj_log, { desc = "jj log" }) vim.keymap.set("n", "jh", Snacks.picker.jj_log_file, { desc = "jj log" }) vim.keymap.set("n", "js", Snacks.picker.jj_show, { desc = "jj status" }) + + vim.keymap.set("n", "ju", function() + Snacks.terminal.toggle("jjui") + end, { desc = "jj ui" }) end, }, }