首页 文章

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

提问于
浏览
11

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

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

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

enter image description here

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

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

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

项目设置 - >工件选项卡没有列出任何内容,我没有看到在这里添加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 .

2 回答

  • 1

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

    注意:目前不支持堆栈运行配置 . 这仅适用于cabal项目 .

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

    Installation instructions for everyone who wants to use Haskell

    • 安装IntelliJ-Haskell插件,您可能希望从GitHub安装最新的beta版本 .

    • 安装堆栈,their docs.中的说明

    • 在终端/命令提示符下,运行 stack install hindentstack install stylish-haskell (这可能需要一段时间) .

    • 在IntelliJ中,打开了任何项目,在File |中设置| Haskell提供了hindent和Stylish-haskell的路径,如安装命令的输出所示 . 在Windows上,例如可能 C:\Users\username\AppData\Roaming\local\bin\hindent.exeC:\Users\username\AppData\Roaming\local\bin\stylish-haskell.exe ,在Linux上可能是 /usr/local/bin/hindent .

    • 重新启动计算机 .

    • 在类型为Haskell模块的IntelliJ中创建一个新项目,选择Stack二进制文件(可能再次为 C:\Users\username\AppData\Roaming\local\bin\stack.exe )和Set Default .

    • 使用File |打开额外的日志设置|外观|通知|哈斯克尔日志 . 当构建需要很长时间的东西时,您可以在此处看到进度(右下角,事件日志) .

    • 你应该有一个文件 app/Main.hs . 您可以使用 main = putStrLn "Hello Haskell!" 替换其中的所有内容 .

    • 现在按照@mrek的说法:创建一个运行配置Haskell Stack | Haskell Stack Runner,然后运行它 . 您应该看到问候消息 .

    • 更好的是,回答原始问题:当您更改消息并再次运行时,输出已更改!

    • 以同样的方式,您可以进行运行测试的测试运行配置(Haskell Stack Tester) .

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

  • 2

    我想你已经安装了IntelliJ Haskell plugin .

    • 转到运行 - >编辑配置 - > Haskell堆栈 - > Haskell堆栈运行器:

    enter image description here

    • 设置配置的名称 . 应自动添加可执行文件名 . 然后按OK .

    enter image description here

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

    输出:

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

相关问题