繁体   English   中英

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

[英]How do I set up IntelliJ to build Haskell projects with 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.

但是,我无法弄清楚如何通过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 问题282

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

  1. 转到运行 - >编辑配置 - > Haskell堆栈 - > Haskell堆栈运行器

在此输入图像描述

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

在此输入图像描述

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

输出:

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

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

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

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

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

  1. 安装IntelliJ-Haskell插件,我建议从GitHub安装最新的beta版本。
  2. 他们的文档中安装堆栈,说明(向下滚动到您的特定操作系统)。
  3. 在终端/命令提示符下,运行stack install hindentstack install hindent stack install stylish-haskell (这可能需要一段时间)。
  4. 重启你的电脑。
  5. 在IntelliK中创建一个类型为Haskell模块的新项目,选择Stack二进制文件(可能是C:\\Users\\username\\AppData\\Roaming\\local\\bin\\stack.exe/usr/bin/stack )和Set Default(如果是尚未默认)。
    • 您还可以使用File |导入现有的Stack项目 新的| 来自Existing Sources的项目,单击从Haskell Stack导入。
  6. 使用File |打开额外的日志 设置| 外观| 通知| 哈斯克尔日志。 当构建需要很长时间的东西时,您可以在此处看到进度(右下角,事件日志)。
  7. 你应该有一个文件app/Main.hs 您可以使用main = putStrLn "Hello Haskell!"替换其中的所有内容main = putStrLn "Hello Haskell!"
  8. 现在按照@mrek的说法:创建一个运行配置Haskell Stack | Haskell Stack Runner,然后运行它。 您应该看到问候消息。
  9. 更好的是,回答原始问题:当您更改消息并再次运行时,输出已更改!
  10. 以同样的方式,您可以进行运行测试的测试运行配置(Haskell Stack Tester)。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM