packages feed

ghcide-0.2.0: ghcide.cabal

cabal-version:      1.20
build-type:         Simple
category:           Development
name:               ghcide
version:            0.2.0
license:            Apache-2.0
license-file:       LICENSE
author:             Digital Asset
maintainer:         Digital Asset
copyright:          Digital Asset 2018-2020
synopsis:           The core of an IDE
description:
    A library for building Haskell IDE's on top of the GHC API.
homepage:           https://github.com/digital-asset/ghcide#readme
bug-reports:        https://github.com/digital-asset/ghcide/issues
tested-with:        GHC==8.6.5
extra-source-files: include/ghc-api-version.h README.md CHANGELOG.md
                    test/data/hover/*.hs
                    test/data/multi/cabal.project
                    test/data/multi/hie.yaml
                    test/data/multi/a/a.cabal
                    test/data/multi/a/*.hs
                    test/data/multi/b/b.cabal
                    test/data/multi/b/*.hs

source-repository head
    type:     git
    location: https://github.com/digital-asset/ghcide.git

flag ghc-lib
  description: build against ghc-lib instead of the ghc package
  default: False
  manual: True

library
    default-language:   Haskell2010
    build-depends:
        aeson,
        array,
        async,
        base == 4.*,
        binary,
        bytestring,
        containers,
        data-default,
        deepseq,
        directory,
        extra,
        fuzzy,
        filepath,
        haddock-library >= 1.8,
        hashable,
        haskell-lsp-types == 0.22.*,
        haskell-lsp == 0.22.*,
        mtl,
        network-uri,
        prettyprinter-ansi-terminal,
        prettyprinter-ansi-terminal,
        prettyprinter,
        regex-tdfa >= 1.3.1.0,
        rope-utf16-splay,
        safe-exceptions,
        shake >= 0.18.4,
        sorted-list,
        stm,
        syb,
        text,
        time,
        transformers,
        unordered-containers >= 0.2.10.0,
        utf8-string,
        hslogger
    if flag(ghc-lib)
      build-depends:
        ghc-lib >= 8.8,
        ghc-lib-parser >= 8.8
      cpp-options: -DGHC_LIB
    else
      build-depends:
        ghc-boot-th,
        ghc-boot,
        ghc >= 8.4
    if os(windows)
      build-depends:
        Win32
    else
      build-depends:
        unix
      c-sources:
        cbits/getmodtime.c

    default-extensions:
        BangPatterns
        DeriveFunctor
        DeriveGeneric
        GeneralizedNewtypeDeriving
        LambdaCase
        NamedFieldPuns
        OverloadedStrings
        RecordWildCards
        ScopedTypeVariables
        StandaloneDeriving
        TupleSections
        TypeApplications
        ViewPatterns

    hs-source-dirs:
        src
    include-dirs:
        include
    exposed-modules:
        Development.IDE.Compat
        Development.IDE.Core.Debouncer
        Development.IDE.Core.FileStore
        Development.IDE.Core.IdeConfiguration
        Development.IDE.Core.OfInterest
        Development.IDE.Core.PositionMapping
        Development.IDE.Core.Rules
        Development.IDE.Core.RuleTypes
        Development.IDE.Core.Service
        Development.IDE.Core.Shake
        Development.IDE.GHC.Error
        Development.IDE.GHC.Util
        Development.IDE.Import.DependencyInformation
        Development.IDE.LSP.HoverDefinition
        Development.IDE.LSP.LanguageServer
        Development.IDE.LSP.Outline
        Development.IDE.LSP.Protocol
        Development.IDE.LSP.Server
        Development.IDE.Spans.Common
        Development.IDE.Types.Diagnostics
        Development.IDE.Types.Location
        Development.IDE.Types.Logger
        Development.IDE.Types.Options
        Development.IDE.Plugin
        Development.IDE.Plugin.Completions
        Development.IDE.Plugin.CodeAction
    other-modules:
        Development.IDE.Core.Compile
        Development.IDE.Core.Preprocessor
        Development.IDE.Core.FileExists
        Development.IDE.GHC.Compat
        Development.IDE.GHC.CPP
        Development.IDE.GHC.Orphans
        Development.IDE.GHC.Warnings
        Development.IDE.GHC.WithDynFlags
        Development.IDE.Import.FindImports
        Development.IDE.LSP.Notifications
        Development.IDE.Spans.AtPoint
        Development.IDE.Spans.Calculate
        Development.IDE.Spans.Documentation
        Development.IDE.Spans.Type
        Development.IDE.Plugin.CodeAction.PositionIndexed
        Development.IDE.Plugin.CodeAction.Rules
        Development.IDE.Plugin.CodeAction.RuleTypes
        Development.IDE.Plugin.Completions.Logic
        Development.IDE.Plugin.Completions.Types
    if (impl(ghc > 8.7) && impl(ghc < 8.10)) || flag(ghc-lib)
      hs-source-dirs: src-ghc88
      other-modules:
        Development.IDE.GHC.HieAst
    if (impl(ghc > 8.9))
      hs-source-dirs: src-ghc810
      other-modules:
        Development.IDE.GHC.HieAst
    ghc-options: -Wall -Wno-name-shadowing

executable ghcide-test-preprocessor
    default-language: Haskell2010
    hs-source-dirs: test/preprocessor
    ghc-options: -Wall -Wno-name-shadowing
    main-is: Main.hs
    build-depends:
        base == 4.*

executable ghcide
    if flag(ghc-lib)
      buildable: False
    default-language:   Haskell2010
    hs-source-dirs:     exe
    ghc-options:
                -threaded
                -Wall
                -Wno-name-shadowing
                -- allow user RTS overrides
                -rtsopts
                -- disable idle GC
                -- disable parallel GC
                -- increase nursery size
                "-with-rtsopts=-I0 -qg -A128M"
    main-is: Main.hs
    build-depends:
        time,
        async,
        hslogger,
        aeson,
        base == 4.*,
        binary,
        base16-bytestring >=0.1.1 && <0.2,
        bytestring,
        containers,
        cryptohash-sha1 >=0.11.100 && <0.12,
        data-default,
        deepseq,
        directory,
        extra,
        filepath,
        ghc-check >= 0.3.0.1 && < 0.4,
        ghc-paths,
        ghc,
        gitrev,
        hashable,
        haskell-lsp,
        haskell-lsp-types,
        hie-bios >= 0.5.0 && < 0.6,
        ghcide,
        optparse-applicative,
        shake,
        text,
        unordered-containers
    other-modules:
        Utils
        Arguments
        Paths_ghcide

    default-extensions:
        BangPatterns
        DeriveFunctor
        DeriveGeneric
        GeneralizedNewtypeDeriving
        LambdaCase
        NamedFieldPuns
        OverloadedStrings
        RecordWildCards
        ScopedTypeVariables
        StandaloneDeriving
        TupleSections
        TypeApplications
        ViewPatterns

test-suite ghcide-tests
    if flag(ghc-lib)
      buildable: False
    type: exitcode-stdio-1.0
    default-language: Haskell2010
    build-tool-depends:
        ghcide:ghcide,
        ghcide:ghcide-test-preprocessor
    build-depends:
        aeson,
        base,
        bytestring,
        containers,
        directory,
        extra,
        filepath,
        --------------------------------------------------------------
        -- The MIN_GHC_API_VERSION macro relies on MIN_VERSION pragmas
        -- which require depending on ghc. So the tests need to depend
        -- on ghc if they need to use MIN_GHC_API_VERSION. Maybe a
        -- better solution can be found, but this is a quick solution
        -- which works for now.
        ghc,
        --------------------------------------------------------------
        ghcide,
        ghc-typelits-knownnat,
        haddock-library,
        haskell-lsp,
        haskell-lsp-types,
        network-uri,
        lens,
        lsp-test >= 0.11.0.1 && < 0.12,
        parser-combinators,
        QuickCheck,
        quickcheck-instances,
        rope-utf16-splay,
        shake,
        tasty,
        tasty-expected-failure,
        tasty-hunit,
        tasty-quickcheck,
        tasty-rerun,
        text
    hs-source-dirs: test/cabal test/exe test/src
    include-dirs: include
    ghc-options: -threaded -Wall -Wno-name-shadowing
    main-is: Main.hs
    other-modules:
        Development.IDE.Test
        Development.IDE.Test.Runfiles
    default-extensions:
        BangPatterns
        DeriveFunctor
        DeriveGeneric
        GeneralizedNewtypeDeriving
        LambdaCase
        NamedFieldPuns
        OverloadedStrings
        RecordWildCards
        ScopedTypeVariables
        StandaloneDeriving
        TupleSections
        TypeApplications
        ViewPatterns