如何默认启用项目范围内的语言扩展/编译指示?

dba*_*nas 6 haskell cabal haskell-stack

有没有办法将{-# LANGUAGE <feature> #-}编译指示放入以下任一位置:

  • <project>.cabal, 或者
  • stack.yaml

文件,以避免在项目的每个*.hs文件中重复相同的头代码?

jke*_*len 10

正如@user2407038在评论中所说,您可以default-extensions在您的<project>.cabal

如果你想拥有OverloadStringsGADTs在项目的所有模块中都

例如:

-- <project>.cabal
...
library
  hs-source-dirs:       src
  default-extensions:   GADTs
                      , OverloadedStrings 
  ...
Run Code Online (Sandbox Code Playgroud)

如果您使用package.yaml配置文件来生成<project>.cabal文件,您还可以在那里指定此字段。

-- package.yaml
library:
  source-dirs: src
  default-extensions:
    - OverloadedStrings
    - GADTs
  exposed-modules:
    - MyModule
  ...
Run Code Online (Sandbox Code Playgroud)