如何设置IntelliJ以使用Stack构建Haskell项目?

W.P*_*ill 15 haskell intellij-idea haskell-stack

我正在使用Stack从命令行设置,构建和运行我的Haskell项目.我想使用IntelliJ作为我的IDE,但是遇到了将Stack配置为我的构建工具的问题.

我使用Stack按照"堆栈用户指南"中的说明在命令行上创建并运行"Hello,World"Haskell程序.一切都很好.

我在IntelliJ上安装了HaskForce插件.构建,执行,部署 - >编译器 - > Haskell编译器选项卡为您提供了使用Stack构建和使用Cabal构建之间的选择.我选择使用堆栈构建并像这样配置它.

在此输入图像描述

我可以使用Haskell Stack Run配置运行项目.控制台输出是正确的.

/Users/williammcneill/Library/Haskell/bin/stack exec hellohaskell-exe --
Hello, Haskell.
Run Code Online (Sandbox Code Playgroud)

但是,我无法弄清楚如何通过IDE重建项目.例如,如果我更改输出文本并重新运行程序,我仍然会看到原始的"Hello,Haskell"输出.构建 - >制作项目| 制作模块| 重建项目都无所事事.

项目设置 - >工件选项卡没有列出任何内容,我没有看到在这里添加Haskell可执行文件的方法.

我的解决方法是从命令行构建我的Haskell程序,即使我正在从IDE进行编辑.

(这也看起来很奇怪,我指定给特定项目的路径stack.yaml在一般Haskell编译设置文件,但这是我能看到如何使用堆栈来构建的唯一方式.)

如何设置IntelliJ以使用Stack构建Haskell项目?

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.

PHP*_*ate 10

如果你想点击 IntelliJ 运行按钮来运行项目并使用 Stack,我认为你应该使用@mrek 所说的IntelliJ Haskell 插件。该HaskForce插件说的那一刻

注意:目前堆栈不支持运行配置。这仅适用于阴谋集团项目。

所有内容(从安装 Stack 到项目设置)的安装说明都在自述文件中,但我需要稍微修改一下,所以我把我的版本放在这里。

每个想要使用 Haskell 的人的安装说明

  1. 安装 IntelliJ-Haskell 插件,我建议从GitHub安装最新的 beta 版本。
  2. 安装 Stack,其文档中的说明(向下滚动以查看您的特定操作系统)。
  3. 在终端/命令提示符下,运行stack install hindentstack install stylish-haskell(这可能需要一段时间)。
  4. 重启你的电脑。
  5. 在 IntelliJ 中创建一个 Haskell 模块类型的新项目,选择 Stack 二进制文件(可能C:\Users\username\AppData\Roaming\local\bin\stack.exe/usr/bin/stack)并设置默认值(如果它不是默认值)。
    • 您还可以使用 File | 导入现有的 Stack 项目。新 | Project from Existing Sources,点击从 Haskell Stack 导入。
  6. 使用 File | 打开额外的日志 设置 | 外观 | 通知 | 哈斯克尔日志。当构建需要很长时间的东西时,您可以在此处看到进度(右下角,事件日志)。
  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代替测试运行配置。


mre*_*rek 5

我想你已经安装了IntelliJ Haskell 插件

  1. 转到运行 -> 编辑配置 -> Haskell Stack -> Haskell Stack Runner

在此处输入图片说明

  1. 设置配置的名称。应自动添加可执行文件名。然后按确定。

在此处输入图片说明

现在,您应该能够构建项目。

输出:

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