fixes and removed unwanted stuff

This commit is contained in:
Blake Ridgway
2026-07-06 12:55:07 -05:00
parent f44ef8fc60
commit c2c7818d2b
8 changed files with 425 additions and 88 deletions

View File

@@ -2,5 +2,5 @@
email = blake.ridgway@ametrics.org email = blake.ridgway@ametrics.org
name = Blake Ridgway # optional set your name too name = Blake Ridgway # optional set your name too
[core] #[core]
sshCommand = ssh -i ~/.ssh/id_rsa_ametrics -o IdentitiesOnly=yes # sshCommand = ssh -i ~/.ssh/id_rsa_ametrics -o IdentitiesOnly=yes

View File

@@ -11,7 +11,7 @@ alias cpu='btop'
alias mem='btop' alias mem='btop'
# Get your current public IP # Get your current public IP
alias ip="curl -4 icanhazip.com" #alias ip="curl -4 icanhazip.com"
alias ip6="curl -6 icanhazip.com" alias ip6="curl -6 icanhazip.com"
# Git # Git

70
bashrc
View File

@@ -4,79 +4,59 @@ case $- in
*) return ;; *) return ;;
esac esac
# Set default user # ── Identity ───────────────────────────────────────────
DEFAULT_USER="$USER" DEFAULT_USER="$USER"
# Editor # ── Editor ─────────────────────────────────────────────
export EDITOR='nvim' export EDITOR='nvim'
# Environment variables # ── PATH additions ─────────────────────────────────────
export GOPATH="$HOME/go" export GOPATH="$HOME/go"
export PATH="$PATH:$GOPATH/bin:/usr/local/go/bin" export PATH="$PATH:$GOPATH/bin:/usr/local/go/bin"
# Local bin
export PATH="$PATH:$HOME/.local/bin" export PATH="$PATH:$HOME/.local/bin"
export PATH="$PATH:$HOME/.pulumi/bin"
export CPLUS_INCLUDE_PATH=/usr/local/include
# Node.js and NVM configuration # ── NVM ────────────────────────────────────────────────
export NVM_DIR="$HOME/.nvm" export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion" [ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion"
# Rust/Cargo # ── Rust/Cargo ─────────────────────────────────────────
[ -f "$HOME/.cargo/env" ] && source "$HOME/.cargo/env" [ -f "$HOME/.cargo/env" ] && . "$HOME/.cargo/env"
# SSH agent # ── SSH agent ──────────────────────────────────────────
if [ -z "$SSH_AGENT_PID" ]; then if [ -z "$SSH_AGENT_PID" ] || ! kill -0 "$SSH_AGENT_PID" 2>/dev/null; then
eval "$(ssh-agent -s)" eval "$(ssh-agent -s)"
ssh-add -A 2>/dev/null ssh-add 2>/dev/null
fi fi
# FZF (if installed) # ── Secrets (keep this file chmod 600) ─────────────────
[ -f ~/.fzf.bash ] && source ~/.fzf.bash [ -f "$HOME/.secrets" ] && . "$HOME/.secrets"
# Oh My Posh prompt # ── FZF ────────────────────────────────────────────────
[ -f ~/.fzf.bash ] && . ~/.fzf.bash
# ── Git completion ─────────────────────────────────────
[ -f /usr/share/bash-completion/completions/git ] \
&& . /usr/share/bash-completion/completions/git
# ── Oh My Posh ─────────────────────────────────────────
eval "$(oh-my-posh init bash --config ~/.config/oh-my-posh/theme.omp.json)" eval "$(oh-my-posh init bash --config ~/.config/oh-my-posh/theme.omp.json)"
# Bash completion for Git # ── Aliases ────────────────────────────────────────────
if [ -f /usr/share/bash-completion/completions/git ]; then [ -f "$HOME/dotfiles/aliases.bash" ] && . "$HOME/dotfiles/aliases.bash"
source /usr/share/bash-completion/completions/git
fi
# Custom aliases
if [ -f "$HOME/dotfiles/aliases.bash" ]; then
source "$HOME/dotfiles/aliases.bash"
fi
# Key timeout
export KEYTIMEOUT=1
# C++ include path
export CPLUS_INCLUDE_PATH=/usr/local/include
# ── work() helper ──────────────────────────────────────
work() { work() {
set +e set +e
local proj="$HOME/Drives/500GB/PycharmProjects/time_logix" local proj="$HOME/Drives/500GB/PycharmProjects/time_logix"
cd "$proj" || { echo "No such dir: $proj" >&2; return 1; } cd "$proj" || { echo "No such dir: $proj" >&2; return 1; }
[ -d venv ] || python3 -m venv venv || { echo "venv create failed" >&2; return 1; } [ -d venv ] || python3 -m venv venv || { echo "venv create failed" >&2; return 1; }
. venv/bin/activate . venv/bin/activate
trap 'deactivate 2>/dev/null || true' RETURN trap 'deactivate 2>/dev/null || true' RETURN
python main.py python main.py
local code=$? local code=$?
cd ~ || true cd ~ || true
[ $code -ne 0 ] && echo "main.py exited with code $code"
if [ $code -ne 0 ]; then
echo "main.py exited with code $code"
fi
} }
# add Pulumi to the PATH
export PATH=$PATH:/home/proc/.pulumi/bin
# deepseek
export DEEPSEEK_API_KEY="sk-d75aeba06fc546a88a7ff171b9bbc098"

