packages feed

ghcide-1.4.2.0: ghcide.cabal

cabal-version:      2.4
build-type:         Simple
category:           Development
name:               ghcide
version:            1.4.2.0
license:            Apache-2.0
license-file:       LICENSE
author:             Digital Asset and Ghcide contributors
maintainer:         Ghcide contributors
copyright:          Digital Asset and Ghcide contributors 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/haskell/haskell-language-server/tree/master/ghcide#readme
bug-reports:        https://github.com/haskell/haskell-language-server/issues
tested-with:        GHC == 8.6.4 || == 8.6.5 || == 8.8.3 || == 8.8.4 || == 8.10.2 || == 8.10.3 || == 8.10.4 || == 8.10.5 || == 8.10.6 || == 8.10.7 || == 9.0.1
extra-source-files: README.md CHANGELOG.md
                    test/data/**/*.project
                    test/data/**/*.cabal
                    test/data/**/*.yaml
                    test/data/**/*.hs
                    test/data/**/*.hs-boot

source-repository head
    type:     git
    location: https://github.com/haskell/haskell-language-server.git

flag ghc-patched-unboxed-bytecode
    description: The GHC version we link against supports unboxed sums and tuples in bytecode
    default:     False
    manual:      True

library
    default-language:   Haskell2010
    build-depends:
        aeson,
        aeson-pretty,
        array,
        async,
        base == 4.*,
        binary,
        bytestring,
        case-insensitive,
        containers,
        data-default,
        deepseq,
        directory,
        dependent-map,
        dependent-sum,
        dlist,
        -- we can't use >= 1.7.10 while we have to use hlint == 3.2.*
        extra >= 1.7.4 && < 1.7.10,
        fuzzy,
        filepath,
        fingertree,
        ghc-exactprint,
        ghc-trace-events,
        Glob,
        haddock-library >= 1.8 && < 1.11,
        hashable,
        hie-compat ^>= 0.2.0.0,
        hls-plugin-api ^>= 1.2.0.0,
        lens,
        hiedb == 0.4.0.*,
        lsp-types >= 1.3.0.1 && < 1.4,
        lsp == 1.2.*,
        mtl,
        network-uri,
        optparse-applicative,
        parallel,
        prettyprinter-ansi-terminal,
        prettyprinter,
        regex-tdfa >= 1.3.1.0,
        retrie,
        rope-utf16-splay,
        safe,
        safe-exceptions,
        hls-graph ^>= 1.4,
        sorted-list,
        sqlite-simple,
        stm,
        syb,
        text,
        time,
        transformers,
        unordered-containers >= 0.2.10.0,
        utf8-string,
        vector,
        hslogger,
        Diff ^>=0.4.0,
        vector,
        bytestring-encoding,
        opentelemetry >=0.6.1,
        heapsize ==0.3.*,
        unliftio,
        unliftio-core,
        ghc-boot-th,
        ghc-boot,
        ghc >= 8.6,
        ghc-check >=0.5.0.4,
        ghc-paths,
        cryptohash-sha1 >=0.11.100 && <0.12,
        hie-bios >= 0.7.1 && < 0.9.0,
        implicit-hie-cradle >= 0.3.0.5 && < 0.4,
        base16-bytestring >=0.1.1 && <1.1
    if os(windows)
      build-depends:
        Win32
    else
      build-depends:
        unix

    if impl(ghc < 8.10.5)
        build-depends:
            ghc-api-compat ==8.6
    elif impl(ghc == 8.10.5)
        build-depends:
            ghc-api-compat ==8.10.5
    elif impl(ghc == 8.10.6)
        build-depends:
            ghc-api-compat ==8.10.6
    elif impl(ghc == 8.10.7)
        build-depends:
            ghc-api-compat ==8.10.7
    elif impl(ghc == 9.0.1)
        build-depends:
            ghc-api-compat ==9.0.1

    default-extensions:
        ApplicativeDo
        BangPatterns
        DeriveFunctor
        DeriveGeneric
        DeriveFoldable
        DeriveTraversable
        FlexibleContexts
        GeneralizedNewtypeDeriving
        LambdaCase
        NamedFieldPuns
        OverloadedStrings
        RecordWildCards
        ScopedTypeVariables
        StandaloneDeriving
        TupleSections
        TypeApplications
        ViewPatterns
        DataKinds
        TypeOperators
        KindSignatures

    hs-source-dirs:
        src
        session-loader
    exposed-modules:
        Control.Concurrent.Strict
        Generics.SYB.GHC
        Development.IDE
        Development.IDE.Main
        Development.IDE.Core.Actions
        Development.IDE.Core.Debouncer
        Development.IDE.Core.FileStore
        Development.IDE.Core.IdeConfiguration
        Development.IDE.Core.OfInterest
        Development.IDE.Core.PositionMapping
        Development.IDE.Core.Preprocessor
        Development.IDE.Core.ProgressReporting
        Development.IDE.Core.Rules
        Development.IDE.Core.RuleTypes
        Development.IDE.Core.Service
        Development.IDE.Core.Shake
        Development.IDE.Core.Tracing
        Development.IDE.Core.UseStale
        Development.IDE.GHC.Compat
        Development.IDE.Core.Compile
        Development.IDE.GHC.Error
        Development.IDE.GHC.ExactPrint
        Development.IDE.GHC.Orphans
        Development.IDE.GHC.Util
        Development.IDE.Import.DependencyInformation
        Development.IDE.Import.FindImports
        Development.IDE.LSP.HoverDefinition
        Development.IDE.LSP.LanguageServer
        Development.IDE.LSP.Outline
        Development.IDE.LSP.Server
        Development.IDE.Session
        Development.IDE.Spans.Common
        Development.IDE.Spans.Documentation
        Development.IDE.Spans.AtPoint
        Development.IDE.Spans.LocalBindings
        Development.IDE.Types.Diagnostics
        Development.IDE.Types.Exports
        Development.IDE.Types.HscEnvEq
        Development.IDE.Types.KnownTargets
        Development.IDE.Types.Location
        Development.IDE.Types.Logger
        Development.IDE.Types.Options
        Development.IDE.Types.Shake
        Development.IDE.Plugin
        Development.IDE.Plugin.Completions
        Development.IDE.Plugin.Completions.Types
        Development.IDE.Plugin.CodeAction
        Development.IDE.Plugin.CodeAction.ExactPrint
        Development.IDE.Plugin.HLS
        Development.IDE.Plugin.HLS.GhcIde
        Development.IDE.Plugin.Test
        Development.IDE.Plugin.TypeLenses

    other-modules:
        Development.IDE.Core.FileExists
        Development.IDE.GHC.CPP
        Development.IDE.GHC.Warnings
        Development.IDE.LSP.Notifications
        Development.IDE.Plugin.CodeAction.PositionIndexed
        Development.IDE.Plugin.CodeAction.Args
        Development.IDE.Plugin.Completions.Logic
        Development.IDE.Session.VersionCheck
        Development.IDE.Types.Action
    ghc-options: -Wall -Wno-name-shadowing -Wincomplete-uni-patterns -Wno-unticked-promoted-constructors

    if flag(ghc-patched-unboxed-bytecode)
      cpp-options: -DGHC_PATCHED_UNBOXED_BYTECODE

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.*

