packages feed

fourmolu-0.19.0.0: fourmolu.cabal

cabal-version: 2.4
name: fourmolu
version: 0.19.0.0
license: BSD-3-Clause
license-file: LICENSE.md
maintainer:
    Matt Parsons <parsonsmatt@gmail.com>
    George Thomas <georgefsthomas@gmail.com>
    Brandon Chinn <brandonchinn178@gmail.com>
tested-with:
  ghc ==9.8.4
  ghc ==9.10.1
  ghc ==9.12.1

homepage: https://github.com/fourmolu/fourmolu
bug-reports: https://github.com/fourmolu/fourmolu/issues
synopsis: A formatter for Haskell source code
description: A formatter for Haskell source code.
category: Development, Formatting
build-type: Simple
extra-source-files:
  data/**/*.cabal
  data/**/*.hs
  data/**/*.txt
  extract-hackage-info/hackage-info.bin
  -- needed for integration tests
  fixity-tests/*.hs
  region-tests/*.hs
  fourmolu.yaml

extra-doc-files:
  CHANGELOG.md
  README.md

source-repository head
  type:     git
  location: https://github.com/fourmolu/fourmolu.git

flag dev
  description: Turn on development settings.
  default: False
  manual: True

library
  exposed-modules:
    Ormolu
    Ormolu.Config
    Ormolu.Diff.ParseResult
    Ormolu.Diff.Text
    Ormolu.Exception
    Ormolu.Fixity
    Ormolu.Fixity.Imports
    Ormolu.Fixity.Internal
    Ormolu.Fixity.Parser
    Ormolu.Fixity.Printer
    Ormolu.Imports
    Ormolu.Parser
    Ormolu.Parser.CommentStream
    Ormolu.Parser.Pragma
    Ormolu.Parser.Result
    Ormolu.Printer
    Ormolu.Printer.Combinators
    Ormolu.Printer.Comments
    Ormolu.Printer.Internal
    Ormolu.Printer.Meat.Common
    Ormolu.Printer.Meat.Declaration
    Ormolu.Printer.Meat.Declaration.Annotation
    Ormolu.Printer.Meat.Declaration.Class
    Ormolu.Printer.Meat.Declaration.Data
    Ormolu.Printer.Meat.Declaration.Default
    Ormolu.Printer.Meat.Declaration.Foreign
    Ormolu.Printer.Meat.Declaration.Instance
    Ormolu.Printer.Meat.Declaration.OpTree
    Ormolu.Printer.Meat.Declaration.RoleAnnotation
    Ormolu.Printer.Meat.Declaration.Rule
    Ormolu.Printer.Meat.Declaration.Signature
    Ormolu.Printer.Meat.Declaration.Splice
    Ormolu.Printer.Meat.Declaration.StringLiteral
    Ormolu.Printer.Meat.Declaration.Type
    Ormolu.Printer.Meat.Declaration.TypeFamily
    Ormolu.Printer.Meat.Declaration.Value
    Ormolu.Printer.Meat.Declaration.Warning
    Ormolu.Printer.Meat.ImportExport
    Ormolu.Printer.Meat.Module
    Ormolu.Printer.Meat.Pragma
    Ormolu.Printer.Meat.Type
    Ormolu.Printer.Operators
    Ormolu.Printer.SpanStream
    Ormolu.Processing.Common
    Ormolu.Processing.Cpp
    Ormolu.Processing.Preprocess
    Ormolu.Terminal
    Ormolu.Terminal.QualifiedDo
    Ormolu.Utils
    Ormolu.Utils.Cabal
    Ormolu.Utils.Fixity
    Ormolu.Utils.IO

  hs-source-dirs: src
  other-modules: GHC.DynFlags
  default-language: GHC2021
  build-depends:
    Cabal-syntax >=3.14 && <3.15,
    Diff >=0.4 && <2,
    MemoTrie >=0.6 && <0.7,
    ansi-terminal >=0.10 && <1.2,
    array >=0.5 && <0.6,
    base >=4.14 && <5,
    binary >=0.8 && <0.9,
    bytestring >=0.2 && <0.13,
    choice >=0.2.4.1 && <0.3,
    containers >=0.5 && <0.8,
    directory ^>=1.3,
    file-embed >=0.0.15 && <0.1,
    filepath >=1.2 && <1.6,
    ghc-lib-parser >=9.12 && <9.13,
    megaparsec >=9,
    mtl >=2 && <3,
    syb >=0.7 && <0.8,
    text >=2.1 && <3,

  -- specific to fourmolu
  exposed-modules:
    Ormolu.Imports.Grouping
    Ormolu.Utils.Glob
    Paths_fourmolu
  other-modules:
    Ormolu.Config.Gen
    Ormolu.Config.Types
  autogen-modules:
    Paths_fourmolu
  build-depends:
    aeson >=1.0 && <3.0,
    scientific >=0.3.2 && <1,

  if flag(dev)
    ghc-options:
      -Wall
      -Werror
      -Wredundant-constraints
      -Wpartial-fields
      -Wunused-packages
  else
    ghc-options:
      -O2
      -Wall

executable fourmolu
  main-is: Main.hs
  hs-source-dirs: app
  other-modules: Paths_fourmolu
  autogen-modules: Paths_fourmolu
  default-language: GHC2021
  build-depends:
    Cabal-syntax >=3.14 && <3.15,
    base >=4.12 && <5,
    containers >=0.5 && <0.8,
    directory ^>=1.3,
    filepath >=1.2 && <1.6,
    ghc-lib-parser >=9.12 && <9.13,
    optparse-applicative >=0.14 && <0.19,
    text >=2.1 && <3,
    th-env >=0.1.1 && <0.2,
    unliftio >=0.2.10 && <0.3,

  -- specific to fourmolu
  build-depends:
    directory >=1.3.3 && <1.4,
    fourmolu,
    optparse-applicative >=0.17,
    terminal-size >=0.1 && <0.4,
    yaml >=0.11.6.0 && <1,

  -- We use parallelism so we need a threaded runtime to get any
  -- benefit.
  ghc-options:
    -threaded
    -rtsopts
    -with-rtsopts=-N

  if flag(dev)
    ghc-options:
      -Wall
      -Werror
      -Wredundant-constraints
      -Wpartial-fields
      -Wunused-packages
      -Wwarn=unused-packages
  else
    ghc-options:
      -O2
      -Wall

test-suite tests
  type: exitcode-stdio-1.0
  main-is: Spec.hs
  build-tool-depends: hspec-discover:hspec-discover >=2 && <3
  hs-source-dirs: tests
  other-modules:
    Ormolu.CabalInfoSpec
    Ormolu.Diff.TextSpec
    Ormolu.Fixity.ParserSpec
    Ormolu.Fixity.PrinterSpec
    Ormolu.FixitySpec
    Ormolu.OpTreeSpec
    Ormolu.Parser.OptionsSpec
    Ormolu.Parser.ParseFailureSpec
    Ormolu.Parser.PragmaSpec
    Ormolu.PrinterSpec

  default-language: GHC2021
  build-depends:
    Cabal-syntax >=3.14 && <3.15,
    QuickCheck >=2.14,
    base >=4.14 && <5,
    choice >=0.2.4.1 && <0.3,
    containers >=0.5 && <0.8,
    directory ^>=1.3,
    filepath >=1.2 && <1.6,
    ghc-lib-parser >=9.12 && <9.13,
    hspec >=2 && <3,
    hspec-megaparsec >=2.2,
    megaparsec >=9,
    path >=0.6 && <0.10,
    path-io >=1.4.2 && <2,
    temporary ^>=1.3,
    text >=2.1 && <3,

  -- specific to fourmolu tests
  other-modules:
    Ormolu.Config.PrinterOptsSpec
    Ormolu.ConfigSpec
    Ormolu.Integration.CLIOptionsSpec
    Ormolu.Integration.CLISpec
    Ormolu.Integration.FixitySpec
    Ormolu.Integration.RegionSpec
    Ormolu.Integration.Utils
    Ormolu.Utils.GlobSpec
  build-depends:
    Diff >=1 && <2,
    bytestring,
    fourmolu,
    pretty >=1.0 && <2.0,
    process >=1.6 && <2.0,
    yaml,
  build-tool-depends: fourmolu:fourmolu

  if flag(dev)
    ghc-options:
      -Wall
      -Werror
      -Wredundant-constraints
      -Wpartial-fields
      -Wunused-packages
  else
    ghc-options:
      -O2
      -Wall