Skip to content

Commit 8deebfc

Browse files
ALameLlamaUzaaft
andauthored
feat(ai): add NickvanDyke/opencode.nvim (#1654)
* feat(ai): add `NickvanDyke/opencode.nvim` * Update lua/astrocommunity/ai/opencode-nvim/README.md * feat: add dependency --------- Co-authored-by: Uzair Aftab <48220549+Uzaaft@users.noreply.github.com> Co-authored-by: Uzair Aftab <git@uzaaft.me>
1 parent 35e50cf commit 8deebfc

File tree

2 files changed

+70
-0
lines changed

2 files changed

+70
-0
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# NickvanDyke/opencode.nvim
2+
3+
Integrate the opencode AI assistant with Neovim — streamline editor-aware research, reviews, and requests.
4+
5+
**Repository**: <https://github.com/NickvanDyke/opencode.nvim>
6+
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
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

Comments
 (0)