nvim/lua/plugins/ai.lua
2026-04-23 21:23:52 +08:00

62 lines
2.3 KiB
Lua

#! /usr/bin/env lua
--
-- ai.lua
-- Copyright (C) 2025 veypi <i@veypi.com>
--
-- Distributed under terms of the MIT license.
--
return {
-- { "github/copilot.vim" },
{
"kkrampis/codex.nvim",
lazy = true,
cmd = { "Codex", "CodexToggle" }, -- Optional: Load only on command execution
keys = {
{
"<leader>xc", -- Change this to your preferred keybinding
function()
require("codex").toggle()
end,
desc = "Toggle Codex popup or side-panel",
mode = { "n", "t" },
},
},
opts = {
cmd = { "bash", "-c", "http_proxy=http://127.0.0.1:7897 https_proxy=http://127.0.0.1:7897 codex" },
keymaps = {
toggle = nil, -- Keybind to toggle Codex window (Disabled by default, watch out for conflicts)
quit = "<C-q>", -- Keybind to close the Codex window (default: Ctrl + q)
}, -- Disable internal default keymap (<leader>cc -> :CodexToggle)
border = "rounded", -- Options: 'single', 'double', or 'rounded'
width = 0.8, -- Width of the floating window (0.0 to 1.0)
height = 0.8, -- Height of the floating window (0.0 to 1.0)
model = nil, -- Optional: pass a string to use a specific model (e.g., 'o3-mini')
panel = false, -- Open Codex in a side-panel (vertical split) instead of floating window
use_buffer = false, -- Capture Codex stdout into a normal buffer instead of a terminal buffer
},
},
{
"coder/claudecode.nvim",
opts = {},
keys = {
{ "<leader>a", "", desc = "+ai", mode = { "n", "v" } },
{ "<leader>ac", "<cmd>ClaudeCode<cr>", desc = "Toggle Claude" },
{ "<leader>af", "<cmd>ClaudeCodeFocus<cr>", desc = "Focus Claude" },
{ "<leader>ar", "<cmd>ClaudeCode --resume<cr>", desc = "Resume Claude" },
{ "<leader>aC", "<cmd>ClaudeCode --continue<cr>", desc = "Continue Claude" },
{ "<leader>ab", "<cmd>ClaudeCodeAdd %<cr>", desc = "Add current buffer" },
{ "<leader>as", "<cmd>ClaudeCodeSend<cr>", mode = "v", desc = "Send to Claude" },
{
"<leader>as",
"<cmd>ClaudeCodeTreeAdd<cr>",
desc = "Add file",
ft = { "NvimTree", "neo-tree", "oil" },
},
-- Diff management
{ "<leader>aa", "<cmd>ClaudeCodeDiffAccept<cr>", desc = "Accept diff" },
{ "<leader>ad", "<cmd>ClaudeCodeDiffDeny<cr>", desc = "Deny diff" },
},
},
}