如何默认启用语言扩展pragmas项目范围?

问题描述 投票:2回答:1

有没有办法把 {-# LANGUAGE <feature> #-} 的实用性。

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

文件,以避免在每一个 项目的*.hs 文件?

haskell cabal haskell-stack
1个回答
2
投票

正如 @user2407038 在评论中所说的,你可以在项目中使用 default-extensions 字段 <project>.cabal 文件。

如果你想拥有 OverloadStringsGADTs 在项目中的所有模块中,你会把它列在cabal文件的相关部分(例如,如果你想让所有的库文件都使用它,就把它放在库中)。

例如:如果你使用的是一个模块,那么你可以把它放在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
  ...
© www.soinside.com 2019 - 2024. All rights reserved.