Haskell 构建生态系统中类似 SBT 的功能
我最近经常将 Scala 与 SBT 结合使用。 REPL 循环有一个方便的功能:~ COMMAND
,意思是对项目中的每个源文件更改执行 COMMAND。例如:
~ test
和
~ compile
对于快速开发非常有用。我想知道,有谁知道 Haskell 类似的东西,也许是一个阴谋集团外壳?
I've been using Scala with SBT quite a bit lately. The REPL loop of has a handy feature: ~ COMMAND
, meaning perform COMMAND for every source file change in the project. For instance:
~ test
and
~ compile
are terrifically useful for rapid development. I wonder, does anyone know of something similar for Haskell, a cabal shell, maybe?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以使用
inotifywait
轻松获得类似的内容。只需在项目目录中启动一个终端并运行如下所示的命令:
这也适用于任何其他语言;只需插入您选择的构建命令即可。
You can get something like this very easily using
inotifywait
.Just fire up a terminal in your project directory and run something like this:
This also works for any other language; just insert the build commands of your choice.
您可以编写 ghci 脚本来定义自己的命令并增强现有命令。为此:
:def
编写宏来替换:reload
有关GHCi
:def
命令的更多信息是 此处。You can script ghci to both define your own commands, and augment existing commands. To do this:
:def
to replace e.g.:reload
More info on GHCi
:def
commands is here.ghcid 项目提供了一些仅限于
~ :reload
的内容。它提供了一些额外的功能(格式化为固定行数、保留先前加载的文件的警告),但不提供运行任何命令的通用性。The ghcid project provides something limited to
~ :reload
. It provides a few extra features (format to a fixed number of lines, persist warnings from previously loaded files), but not the generality of running any command.