如何将软件包标志传递给 Haskell 语言服务器扩展的 cabal?

How to pass a package flag to cabal for the Haskell Language Server extension?

提问人:Stéphane Laurent 提问时间:11/17/2023 更新时间:11/17/2023 访问量:33

问:

我在 VS 代码中使用 HLS。我需要传递一个标志(),否则它将无法构建项目。hmatrix:openblascabal

我试图将一个包含 的文件添加到项目中,但这没有奏效。我收到有关该命令的失败通知“无法运行 GHC 版本”,然后 HLS 已完全停止工作。cabal.projectflags: openblascabal

haskell vscode-extensions 阴谋集团

评论


答:

1赞 lsmor 11/17/2023 #1

创建一个并添加:cabal.project

packages: . # This is an example, use the configuration which fits your codebase


# This is the part which enables the flag for hmatrix (or -openblas to disable)
package hmatrix
  flags: +openblas 

两者,并且应该使用此标志启用来构建项目。有关详细信息,请参阅文档cabalhls

评论

0赞 Stéphane Laurent 11/17/2023
我在其中创建并添加了它,它可以工作!cabal.configflags: openblas
0赞 Stéphane Laurent 11/17/2023 #2

这几乎是好的......使用项目文件 ,而不是 ,并写入此文件。cabal.configcabal.projectflags: openblas

奇怪的是,如果我们使用全局阴谋集团配置文件,这是行不通的。

评论

0赞 lsmor 11/18/2023
请问你使用的是哪个版本的阴谋集团?? 似乎是命令的配置文件(非常旧版本的阴谋集团,我从未听说过这样的文件)。cabal.configv1
0赞 Stéphane Laurent 11/18/2023
@Ismor我正在使用最新版本的阴谋集团。有一个全局的 Cabal 文件,并且是本地的,放在包的根文件夹中。.configcabal.config
0赞 lsmor 11/19/2023
注意阴谋集团的文档引用是旧版本的。此外,该文件的少数引用与 v1 样式构建相关。例如,命令使用但使用(docscabal.configcabal.projectcabal.config--v1-freeze-filecabal.config--v2-freeze-filecabal.project)
0赞 Stéphane Laurent 11/20/2023
@lsmor确实很奇怪。但它的工作原理是这样的:)