https://github.com/obscurely/neovim
My neovim configuration (that is based on NVChad). Also includes installer script for ArchLinux
https://github.com/obscurely/neovim
Last synced: 29 days ago
JSON representation
My neovim configuration (that is based on NVChad). Also includes installer script for ArchLinux
- Host: GitHub
- URL: https://github.com/obscurely/neovim
- Owner: Obscurely
- License: mit
- Created: 2022-04-03T14:06:06.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2025-02-09T13:46:53.000Z (over 1 year ago)
- Last Synced: 2025-02-09T14:35:24.513Z (over 1 year ago)
- Language: Lua
- Homepage:
- Size: 89.8 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Neovim Configuration
## Overview
NvChad v2.5-based (starter for lsp, cmp, themes) Neovim configuration optimized for speed, unified debugging, and strict static analysis. Configured specifically for NixOS environments with declarative dependency management (Mason disabled).
## Language Toolchain
| Language / Stack | Language Server (LSP) | Formatter | Linter / Analysis |
| :----------------------- | :--------------------------------- | :--------------------------- | :--------------------------------------- |
| **Rust** | `rust_analyzer` (rustaceanvim) | `rustfmt` | Built-in |
| **Python** | `pyright` | `ruff` | `ruff`, `bandit` |
| **C / C++ / C#** | `clangd`, `csharp_ls` | `clang-format`, `uncrustify` | `cppcheck` |
| **Go** | `gopls` | `gofumpt` | Built-in |
| **Web (JS/TS/HTML/CSS)** | `ts_ls`, `eslint`, `html`, `cssls` | `prettier` / `prettierd` | `eslint`, `tidy` |
| **Infrastructure / IaC** | `terraformls`, `dockerls` | `terraform_fmt` | `tfsec`, `tflint`, `hadolint` |
| **Nix** | `nil_ls` | `alejandra` | `deadnix`, `statix` |
| **Shell** | `bashls` | `shfmt` | `shellcheck` |
| **Data / Config** | `jsonls`, `yamlls`, `taplo` | `yamlfmt`, `prettier` | `yamllint`, `actionlint`, `ansible-lint` |
## Core Subsystems
| Subsystem | Implementation | Purpose |
| :-------------------- | :-------------------------------- | :----------------------------------------------------------------------------- |
| **Syntax & Parsing** | `nvim-treesitter` | Abstract Syntax Tree-based highlighting and indentation. |
| **Debugging** | `nvim-dap` + `nvim-dap-ui` | Unified Debug Adapter Protocol for Rust, C++, Python, C#, JS/TS. |
| **Buffer Navigation** | `harpoon` (v2), `leap.nvim` | Context-switching, spatial movement, and marked file jumping. |
| **Diagnostics** | `trouble.nvim` | Centralized workspace diagnostics, symbol viewing, and reference tracking. |
| **Rust Integration** | `rustaceanvim`, `crates.nvim` | Full Rust IDE support, Cargo.toml management, and inline diagnostics. |
| **Testing** | `neotest` | Asynchronous test execution for Rust and Python. |
| **Version Control** | `gitsigns.nvim` | Inline blame, hunk staging, and diff rendering. |
| **AI Integration** | `codecompanion.nvim`, `minuet-ai` | Multi-provider (Claude, DeepSeek, Gemini, Ollama) inline completions and chat. |
## System Integrations
1. **Deterministic State:** NixOS native. Plugin management relies on strict declarative inputs rather than runtime package managers (Mason).
2. **Terminal Sync:** Dynamic Alacritty integration synchronizes terminal opacity, padding, and colorschemes with Neovim state.
3. **Contextual Schema Awareness:** Dynamic YAML linting transitions between `actionlint` (GitHub Actions) and `ansible-lint` based on file context.
4. **Automated State Persistence:** Aggressive auto-save triggers on `InsertLeave`, `TextChanged`, and `FocusLost`. Rust files automatically execute `flyCheck` on save.
5. **Persistent History:** Global undo tree visualization via `telescope-undo`.
## Keymaps
**Buffer & Navigation**
- `hh` / `ha` : Harpoon Quick Menu / Add to Harpoon
- `hp` / `hn` : Harpoon Navigate Previous / Next
- `s` / `S` : Leap Forward / Backward
- `u` : Undo History Tree
**LSP & Diagnostics**
- `ca` : Execute Code Action
- `lr` : Rename Symbol
- `fr` : Format Buffer (`conform.nvim`)
- `a` : Toggle Diagnostics Panel (`trouble.nvim`)
- `ss` : View Document Symbols
**Debugging (DAP)**
- `db` : Toggle Breakpoint
- `dr` : Run / Continue
- `di` : Step Into
- `do` : Step Over
- `dt` : Terminate Process
**Rust Specific**
- `rr` : Execute Runnables
- `re` : Explain Compiler Error
- `rc` : Open `Cargo.toml`