packages feed

diagnose-2.3.0: diagnose.cabal

cabal-version: 1.12

-- This file has been generated from package.yaml by hpack version 0.34.7.
--
-- see: https://github.com/sol/hpack

name:           diagnose
version:        2.3.0
synopsis:       Beautiful error reporting done easily
description:    This package provides a simple way of getting beautiful compiler/interpreter errors
                using a very simple interface for the programmer.
                .
                A quick tutorial is available in the module "Error.Diagnose", which goes on most of the basis
                of how to use it.
category:       Error Reporting
homepage:       https://github.com/mesabloo/diagnose#readme
bug-reports:    https://github.com/mesabloo/diagnose/issues
author:         Ghilain Bergeron
maintainer:     Ghilain Bergeron
copyright:      2021-2022 Ghilain Bergeron
license:        BSD3
license-file:   LICENSE
build-type:     Simple
extra-source-files:
    README.md

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

flag json
  description: Allows exporting diagnostics as JSON. This is disabled by default as this relies on the very heavy dependency Aeson.
  manual: True
  default: False

flag megaparsec-compat
  description: Includes a small compatibility layer (in the module `Error.Diagnose.Compat.Megaparsec`) to transform megaparsec errors into reports for this library.
  manual: True
  default: False

flag parsec-compat
  description: Includes a small compatibility layer (in the module `Error.Diagnose.Compat.Parsec`) to transform parsec errors into reports for this library.
  manual: True
  default: False

library
  exposed-modules:
      Error.Diagnose
      Error.Diagnose.Diagnostic
      Error.Diagnose.Position
      Error.Diagnose.Pretty
      Error.Diagnose.Report
      Error.Diagnose.Style
  other-modules:
      Data.List.Safe
      Error.Diagnose.Compat.Hints
      Error.Diagnose.Diagnostic.Internal
      Error.Diagnose.Report.Internal
      Paths_diagnose
  hs-source-dirs:
      src
  default-extensions:
      OverloadedStrings
      LambdaCase
      BlockArguments
  ghc-options: -Wall -Wextra
  build-depends:
      array ==0.5.*
    , base >=4.7 && <5
    , data-default >=0.7 && <1
    , dlist ==1.0.*
    , hashable >=1.3 && <2
    , prettyprinter >=1.7.0 && <2
    , prettyprinter-ansi-terminal >=1.1.0 && <2
    , text >=1.0.0.0 && <=2.0
    , unordered-containers ==0.2.*
    , wcwidth >=0.0.1 && <1
  if flag(json)
    cpp-options: -DUSE_AESON
    build-depends:
        aeson >=1.5 && <2
      , bytestring >=0.9 && <1
  if flag(megaparsec-compat)
    build-depends:
        containers ==0.6.*
      , megaparsec >=9.0.0
  if flag(parsec-compat)
    build-depends:
        parsec >=3.1.14
  if flag(megaparsec-compat)
    exposed-modules:
        Error.Diagnose.Compat.Megaparsec
  if flag(parsec-compat)
    exposed-modules:
        Error.Diagnose.Compat.Parsec
  default-language: Haskell2010

test-suite diagnose-megaparsec-tests
  type: exitcode-stdio-1.0
  main-is: Spec.hs
  other-modules:
      Instances
      Repro6
      Paths_diagnose
  hs-source-dirs:
      test/megaparsec
  default-extensions:
      OverloadedStrings
      LambdaCase
      BlockArguments
  ghc-options: -Wall -Wextra -threaded -rtsopts -with-rtsopts=-N
  build-depends:
      array ==0.5.*
    , base >=4.7 && <5
    , data-default >=0.7 && <1
    , diagnose
    , dlist ==1.0.*
    , hashable >=1.3 && <2
    , prettyprinter >=1.7.0 && <2
    , prettyprinter-ansi-terminal >=1.1.0 && <2
    , text >=1.2 && <3
    , unordered-containers ==0.2.*
    , wcwidth >=0.0.1 && <1
  if flag(json)
    cpp-options: -DUSE_AESON
    build-depends:
        aeson >=1.5 && <2
      , bytestring >=0.9 && <1
  if flag(megaparsec-compat)
    build-depends:
        containers ==0.6.*
      , megaparsec >=9.0.0
  if flag(parsec-compat)
    build-depends:
        parsec >=3.1.14
  if !(flag(megaparsec-compat))
    buildable: False
  default-language: Haskell2010

test-suite diagnose-parsec-tests
  type: exitcode-stdio-1.0
  main-is: Spec.hs
  other-modules:
      Repro2
      Paths_diagnose
  hs-source-dirs:
      test/parsec
  default-extensions:
      OverloadedStrings
      LambdaCase
      BlockArguments
  ghc-options: -Wall -Wextra -threaded -rtsopts -with-rtsopts=-N
  build-depends:
      array ==0.5.*
    , base >=4.7 && <5
    , data-default >=0.7 && <1
    , diagnose
    , dlist ==1.0.*
    , hashable >=1.3 && <2
    , prettyprinter >=1.7.0 && <2
    , prettyprinter-ansi-terminal >=1.1.0 && <2
    , text >=1.2 && <3
    , unordered-containers ==0.2.*
    , wcwidth >=0.0.1 && <1
  if flag(json)
    cpp-options: -DUSE_AESON
    build-depends:
        aeson >=1.5 && <2
      , bytestring >=0.9 && <1
  if flag(megaparsec-compat)
    build-depends:
        containers ==0.6.*
      , megaparsec >=9.0.0
  if flag(parsec-compat)
    build-depends:
        parsec >=3.1.14
  if !(flag(parsec-compat))
    buildable: False
  default-language: Haskell2010

test-suite diagnose-rendering-tests
  type: exitcode-stdio-1.0
  main-is: Spec.hs
  other-modules:
      Paths_diagnose
  hs-source-dirs:
      test/rendering
  default-extensions:
      OverloadedStrings
      LambdaCase
      BlockArguments
  ghc-options: -Wall -Wextra -threaded -rtsopts -with-rtsopts=-N
  build-depends:
      array ==0.5.*
    , base >=4.7 && <5
    , data-default >=0.7 && <1
    , diagnose
    , dlist ==1.0.*
    , hashable >=1.3 && <2
    , prettyprinter >=1.7.0 && <2
    , prettyprinter-ansi-terminal >=1.1.0 && <2
    , text >=1.0.0.0 && <=2.0
    , unordered-containers ==0.2.*
    , wcwidth >=0.0.1 && <1
  if flag(json)
    cpp-options: -DUSE_AESON
    build-depends:
        aeson >=1.5 && <2
      , bytestring >=0.9 && <1
  if flag(megaparsec-compat)
    build-depends:
        containers ==0.6.*
      , megaparsec >=9.0.0
  if flag(parsec-compat)
    build-depends:
        parsec >=3.1.14
  default-language: Haskell2010