refactor(core): simplify session management and add Avante plugin
This commit is contained in:
1 parent
e4c3e21d9b
commit
a1907c44c8
2 files changed
+143
-71
No files matched your search
+22
-71
@@ -14,62 +14,6 @@ local file_filter = ignore_patterns.create_picker_filter()
|
|||||||
|
|
||||||
return {
|
return {
|
||||||
"AstroNvim/astrocore",
|
"AstroNvim/astrocore",
|
||||||
dependencies = {
|
|
||||||
{
|
|
||||||
"coder/claudecode.nvim",
|
|
||||||
dependencies = { "folke/snacks.nvim" },
|
|
||||||
config = true,
|
|
||||||
opts = {
|
|
||||||
auto_start = true,
|
|
||||||
focus_after_send = true,
|
|
||||||
track_selection = true,
|
|
||||||
terminal = {
|
|
||||||
split_side = "right", -- "left" or "right"
|
|
||||||
split_width_percentage = 0.30,
|
|
||||||
provider = "external", -- "auto", "snacks", "native", "external", "none", or custom provider table
|
|
||||||
auto_close = true,
|
|
||||||
snacks_win_opts = {}, -- Opts to pass to `Snacks.terminal.open()` - see Floating Window section below
|
|
||||||
|
|
||||||
-- Provider-specific options
|
|
||||||
provider_opts = {
|
|
||||||
-- Command for external terminal provider. Can be:
|
|
||||||
external_terminal_cmd = "ghostty --working-directory %s -e %s",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pittcat/claude-fzf.nvim",
|
|
||||||
dependencies = {
|
|
||||||
"ibhagwan/fzf-lua",
|
|
||||||
"coder/claudecode.nvim",
|
|
||||||
},
|
|
||||||
init = function()
|
|
||||||
-- Remove problematic Chinese help file to avoid encoding error
|
|
||||||
local zh_doc = vim.fn.stdpath "data" .. "/lazy/claude-fzf.nvim/doc/claude-fzf-zh.txt"
|
|
||||||
if vim.fn.filereadable(zh_doc) == 1 then vim.fn.delete(zh_doc) end
|
|
||||||
end,
|
|
||||||
opts = {
|
|
||||||
auto_context = true,
|
|
||||||
batch_size = 10,
|
|
||||||
},
|
|
||||||
cmd = {
|
|
||||||
"ClaudeFzf",
|
|
||||||
"ClaudeFzfFiles",
|
|
||||||
"ClaudeFzfGrep",
|
|
||||||
"ClaudeFzfBuffers",
|
|
||||||
"ClaudeFzfGitFiles",
|
|
||||||
"ClaudeFzfDirectory",
|
|
||||||
},
|
|
||||||
keys = {
|
|
||||||
{ "<C-a><C-f>", "<cmd>ClaudeFzfFiles<cr>", desc = "Claude: Add files" },
|
|
||||||
{ "<C-a><C-f>g", "<cmd>ClaudeFzfGrep<cr>", desc = "Claude: Search and add" },
|
|
||||||
{ "<C-a><C-f>b", "<cmd>ClaudeFzfBuffers<cr>", desc = "Claude: Add buffers" },
|
|
||||||
{ "<C-a><C-f>G", "<cmd>ClaudeFzfGitFiles<cr>", desc = "Claude: Add Git files" },
|
|
||||||
{ "<C-a><C-f>d", "<cmd>ClaudeFzfDirectory<cr>", desc = "Claude: Add directory files" },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
---@type AstroCoreOpts
|
---@type AstroCoreOpts
|
||||||
opts = {
|
opts = {
|
||||||
|
|
||||||
@@ -260,6 +204,11 @@ return {
|
|||||||
["K"] = { function() vim.diagnostic.goto_prev() end, desc = "Previous diagnostic" },
|
["K"] = { function() vim.diagnostic.goto_prev() end, desc = "Previous diagnostic" },
|
||||||
["L"] = { "<Cmd>BufferLineCycleNext<CR>", desc = "Next buffer" },
|
["L"] = { "<Cmd>BufferLineCycleNext<CR>", desc = "Next buffer" },
|
||||||
["H"] = { "<Cmd>BufferLineCyclePrev<CR>", desc = "Previous buffer" },
|
["H"] = { "<Cmd>BufferLineCyclePrev<CR>", desc = "Previous buffer" },
|
||||||
|
-- Window navigation
|
||||||
|
["<C-h>"] = { "<C-w>h", desc = "Navigate to left window" },
|
||||||
|
["<C-j>"] = { "<C-w>j", desc = "Navigate to bottom window" },
|
||||||
|
["<C-k>"] = { "<C-w>k", desc = "Navigate to top window" },
|
||||||
|
["<C-l>"] = { "<C-w>l", desc = "Navigate to right window" },
|
||||||
["<C-e>"] = { "<Cmd>Neotree toggle<CR>", desc = "Open Explorer" },
|
["<C-e>"] = { "<Cmd>Neotree toggle<CR>", desc = "Open Explorer" },
|
||||||
["<C-m>"] = { "<Cmd>OverseerRun<CR>", desc = "Run Overseer" },
|
["<C-m>"] = { "<Cmd>OverseerRun<CR>", desc = "Run Overseer" },
|
||||||
["<leader><leader>"] = {
|
["<leader><leader>"] = {
|
||||||
@@ -564,16 +513,16 @@ return {
|
|||||||
desc = "Find Service files",
|
desc = "Find Service files",
|
||||||
},
|
},
|
||||||
["<C-j><C-j>"] = { function() terminals.scratch_toggle() end, desc = "Open Scratch Terminal" },
|
["<C-j><C-j>"] = { function() terminals.scratch_toggle() end, desc = "Open Scratch Terminal" },
|
||||||
-- AI/Assistant mappings (Claude Code)
|
-- AI/Assistant mappings (Avante)
|
||||||
["<C-a>"] = { nil, desc = "AI/Claude Code" },
|
["<C-a>"] = { nil, desc = "Avante AI" },
|
||||||
["<C-a><C-a>"] = { "<cmd>ClaudeCode<cr>", desc = "Toggle Claude" },
|
["<C-a><C-a>"] = { "<cmd>AvanteToggle<cr>", desc = "Toggle Avante" },
|
||||||
["<C-a>f"] = { "<cmd>ClaudeCodeFocus<cr>", desc = "Focus Claude" },
|
["<C-a>a"] = { "<cmd>AvanteAsk<cr>", desc = "Ask Avante" },
|
||||||
["<C-a>C"] = { "<cmd>ClaudeCode --resume<cr>", desc = "Resume Claude" },
|
["<C-a>e"] = { "<cmd>AvanteEdit<cr>", desc = "Edit with Avante" },
|
||||||
["<C-a>c"] = { "<cmd>ClaudeCode --continue<cr>", desc = "Continue Claude" },
|
["<C-a>r"] = { "<cmd>AvanteRefresh<cr>", desc = "Refresh Avante" },
|
||||||
["<C-a>m"] = { "<cmd>ClaudeCodeSelectModel<cr>", desc = "Select Claude model" },
|
["<C-a>f"] = { "<cmd>AvanteFocus<cr>", desc = "Focus Avante" },
|
||||||
["<C-a>a"] = { "<cmd>ClaudeCodeAdd %<cr>", desc = "Add current buffer" },
|
["<C-a>c"] = { "<cmd>AvanteChat<cr>", desc = "Avante Chat" },
|
||||||
["<C-y>"] = { "<cmd>ClaudeCodeDiffAccept<cr>", desc = "Accept diff" },
|
["<C-a>s"] = { "<cmd>AvanteSwitchProvider<cr>", desc = "Switch Provider" },
|
||||||
["<C-n>"] = { "<cmd>ClaudeCodeDiffDeny<cr>", desc = "Deny diff" },
|
["<C-a>C"] = { "<cmd>AvanteClear<cr>", desc = "Clear Avante" },
|
||||||
-- UI Toggles with Snacks
|
-- UI Toggles with Snacks
|
||||||
["<leader>u"] = { desc = "UI Toggles" },
|
["<leader>u"] = { desc = "UI Toggles" },
|
||||||
["<leader>ud"] = {
|
["<leader>ud"] = {
|
||||||
@@ -662,10 +611,12 @@ return {
|
|||||||
},
|
},
|
||||||
v = {
|
v = {
|
||||||
["<C-e>"] = { "<Cmd>Neotree toggle<CR>", desc = "Open Explorer" },
|
["<C-e>"] = { "<Cmd>Neotree toggle<CR>", desc = "Open Explorer" },
|
||||||
["<C-c>"] = { "<Cmd>w<CR><Cmd>bd<CR>", desc = "Save and close buffer" }, -- Modified to save and close buffer
|
["<C-c>"] = { "<Cmd>w<CR><Cmd>bd<CR>", desc = "Save and close buffer" },
|
||||||
["<C-x>"] = { "<Cmd>w<CR><Cmd>bd<CR>", desc = "Save and close buffer" }, -- Added C-x for visual mode
|
["<C-x>"] = { "<Cmd>w<CR><Cmd>bd<CR>", desc = "Save and close buffer" },
|
||||||
-- Claude Code visual mode
|
-- Avante visual mode mappings
|
||||||
["<C-a>"] = { "<cmd>ClaudeCodeSend<cr>", desc = "Send to Claude" },
|
["<C-a>"] = { "<cmd>AvanteAsk<cr>", desc = "Ask Avante with selection" },
|
||||||
|
["<C-a>e"] = { "<cmd>AvanteEdit<cr>", desc = "Edit selection with Avante" },
|
||||||
|
["<C-a>r"] = { "<cmd>AvanteReplace<cr>", desc = "Replace with Avante" },
|
||||||
["D"] = {
|
["D"] = {
|
||||||
function()
|
function()
|
||||||
-- Yank the visual selection to register v
|
-- Yank the visual selection to register v
|
||||||
@@ -716,7 +667,7 @@ return {
|
|||||||
["<C-t><C-t>"] = { terminals.mk_toggle, desc = "Taskfile Toggle" },
|
["<C-t><C-t>"] = { terminals.mk_toggle, desc = "Taskfile Toggle" },
|
||||||
["<C-e>"] = { "<Cmd>Neotree toggle<CR>", desc = "Open Explorer" },
|
["<C-e>"] = { "<Cmd>Neotree toggle<CR>", desc = "Open Explorer" },
|
||||||
-- Paste from system clipboard
|
-- Paste from system clipboard
|
||||||
["<C-p>"] = { "<cmd>ClaudeCodePaste<cr>", desc = "Paste from system clipboard" },
|
["<C-p>"] = { function() vim.cmd('normal! "+p') end, desc = "Paste from system clipboard" },
|
||||||
["<C-b>f"] = {
|
["<C-b>f"] = {
|
||||||
function() require("snacks").picker.buffers() end,
|
function() require("snacks").picker.buffers() end,
|
||||||
desc = "Find buffers",
|
desc = "Find buffers",
|
||||||
|
|||||||
@@ -0,0 +1,121 @@
|
|||||||
|
--- Avante.nvim - AI pair programming assistant
|
||||||
|
--- @module plugins.avante
|
||||||
|
return {
|
||||||
|
"yetone/avante.nvim",
|
||||||
|
-- if you want to build from source then do `make BUILD_FROM_SOURCE=true`
|
||||||
|
-- ⚠️ must add this setting! ! !
|
||||||
|
build = vim.fn.has("win32") ~= 0
|
||||||
|
and "powershell -ExecutionPolicy Bypass -File Build.ps1 -BuildFromSource false"
|
||||||
|
or "make",
|
||||||
|
event = "VeryLazy",
|
||||||
|
version = false, -- Never set this value to "*"! Never!
|
||||||
|
---@module 'avante'
|
||||||
|
---@type avante.Config
|
||||||
|
opts = {
|
||||||
|
-- add any opts here
|
||||||
|
-- this file can contain specific instructions for your project
|
||||||
|
instructions_file = "avante.md",
|
||||||
|
-- for example
|
||||||
|
provider = "claude",
|
||||||
|
providers = {
|
||||||
|
claude = {
|
||||||
|
endpoint = "https://api.anthropic.com",
|
||||||
|
model = "claude-sonnet-4-20250514",
|
||||||
|
timeout = 30000, -- Timeout in milliseconds
|
||||||
|
extra_request_body = {
|
||||||
|
temperature = 0.75,
|
||||||
|
max_tokens = 20480,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
moonshot = {
|
||||||
|
endpoint = "https://api.moonshot.ai/v1",
|
||||||
|
model = "kimi-k2-0711-preview",
|
||||||
|
timeout = 30000, -- Timeout in milliseconds
|
||||||
|
extra_request_body = {
|
||||||
|
temperature = 0.75,
|
||||||
|
max_tokens = 32768,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
-- Keybindings for navigation within Avante windows
|
||||||
|
mappings = {
|
||||||
|
--- @class AvanteConflictMappings
|
||||||
|
diff = {
|
||||||
|
ours = "co",
|
||||||
|
theirs = "ct",
|
||||||
|
all_theirs = "ca",
|
||||||
|
both = "cb",
|
||||||
|
cursor = "cc",
|
||||||
|
next = "]x",
|
||||||
|
prev = "[x",
|
||||||
|
},
|
||||||
|
suggestion = {
|
||||||
|
accept = "<M-l>",
|
||||||
|
next = "<M-]>",
|
||||||
|
prev = "<M-[>",
|
||||||
|
dismiss = "<C-]>",
|
||||||
|
},
|
||||||
|
jump = {
|
||||||
|
next = "]]",
|
||||||
|
prev = "[[",
|
||||||
|
},
|
||||||
|
submit = {
|
||||||
|
normal = "<CR>",
|
||||||
|
insert = "<C-s>",
|
||||||
|
},
|
||||||
|
sidebar = {
|
||||||
|
apply_all = "A",
|
||||||
|
apply_cursor = "a",
|
||||||
|
switch_windows = "<Tab>",
|
||||||
|
reverse_switch_windows = "<S-Tab>",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
windows = {
|
||||||
|
position = "right", -- the position of the sidebar
|
||||||
|
wrap = true, -- similar to vim.o.wrap
|
||||||
|
width = 30, -- default % based on available width
|
||||||
|
sidebar_header = {
|
||||||
|
align = "center", -- left, center, right for title
|
||||||
|
rounded = true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
dependencies = {
|
||||||
|
"nvim-lua/plenary.nvim",
|
||||||
|
"MunifTanjim/nui.nvim",
|
||||||
|
--- The below dependencies are optional,
|
||||||
|
"nvim-mini/mini.pick", -- for file_selector provider mini.pick
|
||||||
|
"nvim-telescope/telescope.nvim", -- for file_selector provider telescope
|
||||||
|
"hrsh7th/nvim-cmp", -- autocompletion for avante commands and mentions
|
||||||
|
"ibhagwan/fzf-lua", -- for file_selector provider fzf
|
||||||
|
"stevearc/dressing.nvim", -- for input provider dressing
|
||||||
|
"folke/snacks.nvim", -- for input provider snacks
|
||||||
|
"nvim-tree/nvim-web-devicons", -- or echasnovski/mini.icons
|
||||||
|
"zbirenbaum/copilot.lua", -- for providers='copilot'
|
||||||
|
{
|
||||||
|
-- support for image pasting
|
||||||
|
"HakonHarnes/img-clip.nvim",
|
||||||
|
event = "VeryLazy",
|
||||||
|
opts = {
|
||||||
|
-- recommended settings
|
||||||
|
default = {
|
||||||
|
embed_image_as_base64 = false,
|
||||||
|
prompt_for_file_name = false,
|
||||||
|
drag_and_drop = {
|
||||||
|
insert_mode = true,
|
||||||
|
},
|
||||||
|
-- required for Windows users
|
||||||
|
use_absolute_path = true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
-- Make sure to set this up properly if you have lazy=true
|
||||||
|
"MeanderingProgrammer/render-markdown.nvim",
|
||||||
|
opts = {
|
||||||
|
file_types = { "markdown", "Avante" },
|
||||||
|
},
|
||||||
|
ft = { "markdown", "Avante" },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
Reference in new issue
Block a user