benchmark benchHist
    type: exitcode-stdio-1.0
    default-language: Haskell2010
    ghc-options: -Wall -Wno-name-shadowing -threaded
    main-is: Main.hs
    hs-source-dirs: bench/hist bench/lib
    other-modules: Experiments.Types
    build-tool-depends:
        ghcide:ghcide-bench,
        hp2pretty:hp2pretty,
        implicit-hie:gen-hie
    default-extensions:
        BangPatterns
        DeriveFunctor
        DeriveGeneric
        FlexibleContexts
        GeneralizedNewtypeDeriving
        LambdaCase
        NamedFieldPuns
        RecordWildCards
        ScopedTypeVariables
        StandaloneDeriving
        TupleSections
        TypeApplications
        ViewPatterns

    build-depends:
        aeson,
        base == 4.*,
        shake-bench == 0.1.*,
        directory,
        extra,
        filepath,
        optparse-applicative,
        shake,
        text,
        yaml

executable ghcide
    default-language:   Haskell2010
    hs-source-dirs:     exe
    ghc-options:
                -threaded
                -Wall
                -Wincomplete-uni-patterns
                -Wno-name-shadowing
                -- allow user RTS overrides
                -rtsopts
                -- disable idle GC
                -- increase nursery size
                "-with-rtsopts=-I0 -A128M"
    main-is: Main.hs
    build-depends:
        hiedb,
        aeson,
        base == 4.*,
        data-default,
        directory,
        extra,
        filepath,
        gitrev,
        safe-exceptions,
        ghc,
        hashable,
        lsp,
        lsp-types,
        heapsize,
        hie-bios,
        hls-plugin-api,
        ghcide,
        lens,
        optparse-applicative,
        hls-graph,
        text,
        unordered-containers,
    other-modules:
        Arguments
        Paths_ghcide
    autogen-modules:
        Paths_ghcide

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

