首页 > 解决方案 > 使用cabal时如何配置haskell cradle?

问题描述

我已阅读 cradle 的官方文档。但是当我按照文档中的说明进行操作时,出现了错误。

Failed to parse result of calling cabal

cabal: Internal error in target matching. It should always be possible to find
a syntax that's sufficiently qualified to give an unambiguous match. However
when matching 'lib:hie-bios' we found lib:hie-bios (unknown-component) which
does not have an unambiguous syntax. The possible syntax and the targets they
match are as follows:
'lib:hie-bios' which matches lib:hie-bios (unknown-component),
:pkg:lib:lib:lib:file:hie-bios (unknown-file)

标签: haskellcabal

解决方案


(2021 年 11 月 12 日更新):现在上游修复了很多东西,所有这些都有望在不需要的情况下“正常工作”。

就在昨天(2021-11-11),我与 HLS 人员进行了交谈,并向 HLS 文档提供了有关情况的文档更新。

检查 - 如果您在 repo 中有hie.yaml残余hie.yml物,请备份 * 删除它们并检查干净运行。

如果干净运行不成功:

使用implicit-hiegen-hie

过度简化:implicit-gie- 是 HLS 和研究员在内部用于检测配置的项目。因此,如果隐式配置检测不起作用 - 直接运行生成器可以克服中间人 lsp 链生成问题。在大多数情况下,这本身就有帮助。明确地进行配置 - 使检查正在发生的事情变得切实可行(配置在很大程度上是不言自明的)并与文档进行比较。

大多数案例都被生成器覆盖,甚至是复杂的非传统单一回购案例。Nix 结果当然可能会有所不同(因为 Nix 允许无数种方法来做事)。在任何情况下 - 该工具都有助于处理底座的语法和配置。

请注意,该工具当前通过查看存在的构建目录来确定底座 ( dist-newstyle, .stack-work)


推荐阅读