NEOVIM ENVIRONMENT — LUA

Diver

Diver

Version 1.00Source on GitHub

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

  1. 1Neovim loads `init.lua`, which sets `<Space>` to `<Nop>`, runs early options, and enables the Lua loader. Source: GitHub `qompassai/diver` `init.lua`.
  2. 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`.
  3. 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`.
  4. 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`.
  5. 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).
  6. 6The AI stack is set up last: `require('ai').setup()` at the end of `init.lua`. Source: GitHub `qompassai/diver` `init.lua`.
How it works, step by step — each step as the project's own documentation states it.

CONCEPTS

INIT.LUA → CORE CONFIG → PER-LANGUAGE TOOL LANESNEOVIM STARTinit.luaSpace leader · Lua loaderconfig.init loads:core · cicd · cloud · edulang · nav · uiCORE CONFIGLSP bootstrap on FileTypeone lsp/*_ls.lua per serverUI · security · dev · utilsmappings loader, 11 moduleslinters deferred to BufReadPreLSP — servers · code actionsFORMATTERS — 138 adaptersLINTERS — deferred to first readDAP — debug adapters per languageRESEARCH + JOURNALjournal profiles · ORCIDZotero · review templatesthe research registry in-treeAI — THE ROSE MODULElocal chat inside Neovimplanner → coder → reviewerbackend: the rose serverMCP BRIDGEMCP stdio clientto the phlow runtimeprivate socket: editor toolsONE CONFIG — EVERY LANGUAGE, THE SAME FOUR LANESservers enable on first FileType; the AI stack is set up last in init.lua
Diver's architecture as its own startup code wires it: init.lua loads the config aggregator (core, cicd, cloud, edu, lang, nav, ui), the aggregator bootstraps per-language LSP servers from lsp/<name>_ls.lua on first FileType, and every language gets the same four tool lanes — LSP, formatters, linters, DAP — alongside the research/journal modules, the in-editor rose module, and the MCP bridge to phlow.

CONFIGURATION

OptionDefaultWhat it does
coretrueCore config subsystem enabled in the `config.init` call
cicdtrueCI/CD config subsystem enabled in the `config.init` call
cloudtrueCloud config subsystem enabled in the `config.init` call
debugfalseDebug flag passed to `config.init` (verbose loader logging off)
edutrueEducation config subsystem enabled in the `config.init` call
langtrueLanguage config subsystem enabled in the `config.init` call
navtrueNavigation config subsystem enabled in the `config.init` call
uitrueUI 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

ActionControl
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

  1. 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.
  2. Model Context Protocol specificationThe protocol behind Diver's MCP stdio bridge to phlow; this dated URL resolves to the currently published specification index.
  3. Neovim user documentationNeovim's own documentation — the editor, Lua API, and built-in LSP client Diver is built entirely inside.