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 e2eecff..62b5dce 100644 --- a/flake.lock +++ b/flake.lock @@ -7,11 +7,11 @@ ] }, "locked": { - "lastModified": 1776413584, - "narHash": "sha256-xqqv46MTveuT4yJH2YihmbHGy5mdLnnLFDebVmUws/E=", + "lastModified": 1776140472, + "narHash": "sha256-yOR+i8ZLzATQhR2zANTog8lpmenm0c4Et/PIV4vBZZY=", "owner": "dwinkler1", "repo": "fran", - "rev": "da09626e4dd8f0f57078b3a04e0443a8c20defa1", + "rev": "697a1c07e7f0c69a5850667804aa439f9dd733b1", "type": "github" }, "original": { @@ -101,11 +101,11 @@ ] }, "locked": { - "lastModified": 1776464146, - "narHash": "sha256-XwLFfJDz71vIF7BAhnbLhrzQjmDC2uXdo7N0oHUrYzA=", + "lastModified": 1776375800, + "narHash": "sha256-/SSAR77Brr9fbapsh1cb2K47JXCbvwS1GjM4yyDxle8=", "owner": "BirdeeHub", "repo": "nix-wrapper-modules", - "rev": "75febede14a0845f4ef429da692a0698bf433600", + "rev": "f11469ca69068bac13d9e163b2bd268cc06dff57", "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",