diff options
| author | 2026-05-20 13:56:09 +0100 | |
|---|---|---|
| committer | 2026-05-20 13:56:09 +0100 | |
| commit | e66aa35ea314f522a2cdfaebdacf87894a44bd04 (patch) | |
| tree | 45bd8d460cdd986784fede95fbe4c020db8b29ee /nix | |
| parent | 1f7215ebdcfed2ccdb63abf0e3561d50e719fc63 (diff) | |
| download | dotfiles-e66aa35ea314f522a2cdfaebdacf87894a44bd04.tar.gz dotfiles-e66aa35ea314f522a2cdfaebdacf87894a44bd04.tar.bz2 dotfiles-e66aa35ea314f522a2cdfaebdacf87894a44bd04.zip | |
feat(nix): add LSPs/formatters/linters/DAPs to common.nix
Replaces Mason entirely (phase p6 of the nix migration will rip out
mason-tool-installer and friends). The set tracks the previous
ensure_installed list in nvim's lsp.lua, with five niche tools dropped
per the migration plan:
- groovy-language-server, npm-groovy-lint
- nginx-language-server, nginx-config-formatter
- systemdlint
systemd-lsp is renamed to systemd-language-server (the nixpkgs attr
name). codelldb is replaced by lldb-dap (upstream successor, ships with
pkgs.lldb); dap configs switch in phase p6.
Drops jre, basedpyright, cargo, rustc from vm.nix — they only existed
to work around Mason quirks on Ubuntu 20.04 (uv-python wheel
incompatibility, source-build needs). With Mason gone, basedpyright
comes from nixpkgs cleanly on both profiles.
Phase 5 of the nix-on-host migration plan.
Diffstat (limited to 'nix')
| -rw-r--r-- | nix/common.nix | 50 | ||||
| -rw-r--r-- | nix/vm.nix | 12 |
2 files changed, 50 insertions, 12 deletions
diff --git a/nix/common.nix b/nix/common.nix index b6a8493..9bfe2d6 100644 --- a/nix/common.nix +++ b/nix/common.nix @@ -89,6 +89,56 @@ in claude-code github-copilot-cli # NB: pkgs.copilot-cli is AWS Copilot, NOT this + # ── LSPs / formatters / linters / DAPs ───────────────────────────────── + # Replaces Mason entirely (phase p6 of the nix migration rips out + # mason-tool-installer). The set tracks the previous + # `ensure_installed` list in dot_config/nvim/lua/plugins/lsp.lua, with + # five niche tools dropped: groovy-language-server (Mason-only build, + # upstream stale), npm-groovy-lint, nginx-language-server, + # nginx-config-formatter, systemdlint (all rarely-edited domains; + # losing them is acceptable). + + # LSPs + actionlint + autotools-language-server + basedpyright + bash-language-server + dockerfile-language-server-nodejs + gh-actions-language-server + just-lsp + lua-language-server + neocmakelsp + ruff + rust-analyzer + systemd-language-server + taplo + typescript-language-server + vscode-langservers-extracted # cssls + html + jsonls + eslint + yaml-language-server + + # Formatters + mdformat + nodePackages.prettier + shfmt + stylua + + # Linters + codespell + hadolint + nodePackages.jsonlint + markdownlint-cli + selene + shellcheck + shellharden + stylelint + typos + yamllint + + # DAPs / debuggers — `lldb-dap` (from pkgs.lldb) is the upstream + # successor to vscode-lldb's `codelldb`. dap configs in + # plugins/debug.lua target it via `type = "lldb"`. + lldb + # Zsh and plugins (loaded from $HOME/.nix-profile/share/... by the # shared zshrc; nix-profile path is preferred, system path is the # fallback for un-bootstrapped states). @@ -18,18 +18,6 @@ }; home.packages = with pkgs; [ - # ── Mason-driven LSP carve-outs (removed by phase p6 once Mason is - # gone and LSPs come from common.nix directly). Kept here for - # now so the VM keeps working between phases. ─────────────────────── - jre # Mason's groovy-language-server (headless Java) - basedpyright # Mason's pypi distro can't install on Ubuntu 20.04 - # (manylinux_2_28 wheels, uv's python rejects) - # Rust toolchain for Mason packages whose only install source is - # `cargo install` (shellharden). The Arch host has these via pacman; - # on the VM Mason needs cargo+rustc on PATH or it bails with ENOENT. - cargo - rustc - # ── Rootless podman ───────────────────────────────────────────────────── # The nix `podman` is wrapped to find these helpers via /nix/store # paths, so we don't need to write a containers.conf for |
