PRJ: domus-nvim
Project Summary
Project |
domus-nvim |
Priority |
P1 |
Status |
Active Development |
Location |
|
Started |
December 2025 |
Symlink |
|
Alias |
|
Purpose
Primary Neovim configuration following hierarchical, modular architecture. Separates plugin specifications from configurations for maintainability. Includes embedded Antora documentation.
Requirements
| Component | Version | Notes |
|---|---|---|
Neovim |
0.11.0+ |
Required for |
Git |
2.19+ |
Plugin installation via lazy.nvim |
Node.js |
18+ |
Optional - for LSP servers |
ripgrep |
Any |
Optional - for Telescope live grep |
Phase 1: Neovim Version Management (bob)
bob is a cross-platform Neovim version manager written in Rust. It installs versions under ~/.local/share/bob/ and symlinks the active binary into ~/.local/share/bob/nvim-bin/. The pacman-managed /usr/bin/nvim remains untouched โ bob’s version takes precedence only when its bin directory appears first in $PATH.
Configure PATH
bob’s symlink directory must precede /usr/bin in $PATH. Add to ~/.zshrc (or equivalent):
# Neovim version manager (bob)
export PATH="$HOME/.local/share/bob/nvim-bin:$PATH"
Reload the shell:
source ~/.zshrc
Install and activate a version
# Install a specific release
bob install 0.12.0
# Switch to it
bob use 0.12.0
# Verify
nvim --version | head -1
Common operations
| Command | Description |
|---|---|
|
Install latest stable release |
|
Install nightly build |
|
Install specific version |
|
Switch active version (updates symlink) |
|
List installed versions |
|
List available versions |
|
Remove an installed version |
|
Remove bob and all installed versions |
Rollback
If a new version breaks plugins or configuration:
# Switch back to previous version
bob use 0.11.7
# Or fall through to pacman's version entirely
bob uninstall 0.12.0
# /usr/bin/nvim (pacman) takes over if bob/nvim-bin is empty
Version pinning rationale
| Version | Notes |
|---|---|
0.11.7 |
Current pacman version. Required for |
0.12.0 |
Targeted upgrade. Evaluate native LSP improvements, |
After upgrading, run :checkhealth and :Lazy sync to surface any plugin incompatibilities before committing to the new version.
|
Improvement Proposals
|
Proposals from ecosystem audit — 2026-04-04. For team review and prioritization. |
| Priority | Proposal | Rationale | Effort |
|---|---|---|---|
P1 |
Add LSP configuration reference table |
Which LSPs are configured, per language, with their settings. Currently buried in Lua files — should be a scannable table. |
M |
P2 |
Keybinding cheatsheet partial |
Custom keybindings are the muscle memory layer. A printable cheatsheet partial (leader key combos, telescope maps, etc.) is high utility. |
S |
P2 |
Plugin dependency graph |
lazy.nvim manages 30+ plugins with load-order dependencies. A graph showing which plugins trigger which (via events, ft, keys) prevents breakage. |
M |
P3 |
Performance tuning guide (lazy loading, startup time) |
Document the lazy-loading strategy, startup profiling commands ( |
S |
P2 |
Consolidate Termux detection into |
Completed 2026-04-04. |
S |
P3 |
Add debouncing to nvim-lint |
Linting fires on every |
S |
P3 |
Extract AsciiDoc lang config into smaller modules โ Superseded |
Kept as single 1100-line module (well-sectioned). Splitting adds indirection without benefit. Module upgraded with 25 diagram snippets, 5 commands, improved navigation. |
M |
Notes
Primary editor configuration. Uses NVIM_APPNAME for isolation from other Neovim configs (nvim-core, nvim-modulus, nvim-fidus, domus-minimus). Focus on clean separation of concerns and lazy loading for performance.