diff --git a/.gitignore b/.gitignore index 8474af7..457fcaf 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,3 @@ .direnv *.R .Rlibs -.nvimcom diff --git a/flake.lock b/flake.lock index 78a5bd8..8feddd7 100644 --- a/flake.lock +++ b/flake.lock @@ -7,11 +7,11 @@ ] }, "locked": { - "lastModified": 1776413584, - "narHash": "sha256-xqqv46MTveuT4yJH2YihmbHGy5mdLnnLFDebVmUws/E=", + "lastModified": 1771462351, + "narHash": "sha256-N3mUOwFwGBaFomNdlWuCRftzqy+h9Io8PJGcMVtJJsY=", "owner": "dwinkler1", "repo": "fran", - "rev": "da09626e4dd8f0f57078b3a04e0443a8c20defa1", + "rev": "7b8fbbcd0c55df98795a9e34621e6224b6713b5b", "type": "github" }, "original": { @@ -22,11 +22,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1776169885, - "narHash": "sha256-l/iNYDZ4bGOAFQY2q8y5OAfBBtrDAaPuRQqWaFHVRXM=", + "lastModified": 1775710090, + "narHash": "sha256-ar3rofg+awPB8QXDaFJhJ2jJhu+KqN/PRCXeyuXR76E=", "owner": "nixos", "repo": "nixpkgs", - "rev": "4bd9165a9165d7b5e33ae57f3eecbcb28fb231c9", + "rev": "4c1018dae018162ec878d42fec712642d214fdfa", "type": "github" }, "original": { @@ -55,11 +55,11 @@ "plugins-r": { "flake": false, "locked": { - "lastModified": 1776340770, - "narHash": "sha256-o/8UZIc/Bq9dWTjA+MpSR5uMUpE7KHTErk+TwWID8Ww=", + "lastModified": 1775681967, + "narHash": "sha256-Fqw9UzLvfADkQJCzdHNSBTNtSgp0DRu3HoD4Np3yEsc=", "owner": "R-nvim", "repo": "R.nvim", - "rev": "b9cfffeb9b4e484aa9e13f01c0eb80230aada455", + "rev": "345d82515947a4766ddb7b1de6a26d12c1f19bc1", "type": "github" }, "original": { @@ -101,11 +101,11 @@ ] }, "locked": { - "lastModified": 1776375800, - "narHash": "sha256-/SSAR77Brr9fbapsh1cb2K47JXCbvwS1GjM4yyDxle8=", + "lastModified": 1776047825, + "narHash": "sha256-BOa9WLkJFlp+2cmWrwoTpC5a0ibmKU5y1hgQpR9jDdg=", "owner": "BirdeeHub", "repo": "nix-wrapper-modules", - "rev": "f11469ca69068bac13d9e163b2bd268cc06dff57", + "rev": "5e5ac5ff7e6858eed67cfeae9d93bd1049eb005d", "type": "github" }, "original": { diff --git a/plugin/00_options.lua b/plugin/00_options.lua index 2b4485b..2714fa1 100644 --- a/plugin/00_options.lua +++ b/plugin/00_options.lua @@ -66,9 +66,8 @@ if vim.fn.has('nvim-0.11') == 1 then vim.o.winborder = 'rounded' -- Use double-line as default border end if vim.fn.has('nvim-0.12') == 1 then - vim.o.pummaxwidth = 100 -- Limit maximum width of popup menu - -- vim.o.completefuzzycollect = 'keyword,files,whole_line' -- Use fuzzy matching when collecting candidates - vim.opt.completeopt = { "menu", "popup", "fuzzy", "longest" } + vim.o.pummaxwidth = 100 -- Limit maximum width of popup menu + vim.o.completefuzzycollect = 'keyword,files,whole_line' -- Use fuzzy matching when collecting candidates end vim.o.complete = '.,w,b,kspell' -- Use spell check and don't use tags for completion diff --git a/plugin/10_keymap.lua b/plugin/10_keymap.lua index ebbebf0..c18bfd9 100644 --- a/plugin/10_keymap.lua +++ b/plugin/10_keymap.lua @@ -67,18 +67,18 @@ nmap_leader('', 'bprev', 'Prev buffer') -- a is for 'AI' nmap_leader("ac", "CodeCompanionChat Toggle", "Chat Toggle") --- nmap_leader("ae", "CodeCompanion /explain", "Explain Code") --- nmap_leader("af", "CodeCompanion /fix", "Fix Code") +nmap_leader("ae", "CodeCompanion /explain", "Explain Code") +nmap_leader("af", "CodeCompanion /fix", "Fix Code") nmap_leader("ag", "CodeCompanion /commit", "Generate commit message") nmap_leader("ai", "CodeCompanionActions", "Chat Action") nmap_leader("al", "CodeCompanion /lsp", "Explain LSP Diagnostics") nmap_leader("an", "CodeCompanionChat Add", "Chat New") nmap_leader("as", "CodeCompanion /suggest", "Suggest Improvements") ---nmap_leader("ax", "CodeCompanion /fixer", "Code Fixer") +nmap_leader("ax", "CodeCompanion /fixer", "Code Fixer") nmap_leader("ax", "CodeCompanion /fixer", "Code Fixer") xmap_leader("ae", "CodeCompanion /explain", "Explain Code") xmap_leader("af", "CodeCompanion /fix", "Fix Code") ---xmap_leader("ap", "CodeCompanion /expert", "Code Fixer") +xmap_leader("ap", "CodeCompanion /expert", "Code Fixer") xmap_leader("ap", "CodeCompanion /expert", "Code Fixer") xmap_leader("as", "CodeCompanion /suggest", "Suggest Improvements") diff --git a/plugin/24_completion.lua b/plugin/24_completion.lua index 3e0f00c..2b21185 100644 --- a/plugin/24_completion.lua +++ b/plugin/24_completion.lua @@ -1,6 +1,5 @@ local add = Config.add local later = MiniDeps.later -local now = MiniDeps.now local now_if_args = Config.now_if_args -- Constants @@ -84,33 +83,16 @@ end local function get_codecompanion_config() return { - interactions = { - chat = { - adapter = { - name = "copilot", - model = "gemini-3.1-pro-preview", - }, - opts = { - completion_provider = "blink", - }, - }, - inline = { - adapter = { - name = "copilot", - model = "gemini-3.1-pro-preview", - } - }, - keymaps = { - accept_change = { - modes = { n = "ga" }, - description = "Accept the suggested change", - }, - reject_change = { - modes = { n = "gr" }, - opts = { nowait = true }, - description = "Reject the suggested change", - }, - }, + adapters = { + http = { + copilot = function() + return require("codecompanion.adapters").extend("copilot", { + schema = { + model = { default = "gemini-3-pro-preview" } + } + }) + end, + } }, display = { chat = { @@ -123,10 +105,10 @@ local function get_codecompanion_config() }, }, prompt_library = { - ["expert"] = { - interaction = "chat", + ["Code Expert"] = { + strategy = "chat", description = "Get expert advice from an LLM", - --opts = create_common_opts("ae", "expert"), + opts = create_common_opts("ae", "expert"), prompts = { { role = "system", @@ -143,10 +125,10 @@ local function get_codecompanion_config() }, }, }, - ["fixer"] = { - interaction = "chat", + ["Code Fixer"] = { + strategy = "chat", description = "Fix code errors with expert guidance", - --opts = create_common_opts("af", "afixer"), + opts = create_common_opts("af", "afixer"), prompts = { { role = "system", @@ -163,10 +145,17 @@ local function get_codecompanion_config() }, }, }, - ["suggest"] = { - interaction = "chat", + ["Suggest"] = { + strategy = "chat", description = "Suggest improvements to the buffer", - --opts = create_common_opts("as", "suggest"), + opts = { + mapping = "as", + modes = { "v" }, + short_name = "suggest", + auto_submit = true, + user_prompt = false, + stop_context_insertion = false, + }, prompts = { { role = "system",