diff --git a/.gitignore b/.gitignore index 457fcaf..8474af7 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ .direnv *.R .Rlibs +.nvimcom diff --git a/flake.lock b/flake.lock index 8feddd7..78a5bd8 100644 --- a/flake.lock +++ b/flake.lock @@ -7,11 +7,11 @@ ] }, "locked": { - "lastModified": 1771462351, - "narHash": "sha256-N3mUOwFwGBaFomNdlWuCRftzqy+h9Io8PJGcMVtJJsY=", + "lastModified": 1776413584, + "narHash": "sha256-xqqv46MTveuT4yJH2YihmbHGy5mdLnnLFDebVmUws/E=", "owner": "dwinkler1", "repo": "fran", - "rev": "7b8fbbcd0c55df98795a9e34621e6224b6713b5b", + "rev": "da09626e4dd8f0f57078b3a04e0443a8c20defa1", "type": "github" }, "original": { @@ -22,11 +22,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1775710090, - "narHash": "sha256-ar3rofg+awPB8QXDaFJhJ2jJhu+KqN/PRCXeyuXR76E=", + "lastModified": 1776169885, + "narHash": "sha256-l/iNYDZ4bGOAFQY2q8y5OAfBBtrDAaPuRQqWaFHVRXM=", "owner": "nixos", "repo": "nixpkgs", - "rev": "4c1018dae018162ec878d42fec712642d214fdfa", + "rev": "4bd9165a9165d7b5e33ae57f3eecbcb28fb231c9", "type": "github" }, "original": { @@ -55,11 +55,11 @@ "plugins-r": { "flake": false, "locked": { - "lastModified": 1775681967, - "narHash": "sha256-Fqw9UzLvfADkQJCzdHNSBTNtSgp0DRu3HoD4Np3yEsc=", + "lastModified": 1776340770, + "narHash": "sha256-o/8UZIc/Bq9dWTjA+MpSR5uMUpE7KHTErk+TwWID8Ww=", "owner": "R-nvim", "repo": "R.nvim", - "rev": "345d82515947a4766ddb7b1de6a26d12c1f19bc1", + "rev": "b9cfffeb9b4e484aa9e13f01c0eb80230aada455", "type": "github" }, "original": { @@ -101,11 +101,11 @@ ] }, "locked": { - "lastModified": 1776047825, - "narHash": "sha256-BOa9WLkJFlp+2cmWrwoTpC5a0ibmKU5y1hgQpR9jDdg=", + "lastModified": 1776375800, + "narHash": "sha256-/SSAR77Brr9fbapsh1cb2K47JXCbvwS1GjM4yyDxle8=", "owner": "BirdeeHub", "repo": "nix-wrapper-modules", - "rev": "5e5ac5ff7e6858eed67cfeae9d93bd1049eb005d", + "rev": "f11469ca69068bac13d9e163b2bd268cc06dff57", "type": "github" }, "original": { diff --git a/plugin/00_options.lua b/plugin/00_options.lua index 2714fa1..2b4485b 100644 --- a/plugin/00_options.lua +++ b/plugin/00_options.lua @@ -66,8 +66,9 @@ 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.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" } 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 c18bfd9..ebbebf0 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 2b21185..3e0f00c 100644 --- a/plugin/24_completion.lua +++ b/plugin/24_completion.lua @@ -1,5 +1,6 @@ local add = Config.add local later = MiniDeps.later +local now = MiniDeps.now local now_if_args = Config.now_if_args -- Constants @@ -83,16 +84,33 @@ end local function get_codecompanion_config() return { - adapters = { - http = { - copilot = function() - return require("codecompanion.adapters").extend("copilot", { - schema = { - model = { default = "gemini-3-pro-preview" } - } - }) - end, - } + 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", + }, + }, }, display = { chat = { @@ -105,10 +123,10 @@ local function get_codecompanion_config() }, }, prompt_library = { - ["Code Expert"] = { - strategy = "chat", + ["expert"] = { + interaction = "chat", description = "Get expert advice from an LLM", - opts = create_common_opts("ae", "expert"), + --opts = create_common_opts("ae", "expert"), prompts = { { role = "system", @@ -125,10 +143,10 @@ local function get_codecompanion_config() }, }, }, - ["Code Fixer"] = { - strategy = "chat", + ["fixer"] = { + interaction = "chat", description = "Fix code errors with expert guidance", - opts = create_common_opts("af", "afixer"), + --opts = create_common_opts("af", "afixer"), prompts = { { role = "system", @@ -145,17 +163,10 @@ local function get_codecompanion_config() }, }, }, - ["Suggest"] = { - strategy = "chat", + ["suggest"] = { + interaction = "chat", description = "Suggest improvements to the buffer", - opts = { - mapping = "as", - modes = { "v" }, - short_name = "suggest", - auto_submit = true, - user_prompt = false, - stop_context_insertion = false, - }, + --opts = create_common_opts("as", "suggest"), prompts = { { role = "system",