85
bashrc.old Normal file
View File

@@ -0,0 +1,85 @@
# If not running interactively, don't do anything
case $- in
*i*) ;;
*) return ;;
esac
# Set default user
DEFAULT_USER="$USER"
# Editor
export EDITOR='nvim'
# Environment variables
export GOPATH="$HOME/go"
export PATH="$PATH:$GOPATH/bin:/usr/local/go/bin"
# Local bin
export PATH="$PATH:$HOME/.local/bin"
# Node.js and NVM configuration
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion"
# Rust/Cargo
[ -f "$HOME/.cargo/env" ] && source "$HOME/.cargo/env"
# SSH agent
if [ -z "$SSH_AGENT_PID" ]; then
eval "$(ssh-agent -s)"
ssh-add -A 2>/dev/null
fi
# FZF (if installed)
[ -f ~/.fzf.bash ] && source ~/.fzf.bash
# Oh My Posh prompt
eval "$(oh-my-posh init bash --config ~/.config/oh-my-posh/theme.omp.json)"
# Bash completion for Git
if [ -f /usr/share/bash-completion/completions/git ]; then
source /usr/share/bash-completion/completions/git
fi
# Custom aliases
if [ -f "$HOME/dotfiles/aliases.bash" ]; then
source "$HOME/dotfiles/aliases.bash"
fi
# Key timeout
export KEYTIMEOUT=1
# C++ include path
export CPLUS_INCLUDE_PATH=/usr/local/include
work() {
set +e
local proj="$HOME/Drives/500GB/PycharmProjects/time_logix"
cd "$proj" || { echo "No such dir: $proj" >&2; return 1; }
[ -d venv ] || python3 -m venv venv || { echo "venv create failed" >&2; return 1; }
. venv/bin/activate
trap 'deactivate 2>/dev/null || true' RETURN
python main.py
local code=$?
cd ~ || true
if [ $code -ne 0 ]; then
echo "main.py exited with code $code"
fi
}
# add Pulumi to the PATH
export PATH=$PATH:/home/proc/.pulumi/bin
# deepseek
export DEEPSEEK_API_KEY="sk-9d18c60c04b84c17ab199ccc6493b676"
. "$HOME/.cargo/env"

View File

@@ -10,3 +10,5 @@
[includeIf "gitdir:~/dev/AdvancedMetrics/"] [includeIf "gitdir:~/dev/AdvancedMetrics/"]
path = ~/dotfiles/.gitconfig-advancedmetrics path = ~/dotfiles/.gitconfig-advancedmetrics
[pull]
rebase = true

