Add opencode to nvim
This commit is contained in:
parent
16dd8f5007
commit
dc3d0435c0
2
init.lua
2
init.lua
|
|
@ -940,7 +940,7 @@ require('lazy').setup({
|
||||||
-- This is the easiest way to modularize your config.
|
-- This is the easiest way to modularize your config.
|
||||||
--
|
--
|
||||||
-- Uncomment the following line and add your plugins to `lua/custom/plugins/*.lua` to get going.
|
-- Uncomment the following line and add your plugins to `lua/custom/plugins/*.lua` to get going.
|
||||||
-- { import = 'custom.plugins' },
|
{ import = 'custom.plugins' },
|
||||||
--
|
--
|
||||||
-- For additional information with loading, sourcing and examples see `:help lazy.nvim-🔌-plugin-spec`
|
-- For additional information with loading, sourcing and examples see `:help lazy.nvim-🔌-plugin-spec`
|
||||||
-- Or use telescope!
|
-- Or use telescope!
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,50 @@
|
||||||
|
return {
|
||||||
|
"nickjvandyke/opencode.nvim",
|
||||||
|
version = "*", -- Latest stable release
|
||||||
|
dependencies = {
|
||||||
|
{
|
||||||
|
-- `snacks.nvim` integration is recommended, but optional
|
||||||
|
---@module "snacks" <- Loads `snacks.nvim` types for configuration intellisense
|
||||||
|
"folke/snacks.nvim",
|
||||||
|
optional = true,
|
||||||
|
opts = {
|
||||||
|
input = {}, -- Enhances `ask()`
|
||||||
|
picker = { -- Enhances `select()`
|
||||||
|
actions = {
|
||||||
|
opencode_send = function(...) return require("opencode").snacks_picker_send(...) end,
|
||||||
|
},
|
||||||
|
win = {
|
||||||
|
input = {
|
||||||
|
keys = {
|
||||||
|
["<a-a>"] = { "opencode_send", mode = { "n", "i" } },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
config = function()
|
||||||
|
---@type opencode.Opts
|
||||||
|
vim.g.opencode_opts = {
|
||||||
|
-- Your configuration, if any; goto definition on the type or field for details
|
||||||
|
}
|
||||||
|
|
||||||
|
vim.o.autoread = true -- Required for `opts.events.reload`
|
||||||
|
|
||||||
|
-- Recommended/example keymaps
|
||||||
|
vim.keymap.set({ "n", "x" }, "<C-a>", function() require("opencode").ask("@this: ", { submit = true }) end, { desc = "Ask opencode…" })
|
||||||
|
vim.keymap.set({ "n", "x" }, "<C-x>", function() require("opencode").select() end, { desc = "Execute opencode action…" })
|
||||||
|
vim.keymap.set({ "n", "t" }, "<C-.>", function() require("opencode").toggle() end, { desc = "Toggle opencode" })
|
||||||
|
|
||||||
|
vim.keymap.set({ "n", "x" }, "go", function() return require("opencode").operator("@this ") end, { desc = "Add range to opencode", expr = true })
|
||||||
|
vim.keymap.set("n", "goo", function() return require("opencode").operator("@this ") .. "_" end, { desc = "Add line to opencode", expr = true })
|
||||||
|
|
||||||
|
vim.keymap.set("n", "<S-C-u>", function() require("opencode").command("session.half.page.up") end, { desc = "Scroll opencode up" })
|
||||||
|
vim.keymap.set("n", "<S-C-d>", function() require("opencode").command("session.half.page.down") end, { desc = "Scroll opencode down" })
|
||||||
|
|
||||||
|
-- You may want these if you use the opinionated `<C-a>` and `<C-x>` keymaps above — otherwise consider `<leader>o…` (and remove terminal mode from the `toggle` keymap)
|
||||||
|
vim.keymap.set("n", "+", "<C-a>", { desc = "Increment under cursor", noremap = true })
|
||||||
|
vim.keymap.set("n", "-", "<C-x>", { desc = "Decrement under cursor", noremap = true })
|
||||||
|
end,
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue