NEOVIM ENVIRONMENT — LUA

Diver
OVERVIEW
Diver is Qompass AI's Neovim configuration — billed in its README as "Your Blazingly Fast Everything Editor" — installed at `~/.config/nvim`, targeting Neovim 0.13+ and Lua 5.1+LuaJIT, with per-language LSP configs under `lsp/`, Lua modules under `lua/`, and queries, scripts and tests in-tree.
HOW IT WORKS
- 1Neovim loads `init.lua`, which sets `<Space>` to `<Nop>`, runs early options, and enables the Lua loader. Source: GitHub `qompassai/diver` `init.lua`.
- 2`require('config.init').config(...)` loads the config aggregator with core, cicd, cloud, edu, lang, nav and ui enabled. Source: GitHub `qompassai/diver` `init.lua`.
- 3The config aggregator loads core leaves (filetype, LSP, parser, quickfix, refactor, tree, whichkey) and bootstraps LSP, enabling servers from `lsp/<name>_ls.lua` on first FileType. Source: GitHub `qompassai/diver` `lua/config/init.lua`.
- 4UI rendering, security, dev, utils, DAP and formatters are set up in a fixed order in `init.lua`; linters stay deferred until the first `BufReadPre`. Source: GitHub `qompassai/diver` `init.lua`.
- 5Key mappings are loaded through the mappings loader, which runs its named mapping modules (aimap, cicdmap, datamap, genmap, langmap, lintmap, lspmap, navmap, and others) unless a module is set to `false`. Source: `~/workspace/repos/diver/lua/mappings/init.lua` (sandbox clone; primo clone at `~/.GH/Qompass/Diver/lua/config/mappings/init.lua` has the same loader shape).
- 6The AI stack is set up last: `require('ai').setup()` at the end of `init.lua`. Source: GitHub `qompassai/diver` `init.lua`.
CONCEPTS
CONFIGURATION
| Option | Default | What it does |
|---|---|---|
core | true | Core config subsystem enabled in the `config.init` call |
cicd | true | CI/CD config subsystem enabled in the `config.init` call |
cloud | true | Cloud config subsystem enabled in the `config.init` call |
debug | false | Debug flag passed to `config.init` (verbose loader logging off) |
edu | true | Education config subsystem enabled in the `config.init` call |
lang | true | Language config subsystem enabled in the `config.init` call |
nav | true | Navigation config subsystem enabled in the `config.init` call |
ui | true | UI config subsystem enabled in the `config.init` call |
MOJO_STDLIB_PATH | `~/.local/share/mojo/.pixi/envs/default/lib/mojo` (non-Windows) | Environment variable set at startup for the Mojo standard library |
mapleader | `' '` (space) | Leader key set in global options |
CONTROLS
| Action | Control |
|---|---|
| Find file | <leader>nf |
| Find buffer | <leader>nb |
| Find command | <leader>nc |
| Toggle native explorer | <leader>ne |
| Find help tag | <leader>nh |
| Ripgrep to quickfix | <leader>ng |
| Generate SCIP index for project | <leader>nz |
| Document symbols | <LocalLeader>nd |
| Choose supported LSP action | <LocalLeader>la |
| Attached LSP clients | <LocalLeader>li |
| Toggle inlay hints | <LocalLeader>lh |
| Code actions here | <LocalLeader>lc |
| Toggle semantic tokens | <LocalLeader>ls |
NOT COVERED
- The GitHub README documents no installation steps, no keymaps and no configuration defaults; it is largely a directory tree, About/Support sections and an FAQ. All CONFIG and CONTROLS rows above are sourced from code files actually read (`init.lua`, `lua/config/init.lua`, `lua/mappings/*.lua`, `lua/utils/options/globals.lua`), not from the README. - The mapping set is far larger than the representative rows above (11 mapping modules); a complete keymap catalogue was not sourced from any single documented list. - Path drift: `lua/config/keymaps.lua` exists in the sandbox clone but returns 404 on GitHub, where mappings live under `lua/config/mappings/` (primo clone) / `lua/mappings/` (sandbox clone layout in the README tree).
REFERENCES
- Language Server Protocol specification (LSP 3.17)The protocol Diver's per-language servers speak: initialization, attach, and the code-action requests its lsp/*_ls.lua configurations expose.
- Model Context Protocol specificationThe protocol behind Diver's MCP stdio bridge to phlow; this dated URL resolves to the currently published specification index.
- Neovim user documentationNeovim's own documentation — the editor, Lua API, and built-in LSP client Diver is built entirely inside.