【问题标题】:Windows IDE for Haskell用于 Haskell 的 Windows IDE
【发布时间】:2020-03-14 15:44:28
【问题描述】:

我需要为新生在 Windows 机器上用 Haskell 编写的小型项目设置一个简单而引人注目的开发环境。

我尝试了几种方法将 Haskell 集成到 Windows 中的 VSCode 中,但均未成功。

几年前我有一个不错的设置,但我发现依赖关系重新创建该环境存在问题:

  • 编辑:Atom
  • 全局二进制文件构建使用:stack with ghc-mod hlint fashion-haskell
  • Atom 插件:language-haskell、ide-haskell、ide-haskell-repl、haskell-ghc-mod

现在看来“酷”的方式是语言服务器协议 + VScode。 ghc-mod 似乎不再被维护,Intero 已达到 EOL,HEI 正在与另一个项目合并......拥有一个稳定且更新的开发环境看起来像是一个移动的目标。

所以,问题是:有没有人有可重复的分步说明让 VSCode 在 Windows 中与 Haskell 一起工作?

我将在新的 Windows 10 64 位 VM 中测试任何建议并报告结果。

注意:VSCode + Docker 容器不是一个选项。大多数学生的机器都有 4GB RAM。

提前致谢。

【问题讨论】:

    标签: windows haskell visual-studio-code ide atom-editor


    【解决方案1】:

    有一个名为ghcid(不要与ghcide 混淆)的工具,虽然远不及成熟的IDE,但它非常健壮,并提供了一些细节,例如在保存时重新编译和显示编译错误。但它不支持 go-to-definition。它有一个 VSCode 插件。

    这是在 Windows 中设置的一种可能方法:

    • here 下载适用于 Windows 的 GHC 8.8.3 二进制文件。
    • here 下载适用于 Windows 的 cabal-install 3.0.0.0 二进制文件。
    • 将它们解压到某个文件夹中。
    • 将条目添加到您的 PATH 环境变量中,以便它可以访问 GHC 安装的 /bin 文件夹和包含 cabal 可执行文件的文件夹。
    • 打开 Powershell 控制台。
    • 运行cabal udpate
    • 运行cabal install --install-method=copy --installdir=somefolder ghcid 以安装ghcid 可执行文件,其中“somefolder”是目标文件夹。 (如果安装失败,请尝试从 Git Bash 或 Cygwin 终端运行命令作为解决方法。)将目标文件夹放入 PATH。

    • 打开(或重新启动)VSCode 并安装“Haskell Syntax Highlighting”和haskell-ghcid 插件。

    • 转到示例 cabal 项目,使用 Ctrl-Shift-P 快捷方式,然后执行 Start ghcid 操作。 ghcid 终端将出现。

    显示错误的 ghcid 会话示例:

    haskell-ghcid 插件可以读取项目根目录中的 .ghcid 文件,其中包含应传递给 ghcid 命令的标志。


    设置代码格式的额外说明:

    • 通过运行cabal install ormolu --install-method=copy --installdir=somefolder 安装ormulu 格式化程序。再次确保目标文件夹位于 PATH 中。

    • 打开(或重启)VSCode并安装ormulu插件。

    现在 VSCode 中的“格式化文档”和“格式选择”动作将使用 ormlu。


    另一种安装 GHC 和访问 ghcid 和 ormlu 的方法是使用 stack 工具,该工具自行处理 GHC 安装。

    【讨论】:

    • 我还要指出,你不需要在 VSCode 中使用ghcidghcid 完全可以作为一个独立的工具使用——事实上,它被设计为单独使用,并且只在以后集成到其他开发环境中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-30
    • 1970-01-01
    • 1970-01-01
    • 2011-05-07
    • 2013-05-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多