View File

@@ -1,44 +1,44 @@
{ {
"LuaSnip": { "branch": "master", "commit": "a62e1083a3cfe8b6b206e7d3d33a51091df25357" }, "LuaSnip": { "branch": "master", "commit": "0abc8f390b278c3b4aabc4c004ac8a088b65cf24" },
"NvChad": { "branch": "v2.5", "commit": "d042cc975247c2aa55fcb228e5d146dc1dc6c648" }, "NvChad": { "branch": "v2.5", "commit": "add44b952d631981614bbb8cfc6f7002f296dfe6" },
"avante.nvim": { "branch": "main", "commit": "b69b0166275a36febdde1de0c92e1ef9588de963" }, "avante.nvim": { "branch": "main", "commit": "0222885dff8ff17def0a78ccdeaf02c32230a55a" },
"base46": { "branch": "v3.0", "commit": "884b990dcdbe07520a0892da6ba3e8d202b46337" }, "base46": { "branch": "v3.0", "commit": "884b990dcdbe07520a0892da6ba3e8d202b46337" },
"cmp-async-path": { "branch": "main", "commit": "f8af3f726e07f2e9d37672eaa9102581aefce149" }, "cmp-async-path": { "branch": "main", "commit": "98185a91d49ff5dd249aebf2f7456e18063fa2a0" },
"cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" }, "cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" },
"cmp-nvim-lsp": { "branch": "main", "commit": "cbc7b02bb99fae35cb42f514762b89b5126651ef" }, "cmp-nvim-lsp": { "branch": "main", "commit": "cbc7b02bb99fae35cb42f514762b89b5126651ef" },
"cmp-nvim-lua": { "branch": "main", "commit": "e3a22cb071eb9d6508a156306b102c45cd2d573d" }, "cmp-nvim-lua": { "branch": "main", "commit": "e3a22cb071eb9d6508a156306b102c45cd2d573d" },
"cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" }, "cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" },
"conform.nvim": { "branch": "master", "commit": "dca1a190aa85f9065979ef35802fb77131911106" }, "conform.nvim": { "branch": "master", "commit": "619363c30309d29ffa631e67c8183f2a72caa373" },
"dressing.nvim": { "branch": "master", "commit": "2d7c2db2507fa3c4956142ee607431ddb2828639" }, "dressing.nvim": { "branch": "master", "commit": "2d7c2db2507fa3c4956142ee607431ddb2828639" },
"friendly-snippets": { "branch": "main", "commit": "6cd7280adead7f586db6fccbd15d2cac7e2188b9" }, "friendly-snippets": { "branch": "main", "commit": "6cd7280adead7f586db6fccbd15d2cac7e2188b9" },
"gitsigns.nvim": { "branch": "main", "commit": "dd3f588bacbeb041be6facf1742e42097f62165d" }, "gitsigns.nvim": { "branch": "main", "commit": "eb60cc7b94c46005237fd34170d76f3a089a90aa" },
"harpoon": { "branch": "harpoon2", "commit": "87b1a3506211538f460786c23f98ec63ad9af4e5" }, "harpoon": { "branch": "harpoon2", "commit": "87b1a3506211538f460786c23f98ec63ad9af4e5" },
"indent-blankline.nvim": { "branch": "master", "commit": "d28a3f70721c79e3c5f6693057ae929f3d9c0a03" }, "indent-blankline.nvim": { "branch": "master", "commit": "d28a3f70721c79e3c5f6693057ae929f3d9c0a03" },
"lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" }, "lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" },
"lazygit.nvim": { "branch": "main", "commit": "a04ad0dbc725134edbee3a5eea29290976695357" }, "lazygit.nvim": { "branch": "main", "commit": "a04ad0dbc725134edbee3a5eea29290976695357" },
"mason.nvim": { "branch": "main", "commit": "cb8445f8ce85d957416c106b780efd51c6298f89" }, "mason.nvim": { "branch": "main", "commit": "2a6940af80375532e5e9e7c1f2fc6319a1b7a69d" },
"menu": { "branch": "main", "commit": "7a0a4a2896b715c066cfbe320bdc048091874cc6" }, "menu": { "branch": "main", "commit": "7a0a4a2896b715c066cfbe320bdc048091874cc6" },
"minty": { "branch": "main", "commit": "aafc9e8e0afe6bf57580858a2849578d8d8db9e0" }, "minty": { "branch": "main", "commit": "aafc9e8e0afe6bf57580858a2849578d8d8db9e0" },
"minuet-ai.nvim": { "branch": "main", "commit": "7e696b717082e524286192ddaf397f709427f1a5" }, "minuet-ai.nvim": { "branch": "main", "commit": "d29dec4c36be2b41aa10e70938b7b09a03f0bdba" },
"nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" }, "nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" },
"nvim-autopairs": { "branch": "master", "commit": "59bce2eef357189c3305e25bc6dd2d138c1683f5" }, "nvim-autopairs": { "branch": "master", "commit": "7b9923abad60b903ece7c52940e1321d39eccc79" },
"nvim-cmp": { "branch": "main", "commit": "a1d504892f2bc56c2e79b65c6faded2fd21f3eca" }, "nvim-cmp": { "branch": "main", "commit": "a1d504892f2bc56c2e79b65c6faded2fd21f3eca" },
"nvim-dap": { "branch": "master", "commit": "45a69eba683a2c448dd9ecfc4de89511f0646b5f" }, "nvim-dap": { "branch": "master", "commit": "9e848e09a697ee95302a3ef2dd43fd6eb709e570" },
"nvim-dap-go": { "branch": "main", "commit": "b4421153ead5d726603b02743ea40cf26a51ed5f" }, "nvim-dap-go": { "branch": "main", "commit": "b4421153ead5d726603b02743ea40cf26a51ed5f" },
"nvim-dap-ui": { "branch": "master", "commit": "1a66cabaa4a4da0be107d5eda6d57242f0fe7e49" }, "nvim-dap-ui": { "branch": "master", "commit": "1a66cabaa4a4da0be107d5eda6d57242f0fe7e49" },
"nvim-lspconfig": { "branch": "master", "commit": "31026a13eefb20681124706a79fc1df6bf11ab27" }, "nvim-lspconfig": { "branch": "master", "commit": "292f44408498103c47996ff5c18fd366293840d8" },
"nvim-nio": { "branch": "master", "commit": "21f5324bfac14e22ba26553caf69ec76ae8a7662" }, "nvim-nio": { "branch": "master", "commit": "21f5324bfac14e22ba26553caf69ec76ae8a7662" },
"nvim-tree.lua": { "branch": "master", "commit": "f9bfc0059eca24546b69a7006110463da4808f8f" }, "nvim-tree.lua": { "branch": "master", "commit": "7ff7040bf6c246671eb55cb1727de4fd9f92a106" },
"nvim-treesitter": { "branch": "main", "commit": "4916d6592ede8c07973490d9322f187e07dfefac" }, "nvim-treesitter": { "branch": "main", "commit": "4916d6592ede8c07973490d9322f187e07dfefac" },
"nvim-web-devicons": { "branch": "master", "commit": "4fc505ac7bd7692824a142e96e5f529c133862f8" }, "nvim-web-devicons": { "branch": "master", "commit": "dad71387de386a946b123079d0e53f23028f3abd" },
"oil.nvim": { "branch": "master", "commit": "0fcc83805ad11cf714a949c98c605ed717e0b83e" }, "oil.nvim": { "branch": "master", "commit": "b73018b75affd13fa38e2fc94ef753b465f770d7" },
"plenary.nvim": { "branch": "master", "commit": "74b06c6c75e4eeb3108ec01852001636d85a932b" }, "plenary.nvim": { "branch": "master", "commit": "74b06c6c75e4eeb3108ec01852001636d85a932b" },
"render-markdown.nvim": { "branch": "main", "commit": "3f3eea97b80839f629c951ca660ffd125bfa5b34" }, "render-markdown.nvim": { "branch": "main", "commit": "f422cb5c6855f150e2ddcfaf44e7157b98b34f6a" },
"telescope.nvim": { "branch": "master", "commit": "f04ab730b8f9c6bf3f54a206d0dcddfd70c52d59" }, "telescope.nvim": { "branch": "master", "commit": "427b576c16792edad01a92b89721d923c19ad60f" },
"todo-comments.nvim": { "branch": "main", "commit": "31e3c38ce9b29781e4422fc0322eb0a21f4e8668" }, "todo-comments.nvim": { "branch": "main", "commit": "31e3c38ce9b29781e4422fc0322eb0a21f4e8668" },
"toggleterm.nvim": { "branch": "main", "commit": "50ea089fc548917cc3cc16b46a8211833b9e3c7c" }, "toggleterm.nvim": { "branch": "main", "commit": "50ea089fc548917cc3cc16b46a8211833b9e3c7c" },
"trouble.nvim": { "branch": "main", "commit": "bd67efe408d4816e25e8491cc5ad4088e708a69a" }, "trouble.nvim": { "branch": "main", "commit": "bd67efe408d4816e25e8491cc5ad4088e708a69a" },
"ui": { "branch": "v3.0", "commit": "cb75908a86720172594b30de147272c1b3a7f452" }, "ui": { "branch": "v3.0", "commit": "3e67e9d5325fd47fdbc90ca00a147db2f3525754" },
"volt": { "branch": "main", "commit": "620de1321f275ec9d80028c68d1b88b409c0c8b1" }, "volt": { "branch": "main", "commit": "620de1321f275ec9d80028c68d1b88b409c0c8b1" },
"which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" } "which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" }
} }

