cbrst/nix
ModulesHome Manager

Editor tools

The shared list of language servers, formatters, and debuggers used by both editors.

modules/home/editor-tools/ keeps the external toolchain in one place so Neovim and Emacs use exactly the same executables.

packages.nix

packages.nix is a plain list that each editor adds to its own PATH. It is not installed into the user profile.

KindTools
Language serversbash-language-server, emmet-language-server, lua-language-server, nil, nixd, phpactor, some-sass-language-server, vscode-langservers-extracted, yaml-language-server, zshcs, Zuban
Formatters and lintersjs-beautify, Mago, mdsf, Prettier, Ruff, rumdl, Shellharden, shfmt, StyLua
Debuggersdebugpy, js-debug, bashdb with the Bash Debug adapter, and the local Lua debugger
Runtimes and utilitiesBash, Lua, Python 3, Node.js, TypeScript 5, Zsh, ripgrep, tree-sitter, file, man-db

The Bash and Lua debug adapters are taken from their VS Code extensions and wrapped in small scripts that run them with Node.js.

Fallback configuration

default.nix writes two global fallback files. A project's own configuration always takes precedence.

  • ~/.config/mago.toml: PHP formatting with two-space tabs and double quotes.
  • ~/.config/rumdl/rumdl.toml: Markdown lines are reflowed to 80 characters, except code blocks, tables, headings, and math.

Additions that both editors need belong here; editor-specific packages stay in that editor's own default.nix.

Last updated on

On this page