|
| 1 | +return { |
| 2 | + "NickvanDyke/opencode.nvim", |
| 3 | + dependencies = { |
| 4 | + { "folke/snacks.nvim", opts = { input = { enabled = true } } }, |
| 5 | + }, |
| 6 | + specs = { |
| 7 | + { |
| 8 | + "AstroNvim/astrocore", |
| 9 | + ---@param opts AstroCoreOpts |
| 10 | + opts = function(_, opts) |
| 11 | + local maps = assert(opts.mappings) |
| 12 | + local prefix = "<Leader>o" |
| 13 | + maps.n[prefix] = { desc = require("astroui").get_icon("OpenCode", 1, true) .. "OpenCode" } |
| 14 | + maps.n[prefix .. "t"] = { |
| 15 | + function() require("opencode").toggle() end, |
| 16 | + desc = "Toggle embedded", |
| 17 | + } |
| 18 | + maps.n[prefix .. "a"] = { |
| 19 | + function() require("opencode").ask "@cursor: " end, |
| 20 | + desc = "Ask about this", |
| 21 | + } |
| 22 | + maps.n[prefix .. "+"] = { |
| 23 | + function() require("opencode").prompt("@buffer", { append = true }) end, |
| 24 | + desc = "Add buffer to prompt", |
| 25 | + } |
| 26 | + maps.n[prefix .. "e"] = { |
| 27 | + function() require("opencode").prompt "Explain @cursor and its context" end, |
| 28 | + desc = "Explain this code", |
| 29 | + } |
| 30 | + maps.n[prefix .. "n"] = { |
| 31 | + function() require("opencode").command "session_new" end, |
| 32 | + desc = "New session", |
| 33 | + } |
| 34 | + maps.n[prefix .. "s"] = { |
| 35 | + function() require("opencode").select() end, |
| 36 | + desc = "Select prompt", |
| 37 | + } |
| 38 | + maps.n["<S-C-u>"] = { |
| 39 | + function() require("opencode").command "messages_half_page_up" end, |
| 40 | + desc = "Messages half page up", |
| 41 | + } |
| 42 | + maps.n["<S-C-d>"] = { |
| 43 | + function() require("opencode").command "messages_half_page_down" end, |
| 44 | + desc = "Messages half page down", |
| 45 | + } |
| 46 | + |
| 47 | + maps.v[prefix] = { desc = require("astroui").get_icon("OpenCode", 1, true) .. "OpenCode" } |
| 48 | + maps.v[prefix .. "a"] = { |
| 49 | + function() require("opencode").ask "@selection: " end, |
| 50 | + desc = "Ask about selection", |
| 51 | + } |
| 52 | + maps.v[prefix .. "+"] = { |
| 53 | + function() require("opencode").prompt("@selection", { append = true }) end, |
| 54 | + desc = "Add selection to prompt", |
| 55 | + } |
| 56 | + maps.v[prefix .. "s"] = { |
| 57 | + function() require("opencode").select() end, |
| 58 | + desc = "Select prompt", |
| 59 | + } |
| 60 | + end, |
| 61 | + }, |
| 62 | + { "AstroNvim/astroui", opts = { icons = { OpenCode = "" } } }, |
| 63 | + }, |
| 64 | +} |
0 commit comments