View File

@@ -58,14 +58,21 @@ return {
{ {
"folke/trouble.nvim", "folke/trouble.nvim",
cmd = "Trouble", cmd = "Trouble",
opts = { use_diagnostic_signs = true }, opts = {
signs = {
error = "",
warn = "",
hint = "",
info = "",
},
},
}, },
-- Floating terminal -- Floating terminal
{ {
"akinsho/toggleterm.nvim", "akinsho/toggleterm.nvim",
version = "*", version = "*",
cmd = "ToggleTerm", cmd = { "ToggleTerm", "TermExec" },
keys = { [[<C-\>]] }, keys = { [[<C-\>]] },
opts = { opts = {
open_mapping = [[<C-\>]], open_mapping = [[<C-\>]],
@@ -91,6 +98,12 @@ return {
}, },
config = function() config = function()
require "configs.dap" require "configs.dap"
-- Auto-open/close DAP UI with debug sessions
local dap, dapui = require("dap"), require("dapui")
dap.listeners.after.event_initialized["dapui_config"] = dapui.open
dap.listeners.before.event_terminated["dapui_config"] = dapui.close
dap.listeners.before.event_exited["dapui_config"] = dapui.close
end, end,
}, },
@@ -108,6 +121,51 @@ return {
branch = "harpoon2", branch = "harpoon2",
dependencies = { "nvim-lua/plenary.nvim" }, dependencies = { "nvim-lua/plenary.nvim" },
opts = {}, opts = {},
keys = {
{
"<leader>ha",
function() require("harpoon"):list():add() end,
desc = "Harpoon: add file",
},
{
"<leader>hh",
function()
local h = require("harpoon")
h.ui:toggle_quick_menu(h:list())
end,
desc = "Harpoon: quick menu",
},
{
"<leader>1",
function() require("harpoon"):list():select(1) end,
desc = "Harpoon: file 1",
},
{
"<leader>2",
function() require("harpoon"):list():select(2) end,
desc = "Harpoon: file 2",
},
{
"<leader>3",
function() require("harpoon"):list():select(3) end,
desc = "Harpoon: file 3",
},
{
"<leader>4",
function() require("harpoon"):list():select(4) end,
desc = "Harpoon: file 4",
},
{
"<leader>]",
function() require("harpoon"):list():next() end,
desc = "Harpoon: next file",
},
{
"<leader>[",
function() require("harpoon"):list():prev() end,
desc = "Harpoon: prev file",
},
},
}, },
-- ── AI ─────────────────────────────────────────────────────────────────────── -- ── AI ───────────────────────────────────────────────────────────────────────
@@ -132,13 +190,12 @@ return {
providers = { providers = {
deepseek = { deepseek = {
__inherited_from = "openai", __inherited_from = "openai",
api_key_name = "cmd:grep -m1 DEEPSEEK_API_KEY ~/.bashrc | grep -oP '(?<=\")[^\"]*(?=\")'", api_key_name = "DEEPSEEK_API_KEY",
endpoint = "https://api.deepseek.com/v1", endpoint = "https://api.deepseek.com/v1",
model = "deepseek-chat", model = "deepseek-v4-pro",
extra_request_body = { temperature = 0, max_tokens = 8192 }, extra_request_body = { temperature = 0, max_tokens = 8192 },
}, },
}, },
-- Use dressing for concealed API-key prompts (native provider has a bug)
input = { provider = "dressing" }, input = { provider = "dressing" },
}, },
config = function(_, opts) config = function(_, opts)
@@ -158,15 +215,15 @@ return {
provider = "openai_compatible", provider = "openai_compatible",
provider_options = { provider_options = {
openai_compatible = { openai_compatible = {
api_key = "DEEPSEEK_API_KEY", api_key_name = "DEEPSEEK_API_KEY",
end_point = "https://api.deepseek.com/chat/completions", end_point = "https://api.deepseek.com/chat/completions",
model = "deepseek-chat", model = "deepseek-v4-pro",
name = "DeepSeek", name = "DeepSeek",
optional = { max_tokens = 256, top_p = 0.9 }, optional = { max_tokens = 256, top_p = 0.9 },
}, },
}, },
virtualtext = { virtualtext = {
auto_trigger_ft = {}, -- manual trigger only (<A-m>) auto_trigger_ft = {}, -- manual trigger only
keymap = { keymap = {
accept = "<A-l>", accept = "<A-l>",
accept_line = "<A-j>", accept_line = "<A-j>",

View File

@@ -0,0 +1,213 @@
return {
-- Treesitter: syntax highlighting + code understanding
{
"nvim-treesitter/nvim-treesitter",
opts = {
ensure_installed = {
"vim", "lua", "vimdoc",
"go", "gomod", "gowork", "gosum",
"c_sharp",
"yaml",
"bash",
"json", "jsonc",
"toml",
"markdown", "markdown_inline",
},
},
},
-- LSP servers
{
"neovim/nvim-lspconfig",
config = function()
require "configs.lspconfig"
end,
},
-- Formatting (with format-on-save)
{
"stevearc/conform.nvim",
event = "BufWritePre",
opts = require "configs.conform",
},
-- Mason: auto-install LSPs, formatters, and DAP adapters
{
"williamboman/mason.nvim",
opts = {
ensure_installed = {
-- LSPs
"gopls",
"omnisharp",
"yaml-language-server",
"bash-language-server",
-- Formatters / linters
"goimports",
"csharpier",
"prettier",
"shfmt",
"stylua",
-- DAP adapters
"delve", -- Go debugger
"netcoredbg", -- .NET debugger
},
},
},
-- Diagnostics panel
{
"folke/trouble.nvim",
cmd = "Trouble",
opts = { use_diagnostic_signs = true },
},
-- Floating terminal
{
"akinsho/toggleterm.nvim",
version = "*",
cmd = "ToggleTerm",
keys = { [[<C-\>]] },
opts = {
open_mapping = [[<C-\>]],
direction = "float",
float_opts = { border = "curved" },
},
},
-- Lazygit inside Neovim
{
"kdheepak/lazygit.nvim",
cmd = "LazyGit",
dependencies = { "nvim-lua/plenary.nvim" },
},
-- DAP core + UI
{
"mfussenegger/nvim-dap",
dependencies = {
"rcarriga/nvim-dap-ui",
"nvim-neotest/nvim-nio", -- required by dap-ui
"leoluz/nvim-dap-go",
},
config = function()
require "configs.dap"
end,
},
-- Highlight TODO/FIXME/HACK/NOTE comments
{
"folke/todo-comments.nvim",
dependencies = { "nvim-lua/plenary.nvim" },
event = "BufReadPost",
opts = {},
},
-- Harpoon2: quick-jump between pinned files per project
{
"ThePrimeagen/harpoon",
branch = "harpoon2",
dependencies = { "nvim-lua/plenary.nvim" },
opts = {},
},
-- ── AI ───────────────────────────────────────────────────────────────────────
-- Avante: AI sidebar chat + inline editing (DeepSeek)
{
"yetone/avante.nvim",
event = "VeryLazy",
build = "make BUILD_FROM_SOURCE=true",
dependencies = {
"stevearc/dressing.nvim",
"nvim-lua/plenary.nvim",
"MunifTanjim/nui.nvim",
{
"MeanderingProgrammer/render-markdown.nvim",
opts = { file_types = { "markdown", "Avante" } },
ft = { "markdown", "Avante" },
},
},
opts = {
provider = "deepseek",
disabled_tools = { "str_replace", "attempt_completion" },
providers = {
deepseek = {
__inherited_from = "openai",
api_key_name = "cmd:grep -m1 DEEPSEEK_API_KEY ~/.bashrc | grep -oP '(?<=\")[^\"]*(?=\")'",
endpoint = "https://api.deepseek.com/v1",
model = "deepseek-v4-pro",
extra_request_body = { temperature = 0, max_tokens = 8192 },
},
},
-- Disable image embedding (DeepSeek does not support vision yet)
image = { embed_as_base64 = false },
-- Use explicit tokenizer to avoid Unicode errors
-- tokenizer = "cl100k_base",
-- Use dressing for concealed API-key prompts (native provider has a bug)
input = { provider = "dressing" },
},
config = function(_, opts)
require("avante").setup(opts)
-- DeepSeek is a REST API provider, not an ACP agent — remove ACP-only keys
pcall(vim.keymap.del, "n", "<leader>aM")
pcall(vim.keymap.del, "n", "<leader>am")
end,
},
-- Minuet: inline ghost-text completions (DeepSeek via OpenAI-compat endpoint)
{
"milanglacier/minuet-ai.nvim",
event = "BufReadPost",
dependencies = { "nvim-lua/plenary.nvim" },
opts = {
provider = "openai_compatible",
disabled_tools = { "str_replace", "attempt_completion" },
provider_options = {
openai_compatible = {
api_key = "DEEPSEEK_API_KEY",
end_point = "https://api.deepseek.com/chat/completions",
model = "deepseek-v4-pro",
name = "DeepSeek",
optional = { max_tokens = 256, top_p = 0.9 },
},
},
virtualtext = {
auto_trigger_ft = {}, -- manual trigger only (<A-m>)
keymap = {
accept = "<A-l>",
accept_line = "<A-j>",
prev = "<A-[>",
next = "<A-]>",
dismiss = "<A-e>",
},
},
},
},
-- Expose minuet as a nvim-cmp source
{
"hrsh7th/nvim-cmp",
opts = function(_, opts)
table.insert(opts.sources, { name = "minuet" })
return opts
end,
},
-- Oil: edit the filesystem like a buffer
{
"stevearc/oil.nvim",
lazy = false,
dependencies = { "nvim-tree/nvim-web-devicons" },
opts = {
-- Keep nvim-tree as the default explorer; oil opens on demand via `-`
default_file_explorer = false,
columns = { "icon", "permissions", "size", "mtime" },
view_options = { show_hidden = true },
-- Don't clobber window-navigation keys
keymaps = {
["<C-h>"] = false,
["<C-l>"] = false,
},
},
},
}