Skip to content

fix(home): drop global language toolchains from kapi-vim - #54

Merged
potsrevennil merged 4 commits into
mainfrom
claude/nix-build-download-perf-68f9e9
Oct 20, 2026
Merged

potsrevennil merged 4 commits into
mainfrom
claude/nix-build-download-perf-68f9e9

Conversation

@potsrevennil

Copy link
Copy Markdown
Owner

make home spent most of its time downloading, not building: ~1.5 GiB of downloads that unpacked to 8.5 GiB, nearly all of it haskell-language-server. nixpkgs links HLS dynamically against every Haskell library it uses, so its closure is ~9 GiB (727 paths, including GHC and every library's -doc output). Every weekly nixpkgs bump rehashes all of it and re-downloads it, even when HLS's version is unchanged.

A global HLS (or gopls, pylsp, clangd, …) is also the wrong shape, since it has to match each project's own compiler. With potsrevennil/kapi-vim#51, kapi-vim defaults per-language toolchains to off, and projects provide them from their flake devShell via direnv. This PR bumps the submodule to that, and stops home.nix from forcing every language toggle on. It now only toggles the editor-wide ones (config, shell, typst, js), which it turns off for lite.

🤖 Generated with Claude Code

potsrevennil and others added 4 commits October 20, 2026 13:51
nixpkgs' haskell-language-server is dynamically linked against every
Haskell library it uses, so its runtime closure is ~9 GiB (~1.5 GiB
download, 727 paths incl. GHC and all -doc outputs). Every nixpkgs bump
rehashes all of it, which made `make home` spend most of its time
re-downloading and unpacking HLS.

A global HLS is also the wrong shape: it must match each project's GHC.
Leave enable_haskell at kapi-vim's default (off) and let Haskell
projects provide ghc + HLS from their own flake devShell via direnv;
kapi-vim's lspconfig only names `hls`, so it picks that up from PATH.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Language toolchains (python, c, rust, go, js, haskell, lean) are no
longer forced on: they stay at kapi-vim's defaults, which
potsrevennil/kapi-vim#51 turns off so each project provides matching
servers from its own flake devShell. Until that lands and the submodule
is bumped, the old defaults keep python/c/rust/go/js on; haskell and
lean are already off.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
kapi-vim#51 keeps js (just nodejs) on by default, so it belongs with
the editor-wide toggles that lite turns off, and out of the comment's
list of toolchains left at an off default.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Picks up potsrevennil/kapi-vim#51 (per-language toolchains default off,
come from each project's devShell) plus the already-merged #39-#46.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@potsrevennil
potsrevennil marked this pull request as ready for review October 20, 2026 07:07
@potsrevennil
potsrevennil merged commit 1f70b1a into main Oct 20, 2026
7 checks passed
@potsrevennil
potsrevennil deleted the claude/nix-build-download-perf-68f9e9 branch October 20, 2026 07:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant