add beacon
This commit is contained in:
parent
0a97211f75
commit
1c89b79802
6 changed files with 209 additions and 141 deletions
17
flake.lock
17
flake.lock
|
|
@ -1,5 +1,21 @@
|
|||
{
|
||||
"nodes": {
|
||||
"beacon-nvim": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1719294964,
|
||||
"narHash": "sha256-x/79mRkwwT+sNrnf8QqocsaQtM+Rx6BUvVj5Nnv5JDY=",
|
||||
"owner": "DanilaMihailov",
|
||||
"repo": "beacon.nvim",
|
||||
"rev": "098ff96c33874339d5e61656f3050dbd587d6bd5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "DanilaMihailov",
|
||||
"repo": "beacon.nvim",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"blink-pairs": {
|
||||
"inputs": {
|
||||
"fenix": "fenix",
|
||||
|
|
@ -401,6 +417,7 @@
|
|||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"beacon-nvim": "beacon-nvim",
|
||||
"blink-pairs": "blink-pairs",
|
||||
"cmp-diag-codes": "cmp-diag-codes",
|
||||
"diaglist-nvim": "diaglist-nvim",
|
||||
|
|
|
|||
|
|
@ -34,6 +34,11 @@
|
|||
flake = false;
|
||||
};
|
||||
|
||||
beacon-nvim = {
|
||||
url = "github:DanilaMihailov/beacon.nvim";
|
||||
flake = false;
|
||||
};
|
||||
|
||||
stay-in-place-nvim = {
|
||||
url = "github:gbprod/stay-in-place.nvim";
|
||||
flake = false;
|
||||
|
|
|
|||
36
nix/ui.nix
36
nix/ui.nix
|
|
@ -1,4 +1,7 @@
|
|||
{ inputs, pkgs, mkNvimPlugin, ... }:
|
||||
let
|
||||
beacon-nvim = (mkNvimPlugin inputs.beacon-nvim "beacon.nvim");
|
||||
in
|
||||
with pkgs.vimPlugins; [
|
||||
{
|
||||
plugin = nui-nvim;
|
||||
|
|
@ -39,4 +42,37 @@ with pkgs.vimPlugins; [
|
|||
}
|
||||
|
||||
dropbar-nvim
|
||||
{
|
||||
plugin = beacon-nvim;
|
||||
optional = true;
|
||||
type = "lua";
|
||||
config = /*lua*/''
|
||||
if not vim.g.neovide then
|
||||
lze.load({
|
||||
"${beacon-nvim.pname}",
|
||||
after = function()
|
||||
require("beacon").setup {
|
||||
enabled = function()
|
||||
local line_count = vim.api.nvim_buf_line_count(vim.api.nvim_get_current_buf())
|
||||
if line_count > 1000 then
|
||||
return false
|
||||
end
|
||||
return true
|
||||
end, --- (boolean | fun():boolean) check if enabled
|
||||
speed = 2, --- integer speed at wich animation goes
|
||||
width = 20, --- integer width of the beacon window
|
||||
winblend = 70, --- integer starting transparency of beacon window :h winblend
|
||||
fps = 60, --- integer how smooth the animation going to be
|
||||
min_jump = 10, --- integer what is considered a jump. Number of lines
|
||||
cursor_events = { "CursorMoved" }, -- table<string> what events trigger check for cursor moves
|
||||
window_events = { "WinEnter", "FocusGained" }, -- table<string> what events trigger cursor highlight
|
||||
highlight = { bg = "white", ctermbg = 15 }, -- vim.api.keyset.highlight table passed to vim.api.nvim_set_hl
|
||||
}
|
||||
end,
|
||||
event = { "BufAdd" },
|
||||
})
|
||||
end
|
||||
'';
|
||||
}
|
||||
|
||||
]
|
||||
|
|
|
|||
|
|
@ -5,6 +5,147 @@ vim.g.did_load_ai_plugin = true
|
|||
|
||||
local g = vim.g
|
||||
|
||||
local opts = {
|
||||
mode = "agentic",
|
||||
debug = false,
|
||||
providers = {},
|
||||
web_search_engine = {},
|
||||
behaviour = {
|
||||
auto_set_keymaps = true,
|
||||
auto_set_highlight_group = true,
|
||||
|
||||
auto_focus_sidebar = true,
|
||||
|
||||
auto_suggestions = false,
|
||||
auto_suggestions_respect_ignore = true,
|
||||
auto_apply_diff_after_generation = false,
|
||||
jump_result_buffer_on_finish = false,
|
||||
support_paste_from_clipboard = true,
|
||||
minimize_diff = true,
|
||||
enable_token_counting = true,
|
||||
use_cwd_as_project_root = true,
|
||||
auto_focus_on_diff_view = true,
|
||||
},
|
||||
|
||||
selection = {
|
||||
enabled = false,
|
||||
hint_display = "delayed",
|
||||
},
|
||||
|
||||
rag_service = { -- RAG Service configuration
|
||||
enabled = false,
|
||||
host_mount = os.getenv("HOME"),
|
||||
runner = "nix", -- Runner for the RAG service (can use docker or nix)
|
||||
docker_extra_args = "",
|
||||
},
|
||||
|
||||
mappings = {
|
||||
suggestion = {
|
||||
accept = "<Tab>",
|
||||
next = "<M-]>",
|
||||
prev = "<M-[>",
|
||||
dismiss = "<C-]>",
|
||||
},
|
||||
diff = {
|
||||
ours = "gH",
|
||||
theirs = "gh",
|
||||
all_theirs = "gA",
|
||||
both = "gB",
|
||||
cursor = "gc",
|
||||
next = "]x",
|
||||
prev = "[x",
|
||||
},
|
||||
jump = {
|
||||
next = "]]",
|
||||
prev = "[[",
|
||||
},
|
||||
submit = {
|
||||
normal = "<CR>",
|
||||
insert = "<C-s>",
|
||||
},
|
||||
cancel = {
|
||||
normal = { "<C-c>", "<Esc>", "q" },
|
||||
insert = { "<C-c>" },
|
||||
},
|
||||
ask = "<leader>aa",
|
||||
new_ask = "<leader>an",
|
||||
zen_mode = "<leader>az",
|
||||
edit = "<leader>ae",
|
||||
refresh = "<leader>ar",
|
||||
focus = "<leader>af",
|
||||
stop = "<leader>aS",
|
||||
toggle = {
|
||||
default = "<leader>at",
|
||||
debug = "<leader>ad",
|
||||
selection = "<leader>aC",
|
||||
suggestion = "<leader>as",
|
||||
repomap = "<leader>aR",
|
||||
},
|
||||
sidebar = {
|
||||
expand_tool_use = "<S-Tab>",
|
||||
next_prompt = "<up>",
|
||||
prev_prompt = "<down>",
|
||||
apply_all = "A",
|
||||
apply_cursor = "a",
|
||||
retry_user_request = "r",
|
||||
edit_user_request = "e",
|
||||
switch_windows = "<Tab>",
|
||||
reverse_switch_windows = "<S-Tab>",
|
||||
toggle_code_window = "x",
|
||||
remove_file = "d",
|
||||
add_file = "@",
|
||||
close = { "q" },
|
||||
---@alias AvanteCloseFromInput { normal: string | nil, insert: string | nil }
|
||||
---@type AvanteCloseFromInput | nil
|
||||
close_from_input = nil, -- e.g., { normal = "<Esc>", insert = "<C-d>" }
|
||||
---@alias AvanteToggleCodeWindowFromInput { normal: string | nil, insert: string | nil }
|
||||
---@type AvanteToggleCodeWindowFromInput | nil
|
||||
toggle_code_window_from_input = nil, -- e.g., { normal = "x", insert = "<C-;>" }
|
||||
},
|
||||
files = {
|
||||
add_current = "<leader>ac", -- Add current buffer to selected files
|
||||
add_all_buffers = "<leader>aB", -- Add all buffer files to selected files
|
||||
},
|
||||
select_model = "<leader>a?", -- Select model command
|
||||
select_history = "<leader>ah", -- Select history command
|
||||
confirm = {
|
||||
focus_window = "<C-w>f",
|
||||
code = "c",
|
||||
resp = "r",
|
||||
input = "i",
|
||||
},
|
||||
},
|
||||
windows = {
|
||||
---@alias AvantePosition "right" | "left" | "top" | "bottom" | "smart"
|
||||
---@type AvantePosition
|
||||
position = "smart",
|
||||
edit = {
|
||||
start_insert = false, -- Start insert mode when opening the edit window
|
||||
},
|
||||
},
|
||||
|
||||
repo_map = {
|
||||
ignore_patterns = {
|
||||
"%.git",
|
||||
"%.worktree",
|
||||
"__pycache__",
|
||||
"node_modules",
|
||||
"target",
|
||||
"build",
|
||||
"dist",
|
||||
"BUILD",
|
||||
"vendor%.",
|
||||
"%.min%.",
|
||||
".devenv%.",
|
||||
".direnv%.",
|
||||
}, -- ignore files matching these
|
||||
negate_patterns = {}, -- negate ignore files matching these.
|
||||
},
|
||||
|
||||
selector = {
|
||||
provider = "fzf_lua",
|
||||
},
|
||||
}
|
||||
-- ollama setup
|
||||
g.ollama_host = vim.env.OLLAMA_HOST or "localhost"
|
||||
g.ollama_port = vim.env.OLLAMA_PORT or "11434"
|
||||
|
|
@ -44,6 +185,10 @@ local ollama_modify_config = function(cfg)
|
|||
require("avante").setup(cfg)
|
||||
end
|
||||
|
||||
vim.api.nvim_create_user_command("AvanteOllama", function(_)
|
||||
ollama_modify_config(opts)
|
||||
end, {})
|
||||
|
||||
-- airun setup
|
||||
g.airun_url = vim.env.AI_RUN_URL
|
||||
g.airun_endpoint = string.format("%s/v1", g.airun_url)
|
||||
|
|
@ -102,139 +247,15 @@ local airun_modify_config = function(cfg)
|
|||
require("avante").setup(cfg)
|
||||
end
|
||||
|
||||
vim.api.nvim_create_user_command("AvanteAIRun", function(_)
|
||||
airun_modify_config(opts)
|
||||
end, {})
|
||||
|
||||
lze.load({
|
||||
"avante.nvim",
|
||||
event = vim.g.post_load_events,
|
||||
on_require = { "avante", "avante_lib", "avante.api" },
|
||||
after = function()
|
||||
local opts = {
|
||||
mode = "agentic",
|
||||
debug = false,
|
||||
providers = {},
|
||||
web_search_engine = {},
|
||||
behaviour = {
|
||||
auto_set_keymaps = true,
|
||||
auto_set_highlight_group = true,
|
||||
|
||||
auto_focus_sidebar = true,
|
||||
|
||||
auto_suggestions = false,
|
||||
auto_suggestions_respect_ignore = true,
|
||||
auto_apply_diff_after_generation = false,
|
||||
jump_result_buffer_on_finish = false,
|
||||
support_paste_from_clipboard = true,
|
||||
minimize_diff = true,
|
||||
enable_token_counting = true,
|
||||
use_cwd_as_project_root = true,
|
||||
auto_focus_on_diff_view = true,
|
||||
},
|
||||
|
||||
rag_service = { -- RAG Service configuration
|
||||
enabled = false,
|
||||
host_mount = os.getenv("HOME"),
|
||||
runner = "nix", -- Runner for the RAG service (can use docker or nix)
|
||||
docker_extra_args = "",
|
||||
},
|
||||
|
||||
mappings = {
|
||||
suggestion = {
|
||||
accept = "<Tab>",
|
||||
next = "<M-]>",
|
||||
prev = "<M-[>",
|
||||
dismiss = "<C-]>",
|
||||
},
|
||||
diff = {
|
||||
ours = "gH",
|
||||
theirs = "gh",
|
||||
all_theirs = "gA",
|
||||
both = "gB",
|
||||
cursor = "gc",
|
||||
next = "]x",
|
||||
prev = "[x",
|
||||
},
|
||||
jump = {
|
||||
next = "]]",
|
||||
prev = "[[",
|
||||
},
|
||||
submit = {
|
||||
normal = "<CR>",
|
||||
insert = "<C-s>",
|
||||
},
|
||||
cancel = {
|
||||
normal = { "<C-c>", "<Esc>", "q" },
|
||||
insert = { "<C-c>" },
|
||||
},
|
||||
ask = "<leader>aa",
|
||||
new_ask = "<leader>an",
|
||||
zen_mode = "<leader>az",
|
||||
edit = "<leader>ae",
|
||||
refresh = "<leader>ar",
|
||||
focus = "<leader>af",
|
||||
stop = "<leader>aS",
|
||||
toggle = {
|
||||
default = "<leader>at",
|
||||
debug = "<leader>ad",
|
||||
selection = "<leader>aC",
|
||||
suggestion = "<leader>as",
|
||||
repomap = "<leader>aR",
|
||||
},
|
||||
sidebar = {
|
||||
expand_tool_use = "<S-Tab>",
|
||||
next_prompt = "<up>",
|
||||
prev_prompt = "<down>",
|
||||
apply_all = "A",
|
||||
apply_cursor = "a",
|
||||
retry_user_request = "r",
|
||||
edit_user_request = "e",
|
||||
switch_windows = "<c-n>",
|
||||
toggle_code_window = "x",
|
||||
remove_file = "d",
|
||||
add_file = "@",
|
||||
close = { "q" },
|
||||
---@alias AvanteCloseFromInput { normal: string | nil, insert: string | nil }
|
||||
---@type AvanteCloseFromInput | nil
|
||||
close_from_input = nil, -- e.g., { normal = "<Esc>", insert = "<C-d>" }
|
||||
---@alias AvanteToggleCodeWindowFromInput { normal: string | nil, insert: string | nil }
|
||||
---@type AvanteToggleCodeWindowFromInput | nil
|
||||
toggle_code_window_from_input = nil, -- e.g., { normal = "x", insert = "<C-;>" }
|
||||
},
|
||||
files = {
|
||||
add_current = "<leader>ac", -- Add current buffer to selected files
|
||||
add_all_buffers = "<leader>aB", -- Add all buffer files to selected files
|
||||
},
|
||||
select_model = "<leader>a?", -- Select model command
|
||||
select_history = "<leader>ah", -- Select history command
|
||||
confirm = {
|
||||
focus_window = "<C-w>f",
|
||||
code = "c",
|
||||
resp = "r",
|
||||
input = "i",
|
||||
},
|
||||
},
|
||||
|
||||
repo_map = {
|
||||
ignore_patterns = {
|
||||
"%.git",
|
||||
"%.worktree",
|
||||
"__pycache__",
|
||||
"node_modules",
|
||||
"target",
|
||||
"build",
|
||||
"dist",
|
||||
"BUILD",
|
||||
"vendor%.",
|
||||
"%.min%.",
|
||||
".devenv%.",
|
||||
".direnv%.",
|
||||
}, -- ignore files matching these
|
||||
negate_patterns = {}, -- negate ignore files matching these.
|
||||
},
|
||||
|
||||
selector = {
|
||||
provider = "fzf_lua",
|
||||
},
|
||||
}
|
||||
|
||||
require("avante_lib").load()
|
||||
airun_modify_config(opts)
|
||||
end,
|
||||
|
|
|
|||
|
|
@ -68,15 +68,3 @@ end, {})
|
|||
vim.api.nvim_create_user_command("UnicodeUndoEscape", function(_)
|
||||
vim.cmd([[:%s/\\u\(\x\{4\}\)/\=nr2char('0x'.submatch(1),1)/g]])
|
||||
end, {})
|
||||
|
||||
vim.api.nvim_create_user_command("DevenvUP", function()
|
||||
local term = require("terminal")
|
||||
local bufnr = term.open("devenv up", nil)
|
||||
vim.keymap.set("t", "<c-\\><c-\\>", [[<C-\><C-n>^]], { buffer = bufnr })
|
||||
vim.keymap.set("t", "<c-\\><c-n>", [[<C-\><C-n>^]], { buffer = bufnr })
|
||||
end, {})
|
||||
|
||||
vim.api.nvim_create_user_command("DevenvTest", function()
|
||||
local term = require("terminal")
|
||||
term.open("devenv test", "vsplit")
|
||||
end, {})
|
||||
|
|
|
|||
|
|
@ -19,12 +19,13 @@ vim.keymap.set({ "n" }, { "<leader>q", "<space>q" }, ":q<cr>", { desc = "Quit",
|
|||
|
||||
vim.keymap.set({ "n", "v" }, "<C-d>", "10jzz")
|
||||
vim.keymap.set({ "n", "v" }, "<C-u>", "10kzz")
|
||||
vim.keymap.set({ "n", "v" }, "<C-e>", "<C-u>")
|
||||
vim.keymap.set({ "n" }, "<C-w>>", "10<C-w>>")
|
||||
vim.keymap.set({ "n" }, "<C-w><", "10<C-w><")
|
||||
vim.keymap.set({ "n" }, "<C-w>+", "5<C-w>+")
|
||||
vim.keymap.set({ "n" }, "<C-w>-", "5<C-w>-")
|
||||
|
||||
vim.keymap.set({ 'n' }, 'o', 'o<Esc>', { desc = 'Add line under' })
|
||||
vim.keymap.set({ 'n' }, 'O', 'O<Esc>', { desc = 'Add line prev' })
|
||||
vim.keymap.set({ "v" }, "p", "pgvy", { desc = "Disable yank on paste" })
|
||||
|
||||
vim.keymap.set({ "n" }, { "<leader>w", "<leader>'" }, ":w<CR>", { silent = true, desc = "normal mode: save" })
|
||||
|
|
|
|||
Loading…
Reference in a new issue