cabal-version: 2.4
name:          hls-plugin-api
version:       1.5.0.0
synopsis:      Haskell Language Server API for plugin communication
description:
  Please see the README on GitHub at <https://github.com/haskell/haskell-language-server#readme>

homepage:      https://github.com/haskell/haskell-language-server#readme
bug-reports:   https://github.com/haskell/haskell-language-server/issues
license:       Apache-2.0
license-file:  LICENSE
author:        The Haskell IDE Team
maintainer:    alan.zimm@gmail.com
copyright:     The Haskell IDE Team
category:      Development
build-type:    Simple

flag pedantic
  description: Enable -Werror
  default:     False
  manual:      True

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

library
  exposed-modules:
    Ide.Plugin.Config
    Ide.Plugin.ConfigUtils
    Ide.Plugin.Properties
    Ide.PluginUtils
    Ide.Types

  hs-source-dirs:     src
  build-depends:
    , aeson
    , base                  >=4.12    && <5
    , containers
    , data-default
    , dependent-map
    , dependent-sum         >=0.7
    , Diff                  ^>=0.4.0
    , dlist
    , extra
    , filepath
    , ghc
    , hashable
    , hls-graph             ^>= 1.8
    , lens
    , lens-aeson
    , lsp                   ^>=1.6.0.0
    , opentelemetry         >=0.4
    , optparse-applicative
    , process
    , regex-tdfa            >=1.3.1.0
    , text
    , transformers
    , unordered-containers

  if os(windows)
    build-depends: Win32

  else
    build-depends: unix

  ghc-options:
    -Wall -Wredundant-constraints -Wno-name-shadowing
    -Wno-unticked-promoted-constructors

  if flag(pedantic)
    ghc-options: -Werror

  default-language:   Haskell2010
  default-extensions:
    DataKinds
    KindSignatures
    TypeOperators

test-suite tests
  type:             exitcode-stdio-1.0
  default-language: Haskell2010
  hs-source-dirs:   test
  main-is:          Main.hs
  ghc-options:      -threaded -rtsopts -with-rtsopts=-N
  other-modules:    Ide.PluginUtilsTest
  build-depends:
      base
    , hls-plugin-api
    , tasty
    , tasty-hunit
    , tasty-rerun
    , lsp-types