cabal-version: 3.4 category: Development name: haskell-language-server version: 2.7.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 == 9.8.2 || ==9.6.4 || ==9.4.8 || ==9.2.8 extra-source-files: README.md ChangeLog.md test/testdata/**/*.project test/testdata/**/*.cabal test/testdata/**/*.yaml test/testdata/**/*.hs test/testdata/**/*.json -- These globs should only match test/testdata plugins/**/*.project plugins/**/*.expected plugins/**/*.cabal plugins/**/*.yaml plugins/**/*.txt plugins/**/*.hs bindist/wrapper.in source-repository head type: git location: https://github.com/haskell/haskell-language-server common defaults default-language: GHC2021 -- Should have been in GHC2021, an oversight default-extensions: ExplicitNamespaces common test-defaults ghc-options: -threaded -rtsopts -with-rtsopts=-N -- Default warnings in HLS common warnings ghc-options: -Wall -Wredundant-constraints -Wunused-packages -Wno-name-shadowing -Wno-unticked-promoted-constructors flag pedantic description: Enable -Werror default: False manual: True -- Allow compiling in pedantic mode common pedantic if flag(pedantic) ghc-options: -Werror -- Note [unused-packages] Some packages need CPP conditioned on MIN_VERSION_ghc(x,y,z). -- MIN_VERSION_ is CPP macro that cabal defines only when is declared as a dependency. -- But -Wunused-packages still reports it as unused dependency if it's not imported. -- For packages with such "unused" dependencies we demote -Wunused-packages error -- (enabled by --flag=pedantic) to warning via -Wwarn=unused-packages. -Wwarn=unused-packages -- 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 dynamic description: Build with the dyn rts default: True manual: True ---------------------------- ---------------------------- -- PLUGINS ---------------------------- ---------------------------- ----------------------------- -- cabal-fmt plugin ----------------------------- flag cabalfmt description: Enable cabal-fmt plugin default: True manual: True common cabalfmt if flag(cabalfmt) build-depends: haskell-language-server:hls-cabal-fmt-plugin cpp-options: -Dhls_cabalfmt flag isolateCabalfmtTests description: Should tests search for 'cabal-fmt' on the $PATH or shall we install it via build-tool-depends? -- By default, search on the PATH default: False manual: True library hls-cabal-fmt-plugin import: defaults, pedantic, warnings exposed-modules: Ide.Plugin.CabalFmt hs-source-dirs: plugins/hls-cabal-fmt-plugin/src build-depends: , base >=4.12 && <5 , directory , filepath , ghcide == 2.7.0.0 , hls-plugin-api == 2.7.0.0 , lens , lsp-types , mtl , process-extras , text test-suite hls-cabal-fmt-plugin-tests import: defaults, pedantic, test-defaults, warnings type: exitcode-stdio-1.0 hs-source-dirs: plugins/hls-cabal-fmt-plugin/test main-is: Main.hs build-depends: , base , directory , filepath , haskell-language-server:hls-cabal-fmt-plugin , hls-test-utils == 2.7.0.0 if flag(isolateCabalfmtTests) build-tool-depends: cabal-fmt:cabal-fmt ^>=0.1.6 ----------------------------- -- cabal plugin ----------------------------- flag cabal description: Enable cabal plugin default: True manual: True common cabal if flag(cabal) build-depends: haskell-language-server:hls-cabal-plugin cpp-options: -Dhls_cabal library hls-cabal-plugin import: defaults, pedantic, warnings exposed-modules: Ide.Plugin.Cabal Ide.Plugin.Cabal.Diagnostics Ide.Plugin.Cabal.Completion.Completer.FilePath Ide.Plugin.Cabal.Completion.Completer.Module Ide.Plugin.Cabal.Completion.Completer.Paths Ide.Plugin.Cabal.Completion.Completer.Simple Ide.Plugin.Cabal.Completion.Completer.Snippet Ide.Plugin.Cabal.Completion.Completer.Types Ide.Plugin.Cabal.Completion.Completions Ide.Plugin.Cabal.Completion.Data Ide.Plugin.Cabal.Completion.Types Ide.Plugin.Cabal.LicenseSuggest Ide.Plugin.Cabal.Parse build-depends: , base >=4.12 && <5 , bytestring , Cabal-syntax >= 3.7 , containers , deepseq , directory , filepath , extra >=1.7.4 , ghcide == 2.7.0.0 , hashable , hls-plugin-api == 2.7.0.0 , hls-graph == 2.7.0.0 , lens , lsp ^>=2.4 , lsp-types ^>=2.1 , regex-tdfa ^>=1.3.1 , stm , text , text-rope , transformers , unordered-containers >=0.2.10.0 , containers hs-source-dirs: plugins/hls-cabal-plugin/src test-suite hls-cabal-plugin-tests import: defaults, pedantic, test-defaults, warnings type: exitcode-stdio-1.0 hs-source-dirs: plugins/hls-cabal-plugin/test main-is: Main.hs other-modules: Completer Context Utils build-depends: , base , bytestring , Cabal-syntax >= 3.7 , filepath , ghcide , haskell-language-server:hls-cabal-plugin , hls-test-utils == 2.7.0.0 , lens , lsp-types , text , text-rope , transformers , row-types ----------------------------- -- class plugin ----------------------------- flag class description: Enable class plugin default: True manual: True common class if flag(class) build-depends: haskell-language-server:hls-class-plugin cpp-options: -Dhls_class library hls-class-plugin import: defaults, pedantic, warnings exposed-modules: Ide.Plugin.Class other-modules: Ide.Plugin.Class.CodeAction , Ide.Plugin.Class.CodeLens , Ide.Plugin.Class.ExactPrint , Ide.Plugin.Class.Types , Ide.Plugin.Class.Utils hs-source-dirs: plugins/hls-class-plugin/src build-depends: , aeson , base >=4.12 && <5 , containers , deepseq , extra , ghc , ghc-exactprint >= 1.5 , ghcide == 2.7.0.0 , hls-graph , hls-plugin-api == 2.7.0.0 , lens , lsp , mtl , text , transformers default-extensions: DataKinds OverloadedStrings test-suite hls-class-plugin-tests import: defaults, pedantic, test-defaults, warnings type: exitcode-stdio-1.0 hs-source-dirs: plugins/hls-class-plugin/test main-is: Main.hs build-depends: , base , filepath , haskell-language-server:hls-class-plugin , hls-test-utils == 2.7.0.0 , lens , lsp-types , row-types , text ----------------------------- -- call-hierarchy plugin ----------------------------- flag callHierarchy description: Enable call hierarchy plugin default: True manual: True common callHierarchy if flag(callHierarchy) build-depends: haskell-language-server:hls-call-hierarchy-plugin cpp-options: -Dhls_callHierarchy library hls-call-hierarchy-plugin import: defaults, pedantic, warnings buildable: True exposed-modules: Ide.Plugin.CallHierarchy other-modules: Ide.Plugin.CallHierarchy.Internal Ide.Plugin.CallHierarchy.Query Ide.Plugin.CallHierarchy.Types hs-source-dirs: plugins/hls-call-hierarchy-plugin/src build-depends: , aeson , base >=4.12 && <5 , containers , extra , ghcide == 2.7.0.0 , hiedb ^>= 0.6.0.0 , hls-plugin-api == 2.7.0.0 , lens , lsp >=2.4 , sqlite-simple , text default-extensions: DataKinds test-suite hls-call-hierarchy-plugin-tests import: defaults, pedantic, test-defaults, warnings type: exitcode-stdio-1.0 hs-source-dirs: plugins/hls-call-hierarchy-plugin/test main-is: Main.hs build-depends: , aeson , base , containers , extra , filepath , haskell-language-server:hls-call-hierarchy-plugin , hls-test-utils == 2.7.0.0 , ghcide:ghcide-test-utils , lens , lsp , lsp-test , text ----------------------------- -- eval plugin ----------------------------- flag eval description: Enable eval plugin default: True manual: True common eval if flag(eval) build-depends: haskell-language-server:hls-eval-plugin cpp-options: -Dhls_eval library hls-eval-plugin import: defaults, pedantic, warnings exposed-modules: Ide.Plugin.Eval Ide.Plugin.Eval.Types hs-source-dirs: plugins/hls-eval-plugin/src other-modules: Ide.Plugin.Eval.Code Ide.Plugin.Eval.CodeLens Ide.Plugin.Eval.Config Ide.Plugin.Eval.GHC Ide.Plugin.Eval.Parse.Comments Ide.Plugin.Eval.Parse.Option Ide.Plugin.Eval.Rules Ide.Plugin.Eval.Util build-depends: , aeson , base >=4.12 && <5 , bytestring , containers , deepseq , Diff ^>=0.4.0 , dlist , extra , filepath , ghc , ghc-boot-th , ghcide == 2.7.0.0 , hls-graph , hls-plugin-api == 2.7.0.0 , lens , lsp , lsp-types , megaparsec >=9.0 , mtl , parser-combinators >=1.2 , text , transformers , unliftio , unordered-containers default-extensions: DataKinds test-suite hls-eval-plugin-tests import: defaults, pedantic, test-defaults, warnings type: exitcode-stdio-1.0 hs-source-dirs: plugins/hls-eval-plugin/test main-is: Main.hs ghc-options: -fno-ignore-asserts build-depends: , aeson , base , containers , extra , filepath , haskell-language-server:hls-eval-plugin , hls-plugin-api , hls-test-utils == 2.7.0.0 , lens , lsp-types , text , row-types ----------------------------- -- import lens plugin ----------------------------- common importLens if flag(importLens) build-depends: haskell-language-server:hls-explicit-imports-plugin cpp-options: -Dhls_importLens flag importLens description: Enable importLens plugin default: True manual: True library hls-explicit-imports-plugin import: defaults, pedantic, warnings exposed-modules: Ide.Plugin.ExplicitImports hs-source-dirs: plugins/hls-explicit-imports-plugin/src build-depends: , aeson , base >=4.12 && <5 , containers , deepseq , ghc , ghcide == 2.7.0.0 , hls-graph , hls-plugin-api == 2.7.0.0 , lens , lsp , mtl , text , transformers default-extensions: DataKinds test-suite hls-explicit-imports-plugin-tests import: defaults, pedantic, test-defaults, warnings type: exitcode-stdio-1.0 hs-source-dirs: plugins/hls-explicit-imports-plugin/test main-is: Main.hs build-depends: , base , extra , filepath , haskell-language-server:hls-explicit-imports-plugin , hls-test-utils == 2.7.0.0 , lens , lsp-types , row-types , text ----------------------------- -- rename plugin ----------------------------- flag rename description: Enable rename plugin default: True manual: True common rename if flag(rename) build-depends: haskell-language-server:hls-rename-plugin cpp-options: -Dhls_rename library hls-rename-plugin import: defaults, pedantic, warnings exposed-modules: Ide.Plugin.Rename hs-source-dirs: plugins/hls-rename-plugin/src build-depends: , base >=4.12 && <5 , containers , ghcide == 2.7.0.0 , hashable , hiedb ^>= 0.6.0.0 , hie-compat , hls-plugin-api == 2.7.0.0 , haskell-language-server:hls-refactor-plugin , lens , lsp , lsp-types , mtl , mod , syb , text , transformers , unordered-containers test-suite hls-rename-plugin-tests import: defaults, pedantic, test-defaults, warnings type: exitcode-stdio-1.0 hs-source-dirs: plugins/hls-rename-plugin/test main-is: Main.hs build-depends: , aeson , base , containers , filepath , hls-plugin-api , haskell-language-server:hls-rename-plugin , hls-test-utils == 2.7.0.0 ----------------------------- -- retrie plugin ----------------------------- flag retrie description: Enable retrie plugin default: True manual: True common retrie if flag(retrie) build-depends: haskell-language-server:hls-retrie-plugin cpp-options: -Dhls_retrie library hls-retrie-plugin import: defaults, pedantic, warnings exposed-modules: Ide.Plugin.Retrie hs-source-dirs: plugins/hls-retrie-plugin/src build-depends: , aeson , base >=4.12 && <5 , bytestring , containers , directory , extra , ghc , ghcide == 2.7.0.0 , hashable , hls-plugin-api == 2.7.0.0 , haskell-language-server:hls-refactor-plugin , lens , lsp , lsp-types , mtl , retrie >=0.1.1.0 , safe-exceptions , stm , text , transformers , unordered-containers default-extensions: DataKinds test-suite hls-retrie-plugin-tests import: defaults, pedantic, test-defaults, warnings type: exitcode-stdio-1.0 hs-source-dirs: plugins/hls-retrie-plugin/test main-is: Main.hs build-depends: , base , containers , filepath , hls-plugin-api , haskell-language-server:{hls-refactor-plugin, hls-retrie-plugin} , hls-test-utils == 2.7.0.0 , text ----------------------------- -- hlint plugin ----------------------------- flag hlint description: Enable hlint plugin default: True manual: True common hlint if flag(hlint) && (impl(ghc < 9.8.0) || flag(ignore-plugins-ghc-bounds)) build-depends: haskell-language-server:hls-hlint-plugin cpp-options: -Dhls_hlint library hls-hlint-plugin import: defaults, pedantic, warnings exposed-modules: Ide.Plugin.Hlint hs-source-dirs: plugins/hls-hlint-plugin/src build-depends: , aeson , base >=4.12 && <5 , bytestring , containers , deepseq , filepath , ghcide == 2.7.0.0 , hashable , hlint >= 3.5 && < 3.9 , hls-plugin-api == 2.7.0.0 , lens , lsp , mtl , refact , regex-tdfa , stm , temporary , text , transformers , unordered-containers , ghc-lib-parser , ghc-lib-parser-ex , apply-refact cpp-options: -DHLINT_ON_GHC_LIB default-extensions: DataKinds test-suite hls-hlint-plugin-tests import: defaults, pedantic, test-defaults, warnings type: exitcode-stdio-1.0 hs-source-dirs: plugins/hls-hlint-plugin/test main-is: Main.hs build-depends: aeson , base , containers , filepath , haskell-language-server:hls-hlint-plugin , hls-plugin-api , hls-test-utils == 2.7.0.0 , lens , lsp-types , row-types , text ----------------------------- -- stan plugin ----------------------------- flag stan description: Enable stan plugin default: True manual: True common stan if flag(stan) && (impl(ghc > 8.8.1) && impl(ghc <= 9.2.3) || impl(ghc >= 9.4.0) && impl(ghc < 9.10.0)) build-depends: haskell-language-server:hls-stan-plugin cpp-options: -Dhls_stan library hls-stan-plugin import: defaults, pedantic, warnings if (impl(ghc > 8.8.1) && impl(ghc <= 9.2.3) || impl(ghc >= 9.4.0) && impl(ghc < 9.10.0)) buildable: True else buildable: False exposed-modules: Ide.Plugin.Stan hs-source-dirs: plugins/hls-stan-plugin/src build-depends: base , deepseq , hashable , hie-compat , hls-plugin-api , ghcide , lsp-types , text , unordered-containers , stan >= 0.1.2.0 , trial , directory default-extensions: LambdaCase TypeFamilies DuplicateRecordFields OverloadedStrings test-suite hls-stan-plugin-tests import: defaults, pedantic, test-defaults, warnings if (impl(ghc > 8.8.1) && impl(ghc <= 9.2.3) || impl(ghc >= 9.4.0) && impl(ghc < 9.10.0)) buildable: True else buildable: False type: exitcode-stdio-1.0 hs-source-dirs: plugins/hls-stan-plugin/test main-is: Main.hs build-depends: , base , filepath , haskell-language-server:hls-stan-plugin , hls-plugin-api , hls-test-utils == 2.7.0.0 , lens , lsp-types , text default-extensions: OverloadedStrings ----------------------------- -- module name plugin ----------------------------- flag moduleName description: Enable moduleName plugin default: True manual: True common moduleName if flag(moduleName) build-depends: haskell-language-server:hls-module-name-plugin cpp-options: -Dhls_moduleName library hls-module-name-plugin import: defaults, pedantic, warnings exposed-modules: Ide.Plugin.ModuleName hs-source-dirs: plugins/hls-module-name-plugin/src build-depends: , aeson , base >=4.12 && <5 , containers , directory , filepath , ghcide == 2.7.0.0 , hls-plugin-api == 2.7.0.0 , lsp , text , transformers test-suite hls-module-name-plugin-tests import: defaults, pedantic, test-defaults, warnings type: exitcode-stdio-1.0 hs-source-dirs: plugins/hls-module-name-plugin/test main-is: Main.hs build-depends: , base , filepath , haskell-language-server:hls-module-name-plugin , hls-test-utils == 2.7.0.0 ----------------------------- -- pragmas plugin ----------------------------- flag pragmas description: Enable pragmas plugin default: True manual: True common pragmas if flag(pragmas) build-depends: haskell-language-server:hls-pragmas-plugin cpp-options: -Dhls_pragmas library hls-pragmas-plugin import: defaults, pedantic, warnings exposed-modules: Ide.Plugin.Pragmas hs-source-dirs: plugins/hls-pragmas-plugin/src build-depends: , base >=4.12 && <5 , extra , fuzzy , ghcide == 2.7.0.0 , hls-plugin-api == 2.7.0.0 , lens , lsp , text , transformers , containers test-suite hls-pragmas-plugin-tests import: defaults, pedantic, test-defaults, warnings type: exitcode-stdio-1.0 hs-source-dirs: plugins/hls-pragmas-plugin/test main-is: Main.hs build-depends: , aeson , base , filepath , haskell-language-server:hls-pragmas-plugin , hls-test-utils == 2.7.0.0 , lens , lsp-types , text ----------------------------- -- splice plugin ----------------------------- flag splice description: Enable splice plugin default: True manual: True common splice if flag(splice) build-depends: haskell-language-server:hls-splice-plugin cpp-options: -Dhls_splice library hls-splice-plugin import: defaults, pedantic, warnings exposed-modules: Ide.Plugin.Splice Ide.Plugin.Splice.Types hs-source-dirs: plugins/hls-splice-plugin/src build-depends: , aeson , base >=4.12 && <5 , extra , foldl , ghc , ghc-exactprint , ghcide == 2.7.0.0 , hls-plugin-api == 2.7.0.0 , haskell-language-server:hls-refactor-plugin , lens , lsp , mtl , syb , text , transformers , unliftio-core default-extensions: DataKinds test-suite hls-splice-plugin-tests import: defaults, pedantic, test-defaults, warnings type: exitcode-stdio-1.0 hs-source-dirs: plugins/hls-splice-plugin/test main-is: Main.hs build-depends: , base , filepath , haskell-language-server:hls-splice-plugin , hls-test-utils == 2.7.0.0 , text , row-types ----------------------------- -- alternate number format plugin ----------------------------- flag alternateNumberFormat description: Enable Alternate Number Format plugin default: True manual: True common alternateNumberFormat if flag(alternateNumberFormat) build-depends: haskell-language-server:hls-alternate-number-format-plugin cpp-options: -Dhls_alternateNumberFormat library hls-alternate-number-format-plugin import: defaults, pedantic, warnings exposed-modules: Ide.Plugin.AlternateNumberFormat, Ide.Plugin.Conversion other-modules: Ide.Plugin.Literals hs-source-dirs: plugins/hls-alternate-number-format-plugin/src build-depends: , base >=4.12 && < 5 , containers , extra , ghcide == 2.7.0.0 , ghc-boot-th , hls-graph , hls-plugin-api == 2.7.0.0 , lens , lsp ^>=2.4 , mtl , regex-tdfa , syb , text default-extensions: LambdaCase OverloadedStrings RecordWildCards test-suite hls-alternate-number-format-plugin-tests import: defaults, pedantic, test-defaults, warnings type: exitcode-stdio-1.0 hs-source-dirs: plugins/hls-alternate-number-format-plugin/test other-modules: Properties.Conversion main-is: Main.hs ghc-options: -fno-ignore-asserts build-depends: , base >=4.12 && < 5 , filepath , haskell-language-server:hls-alternate-number-format-plugin , hls-test-utils == 2.7.0.0 , regex-tdfa , tasty-quickcheck , text default-extensions: LambdaCase OverloadedStrings RecordWildCards ----------------------------- -- qualify imported names plugin ----------------------------- flag qualifyImportedNames description: Enable qualifyImportedNames plugin default: True manual: True common qualifyImportedNames if flag(qualifyImportedNames) build-depends: haskell-language-server:hls-qualify-imported-names-plugin cpp-options: -Dhls_qualifyImportedNames library hls-qualify-imported-names-plugin import: defaults, pedantic, warnings exposed-modules: Ide.Plugin.QualifyImportedNames hs-source-dirs: plugins/hls-qualify-imported-names-plugin/src build-depends: , base >=4.12 && <5 , containers , ghcide == 2.7.0.0 , hls-plugin-api == 2.7.0.0 , lens , lsp , text , dlist , transformers default-extensions: DataKinds test-suite hls-qualify-imported-names-plugin-tests import: defaults, pedantic, test-defaults, warnings type: exitcode-stdio-1.0 hs-source-dirs: plugins/hls-qualify-imported-names-plugin/test main-is: Main.hs build-depends: , base , text , filepath , haskell-language-server:hls-qualify-imported-names-plugin , hls-test-utils == 2.7.0.0 ----------------------------- -- code range plugin ----------------------------- flag codeRange description: Enable Code Range plugin default: True manual: True common codeRange if flag(codeRange) build-depends: haskell-language-server:hls-code-range-plugin cpp-options: -Dhls_codeRange library hls-code-range-plugin import: defaults, pedantic, warnings exposed-modules: Ide.Plugin.CodeRange Ide.Plugin.CodeRange.Rules other-modules: Ide.Plugin.CodeRange.ASTPreProcess hs-source-dirs: plugins/hls-code-range-plugin/src build-depends: , base >=4.12 && <5 , containers , deepseq , extra , ghcide == 2.7.0.0 , hashable , hls-plugin-api == 2.7.0.0 , lens , lsp , mtl , semigroupoids , transformers , vector test-suite hls-code-range-plugin-tests import: defaults, pedantic, test-defaults, warnings type: exitcode-stdio-1.0 hs-source-dirs: plugins/hls-code-range-plugin/test main-is: Main.hs other-modules: Ide.Plugin.CodeRangeTest Ide.Plugin.CodeRange.RulesTest build-depends: , base , bytestring , filepath , haskell-language-server:hls-code-range-plugin , hls-test-utils == 2.7.0.0 , lens , lsp , lsp-test , transformers , vector ----------------------------- -- change type signature plugin ----------------------------- flag changeTypeSignature description: Enable changeTypeSignature plugin default: True manual: True common changeTypeSignature if flag(changeTypeSignature) build-depends: haskell-language-server:hls-change-type-signature-plugin cpp-options: -Dhls_changeTypeSignature library hls-change-type-signature-plugin import: defaults, pedantic, warnings exposed-modules: Ide.Plugin.ChangeTypeSignature hs-source-dirs: plugins/hls-change-type-signature-plugin/src build-depends: , base >=4.12 && < 5 , ghcide == 2.7.0.0 , hls-plugin-api == 2.7.0.0 , lsp-types , regex-tdfa , syb , text , transformers , containers default-extensions: DataKinds ExplicitNamespaces OverloadedStrings RecordWildCards test-suite hls-change-type-signature-plugin-tests import: defaults, pedantic, test-defaults, warnings type: exitcode-stdio-1.0 hs-source-dirs: plugins/hls-change-type-signature-plugin/test main-is: Main.hs build-depends: , base >=4.12 && < 5 , filepath , haskell-language-server:hls-change-type-signature-plugin , hls-test-utils == 2.7.0.0 , regex-tdfa , text default-extensions: OverloadedStrings ViewPatterns ----------------------------- -- gadt plugin ----------------------------- flag gadt description: Enable gadt plugin default: True manual: True common gadt if flag(gadt) build-depends: haskell-language-server:hls-gadt-plugin cpp-options: -Dhls_gadt library hls-gadt-plugin import: defaults, pedantic, warnings exposed-modules: Ide.Plugin.GADT other-modules: Ide.Plugin.GHC hs-source-dirs: plugins/hls-gadt-plugin/src build-depends: , aeson , base >=4.12 && <5 , containers , extra , ghc , ghcide == 2.7.0.0 , ghc-exactprint , hls-plugin-api == 2.7.0.0 , haskell-language-server:hls-refactor-plugin , lens , lsp >=2.4 , mtl , text , transformers default-extensions: DataKinds test-suite hls-gadt-plugin-tests import: defaults, pedantic, test-defaults, warnings type: exitcode-stdio-1.0 hs-source-dirs: plugins/hls-gadt-plugin/test main-is: Main.hs build-depends: , base , filepath , haskell-language-server:hls-gadt-plugin , hls-test-utils == 2.7.0.0 , text ----------------------------- -- explicit fixity plugin ----------------------------- flag explicitFixity description: Enable explicitFixity plugin default: True manual: True common explicitFixity if flag(explicitFixity) build-depends: haskell-language-server:hls-explicit-fixity-plugin cpp-options: -DexplicitFixity library hls-explicit-fixity-plugin import: defaults, pedantic, warnings exposed-modules: Ide.Plugin.ExplicitFixity hs-source-dirs: plugins/hls-explicit-fixity-plugin/src build-depends: base >=4.12 && <5 , containers , deepseq , extra , ghcide == 2.7.0.0 , hashable , hls-plugin-api == 2.7.0.0 , lsp >=2.4 , text default-extensions: DataKinds test-suite hls-explicit-fixity-plugin-tests import: defaults, pedantic, test-defaults, warnings type: exitcode-stdio-1.0 hs-source-dirs: plugins/hls-explicit-fixity-plugin/test main-is: Main.hs build-depends: , base , filepath , haskell-language-server:hls-explicit-fixity-plugin , hls-test-utils == 2.7.0.0 , text ----------------------------- -- explicit fields plugin ----------------------------- flag explicitFields description: Enable explicitFields plugin default: True manual: True common explicitFields if flag(explicitFields) build-depends: haskell-language-server:hls-explicit-record-fields-plugin cpp-options: -DexplicitFields library hls-explicit-record-fields-plugin import: defaults, pedantic, warnings exposed-modules: Ide.Plugin.ExplicitFields build-depends: , base >=4.12 && <5 , ghcide == 2.7.0.0 , hls-plugin-api == 2.7.0.0 , lsp , lens , hls-graph , text , syb , transformers , containers , aeson hs-source-dirs: plugins/hls-explicit-record-fields-plugin/src if flag(pedantic) ghc-options: -Wwarn=incomplete-record-updates test-suite hls-explicit-record-fields-plugin-tests import: defaults, pedantic, test-defaults, warnings type: exitcode-stdio-1.0 hs-source-dirs: plugins/hls-explicit-record-fields-plugin/test main-is: Main.hs build-depends: , base , filepath , text , haskell-language-server:hls-explicit-record-fields-plugin , hls-test-utils == 2.7.0.0 ----------------------------- -- overloaded record dot plugin ----------------------------- flag overloadedRecordDot description: Enable overloadedRecordDot plugin default: True manual: True common overloadedRecordDot if flag(overloadedRecordDot) build-depends: haskell-language-server:hls-overloaded-record-dot-plugin cpp-options: -Dhls_overloaded_record_dot library hls-overloaded-record-dot-plugin import: defaults, pedantic, warnings exposed-modules: Ide.Plugin.OverloadedRecordDot build-depends: , base >=4.16 && <5 , aeson , ghcide , hls-plugin-api , lsp , lens , hls-graph , text , syb , transformers , containers , deepseq hs-source-dirs: plugins/hls-overloaded-record-dot-plugin/src test-suite hls-overloaded-record-dot-plugin-tests import: defaults, pedantic, test-defaults, warnings type: exitcode-stdio-1.0 hs-source-dirs: plugins/hls-overloaded-record-dot-plugin/test main-is: Main.hs build-depends: , base , filepath , text , haskell-language-server:hls-overloaded-record-dot-plugin , hls-test-utils == 2.7.0.0 ----------------------------- -- floskell plugin ----------------------------- flag floskell description: Enable floskell plugin default: True manual: True common floskell if flag(floskell) && (impl(ghc < 9.7) || flag(ignore-plugins-ghc-bounds)) build-depends: haskell-language-server:hls-floskell-plugin cpp-options: -Dhls_floskell library hls-floskell-plugin import: defaults, pedantic, warnings exposed-modules: Ide.Plugin.Floskell hs-source-dirs: plugins/hls-floskell-plugin/src build-depends: , base >=4.12 && <5 , floskell ^>=0.11.0 , ghcide == 2.7.0.0 , hls-plugin-api == 2.7.0.0 , lsp-types ^>=2.1 , mtl , text test-suite hls-floskell-plugin-tests import: defaults, pedantic, test-defaults, warnings type: exitcode-stdio-1.0 hs-source-dirs: plugins/hls-floskell-plugin/test main-is: Main.hs build-depends: , base , filepath , haskell-language-server:hls-floskell-plugin , hls-test-utils == 2.7.0.0 ----------------------------- -- fourmolu plugin ----------------------------- flag fourmolu description: Enable fourmolu plugin default: True manual: True common fourmolu if flag(fourmolu) build-depends: haskell-language-server:hls-fourmolu-plugin cpp-options: -Dhls_fourmolu library hls-fourmolu-plugin import: defaults, pedantic, warnings exposed-modules: Ide.Plugin.Fourmolu hs-source-dirs: plugins/hls-fourmolu-plugin/src build-depends: , base >=4.12 && <5 , filepath , fourmolu ^>= 0.14 || ^>= 0.15 , ghc-boot-th , ghcide == 2.7.0.0 , hls-plugin-api == 2.7.0.0 , lens , lsp , mtl , process-extras >= 0.7.1 , text , transformers test-suite hls-fourmolu-plugin-tests import: defaults, pedantic, test-defaults, warnings type: exitcode-stdio-1.0 hs-source-dirs: plugins/hls-fourmolu-plugin/test main-is: Main.hs build-tool-depends: fourmolu:fourmolu build-depends: , base >=4.12 && <5 , aeson , filepath , haskell-language-server:hls-fourmolu-plugin , hls-plugin-api , hls-test-utils == 2.7.0.0 , lsp-test ----------------------------- -- ormolu plugin ----------------------------- flag ormolu description: Enable ormolu plugin default: True manual: True common ormolu if flag(ormolu) build-depends: haskell-language-server:hls-ormolu-plugin cpp-options: -Dhls_ormolu library hls-ormolu-plugin import: defaults, pedantic, warnings exposed-modules: Ide.Plugin.Ormolu hs-source-dirs: plugins/hls-ormolu-plugin/src build-depends: , base >=4.12 && <5 , extra , filepath , ghc-boot-th , ghcide == 2.7.0.0 , hls-plugin-api == 2.7.0.0 , lsp , mtl , process-extras >= 0.7.1 , ormolu ^>=0.1.2 || ^>= 0.2 || ^>= 0.3 || ^>= 0.5 || ^>= 0.6 || ^>= 0.7 , text , transformers test-suite hls-ormolu-plugin-tests import: defaults, pedantic, test-defaults, warnings type: exitcode-stdio-1.0 hs-source-dirs: plugins/hls-ormolu-plugin/test main-is: Main.hs build-tool-depends: ormolu:ormolu build-depends: , base , aeson , filepath , haskell-language-server:hls-ormolu-plugin , hls-plugin-api , hls-test-utils == 2.7.0.0 , lsp-types , ormolu ----------------------------- -- stylish-haskell plugin ----------------------------- flag stylishHaskell description: Enable stylishHaskell plugin default: True manual: True common stylishHaskell if flag(stylishHaskell) && (impl(ghc < 9.8.0) || flag(ignore-plugins-ghc-bounds)) build-depends: haskell-language-server:hls-stylish-haskell-plugin cpp-options: -Dhls_stylishHaskell library hls-stylish-haskell-plugin import: defaults, pedantic, warnings exposed-modules: Ide.Plugin.StylishHaskell hs-source-dirs: plugins/hls-stylish-haskell-plugin/src build-depends: , base >=4.12 && <5 , directory , filepath , ghc-boot-th , ghcide == 2.7.0.0 , hls-plugin-api == 2.7.0.0 , lsp-types , mtl , stylish-haskell ^>=0.12 || ^>=0.13 || ^>=0.14.2 , text test-suite hls-stylish-haskell-plugin-tests import: defaults, pedantic, test-defaults, warnings type: exitcode-stdio-1.0 hs-source-dirs: plugins/hls-stylish-haskell-plugin/test main-is: Main.hs build-depends: , base , filepath , haskell-language-server:hls-stylish-haskell-plugin , hls-test-utils == 2.7.0.0 ----------------------------- -- refactor plugin ----------------------------- flag refactor description: Enable refactor plugin default: True manual: True common refactor if flag(refactor) build-depends: haskell-language-server:hls-refactor-plugin cpp-options: -Dhls_refactor library hls-refactor-plugin import: defaults, pedantic, warnings exposed-modules: Development.IDE.GHC.ExactPrint Development.IDE.GHC.Compat.ExactPrint Development.IDE.Plugin.CodeAction Development.IDE.Plugin.CodeAction.Util Development.IDE.GHC.Dump other-modules: Development.IDE.Plugin.CodeAction.Args Development.IDE.Plugin.CodeAction.ExactPrint Development.IDE.Plugin.CodeAction.PositionIndexed Development.IDE.Plugin.Plugins.AddArgument Development.IDE.Plugin.Plugins.Diagnostic Development.IDE.Plugin.Plugins.FillHole Development.IDE.Plugin.Plugins.FillTypeWildcard Development.IDE.Plugin.Plugins.ImportUtils default-extensions: CPP DataKinds DerivingStrategies DerivingVia DuplicateRecordFields ExplicitNamespaces FunctionalDependencies LambdaCase OverloadedStrings PatternSynonyms RecordWildCards ViewPatterns hs-source-dirs: plugins/hls-refactor-plugin/src build-depends: , base >=4.12 && <5 , ghc , bytestring , ghc-boot , regex-tdfa , ghcide == 2.7.0.0 , hls-plugin-api == 2.7.0.0 , lsp , text , transformers , unordered-containers , containers , ghc-exactprint < 1 || >= 1.4 , extra , retrie , syb , hls-graph , dlist , deepseq , mtl , lens , data-default , time -- FIXME: Only needed to workaround for qualified imports in GHC 9.4 , regex-applicative , parser-combinators test-suite hls-refactor-plugin-tests import: defaults, pedantic, test-defaults, warnings type: exitcode-stdio-1.0 hs-source-dirs: plugins/hls-refactor-plugin/test main-is: Main.hs other-modules: Test.AddArgument ghc-options: -O0 build-depends: , base , filepath , haskell-language-server:hls-refactor-plugin , hls-test-utils == 2.7.0.0 , lens , lsp-types , text , hls-plugin-api , parser-combinators , data-default , extra , ghcide:{ghcide, ghcide-test-utils} , shake , hls-plugin-api , lsp-test , directory , regex-tdfa , tasty-hunit , tasty-expected-failure , tasty ----------------------------- -- semantic tokens plugin ----------------------------- flag semanticTokens description: Enable semantic tokens plugin default: True manual: True common semanticTokens if flag(semanticTokens) build-depends: haskell-language-server:hls-semantic-tokens-plugin cpp-options: -Dhls_semanticTokens library hls-semantic-tokens-plugin import: defaults, pedantic, warnings buildable: True exposed-modules: Ide.Plugin.SemanticTokens Ide.Plugin.SemanticTokens.Types Ide.Plugin.SemanticTokens.Mappings other-modules: Ide.Plugin.SemanticTokens.Query Ide.Plugin.SemanticTokens.SemanticConfig Ide.Plugin.SemanticTokens.Utils Ide.Plugin.SemanticTokens.Tokenize Ide.Plugin.SemanticTokens.Internal hs-source-dirs: plugins/hls-semantic-tokens-plugin/src build-depends: , base >=4.12 && <5 , containers , extra , text-rope , mtl >= 2.2 , ghcide == 2.7.0.0 , hls-plugin-api == 2.7.0.0 , lens , lsp >=2.4 , text , transformers , bytestring , syb , array , deepseq , dlist , hls-graph == 2.7.0.0 , template-haskell , data-default , stm , stm-containers default-extensions: DataKinds test-suite hls-semantic-tokens-plugin-tests import: defaults, pedantic, test-defaults, warnings type: exitcode-stdio-1.0 hs-source-dirs: plugins/hls-semantic-tokens-plugin/test main-is: SemanticTokensTest.hs build-depends: , aeson , base , containers , filepath , haskell-language-server:hls-semantic-tokens-plugin , hls-test-utils == 2.7.0.0 , ghcide:ghcide-test-utils , hls-plugin-api , lens , lsp , text-rope , lsp-test , text , data-default , ghcide == 2.7.0.0 , hls-plugin-api == 2.7.0.0 , data-default , row-types ---------------------------- ---------------------------- -- HLS ---------------------------- ---------------------------- library import: defaults , warnings , pedantic -- plugins , cabal , callHierarchy , cabalfmt , changeTypeSignature , class , eval , importLens , rename , retrie , hlint , stan , moduleName , pragmas , splice , alternateNumberFormat , qualifyImportedNames , codeRange , gadt , explicitFixity , explicitFields , floskell , fourmolu , ormolu , stylishHaskell , refactor , overloadedRecordDot , semanticTokens 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: , aeson-pretty , base >=4.16 && <5 , data-default , directory , extra , filepath , ghc , ghcide == 2.7.0.0 , githash >=0.1.6.1 , hie-bios , hls-plugin-api == 2.7.0.0 , optparse-applicative , optparse-simple , prettyprinter >= 1.7 , process , text default-extensions: DataKinds executable haskell-language-server import: defaults , 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" 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: , base >=4.16 && <5 , haskell-language-server , hls-plugin-api , lsp , prettyprinter >= 1.7 , text default-extensions: DataKinds executable haskell-language-server-wrapper import: defaults , 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: , base >=4.16 && <5 , data-default , directory , extra , filepath , ghcide , haskell-language-server , hie-bios , hls-plugin-api , lsp , lsp-types , text , transformers , unliftio-core if !os(windows) build-depends: , unix , containers else build-depends: , process test-suite func-test import: defaults , test-defaults , warnings , pedantic , refactor type: exitcode-stdio-1.0 build-tool-depends: haskell-language-server:haskell-language-server, ghcide:ghcide-test-preprocessor build-depends: , aeson , base >=4.16 && <5 , bytestring , containers , deepseq , extra , filepath , ghcide:{ghcide, ghcide-test-utils} , hashable , hls-plugin-api , hls-test-utils == 2.7.0.0 , lens , lsp-test , lsp-types , text , unordered-containers hs-source-dirs: test/functional test/utils main-is: Main.hs other-modules: Config ConfigSchema Format FunctionalBadProject HieBios Progress Test.Hls.Command Test.Hls.Flags default-extensions: OverloadedStrings -- Duplicating inclusion plugin conditions until tests are moved to their own packages if flag(eval) cpp-options: -Dhls_eval -- formatters if flag(floskell) cpp-options: -Dhls_floskell if flag(fourmolu) cpp-options: -Dhls_fourmolu if flag(ormolu) cpp-options: -Dhls_ormolu test-suite wrapper-test import: defaults , warnings , pedantic type: exitcode-stdio-1.0 build-tool-depends: haskell-language-server:haskell-language-server-wrapper, haskell-language-server:haskell-language-server build-depends: , base >=4.16 && <5 , extra , hls-test-utils == 2.7.0.0 , process hs-source-dirs: test/wrapper main-is: Main.hs benchmark benchmark import: defaults, warnings -- Depends on shake-bench which is unbuildable after this point if impl(ghc >= 9.5) buildable: False type: exitcode-stdio-1.0 ghc-options: -threaded main-is: Main.hs hs-source-dirs: bench build-tool-depends: ghcide-bench:ghcide-bench, hp2pretty:hp2pretty, implicit-hie:gen-hie default-extensions: LambdaCase RecordWildCards ViewPatterns build-depends: , aeson , base >=4.16 && <5 , containers , data-default , directory , extra , filepath , ghcide-bench , haskell-language-server , hls-plugin-api , lens , lens-aeson , shake , shake-bench == 0.2.* , text , yaml