【问题标题】:Is there any tool for aiding with explicit import of modules in Haskell?是否有任何工具可以帮助在 Haskell 中显式导入模块?
【发布时间】:2014-11-04 19:57:17
【问题描述】:

在考虑了here 始终显式导入模块的原因(Prelude 除外)之后,我正在努力遵守这一规范。然而,这有时可能很麻烦。是否有任何工具可以分析工作代码并提供完整的显式导入列表?

【问题讨论】:

  • 如果您使用ghc -v 编译,您可以在以Link Info: ((["-lHScryptohash-0.11.6", .... 开头的部分中查看所有导入。但是这有一些问题....首先,您需要提取信息并对其进行解析,其次,它似乎包含比您需要的更多的包。由于这些问题,我不愿将此评论提升为答案,但也许这无论如何都可以帮助您。

标签: haskell import module conventions


【解决方案1】:

ghc-ddump-minimal-imports 标志。

结果存放在文件(module-name).imports中。

-fno-code ghc 选项在这里也很有帮助(避免代码生成阶段。)

【讨论】:

  • 这显示了导入本身,而不是 .cabal 文件所需的包....
  • 没错,但我不认为 OP 要求这样做。对于获取包名称和版本,cabal init 似乎做得很好。
  • 这正是我想要的。仅作记录——我在cabal build --ghc-options="-ddump-minimal-imports -fno-code" 的沙盒中使用它。在干净的状态下,ar 抱怨没有目标文件,但不管构建是否符合预期。
  • 我刚刚注意到,在使用#ifdef 条件编译时,-ddump-minimal-imports 的输出中可能没有出现某些名称。
  • 堆栈的命令是stack build --ghc-options="-ddump-minimal-imports"
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多