test-suite ghcide-tests
    type: exitcode-stdio-1.0
    default-language: Haskell2010
    build-tool-depends:
        ghcide:ghcide,
        ghcide:ghcide-test-preprocessor,
        implicit-hie:gen-hie
    build-depends:
        aeson,
        async,
        base,
        binary,
        bytestring,
        containers,
        data-default,
        directory,
        extra,
        filepath,
        --------------------------------------------------------------
        -- The MIN_VERSION_ghc 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_VERSION_ghc. Maybe a
        -- better solution can be found, but this is a quick solution
        -- which works for now.
        ghc,
        --------------------------------------------------------------
        ghcide,
        ghc-typelits-knownnat,
        haddock-library,
        lsp,
        lsp-types,
        hls-plugin-api,
        network-uri,
        lens,
        lsp-test ^>= 0.14,
        optparse-applicative,
        process,
        QuickCheck,
        quickcheck-instances,
        rope-utf16-splay,
        regex-tdfa ^>= 1.3.1,
        safe,
        safe-exceptions,
        shake,
        hls-graph,
        tasty,
        tasty-expected-failure,
        tasty-hunit,
        tasty-quickcheck,
        tasty-rerun,
        text,
        unordered-containers,
    if (impl(ghc >= 8.6))
      build-depends:
          record-dot-preprocessor,
          record-hasfield
    hs-source-dirs: test/cabal test/exe test/src bench/lib
    ghc-options: -threaded -Wall -Wno-name-shadowing -O0 -Wno-unticked-promoted-constructors
    main-is: Main.hs
    other-modules:
        Development.IDE.Test
        Development.IDE.Test.Diagnostic
        Development.IDE.Test.Runfiles
        Experiments
        Experiments.Types
        Progress
    default-extensions:
        BangPatterns
        DeriveFunctor
        DeriveGeneric
        FlexibleContexts
        GeneralizedNewtypeDeriving
        LambdaCase
        NamedFieldPuns
        OverloadedStrings
        RecordWildCards
        ScopedTypeVariables
        StandaloneDeriving
        TupleSections
        TypeApplications
        ViewPatterns

executable ghcide-bench
    default-language: Haskell2010
    build-tool-depends:
        ghcide:ghcide
    build-depends:
        aeson,
        base,
        bytestring,
        containers,
        directory,
        extra,
        filepath,
        ghcide,
        lens,
        lsp-test,
        lsp-types,
        optparse-applicative,
        process,
        safe-exceptions,
        hls-graph,
        shake,
        text
    hs-source-dirs: bench/lib bench/exe test/src
    ghc-options: -threaded -Wall -Wno-name-shadowing -rtsopts
    main-is: Main.hs
    other-modules:
        Development.IDE.Test.Diagnostic
        Experiments
        Experiments.Types
    default-extensions:
        BangPatterns
        DeriveFunctor
        DeriveGeneric
        FlexibleContexts
        GeneralizedNewtypeDeriving
        LambdaCase
        NamedFieldPuns
        OverloadedStrings
        RecordWildCards
        ScopedTypeVariables
        StandaloneDeriving
        TupleSections
        TypeApplications
        ViewPatterns