Cabal revisions of haskell-language-server-1.9.0.0
Hackage metadata revisions edit the .cabal file after upload; each diff below is one revision.
revision 1
-cabal-version: 3.0-category: Development-name: haskell-language-server-version: 1.9.0.0-synopsis: LSP server for GHC-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-author: The Haskell IDE Team-maintainer: alan.zimm@gmail.com-copyright: The Haskell IDE Team-license: Apache-2.0-license-file: LICENSE-build-type: Simple-tested-with: GHC == 8.10.7 || == 9.0.2 || ==9.2.5-extra-source-files:- README.md- ChangeLog.md- test/testdata/**/*.project- test/testdata/**/*.cabal- test/testdata/**/*.yaml- test/testdata/**/*.hs- bindist/wrapper.in--flag pedantic- description: Enable -Werror- default: False- manual: True--source-repository head- type: git- location: https://github.com/haskell/haskell-language-server--common common-deps- build-depends:- , base >=4.12 && <5- , directory- , extra- , filepath- , text- , prettyprinter---- Default warnings in HLS-common warnings- ghc-options: -Wall -Wredundant-constraints -Wno-name-shadowing -Wno-unticked-promoted-constructors---- Allow compiling in pedantic mode-common pedantic- if flag(pedantic)- ghc-options: -Werror---- Plugin flags are designed for 'cabal install haskell-language-server':--- - Bulk flags should be default:False--- - Individual flags should be default:True---- The intent of this flag is being able to keep the ghc condition for hackage--- but skip it via flags in cabal.project as plugins for new ghcs usually--- are buildable using cabal.project tweaks-flag ignore-plugins-ghc-bounds- description: Force the inclusion of plugins even if they are not buildable by default with a specific ghc version- default: False- manual: True---flag cabal- description: Enable cabal plugin- default: True- manual: True--flag class- description: Enable class plugin- default: True- manual: True--flag callHierarchy- description: Enable call hierarchy plugin- default: True- manual: True--flag haddockComments- description: Enable haddockComments plugin- default: True- manual: True--flag eval- description: Enable eval plugin- default: True- manual: True--flag importLens- description: Enable importLens plugin- default: True- manual: True--flag refineImports- description: Enable refineImports plugin- default: True- manual: True--flag rename- description: Enable rename plugin- default: True- manual: True--flag retrie- description: Enable retrie plugin- default: True- manual: True--flag tactic- description: Enable tactic plugin- default: True- manual: True--flag hlint- description: Enable hlint plugin- default: True- manual: True--flag stan- description: Enable stan plugin- default: True- manual: True--flag moduleName- description: Enable moduleName plugin- default: True- manual: True--flag pragmas- description: Enable pragmas plugin- default: True- manual: True--flag splice- description: Enable splice plugin- default: True- manual: True--flag alternateNumberFormat- description: Enable Alternate Number Format plugin- default: True- manual: True--flag qualifyImportedNames- description: Enable qualifyImportedNames plugin- default: True- manual: True--flag codeRange- description: Enable Code Range plugin- default: True- manual: True--flag changeTypeSignature- description: Enable changeTypeSignature plugin- default: True- manual: True--flag gadt- description: Enable gadt plugin- default: True- manual: True--flag explicitFixity- description: Enable explicitFixity plugin- default: True- manual: True--flag explicitFields- description: Enable explicitFields plugin- default: True- manual: True---- formatters--flag floskell- description: Enable floskell plugin- default: True- manual: True--flag fourmolu- description: Enable fourmolu plugin- default: True- manual: True--flag ormolu- description: Enable ormolu plugin- default: True- manual: True--flag stylishHaskell- description: Enable stylishHaskell plugin- default: True- manual: True--flag brittany- description: Enable brittany plugin- default: True- manual: True--flag refactor- description: Enable refactor plugin- default: True- manual: True--flag dynamic- description: Build with the dyn rts- default: True- manual: True--flag cabalfmt- description: Enable cabal-fmt plugin- default: True- manual: True--common cabalfmt- if flag(cabalfmt)- build-depends: hls-cabal-fmt-plugin ^>= 0.1.0.0- cpp-options: -Dhls_cabalfmt--common cabal- if flag(cabal)- build-depends: hls-cabal-plugin ^>= 0.1- cpp-options: -Dhls_cabal--common class- if flag(class)- build-depends: hls-class-plugin ^>= 1.1- cpp-options: -Dhls_class--common callHierarchy- if flag(callHierarchy)- build-depends: hls-call-hierarchy-plugin ^>= 1.1- cpp-options: -Dhls_callHierarchy--common haddockComments- if flag(haddockComments) && (impl(ghc < 9.2.1) || flag(ignore-plugins-ghc-bounds))- build-depends: hls-haddock-comments-plugin ^>= 1.1- cpp-options: -Dhls_haddockComments--common eval- if flag(eval) && (impl(ghc < 9.4.1) || flag(ignore-plugins-ghc-bounds))- build-depends: hls-eval-plugin ^>= 1.4- cpp-options: -Dhls_eval--common importLens- if flag(importLens)- build-depends: hls-explicit-imports-plugin ^>= 1.2- cpp-options: -Dhls_importLens--common refineImports- if flag(refineImports)- build-depends: hls-refine-imports-plugin ^>=1.0- cpp-options: -Dhls_refineImports--common rename- if flag(rename) && (impl(ghc < 9.4.1) || flag(ignore-plugins-ghc-bounds))- build-depends: hls-rename-plugin ^>= 1.0- cpp-options: -Dhls_rename--common retrie- if flag(retrie)- build-depends: hls-retrie-plugin ^>= 1.0- cpp-options: -Dhls_retrie--common tactic- if flag(tactic) && (impl(ghc < 9.2.1) || flag(ignore-plugins-ghc-bounds))- build-depends: hls-tactics-plugin ^>= 1.8- cpp-options: -Dhls_tactic--common hlint- if flag(hlint)- build-depends: hls-hlint-plugin ^>= 1.1- cpp-options: -Dhls_hlint--common stan- if flag(stan) && (impl(ghc >= 8.10) && impl(ghc < 9.0))- build-depends: hls-stan-plugin ^>= 1.0- cpp-options: -Dhls_stan--common moduleName- if flag(moduleName)- build-depends: hls-module-name-plugin ^>= 1.1- cpp-options: -Dhls_moduleName--common pragmas- if flag(pragmas)- build-depends: hls-pragmas-plugin ^>= 1.0- cpp-options: -Dhls_pragmas--common splice- if flag(splice)- build-depends: hls-splice-plugin ^>=1.0.0.1- cpp-options: -Dhls_splice--common alternateNumberFormat- if flag(alternateNumberFormat)- build-depends: hls-alternate-number-format-plugin ^>= 1.3- cpp-options: -Dhls_alternateNumberFormat--common qualifyImportedNames- if flag(qualifyImportedNames)- build-depends: hls-qualify-imported-names-plugin ^>=1.0- cpp-options: -Dhls_qualifyImportedNames--common codeRange- if flag(codeRange)- build-depends: hls-code-range-plugin ^>= 1.1- cpp-options: -Dhls_codeRange--common changeTypeSignature- if flag(changeTypeSignature)- build-depends: hls-change-type-signature-plugin ^>= 1.1- cpp-options: -Dhls_changeTypeSignature--common gadt- if flag(gadt)- build-depends: hls-gadt-plugin ^>= 1.0- cpp-options: -Dhls_gadt--common explicitFixity- if flag(explicitFixity)- build-depends: hls-explicit-fixity-plugin ^>= 1.1- cpp-options: -DexplicitFixity--common explicitFields- if flag(explicitFields)- build-depends: hls-explicit-record-fields-plugin ^>= 1.0- cpp-options: -DexplicitFields---- formatters--common floskell- if flag(floskell) && (impl(ghc < 9.4.1) || flag(ignore-plugins-ghc-bounds))- build-depends: hls-floskell-plugin ^>= 1.0- cpp-options: -Dhls_floskell--common fourmolu- if flag(fourmolu)- build-depends: hls-fourmolu-plugin ^>= 1.1- cpp-options: -Dhls_fourmolu--common ormolu- if flag(ormolu) && (impl(ghc < 9.4.1) || flag(ignore-plugins-ghc-bounds))- build-depends: hls-ormolu-plugin ^>= 1.0- cpp-options: -Dhls_ormolu--common stylishHaskell- if flag(stylishHaskell) && (impl(ghc < 9.4.1) || flag(ignore-plugins-ghc-bounds))- build-depends: hls-stylish-haskell-plugin ^>= 1.0- cpp-options: -Dhls_stylishHaskell--common brittany- if flag(brittany) && (impl(ghc < 9.0.2) || flag(ignore-plugins-ghc-bounds))- build-depends: hls-brittany-plugin ^>= 1.1- cpp-options: -Dhls_brittany--common refactor- if flag(refactor)- build-depends: hls-refactor-plugin ^>= 1.1- cpp-options: -Dhls_refactor--library- import: common-deps- -- configuration- , warnings- , pedantic- -- plugins- , cabal- , callHierarchy- , cabalfmt- , changeTypeSignature- , class- , haddockComments- , eval- , importLens- , refineImports- , rename- , retrie- , tactic- , hlint- , stan- , moduleName- , pragmas- , splice- , alternateNumberFormat- , qualifyImportedNames- , codeRange- , gadt- , explicitFixity- , explicitFields- , floskell- , fourmolu- , ormolu- , stylishHaskell- , brittany- , refactor-- exposed-modules:- Ide.Arguments- Ide.Main- Ide.Version- HlsPlugins-- other-modules: Paths_haskell_language_server- autogen-modules: Paths_haskell_language_server- hs-source-dirs: src- build-depends:- , async- , base16-bytestring- , bytestring- , containers- , cryptohash-sha1- , data-default- , ghc- , ghcide ^>=1.9- , githash >=0.1.6.1- , lsp- , hie-bios- , hiedb- , hls-plugin-api ^>=1.6- , optparse-applicative- , optparse-simple- , process- , hls-graph- , safe-exceptions- , sqlite-simple- , unordered-containers- , aeson-pretty-- default-language: Haskell2010- default-extensions: DataKinds, TypeOperators--executable haskell-language-server- import: common-deps- -- configuration- , warnings- , pedantic- main-is: Main.hs- hs-source-dirs: exe-- ghc-options:- -threaded- -- allow user RTS overrides- -rtsopts- -- disable idle GC- -- increase nursery size- -- Enable collection of heap statistics- "-with-rtsopts=-I0 -A128M -T"- -Wno-unticked-promoted-constructors- if flag(pedantic)- ghc-options: -Werror- if !os(windows) && flag(dynamic)- -- We want to link against the dyn rts just like official GHC binaries do;- -- the linked rts determines how external libs are loaded dynamically by TH.- -- The standard way of doing this is via the --enable-dynamic-executables Cabal option- -- Unfortunately it doesnt' work, see https://github.com/haskell/haskell-language-server/issues/2659- -- One can use --ghc-options=-dynamic but this gets applied to the dependencies as well,- -- which results in massive rebuilds and incompatibilities with profiling.- -- So instead we set the -dynamic flag diretly here.- ghc-options: -dynamic-- build-depends:- , aeson- , async- , base16-bytestring- , binary- , bytestring- , containers- , cryptohash-sha1- , deepseq- , ghc- , ghc-boot-th- , ghcide- , hashable- , haskell-language-server- , lsp- , hie-bios- , hiedb- , lens- , regex-tdfa- , optparse-applicative- , hls-plugin-api- , lens- , mtl- , regex-tdfa- , safe-exceptions- , hls-graph- , sqlite-simple- , stm- , temporary- , transformers- , unordered-containers-- default-language: Haskell2010- default-extensions: DataKinds, TypeOperators--executable haskell-language-server-wrapper- import: common-deps- , warnings- , pedantic- main-is: Wrapper.hs- hs-source-dirs: exe- other-modules: Paths_haskell_language_server- autogen-modules: Paths_haskell_language_server- ghc-options:- -threaded- -- allow user RTS overrides- -rtsopts- -- disable idle GC- -- increase nursery size- "-with-rtsopts=-I0 -A128M"-- build-depends:- , data-default- , ghc- , ghc-paths- , ghcide- , gitrev- , haskell-language-server- , hslogger- , hie-bios- , hls-plugin-api- , lsp- , lsp-types- , mtl- , optparse-applicative- , optparse-simple- , process- , transformers- , unliftio-core- if !os(windows)- build-depends:- unix- , containers-- default-language: Haskell2010---test-suite func-test- import: common-deps- , warnings- , pedantic- , refactor- type: exitcode-stdio-1.0- default-language: Haskell2010- build-tool-depends:- haskell-language-server:haskell-language-server -any,- ghcide:ghcide-test-preprocessor -any-- build-depends:- , bytestring- , data-default- , deepseq- , hashable- , hspec-expectations- , lens- , lens-aeson- , ghcide- , ghcide-test-utils- , hls-test-utils ^>=1.5- , lsp-types- , aeson- , hls-plugin-api- , lsp-test- , containers- , unordered-containers-- hs-source-dirs: test/functional test/utils-- main-is: Main.hs- other-modules:- Command- Completion- Config- Deferred- Definition- Diagnostic- Format- FunctionalBadProject- FunctionalCodeAction- HieBios- Highlight- Progress- Reference- Symbol- TypeDefinition- Test.Hls.Command- Test.Hls.Flags-- default-extensions: OverloadedStrings- ghc-options:- -threaded -rtsopts -with-rtsopts=-N---- Duplicating inclusion plugin conditions until tests are moved to their own packages- if flag(eval)- cpp-options: -Dhls_eval--- formatters- if flag(floskell) && (impl(ghc < 9.2.1) || flag(ignore-plugins-ghc-bounds))- cpp-options: -Dhls_floskell- if flag(fourmolu)- cpp-options: -Dhls_fourmolu- if flag(ormolu)- cpp-options: -Dhls_ormolu--test-suite wrapper-test- import: common-deps- , warnings- , pedantic- type: exitcode-stdio-1.0- build-tool-depends:- haskell-language-server:haskell-language-server-wrapper -any,- haskell-language-server:haskell-language-server -any-- default-language: Haskell2010- build-depends:- process- , hls-test-utils-- hs-source-dirs: test/wrapper- main-is: Main.hs--benchmark benchmark- type: exitcode-stdio-1.0- default-language: Haskell2010- ghc-options: -Wall -Wno-name-shadowing -threaded- main-is: Main.hs- hs-source-dirs: bench- build-tool-depends:- ghcide-bench: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.*,- containers,- data-default,- directory,- extra,- filepath,- ghcide-bench,- haskell-language-server,- hls-plugin-api,- lens,- lens-aeson,- optparse-applicative,- shake,- shake-bench == 0.2.*,- text,- yaml+cabal-version: 3.0 +category: Development +name: haskell-language-server +version: 1.9.0.0 +x-revision: 1 +synopsis: LSP server for GHC +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 +author: The Haskell IDE Team +maintainer: alan.zimm@gmail.com +copyright: The Haskell IDE Team +license: Apache-2.0 +license-file: LICENSE +build-type: Simple +tested-with: GHC == 8.10.7 || == 9.0.2 || ==9.2.5 +extra-source-files: + README.md + ChangeLog.md + test/testdata/**/*.project + test/testdata/**/*.cabal + test/testdata/**/*.yaml + test/testdata/**/*.hs + bindist/wrapper.in + +flag pedantic + description: Enable -Werror + default: False + manual: True + +source-repository head + type: git + location: https://github.com/haskell/haskell-language-server + +common common-deps + build-depends: + , base >=4.12 && <5 + , directory + , extra + , filepath + , text + , prettyprinter + +-- Default warnings in HLS +common warnings + ghc-options: -Wall -Wredundant-constraints -Wno-name-shadowing -Wno-unticked-promoted-constructors + +-- Allow compiling in pedantic mode +common pedantic + if flag(pedantic) + ghc-options: -Werror + +-- Plugin flags are designed for 'cabal install haskell-language-server': +-- - Bulk flags should be default:False +-- - Individual flags should be default:True + +-- The intent of this flag is being able to keep the ghc condition for hackage +-- but skip it via flags in cabal.project as plugins for new ghcs usually +-- are buildable using cabal.project tweaks +flag ignore-plugins-ghc-bounds + description: Force the inclusion of plugins even if they are not buildable by default with a specific ghc version + default: False + manual: True + + +flag cabal + description: Enable cabal plugin + default: True + manual: True + +flag class + description: Enable class plugin + default: True + manual: True + +flag callHierarchy + description: Enable call hierarchy plugin + default: True + manual: True + +flag haddockComments + description: Enable haddockComments plugin + default: True + manual: True + +flag eval + description: Enable eval plugin + default: True + manual: True + +flag importLens + description: Enable importLens plugin + default: True + manual: True + +flag refineImports + description: Enable refineImports plugin + default: True + manual: True + +flag rename + description: Enable rename plugin + default: True + manual: True + +flag retrie + description: Enable retrie plugin + default: True + manual: True + +flag tactic + description: Enable tactic plugin + default: True + manual: True + +flag hlint + description: Enable hlint plugin + default: True + manual: True + +flag stan + description: Enable stan plugin + default: True + manual: True + +flag moduleName + description: Enable moduleName plugin + default: True + manual: True + +flag pragmas + description: Enable pragmas plugin + default: True + manual: True + +flag splice + description: Enable splice plugin + default: True + manual: True + +flag alternateNumberFormat + description: Enable Alternate Number Format plugin + default: True + manual: True + +flag qualifyImportedNames + description: Enable qualifyImportedNames plugin + default: True + manual: True + +flag codeRange + description: Enable Code Range plugin + default: True + manual: True + +flag changeTypeSignature + description: Enable changeTypeSignature plugin + default: True + manual: True + +flag gadt + description: Enable gadt plugin + default: True + manual: True + +flag explicitFixity + description: Enable explicitFixity plugin + default: True + manual: True + +flag explicitFields + description: Enable explicitFields plugin + default: True + manual: True + +-- formatters + +flag floskell + description: Enable floskell plugin + default: True + manual: True + +flag fourmolu + description: Enable fourmolu plugin + default: True + manual: True + +flag ormolu + description: Enable ormolu plugin + default: True + manual: True + +flag stylishHaskell + description: Enable stylishHaskell plugin + default: True + manual: True + +flag brittany + description: Enable brittany plugin + default: True + manual: True + +flag refactor + description: Enable refactor plugin + default: True + manual: True + +flag dynamic + description: Build with the dyn rts + default: True + manual: True + +flag cabalfmt + description: Enable cabal-fmt plugin + default: True + manual: True + +common cabalfmt + if flag(cabalfmt) + build-depends: hls-cabal-fmt-plugin ^>= 0.1.0.0 + cpp-options: -Dhls_cabalfmt + +common cabal + if flag(cabal) + build-depends: hls-cabal-plugin ^>= 0.1 + cpp-options: -Dhls_cabal + +common class + if flag(class) + build-depends: hls-class-plugin ^>= 1.1 + cpp-options: -Dhls_class + +common callHierarchy + if flag(callHierarchy) + build-depends: hls-call-hierarchy-plugin ^>= 1.2 + cpp-options: -Dhls_callHierarchy + +common haddockComments + if flag(haddockComments) && (impl(ghc < 9.2.1) || flag(ignore-plugins-ghc-bounds)) + build-depends: hls-haddock-comments-plugin ^>= 1.1 + cpp-options: -Dhls_haddockComments + +common eval + if flag(eval) && (impl(ghc < 9.4.1) || flag(ignore-plugins-ghc-bounds)) + build-depends: hls-eval-plugin ^>= 1.4 + cpp-options: -Dhls_eval + +common importLens + if flag(importLens) + build-depends: hls-explicit-imports-plugin ^>= 1.2 + cpp-options: -Dhls_importLens + +common refineImports + if flag(refineImports) + build-depends: hls-refine-imports-plugin ^>=1.0 + cpp-options: -Dhls_refineImports + +common rename + if flag(rename) && (impl(ghc < 9.4.1) || flag(ignore-plugins-ghc-bounds)) + build-depends: hls-rename-plugin ^>= 1.0 + cpp-options: -Dhls_rename + +common retrie + if flag(retrie) + build-depends: hls-retrie-plugin ^>= 1.0 + cpp-options: -Dhls_retrie + +common tactic + if flag(tactic) && (impl(ghc < 9.2.1) || flag(ignore-plugins-ghc-bounds)) + build-depends: hls-tactics-plugin ^>= 1.8 + cpp-options: -Dhls_tactic + +common hlint + if flag(hlint) + build-depends: hls-hlint-plugin ^>= 1.1 + cpp-options: -Dhls_hlint + +common stan + if flag(stan) && (impl(ghc >= 8.10) && impl(ghc < 9.0)) + build-depends: hls-stan-plugin ^>= 1.0 + cpp-options: -Dhls_stan + +common moduleName + if flag(moduleName) + build-depends: hls-module-name-plugin ^>= 1.1 + cpp-options: -Dhls_moduleName + +common pragmas + if flag(pragmas) + build-depends: hls-pragmas-plugin ^>= 1.0 + cpp-options: -Dhls_pragmas + +common splice + if flag(splice) + build-depends: hls-splice-plugin ^>=1.0.0.1 + cpp-options: -Dhls_splice + +common alternateNumberFormat + if flag(alternateNumberFormat) + build-depends: hls-alternate-number-format-plugin ^>= 1.3 + cpp-options: -Dhls_alternateNumberFormat + +common qualifyImportedNames + if flag(qualifyImportedNames) + build-depends: hls-qualify-imported-names-plugin ^>=1.0 + cpp-options: -Dhls_qualifyImportedNames + +common codeRange + if flag(codeRange) + build-depends: hls-code-range-plugin ^>= 1.1 + cpp-options: -Dhls_codeRange + +common changeTypeSignature + if flag(changeTypeSignature) + build-depends: hls-change-type-signature-plugin ^>= 1.1 + cpp-options: -Dhls_changeTypeSignature + +common gadt + if flag(gadt) + build-depends: hls-gadt-plugin ^>= 1.0 + cpp-options: -Dhls_gadt + +common explicitFixity + if flag(explicitFixity) + build-depends: hls-explicit-fixity-plugin ^>= 1.1 + cpp-options: -DexplicitFixity + +common explicitFields + if flag(explicitFields) + build-depends: hls-explicit-record-fields-plugin ^>= 1.0 + cpp-options: -DexplicitFields + +-- formatters + +common floskell + if flag(floskell) && (impl(ghc < 9.4.1) || flag(ignore-plugins-ghc-bounds)) + build-depends: hls-floskell-plugin ^>= 1.0 + cpp-options: -Dhls_floskell + +common fourmolu + if flag(fourmolu) + build-depends: hls-fourmolu-plugin ^>= 1.1 + cpp-options: -Dhls_fourmolu + +common ormolu + if flag(ormolu) && (impl(ghc < 9.4.1) || flag(ignore-plugins-ghc-bounds)) + build-depends: hls-ormolu-plugin ^>= 1.0 + cpp-options: -Dhls_ormolu + +common stylishHaskell + if flag(stylishHaskell) && (impl(ghc < 9.4.1) || flag(ignore-plugins-ghc-bounds)) + build-depends: hls-stylish-haskell-plugin ^>= 1.0 + cpp-options: -Dhls_stylishHaskell + +common brittany + if flag(brittany) && (impl(ghc < 9.0.2) || flag(ignore-plugins-ghc-bounds)) + build-depends: hls-brittany-plugin ^>= 1.1 + cpp-options: -Dhls_brittany + +common refactor + if flag(refactor) + build-depends: hls-refactor-plugin ^>= 1.1 + cpp-options: -Dhls_refactor + +library + import: common-deps + -- configuration + , warnings + , pedantic + -- plugins + , cabal + , callHierarchy + , cabalfmt + , changeTypeSignature + , class + , haddockComments + , eval + , importLens + , refineImports + , rename + , retrie + , tactic + , hlint + , stan + , moduleName + , pragmas + , splice + , alternateNumberFormat + , qualifyImportedNames + , codeRange + , gadt + , explicitFixity + , explicitFields + , floskell + , fourmolu + , ormolu + , stylishHaskell + , brittany + , refactor + + exposed-modules: + Ide.Arguments + Ide.Main + Ide.Version + HlsPlugins + + other-modules: Paths_haskell_language_server + autogen-modules: Paths_haskell_language_server + hs-source-dirs: src + build-depends: + , async + , base16-bytestring + , bytestring + , containers + , cryptohash-sha1 + , data-default + , ghc + , ghcide ^>=1.9 + , githash >=0.1.6.1 + , lsp + , hie-bios + , hiedb + , hls-plugin-api ^>=1.6 + , optparse-applicative + , optparse-simple + , process + , hls-graph + , safe-exceptions + , sqlite-simple + , unordered-containers + , aeson-pretty + + default-language: Haskell2010 + default-extensions: DataKinds, TypeOperators + +executable haskell-language-server + import: common-deps + -- configuration + , warnings + , pedantic + main-is: Main.hs + hs-source-dirs: exe + + ghc-options: + -threaded + -- allow user RTS overrides + -rtsopts + -- disable idle GC + -- increase nursery size + -- Enable collection of heap statistics + "-with-rtsopts=-I0 -A128M -T" + -Wno-unticked-promoted-constructors + if flag(pedantic) + ghc-options: -Werror + if !os(windows) && flag(dynamic) + -- We want to link against the dyn rts just like official GHC binaries do; + -- the linked rts determines how external libs are loaded dynamically by TH. + -- The standard way of doing this is via the --enable-dynamic-executables Cabal option + -- Unfortunately it doesnt' work, see https://github.com/haskell/haskell-language-server/issues/2659 + -- One can use --ghc-options=-dynamic but this gets applied to the dependencies as well, + -- which results in massive rebuilds and incompatibilities with profiling. + -- So instead we set the -dynamic flag diretly here. + ghc-options: -dynamic + + build-depends: + , aeson + , async + , base16-bytestring + , binary + , bytestring + , containers + , cryptohash-sha1 + , deepseq + , ghc + , ghc-boot-th + , ghcide + , hashable + , haskell-language-server + , lsp + , hie-bios + , hiedb + , lens + , regex-tdfa + , optparse-applicative + , hls-plugin-api + , lens + , mtl + , regex-tdfa + , safe-exceptions + , hls-graph + , sqlite-simple + , stm + , temporary + , transformers + , unordered-containers + + default-language: Haskell2010 + default-extensions: DataKinds, TypeOperators + +executable haskell-language-server-wrapper + import: common-deps + , warnings + , pedantic + main-is: Wrapper.hs + hs-source-dirs: exe + other-modules: Paths_haskell_language_server + autogen-modules: Paths_haskell_language_server + ghc-options: + -threaded + -- allow user RTS overrides + -rtsopts + -- disable idle GC + -- increase nursery size + "-with-rtsopts=-I0 -A128M" + + build-depends: + , data-default + , ghc + , ghc-paths + , ghcide + , gitrev + , haskell-language-server + , hslogger + , hie-bios + , hls-plugin-api + , lsp + , lsp-types + , mtl + , optparse-applicative + , optparse-simple + , process + , transformers + , unliftio-core + if !os(windows) + build-depends: + unix + , containers + + default-language: Haskell2010 + + +test-suite func-test + import: common-deps + , warnings + , pedantic + , refactor + type: exitcode-stdio-1.0 + default-language: Haskell2010 + build-tool-depends: + haskell-language-server:haskell-language-server -any, + ghcide:ghcide-test-preprocessor -any + + build-depends: + , bytestring + , data-default + , deepseq + , hashable + , hspec-expectations + , lens + , lens-aeson + , ghcide + , ghcide-test-utils + , hls-test-utils ^>=1.5 + , lsp-types + , aeson + , hls-plugin-api + , lsp-test + , containers + , unordered-containers + + hs-source-dirs: test/functional test/utils + + main-is: Main.hs + other-modules: + Command + Completion + Config + Deferred + Definition + Diagnostic + Format + FunctionalBadProject + FunctionalCodeAction + HieBios + Highlight + Progress + Reference + Symbol + TypeDefinition + Test.Hls.Command + Test.Hls.Flags + + default-extensions: OverloadedStrings + ghc-options: + -threaded -rtsopts -with-rtsopts=-N + +-- Duplicating inclusion plugin conditions until tests are moved to their own packages + if flag(eval) + cpp-options: -Dhls_eval +-- formatters + if flag(floskell) && (impl(ghc < 9.2.1) || flag(ignore-plugins-ghc-bounds)) + cpp-options: -Dhls_floskell + if flag(fourmolu) + cpp-options: -Dhls_fourmolu + if flag(ormolu) + cpp-options: -Dhls_ormolu + +test-suite wrapper-test + import: common-deps + , warnings + , pedantic + type: exitcode-stdio-1.0 + build-tool-depends: + haskell-language-server:haskell-language-server-wrapper -any, + haskell-language-server:haskell-language-server -any + + default-language: Haskell2010 + build-depends: + process + , hls-test-utils + + hs-source-dirs: test/wrapper + main-is: Main.hs + +benchmark benchmark + type: exitcode-stdio-1.0 + default-language: Haskell2010 + ghc-options: -Wall -Wno-name-shadowing -threaded + main-is: Main.hs + hs-source-dirs: bench + build-tool-depends: + ghcide-bench: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.*, + containers, + data-default, + directory, + extra, + filepath, + ghcide-bench, + haskell-language-server, + hls-plugin-api, + lens, + lens-aeson, + optparse-applicative, + shake, + shake-bench == 0.2.*, + text, + yaml