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 {
|
||||
"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
|
||||
opts = {
|
||||
|
||||
@@ -260,6 +204,11 @@ return {
|
||||
["K"] = { function() vim.diagnostic.goto_prev() end, desc = "Previous diagnostic" },
|
||||
["L"] = { "<Cmd>BufferLineCycleNext<CR>", desc = "Next 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-m>"] = { "<Cmd>OverseerRun<CR>", desc = "Run Overseer" },
|
||||
["<leader><leader>"] = {
|
||||
@@ -564,16 +513,16 @@ return {
|
||||
desc = "Find Service files",
|
||||
},
|
||||
["<C-j><C-j>"] = { function() terminals.scratch_toggle() end, desc = "Open Scratch Terminal" },
|
||||
-- AI/Assistant mappings (Claude Code)
|
||||
["<C-a>"] = { nil, desc = "AI/Claude Code" },
|
||||
["<C-a><C-a>"] = { "<cmd>ClaudeCode<cr>", desc = "Toggle Claude" },
|
||||
["<C-a>f"] = { "<cmd>ClaudeCodeFocus<cr>", desc = "Focus Claude" },
|
||||
["<C-a>C"] = { "<cmd>ClaudeCode --resume<cr>", desc = "Resume Claude" },
|
||||
["<C-a>c"] = { "<cmd>ClaudeCode --continue<cr>", desc = "Continue Claude" },
|
||||
["<C-a>m"] = { "<cmd>ClaudeCodeSelectModel<cr>", desc = "Select Claude model" },
|
||||
["<C-a>a"] = { "<cmd>ClaudeCodeAdd %<cr>", desc = "Add current buffer" },
|
||||
["<C-y>"] = { "<cmd>ClaudeCodeDiffAccept<cr>", desc = "Accept diff" },
|
||||
["<C-n>"] = { "<cmd>ClaudeCodeDiffDeny<cr>", desc = "Deny diff" },
|
||||
-- AI/Assistant mappings (Avante)
|
||||
["<C-a>"] = { nil, desc = "Avante AI" },
|
||||
["<C-a><C-a>"] = { "<cmd>AvanteToggle<cr>", desc = "Toggle Avante" },
|
||||
["<C-a>a"] = { "<cmd>AvanteAsk<cr>", desc = "Ask Avante" },
|
||||
["<C-a>e"] = { "<cmd>AvanteEdit<cr>", desc = "Edit with Avante" },
|
||||
["<C-a>r"] = { "<cmd>AvanteRefresh<cr>", desc = "Refresh Avante" },
|
||||
["<C-a>f"] = { "<cmd>AvanteFocus<cr>", desc = "Focus Avante" },
|
||||
["<C-a>c"] = { "<cmd>AvanteChat<cr>", desc = "Avante Chat" },
|
||||
["<C-a>s"] = { "<cmd>AvanteSwitchProvider<cr>", desc = "Switch Provider" },
|
||||
["<C-a>C"] = { "<cmd>AvanteClear<cr>", desc = "Clear Avante" },
|
||||
-- UI Toggles with Snacks
|
||||
["<leader>u"] = { desc = "UI Toggles" },
|
||||
["<leader>ud"] = {
|
||||
@@ -662,10 +611,12 @@ return {
|
||||
},
|
||||
v = {
|
||||
["<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-x>"] = { "<Cmd>w<CR><Cmd>bd<CR>", desc = "Save and close buffer" }, -- Added C-x for visual mode
|
||||
-- Claude Code visual mode
|
||||
["<C-a>"] = { "<cmd>ClaudeCodeSend<cr>", desc = "Send to Claude" },
|
||||
["<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" },
|
||||
-- Avante visual mode mappings
|
||||
["<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"] = {
|
||||
function()
|
||||
-- Yank the visual selection to register v
|
||||
@@ -716,7 +667,7 @@ return {
|
||||
["<C-t><C-t>"] = { terminals.mk_toggle, desc = "Taskfile Toggle" },
|
||||
["<C-e>"] = { "<Cmd>Neotree toggle<CR>", desc = "Open Explorer" },
|
||||
-- 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"] = {
|
||||
function() require("snacks").picker.buffers() end,
|
||||
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