added more capabilities to my nvim setup

This commit is contained in:
2026-01-19 18:45:00 -07:00
parent aa84c4997e
commit a9b956e141
18 changed files with 312 additions and 44 deletions

View File

@@ -44,7 +44,7 @@ return {
opts = {
-- Default provider (switch with :AvanteProvider command)
-- Options: "claude", "openai", "azure", "gemini", "copilot", "cohere"
provider = "claude",
provider = "openai",
-- Provider configurations
providers = {
@@ -59,7 +59,7 @@ return {
},
openai = {
endpoint = "https://api.openai.com/v1",
model = "gpt-4o",
model = "gpt-4o-mini",
timeout = 30000,
extra_request_body = {
temperature = 0.75,
@@ -193,4 +193,21 @@ return {
},
},
},
{
"zbirenbaum/copilot.lua",
cmd = "Copilot",
event = "InsertEnter",
opts = {
suggestion = {
enabled = true,
auto_trigger = true,
keymap = {
accept = "<C-l>",
next = "<C-n>",
prev = "<C-p>",
},
},
panel = { enabled = false },
},
}
}

View File

@@ -63,24 +63,24 @@ return {
keys = {
-- Debug keymaps
{ "<leader>dB", function() require("dap").set_breakpoint(vim.fn.input("Breakpoint condition: ")) end, desc = "Breakpoint Condition" },
{ "<leader>db", function() require("dap").toggle_breakpoint() end, desc = "Toggle Breakpoint" },
{ "<leader>dc", function() require("dap").continue() end, desc = "Continue" },
{ "<leader>dC", function() require("dap").run_to_cursor() end, desc = "Run to Cursor" },
{ "<leader>dg", function() require("dap").goto_() end, desc = "Go to Line (No Execute)" },
{ "<leader>di", function() require("dap").step_into() end, desc = "Step Into" },
{ "<leader>dj", function() require("dap").down() end, desc = "Down" },
{ "<leader>dk", function() require("dap").up() end, desc = "Up" },
{ "<leader>dl", function() require("dap").run_last() end, desc = "Run Last" },
{ "<leader>do", function() require("dap").step_out() end, desc = "Step Out" },
{ "<leader>dO", function() require("dap").step_over() end, desc = "Step Over" },
{ "<leader>dp", function() require("dap").pause() end, desc = "Pause" },
{ "<leader>dr", function() require("dap").repl.toggle() end, desc = "Toggle REPL" },
{ "<leader>ds", function() require("dap").session() end, desc = "Session" },
{ "<leader>dt", function() require("dap").terminate() end, desc = "Terminate" },
{ "<leader>dw", function() require("dap.ui.widgets").hover() end, desc = "Widgets" },
{ "<leader>db", function() require("dap").toggle_breakpoint() end, desc = "Toggle Breakpoint" },
{ "<leader>dc", function() require("dap").continue() end, desc = "Continue" },
{ "<leader>dC", function() require("dap").run_to_cursor() end, desc = "Run to Cursor" },
{ "<leader>dg", function() require("dap").goto_() end, desc = "Go to Line (No Execute)" },
{ "<leader>di", function() require("dap").step_into() end, desc = "Step Into" },
{ "<leader>dj", function() require("dap").down() end, desc = "Down" },
{ "<leader>dk", function() require("dap").up() end, desc = "Up" },
{ "<leader>dl", function() require("dap").run_last() end, desc = "Run Last" },
{ "<leader>do", function() require("dap").step_out() end, desc = "Step Out" },
{ "<leader>dO", function() require("dap").step_over() end, desc = "Step Over" },
{ "<leader>dp", function() require("dap").pause() end, desc = "Pause" },
{ "<leader>dr", function() require("dap").repl.toggle() end, desc = "Toggle REPL" },
{ "<leader>ds", function() require("dap").session() end, desc = "Session" },
{ "<leader>dt", function() require("dap").terminate() end, desc = "Terminate" },
{ "<leader>dw", function() require("dap.ui.widgets").hover() end, desc = "Widgets" },
-- Go-specific
{ "<leader>dT", function() require("dap-go").debug_test() end, desc = "Debug Go Test" },
{ "<leader>dL", function() require("dap-go").debug_last_test() end, desc = "Debug Last Go Test" },
{ "<leader>dT", function() require("dap-go").debug_test() end, desc = "Debug Go Test" },
{ "<leader>dL", function() require("dap-go").debug_last_test() end, desc = "Debug Last Go Test" },
},
},
@@ -93,23 +93,23 @@ return {
},
keys = {
{ "<leader>du", function() require("dapui").toggle({}) end, desc = "Dap UI" },
{ "<leader>de", function() require("dapui").eval() end, desc = "Eval", mode = { "n", "v" } },
{ "<leader>de", function() require("dapui").eval() end, desc = "Eval", mode = { "n", "v" } },
},
opts = {
layouts = {
{
elements = {
{ id = "scopes", size = 0.25 },
{ id = "scopes", size = 0.25 },
{ id = "breakpoints", size = 0.25 },
{ id = "stacks", size = 0.25 },
{ id = "watches", size = 0.25 },
{ id = "stacks", size = 0.25 },
{ id = "watches", size = 0.25 },
},
position = "left",
size = 40,
},
{
elements = {
{ id = "repl", size = 0.5 },
{ id = "repl", size = 0.5 },
{ id = "console", size = 0.5 },
},
position = "bottom",
@@ -135,7 +135,16 @@ return {
end
end,
},
{
"jay-babu/mason-nvim-dap.nvim",
opts = {
ensure_installed = {
"go",
"python",
"node2",
},
},
},
-- Virtual text for debugging
{
"theHamsta/nvim-dap-virtual-text",

View File

@@ -0,0 +1,8 @@
return {
{
"folke/trouble.nvim",
opts = {
use_diagnostic_signs = true,
},
},
}

View File

@@ -0,0 +1,10 @@
return {
{
"jamestthompson3/nvim-remote-containers",
cmd = {
"AttachToContainer",
"BuildImage",
"StartImage",
},
},
}

View File

@@ -2,6 +2,27 @@
-- Custom keybindings for file explorer (snacks.nvim built into LazyVim)
return {
{
"nvim-telescope/telescope.nvim",
opts = {
defaults = {
hidden = true,
file_ignore_patterns = {},
},
pickers = {
find_files = {
hidden = true,
no_ignore = true,
no_ignore_parent = true,
},
live_grep = {
additional_args = function()
return { "--hidden", "--no-ignore" }
end,
},
},
},
},
-- Configure snacks.nvim explorer (already included in LazyVim)
{
"folke/snacks.nvim",
@@ -39,12 +60,12 @@ return {
},
keys = {
-- Ctrl+Shift+e - Toggle explorer
{ "<C-S-e>", function() Snacks.explorer() end, desc = "Toggle Explorer" },
{ "<C-S-e>", function() Snacks.explorer() end, desc = "Toggle Explorer" },
-- Alternative binding if terminal doesn't handle Ctrl+Shift
{ "<leader>fe", function() Snacks.explorer() end, desc = "File Explorer" },
{ "<leader>fe", function() Snacks.explorer() end, desc = "File Explorer" },
-- Lazygit
{ "<leader>gg", function() Snacks.lazygit() end, desc = "Lazygit" },
{ "<leader>gl", function() Snacks.lazygit.log() end, desc = "Lazygit Log" },
{ "<leader>gg", function() Snacks.lazygit() end, desc = "Lazygit" },
{ "<leader>gl", function() Snacks.lazygit.log() end, desc = "Lazygit Log" },
{ "<leader>gf", function() Snacks.lazygit.log_file() end, desc = "Lazygit File History" },
},
},

View File

@@ -0,0 +1,7 @@
return {
{
"andythigpen/nvim-coverage",
dependencies = "nvim-lua/plenary.nvim",
config = true,
},
}

View File

@@ -0,0 +1,10 @@
return {
{
"davecheney/profile",
ft = "go",
},
{
"rbong/vim-flog",
cmd = { "Flog" },
},
}

40
lua/plugins/lsp-roots.lua Normal file
View File

@@ -0,0 +1,40 @@
return {
{
"neovim/nvim-lspconfig",
opts = {
servers = {
tsserver = {
root_dir = function(fname)
return require("lspconfig.util").root_pattern(
"pnpm-workspace.yaml",
"nx.json",
"turbo.json",
"package.json",
".git"
)(fname)
end,
},
gopls = {
root_dir = function(fname)
return require("lspconfig.util").root_pattern(
"go.work",
"go.mod",
".git"
)(fname)
end,
},
pyright = {
root_dir = function(fname)
return require("lspconfig.util").root_pattern(
"pyproject.toml",
"setup.py",
".git"
)(fname)
end,
},
},
},
},
}

View File

@@ -0,0 +1,6 @@
return {
{
"nvim-neotest/neotest-python",
dependencies = { "nvim-neotest/neotest" },
},
}

19
lua/plugins/neotest.lua Normal file
View File

@@ -0,0 +1,19 @@
return {
{
"nvim-neotest/neotest",
dependencies = {
"nvim-neotest/nvim-nio",
"nvim-lua/plenary.nvim",
"antoinemadec/FixCursorHold.nvim",
"nvim-neotest/neotest-go",
},
opts = {
adapters = {
require("neotest-go"),
require("neotest-python")({
dap = { justMyCode = false },
}),
},
},
},
}

8
lua/plugins/overseer.lua Normal file
View File

@@ -0,0 +1,8 @@
return {
{
"stevearc/overseer.nvim",
opts = {
templates = { "builtin", "user.go", "user.npm" }
},
},
}

View File

@@ -0,0 +1,15 @@
return {
{
"nvim-treesitter/nvim-treesitter",
opts = {
highlight = {
enable = true,
disable = function(_, buf)
local max_filesize = 200 * 1024 -- 200 KB
local ok, stats = pcall(vim.loop.fs_stat, vim.api.nvim_buf_get_name(buf))
return ok and stats and stats.size > max_filesize
end,
},
},
}
}

10
lua/plugins/symbols.lua Normal file
View File

@@ -0,0 +1,10 @@
return {
{
"stevearc/aerial.nvim",
opts = {
layout = {
max_width = 40,
},
},
},
}

20
lua/plugins/theme.lua Normal file
View File

@@ -0,0 +1,20 @@
return {
{
"catppuccin/nvim",
name = "catppuccin",
priority = 1000,
opts = {
integrations = {
treesitter = true,
cmp = true,
gitsigns = true,
neotest = true,
dap = true,
},
},
config = function(_, opts)
require("catppuccin").setup(opts)
vim.cmd.colorscheme("catppuccin-mocha")
end,
},
}