web-dev-qa-db-ja.com

StackでHaskellプロジェクトをビルドするようにIntelliJを設定するにはどうすればよいですか?

Stackを使用して、コマンドラインからHaskellプロジェクトをセットアップ、ビルド、実行しています。 IntelliJをIDEとして使用したいのですが、スタックをビルドツールとして構成する際に問題が発生します。

Stackを使用して、Stack ユーザーガイド の指示に従って、コマンドラインで「Hello、World」Haskellプログラムを作成して実行しました。すべてがうまくいきました。

IntelliJにHaskForceプラグインをインストールしています。 [ビルド、実行、デプロイメント]-> [コンパイラ]-> [Haskellコンパイラ]タブでは、Stackを使用してビルドするかCabalを使用してビルドするかを選択できます。 Build with stackを選択し、そのように構成しました。

enter image description here

Haskell StackRun構成を使用してプロジェクトを実行できます。コンソール出力は正しいです。

/Users/williammcneill/Library/Haskell/bin/stack exec hellohaskell-exe --
Hello, Haskell.

ただし、IDEを使用してプロジェクトを再構築する方法がわかりません。たとえば、出力テキストを変更してプログラムを再実行しても、元の「Hello、Haskell」出力が表示されます。ビルド->プロジェクトの作成|モジュールを作成|プロジェクトの再構築はすべて何もしません。

「プロジェクト設定」->「アーティファクト」タブには何もリストされておらず、Haskell実行可能ファイルをここに追加する方法がわかりません。

私の回避策は、IDEから編集しているときでも、コマンドラインからHaskellプログラムをビルドすることです。

(一般的なHaskellコンパイラ設定でプロジェクト固有のstack.yamlファイルへのパスを指定することも私には奇妙に見えますが、それがStackを使用してビルドする方法を確認できる唯一の方法でした。)

Stackを使用してHaskellプロジェクトをビルドするようにIntelliJを設定するにはどうすればよいですか?

ghc 7.10.3、スタック1.1.2、HaskForce 0.3-beta.33、IntelliJ IDEA Ultimate 2016.1.3、OS X 10.11.5


これはHaskforceです 問題282

17
W.P. McNeill

IntelliJ実行ボタンを押してプロジェクトを実行し、Stackを使用する場合は、@ mrekが言ったように IntelliJ Haskellプラグイン を使用する必要があると思います。 HaskForceプラグイン 現時点では

注:現時点では、実行構成はスタックではサポートされていません。これは陰謀団のプロジェクト専用です。

すべて(スタックのインストールからプロジェクトのセットアップまで)のインストール手順は readme にありますが、少し変更する必要があったので、ここにバージョンを配置しました。

Haskellを使いたい人のためのインストール手順

  1. IntelliJ-Haskellプラグインをインストールします。 GitHub から最新のベータリリースをインストールすることをお勧めします。
  2. Stackをインストールします。手順は ドキュメント (特定のOSを下にスクロールします)。
  3. ターミナル/コマンドプロンプトで、stack install hindentおよびstack install stylish-haskellを実行します(これにはしばらく時間がかかる場合があります)。
  4. コンピュータを再起動してください。
  5. IntelliJでHaskellモジュールタイプの新しいプロジェクトを作成し、スタックバイナリ(おそらくC:\Users\username\AppData\Roaming\local\bin\stack.exeまたは/usr/bin/stack)を選択し、デフォルトに設定します(まだデフォルトになっていない場合)。
    • File |を使用して既存のStackプロジェクトをインポートすることもできます。新規|既存のソースからのプロジェクト、Haskellスタックからのインポートをクリックします。
  6. ファイル|で追加のログをオンにします設定|外観|通知| Haskellログ。時間がかかる何かが構築されているときは、ここで進行状況を確認できます(右下、イベントログ)。
  7. ファイルapp/Main.hsが必要です。その中のすべてをmain = putStrLn "Hello Haskell!"に置き換えることができます。
  8. @mrekが言うように今やる:実行構成を作成するHaskell Stack | Haskell Stack Runner、そしてそれを実行します。 helloメッセージが表示されます。
  9. さらに良いことに、元の質問に答えます。メッセージを変更して再度実行すると、出力が変更されます。
  10. 同様に、テストを実行するテスト実行構成(Haskell Stack Tester)を作成できます。

IntelliJの下部にある[ターミナル]をクリックしてからstack ghciを実行すると、インタラクティブコンソールを起動できます。 mainと入力すると、mainを呼び出します。テスト実行構成の代わりにstack testを使用することもできます。

6
PHPirate

IntelliJ Haskellプラグイン がインストールされていると思います。

  1. 実行->構成の編集-> Haskellスタック-> Haskellスタックランナーに移動します:

enter image description here

  1. 構成の名前を設定します。実行可能ファイル名は自動的に追加されます。次に、[OK]を押します。

enter image description here

これで、プロジェクトをビルドできるようになります。

出力:

/usr/local/bin/stack build --exec test-project-exe It works!

4
mrek