haskell-jp / beginners #26 at 2025-08-17 10:56:02 +0900

Myxogastria0808
質問失礼します。
NixOSでHaskellの開発環境の構築をしようとして、つまずいています。
vscodeのHaskellの拡張機能を正常に動かすことができません。
ghcupを追加すれば良さそうなのですが、追加しようとすると` Package ‘ghcup-0.1.50.2’ in (中略しています) is marked as broken` となってしまい、ghcupを追加できません。
devShellを利用した環境でvscodeのhaskellの拡張機能が正常に動作する開発環境を構築したいです。
単にflake.nixに適当な依存を追加する方法、haskell.nixを利用する方法などいろいろあると思いますが、どのような方法でも教えていただけますと助かります。
(Nixのコミュニティに質問するべきなのかもしれないのですが、Haskellの知識が足りないのも原因の一つになっていそうなので、こちらで質問させていただきました。)

現状のflake.nixは以下のようになっています。
以下のflakeを配置したディレクトリで、`stack new sample`で`sample`プロジェクトを作成し、環境を構築する方法を試しました。
{
  description = "haskell-mytutorial";
  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
    flake-utils.url = "github:numtide/flake-utils";
  };

  outputs =
    inputs:
    inputs.flake-utils.lib.eachDefaultSystem (
      system:
      let
        pkgs = inputs.nixpkgs.legacyPackages.${system};
      in
      {
        devShells.default = pkgs.mkShell {
          packages = with pkgs; [
            stack
            haskell-language-server
          ];
        };
      }
    );
}

Haskellの拡張機能が出力しているログ?は以下になります。
2025-08-16 15:55:50.8370000 [client] INFO Finding haskell-language-server
2025-08-16 15:55:50.8380000 [client] INFO Checking for ghcup installation
2025-08-16 15:55:50.8470000 [client] INFO probing for GHCup binary
2025-08-16 15:55:50.8560000 [client] WARN ghcup at /home/hello/.ghcup/bin/ghcup does not exist
仕事でhaskellをNix Flakesで管理していますが、少なくともghcupは使っていません。
nix側でコンパイラのバージョンなどは管理できるので、ghcupは不要だと判断していて、実際不要でした。
以前私が試行錯誤したメモは私のブログに書いています。
Haskell開発環境にNix Flakesを使う - ncaq
私はVSCodeは使わなくてEmacsを使っているのですが、チームメンバーはある程度正常にVSCodeを使えているようです
Myxogastria0808
教えていただきありがとうございます!
ncaqさんの記事を参考にしつつ、haskell.nixを利用する方向で試してみます。
蛇足かもしれないですが、自分は VS Code を Nix Flakes の devShells の環境で動くようにするために direnv 拡張を使っています
https://marketplace.visualstudio.com/items?itemName=mkhl.direnv
Myxogastria0808
kakkun61さんもアドバイスありがとうございます!
direnv便利ですよね。私もいつも利用させてもらっています。
Myxogastria0808
haskell.nixを使って環境構築はできませんでしたが、vscodeのHaskellの拡張機能が正常に動作するようなflake.nixの用意とvscodeの設定をすることができました。
ncaqさん、kakkun61さん、親切に教えてくださり、ありがとうございました!