cabal-version: 3.0 category: Development name: haskell-language-server version: 1.8.0.0 synopsis: LSP server for GHC description: Please see the README on GitHub at 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.6.5 || == 8.8.4 || == 8.10.7 || == 9.0.2 || == 9.2.3 || == 9.2.4 extra-source-files: README.md ChangeLog.md test/testdata/**/*.project test/testdata/**/*.cabal test/testdata/**/*.yaml test/testdata/**/*.hs 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 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 -- 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 common class if flag(class) && (impl(ghc < 9.4.1) || flag(ignore-plugins-ghc-bounds)) 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.3 cpp-options: -Dhls_eval common importLens if flag(importLens) build-depends: hls-explicit-imports-plugin ^>= 1.1 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) && (impl(ghc < 9.4.1) || flag(ignore-plugins-ghc-bounds)) 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.7 cpp-options: -Dhls_tactic common hlint if flag(hlint) && (impl(ghc < 9.4.1) || flag(ignore-plugins-ghc-bounds)) build-depends: hls-hlint-plugin ^>= 1.1 cpp-options: -Dhls_hlint common stan if flag(stan) && (impl(ghc >= 8.8) && 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) && (impl(ghc < 9.2.1) || flag(ignore-plugins-ghc-bounds)) 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.2 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.0 cpp-options: -Dhls_codeRange common changeTypeSignature if flag(changeTypeSignature) build-depends: hls-change-type-signature-plugin ^>= 1.0 cpp-options: -Dhls_changeTypeSignature common gadt if flag(gadt) && (impl(ghc < 9.4.1) || flag(ignore-plugins-ghc-bounds)) build-depends: hls-gadt-plugin ^>= 1.0 cpp-options: -Dhls_gadt common explicitFixity if flag(explicitFixity) build-depends: hls-explicit-fixity-plugin ^>= 1.0 cpp-options: -DexplicitFixity -- 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) && (impl(ghc < 9.4.1) || flag(ignore-plugins-ghc-bounds)) 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.0 cpp-options: -Dhls_brittany common refactor if flag(refactor) && (impl(ghc < 9.4.1) || flag(ignore-plugins-ghc-bounds)) build-depends: hls-refactor-plugin ^>= 1.0 cpp-options: -Dhls_refactor library import: common-deps -- configuration , warnings , pedantic -- plugins , callHierarchy , changeTypeSignature , class , haddockComments , eval , importLens , refineImports , rename , retrie , tactic , hlint , stan , moduleName , pragmas , splice , alternateNumberFormat , qualifyImportedNames , codeRange , gadt , explicitFixity , 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.8 , githash >=0.1.6.1 , lsp , hie-bios , hiedb , hls-plugin-api ^>=1.5 , 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 , hspec-expectations , lens , lens-aeson , ghcide , hls-test-utils ^>=1.4 , 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.1.*, text, yaml