如何在默认情况下在项目范围内启用语言扩展/编译指示?
How to enable language extensions / pragmas project wide by default?
有没有办法将 {-# LANGUAGE <feature> #-}
编译指示放入:
<project>.cabal
,或
stack.yaml
文件,以避免在项目的每个 *.hs 文件中重复相同的头代码?
正如@user2407038 在评论中所说,您可以在 <project>.cabal
文件中使用 default-extensions
字段。
如果你想在项目的所有模块中都有 OverloadStrings
和 GADTs
,你会在你的 cabal 文件的相关部分列出它(即如果你想要它用于所有你的库文件,把它放在库中)。
例如:
-- <project>.cabal
...
library
hs-source-dirs: src
default-extensions: GADTs
, OverloadedStrings
...
如果您使用 package.yaml
配置文件生成 <project>.cabal
文件,您也可以在此处指定此字段。
-- package.yaml
library:
source-dirs: src
default-extensions:
- OverloadedStrings
- GADTs
exposed-modules:
- MyModule
...
哇,这真烦人。 cabal 的错误消息字面意思是使用 'extensions:',但你必须使用 'default-extensions:'...
有没有办法将 {-# LANGUAGE <feature> #-}
编译指示放入:
<project>.cabal
,或stack.yaml
文件,以避免在项目的每个 *.hs 文件中重复相同的头代码?
正如@user2407038 在评论中所说,您可以在 <project>.cabal
文件中使用 default-extensions
字段。
如果你想在项目的所有模块中都有 OverloadStrings
和 GADTs
,你会在你的 cabal 文件的相关部分列出它(即如果你想要它用于所有你的库文件,把它放在库中)。
例如:
-- <project>.cabal
...
library
hs-source-dirs: src
default-extensions: GADTs
, OverloadedStrings
...
如果您使用 package.yaml
配置文件生成 <project>.cabal
文件,您也可以在此处指定此字段。
-- package.yaml
library:
source-dirs: src
default-extensions:
- OverloadedStrings
- GADTs
exposed-modules:
- MyModule
...
哇,这真烦人。 cabal 的错误消息字面意思是使用 'extensions:',但你必须使用 'default-extensions:'...