如何在nixpkgs-unstable中配置HLS以禁用Ormolu/Fourmolu功能?
在nixpkgs-unstable中禁用HLS的ormolu和fourmolu功能
在旧版nixpkgs(2022版本)中,需要同时禁用cabal flag并手动覆盖插件依赖来实现效果,但在最新的nixpkgs-unstable中,配置方式已经简化:
直接通过override将对应的HLS插件设为null即可,Nix会自动处理依赖移除与功能禁用,无需再操作cabal flag。
配置代码示例
直接override写法
pkgs.haskellPackages.haskell-language-server.override { hls-ormolu-plugin = null; hls-fourmolu-plugin = null; }
管道式写法(兼容原配置习惯)
lib.flip lib.pipe pkgs.haskellPackages.haskell-language-server [ (drv: drv.override { hls-ormolu-plugin = null; }) (drv: drv.override { hls-fourmolu-plugin = null; }) ];
说明
新版nixpkgs对HLS的打包逻辑做了调整,所有插件都作为独立的可配置依赖项暴露,不再需要通过cabal flag来控制插件的启用状态。将插件设为null后,Nix会自动跳过该插件的构建,并从HLS的最终产物中移除相关功能。
内容的提问来源于stack exchange,提问作者Sridhar Ratnakumar
相关产品推荐
相关产品推荐

