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

标签 haskell intellij-idea haskell-stack

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

我使用 Stack 按照 Stack User Guide 中的说明在命令行上创建并运行“Hello, World”Haskell 程序。 .一切正常。

我在 IntelliJ 上安装了 HaskForce 插件。 Build, Execution, Deployment -> Compiler -> Haskell Compiler 选项卡让您可以选择使用 Stack 构建和使用 Cabal 构建。我选择使用堆栈构建并像这样配置它。

enter image description here

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

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

但是,我无法弄清楚如何通过 IDE 重建项目。例如,如果我更改输出文本并重新运行程序,我仍然会看到原始的“Hello, Haskell”输出。构建 -> 制作项目 |制作模块 | Rebuild Project 什么都不做。

Project Settings->Artifacts 选项卡没有列出任何内容,我看不到在此处添加 Haskell 可执行文件的方法。

我的解决方法是从命令行构建我的 Haskell 程序,即使我从 IDE 进行编辑也是如此。

(在一般的 Haskell 编译器设置中指定项目特定的 stack.yaml 文件的路径对我来说也很奇怪,但这是我可以看到如何使用 Stack 进行构建的唯一方法。)

如何设置 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 issue 282 .

最佳答案

如果你想点击 IntelliJ 运行按钮来运行项目并使用 Stack,我认为你应该使用 IntelliJ Haskell Plugin正如@mrek 所说。
HaskForce plugin此刻说

Note: Run configurations are not supported for stack at the moment. This is for cabal projects only.



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

每个想要使用 Haskell 的人的安装说明
  • 安装 IntelliJ-Haskell 插件,我建议从 GitHub 安装最新的 beta 版本.
  • 安装堆栈,their docs 中的说明(向下滚动查看您的特定操作系统)。
  • 在终端/命令提示符下,运行 stack install hindentstack install stylish-haskell (这可能需要一段时间)。
  • 重启你的电脑。
  • 在 IntelliJ 中创建一个 Haskell 模块类型的新项目,选择 Stack 二进制文件(可能是 C:\Users\username\AppData\Roaming\local\bin\stack.exe/usr/bin/stack )并设置默认值(如果它还不是默认值)。
  • 您还可以使用 File | 导入现有的 Stack 项目。新 | Project from Existing Sources,单击从 Haskell Stack 导入。
  • 使用 File | 开启额外的日志设置 |外观 |通知 | haskell 日志。当构建需要很长时间的东西时,您可以在此处看到进度(右下角,事件日志)。
  • 你应该有一个文件app/Main.hs .您可以将其中的所有内容替换为 main = putStrLn "Hello Haskell!" .
  • 现在就像@mrek 所说的那样:创建一个运行配置 Haskell Stack | Haskell Stack Runner,并运行它。您应该会看到 hello 消息。
  • 更好的是,回答原始问题:当您更改消息并再次运行时,输出已更改!
  • 同样,您可以进行测试运行配置(Haskell Stack Tester)来运行您的测试。

  • 您可以通过单击 IntelliJ 底部的终端然后运行 ​​stack ghci 来启动交互式控制台。 .当您键入 main您正在调用 main,依此类推。
    您也可以使用 stack test而不是测试运行配置。

    关于haskell - 如何设置 IntelliJ 以使用 Stack 构建 Haskell 项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37754956/

    相关文章:

    haskell - react 香蕉 : consume parametrized call to an external API

    list - <*> 对于以 do 表示法实现的列表 - 这不是 "cheating"吗?

    java - 如何设置 IntelliJ IDEA 环境以进行 JDK8 开发?

    haskell - 使用 haskell/cabal/stack 进行运行时类型检查

    haskell - Stack 尚未使用 GHC 和 Cabal 版本进行测试

    haskell - 为什么 Haskell 函数不能返回一个列表

    haskell - 类型级别文字 - 不能在二元函数中使用不同类型的参数

    javascript - 在线评论 webstorm 或 intellij ultimate 上的格式错误

    在 Ubuntu 上找不到 Java 应用程序主类

    haskell - 仅使用堆栈时如何取消隐藏包?