This file tracks practical next tasks for the current vim.pack-based setup.
- Design
vim.packlazy-load strategy (per-plugin triggers via keymaps/commands/autocmds) and apply after current plugin split is stable. - Add keymaps for deleting and updating plugins via
vim.pack. - Simplify format/lint trigger flow where pattern lists are long or repetitive.
- Add full
which-keylabels for common<leader>dmappings (not only the group). - Add
nvim-daphelpers: run to cursor, clear breakpoints, evaluate expression prompt. - Add language-specific
dap.configurationsfor frequent stacks (Python, TS/JS, Go). - Verify Python debug workflow with
uv+debugpyin real projects (pytest + script entrypoints).
- Add
<leader>oTfor a fresh ephemeral terminal while<leader>otremains persistent. - Add command history for terminal runner (
<leader>oe/<leader>or). - Add optional "send command without focusing terminal" behavior.
- Consider default terminal size/position options (bottom height preset, optional right split).
- Reserve and document leader prefixes (
d,h,o,f,t, etc.) to avoid collisions. - Move plugin-specific keymaps into plugin modules where possible.
- Audit duplicate/overlapping mappings and unify naming in
descstrings.
- Add one local "pre-flight" command/script to run smoke + format + lint checks.
- Add a minimal check script for headless startup and LSP health.
- Keep formatter/linter tool lists aligned with
mason-tool-installer.
- Create
nvim/tests/skeleton with minimal Plenary test harness. - Add one or two initial tests for pure Lua helper behavior.
- Document single-file and filtered test commands once tests exist.
- Refresh
AGENTS.mdto match current repo architecture and workflows. - Add a short keymap reference section in README for new terminal/debug/harpoon mappings.
- Document plugin management conventions used by
nvim/lua/config/pack.lua.
This config supports two ways of adding tools:
- Declarative (Recommended): Code-as-truth; ensures tools install automatically on new machines.
- Manual (via UI): Good for testing tools temporarily.
Here is how you add full support for C++ (cpp) across the stack:
- Declarative: Open
nvim/lua/config/plugins/treesitter.luaand add"cpp"to theensure_installedtable. Next time Nvim starts, it runs:TSUpdateSync. - Manual UI: Run
:TSInstall cppin the command line.
- Declarative:
- Open
nvim/lua/config/plugins/mason_lspconfig.luaand add"clangd"toensure_installed. - Open
nvim/lua/config/plugins/lspconfig.luaand addvim.lsp.config("clangd", {})tosetup_servers(), plus"clangd"to theto_enablelist.
- Open
- Manual UI: Type
:Mason, search forclangd, and pressito install. (You still need to add it tolspconfig.lua'sto_enablelist to attach it to buffers).
- Declarative:
- Open
nvim/lua/config/plugins/mason_tools.luaand add"clang-format"toensure_installed. - Open
nvim/lua/config/plugins/conform.luaand addcpp = { "clang_format" }toformatters_by_ft.
- Open
- Manual UI: Type
:Mason, installclang-format. Updateconform.luaso the editor knows to use it.
- Declarative:
- Open
nvim/lua/config/plugins/mason_tools.luaand add"cpplint"toensure_installed. - Open
nvim/lua/config/plugins/nvim_lint.luaand addcpp = { "cpplint" }tolint.linters_by_ft.
- Open
- Manual UI: Type
:Mason, installcpplint. Updatenvim_lint.luato run it on buffer changes.
- Zero Config Needed: Because we use
blink.cmpandfriendly-snippets, autocompletions automatically pull fromclangdas soon as the LSP attaches. Standard C++ snippets will also appear in the completion menu natively.