From 934f2ed3397c0991f62f4eba28c1cb6586c3dc49 Mon Sep 17 00:00:00 2001 From: lightly-toasted Date: Sat, 1 Nov 2025 02:01:51 +0900 Subject: [PATCH] feat(nixvim): add opencode plugin - Added opencode plugin - Added keymaps for opencode actions (oa, ox, og) - Included lsof package for opencode.nvim to function --- home/modules/cli/nixvim/default.nix | 22 +++++++------------- home/modules/cli/nixvim/keymaps.nix | 18 ++++++++++++++++ home/modules/cli/nixvim/plugins/opencode.nix | 16 ++++++++++++++ 3 files changed, 41 insertions(+), 15 deletions(-) create mode 100644 home/modules/cli/nixvim/plugins/opencode.nix diff --git a/home/modules/cli/nixvim/default.nix b/home/modules/cli/nixvim/default.nix index 17cb846..d776319 100644 --- a/home/modules/cli/nixvim/default.nix +++ b/home/modules/cli/nixvim/default.nix @@ -17,19 +17,11 @@ imports = [ ./keymaps.nix - ./plugins/bufferline.nix - ./plugins/lualine.nix - ./plugins/cmp.nix - ./plugins/comment.nix - ./plugins/colorizer.nix - ./plugins/nvim-autopairs.nix - ./plugins/gitsigns.nix - ./plugins/telescope.nix - ./plugins/treesitter.nix - ./plugins/nvim-tree.nix - ./plugins/web-devicons.nix - ./plugins/wakatime.nix - ./plugins/which-key.nix - ./plugins/lsp.nix - ]; + ] ++ ( + let + pluginsPath = ./plugins; + pluginFiles = builtins.attrNames (builtins.readDir pluginsPath); + in + map (module: pluginsPath + ("/" + module)) pluginFiles + ); } diff --git a/home/modules/cli/nixvim/keymaps.nix b/home/modules/cli/nixvim/keymaps.nix index 9eb0620..ce7904e 100644 --- a/home/modules/cli/nixvim/keymaps.nix +++ b/home/modules/cli/nixvim/keymaps.nix @@ -88,6 +88,24 @@ action = "lua vim.lsp.buf.code_action()"; options.desc = "LSP Code Action"; } + { + mode = ["n" "x"]; + key = "oa"; + action.__raw = ''function() require("opencode").ask("@selection: ", { submit = true }) end''; + options.desc = "Ask opencode"; + } + { + mode = ["n" "x"]; + key = "ox"; + action.__raw = ''function() require("opencode").select() end''; + options.desc = "Execute opencode action..."; + } + { + mode = ["n" "x"]; + key = "og"; + action.__raw = ''function() require("opencode").prompt("@selection") end''; + options.desc = "Add to opencode"; + } ]; }; } diff --git a/home/modules/cli/nixvim/plugins/opencode.nix b/home/modules/cli/nixvim/plugins/opencode.nix new file mode 100644 index 0000000..5bc185a --- /dev/null +++ b/home/modules/cli/nixvim/plugins/opencode.nix @@ -0,0 +1,16 @@ +{ pkgs, ...}: + +{ + home.packages = with pkgs; [ + lsof + ]; + programs.nixvim = { + plugins.opencode = { + enable = true; + settings = { + auto_reload = true; + }; + }; + opts.autoread = true; + }; +}