mirror of
https://github.com/haskell/haskell-language-server.git
synced 2024-10-03 19:57:27 +03:00
7385915c99
* Change return type of getFileContents from Text to Rope - This avoids a few conversions between Rope and Text in the next commit - Note: Syntactic changes to Development.IDE.Plugin.CodeAction around line 2000 are to work around the following stylish-haskell failure: plugins/hls-refactor-plugin/src/Development/IDE/Plugin/CodeAction.hs: <string>:2002:5: error: [GHC-58481] parse error (possibly incorrect indentation or mismatched brackets) * Get virtual files from the Shake VFS in plugins This commit changes plugins to get virtual files from the Shake VFS rather than from the language server's VFS. - Replace `Ide.Types.pluginGetVirtualFile` with `Development.IDE.Core.FileStore.getFileContents` - Replace `Ide.Types.pluginGetVersionedTextDoc` with `Development.IDE.Core.FileStore.getVersionedTextDoc` * Rename `getFileContents` to `getFileModTimeContents` * Add util functions for common cases of Shake VFS file access * Cleanup * Fix warning * Install notification handlers for cabal files The cabal formatters read the file contents from the shake VFS. Thus, we need to make sure there are notification handlers that add the cabal files to the VFS! Formatters have to depend on the `hls-cabal-plugin` to have the necessary notification handlers installed during test time. --------- Co-authored-by: soulomoon <fwy996602672@gmail.com> Co-authored-by: Michael Peyton Jones <me@michaelpj.com> Co-authored-by: Fendor <fendor@posteo.de> Co-authored-by: fendor <fendor@users.noreply.github.com>
2310 lines
57 KiB
Plaintext
2310 lines
57 KiB
Plaintext
cabal-version: 3.4
|
|
category: Development
|
|
name: haskell-language-server
|
|
version: 2.9.0.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 ==9.10.1 || ==9.8.2 || ==9.6.5 || ==9.4.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
|
|
if impl(ghc >= 9.8)
|
|
-- We allow using partial functions in tests
|
|
ghc-options: -Wno-x-partial
|
|
|
|
-- 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_<pkg> is CPP macro that cabal defines only when <pkg> 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
|
|
if !flag(cabalfmt)
|
|
buildable: False
|
|
exposed-modules: Ide.Plugin.CabalFmt
|
|
hs-source-dirs: plugins/hls-cabal-fmt-plugin/src
|
|
build-depends:
|
|
, base >=4.12 && <5
|
|
, directory
|
|
, filepath
|
|
, ghcide == 2.9.0.1
|
|
, hls-plugin-api == 2.9.0.1
|
|
, lens
|
|
, lsp-types
|
|
, mtl
|
|
, process-extras
|
|
, text
|
|
|
|
-- The `hls-cabal-plugin` is needed for tests, as we need to install notification handlers
|
|
test-suite hls-cabal-fmt-plugin-tests
|
|
import: defaults, pedantic, test-defaults, warnings
|
|
if !flag(cabalfmt)
|
|
buildable: False
|
|
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-plugin
|
|
, haskell-language-server:hls-cabal-fmt-plugin
|
|
, hls-plugin-api == 2.9.0.1
|
|
, hls-test-utils == 2.9.0.1
|
|
|
|
if flag(isolateCabalfmtTests)
|
|
build-tool-depends: cabal-fmt:cabal-fmt ^>=0.1.12
|
|
cpp-options: -Dhls_isolate_cabalfmt_tests
|
|
|
|
-----------------------------
|
|
-- cabal-gild plugin
|
|
-----------------------------
|
|
|
|
flag cabalgild
|
|
description: Enable cabal-gild plugin
|
|
default: True
|
|
manual: True
|
|
|
|
common cabalgild
|
|
if flag(cabalgild)
|
|
build-depends: haskell-language-server:hls-cabal-gild-plugin
|
|
cpp-options: -Dhls_cabalgild
|
|
|
|
flag isolateCabalGildTests
|
|
description: Should tests search for 'cabal-gild' 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-gild-plugin
|
|
import: defaults, pedantic, warnings
|
|
if !flag(cabalgild)
|
|
buildable: False
|
|
exposed-modules: Ide.Plugin.CabalGild
|
|
hs-source-dirs: plugins/hls-cabal-gild-plugin/src
|
|
build-depends:
|
|
, base >=4.12 && <5
|
|
, directory
|
|
, filepath
|
|
, ghcide == 2.9.0.1
|
|
, hls-plugin-api == 2.9.0.1
|
|
, lsp-types
|
|
, text
|
|
, mtl
|
|
, process-extras
|
|
|
|
-- The `hls-cabal-plugin` is needed for tests, as we need to install notification handlers
|
|
test-suite hls-cabal-gild-plugin-tests
|
|
import: defaults, pedantic, test-defaults, warnings
|
|
if !flag(cabalgild)
|
|
buildable: False
|
|
type: exitcode-stdio-1.0
|
|
hs-source-dirs: plugins/hls-cabal-gild-plugin/test
|
|
main-is: Main.hs
|
|
build-depends:
|
|
, base
|
|
, directory
|
|
, filepath
|
|
, haskell-language-server:hls-cabal-plugin
|
|
, haskell-language-server:hls-cabal-gild-plugin
|
|
, hls-plugin-api == 2.9.0.1
|
|
, hls-test-utils == 2.9.0.1
|
|
|
|
if flag(isolateCabalGildTests)
|
|
-- https://github.com/tfausak/cabal-gild/issues/89
|
|
build-tool-depends: cabal-gild:cabal-gild >= 1.3 && < 1.3.2
|
|
cpp-options: -Dhls_isolate_cabalgild_tests
|
|
|
|
-----------------------------
|
|
-- 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
|
|
if !flag(cabal)
|
|
buildable: False
|
|
exposed-modules:
|
|
Ide.Plugin.Cabal
|
|
Ide.Plugin.Cabal.Diagnostics
|
|
Ide.Plugin.Cabal.Completion.CabalFields
|
|
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.Definition
|
|
Ide.Plugin.Cabal.FieldSuggest
|
|
Ide.Plugin.Cabal.LicenseSuggest
|
|
Ide.Plugin.Cabal.CabalAdd
|
|
Ide.Plugin.Cabal.Orphans
|
|
Ide.Plugin.Cabal.Outline
|
|
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.9.0.1
|
|
, hashable
|
|
, hls-plugin-api == 2.9.0.1
|
|
, hls-graph == 2.9.0.1
|
|
, lens
|
|
, lsp ^>=2.7
|
|
, lsp-types ^>=2.3
|
|
, regex-tdfa ^>=1.3.1
|
|
, text
|
|
, text-rope
|
|
, transformers
|
|
, unordered-containers >=0.2.10.0
|
|
, containers
|
|
, cabal-add
|
|
, process
|
|
, aeson
|
|
, Cabal
|
|
, pretty
|
|
|
|
hs-source-dirs: plugins/hls-cabal-plugin/src
|
|
|
|
test-suite hls-cabal-plugin-tests
|
|
import: defaults, pedantic, test-defaults, warnings
|
|
if !flag(cabal)
|
|
buildable: False
|
|
type: exitcode-stdio-1.0
|
|
hs-source-dirs: plugins/hls-cabal-plugin/test
|
|
main-is: Main.hs
|
|
other-modules:
|
|
CabalAdd
|
|
Completer
|
|
Context
|
|
Definition
|
|
Outline
|
|
Utils
|
|
build-depends:
|
|
, base
|
|
, bytestring
|
|
, Cabal-syntax >= 3.7
|
|
, extra
|
|
, filepath
|
|
, ghcide
|
|
, haskell-language-server:hls-cabal-plugin
|
|
, hls-test-utils == 2.9.0.1
|
|
, lens
|
|
, lsp-types
|
|
, text
|
|
, hls-plugin-api
|
|
|
|
-----------------------------
|
|
-- 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
|
|
if !flag(class)
|
|
buildable: False
|
|
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 && < 1.10.0.0
|
|
, ghcide == 2.9.0.1
|
|
, hls-graph
|
|
, hls-plugin-api == 2.9.0.1
|
|
, lens
|
|
, lsp
|
|
, mtl
|
|
, text
|
|
, transformers
|
|
|
|
default-extensions:
|
|
DataKinds
|
|
OverloadedStrings
|
|
|
|
test-suite hls-class-plugin-tests
|
|
import: defaults, pedantic, test-defaults, warnings
|
|
if !flag(class)
|
|
buildable: False
|
|
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.9.0.1
|
|
, lens
|
|
, lsp-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
|
|
if !flag(callHierarchy)
|
|
buildable: False
|
|
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.9.0.1
|
|
, hiedb ^>= 0.6.0.0
|
|
, hls-plugin-api == 2.9.0.1
|
|
, lens
|
|
, lsp >=2.7
|
|
, sqlite-simple
|
|
, text
|
|
|
|
default-extensions: DataKinds
|
|
|
|
test-suite hls-call-hierarchy-plugin-tests
|
|
import: defaults, pedantic, test-defaults, warnings
|
|
if !flag(callHierarchy)
|
|
buildable: False
|
|
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.9.0.1
|
|
, 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
|
|
if !flag(eval)
|
|
buildable: False
|
|
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.5
|
|
, dlist
|
|
, extra
|
|
, filepath
|
|
, ghc
|
|
, ghc-boot-th
|
|
, ghcide == 2.9.0.1
|
|
, hls-graph
|
|
, hls-plugin-api == 2.9.0.1
|
|
, lens
|
|
, lsp
|
|
, lsp-types
|
|
, megaparsec >=9.0
|
|
, mtl
|
|
, parser-combinators >=1.2
|
|
, text
|
|
, text-rope
|
|
, transformers
|
|
, unliftio
|
|
, unordered-containers
|
|
|
|
default-extensions:
|
|
DataKinds
|
|
|
|
test-suite hls-eval-plugin-tests
|
|
import: defaults, pedantic, test-defaults, warnings
|
|
if !flag(eval)
|
|
buildable: False
|
|
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.9.0.1
|
|
, lens
|
|
, lsp-types
|
|
, text
|
|
|
|
-----------------------------
|
|
-- 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
|
|
if !flag(importlens)
|
|
buildable: False
|
|
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.9.0.1
|
|
, hls-graph
|
|
, hls-plugin-api == 2.9.0.1
|
|
, lens
|
|
, lsp
|
|
, mtl
|
|
, text
|
|
, transformers
|
|
|
|
default-extensions:
|
|
DataKinds
|
|
|
|
test-suite hls-explicit-imports-plugin-tests
|
|
import: defaults, pedantic, test-defaults, warnings
|
|
if !flag(importlens)
|
|
buildable: False
|
|
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.9.0.1
|
|
, lens
|
|
, lsp-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
|
|
if !flag(rename)
|
|
buildable: False
|
|
exposed-modules: Ide.Plugin.Rename
|
|
hs-source-dirs: plugins/hls-rename-plugin/src
|
|
build-depends:
|
|
, base >=4.12 && <5
|
|
, containers
|
|
, ghcide == 2.9.0.1
|
|
, hashable
|
|
, hiedb ^>= 0.6.0.0
|
|
, hie-compat
|
|
, hls-plugin-api == 2.9.0.1
|
|
, haskell-language-server:hls-refactor-plugin
|
|
, lens
|
|
, lsp-types
|
|
, mtl
|
|
, mod
|
|
, syb
|
|
, text
|
|
, transformers
|
|
, unordered-containers
|
|
|
|
|
|
test-suite hls-rename-plugin-tests
|
|
import: defaults, pedantic, test-defaults, warnings
|
|
if !flag(rename)
|
|
buildable: False
|
|
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.9.0.1
|
|
, lens
|
|
, lsp-types
|
|
, text
|
|
|
|
-----------------------------
|
|
-- retrie plugin
|
|
-----------------------------
|
|
|
|
flag retrie
|
|
description: Enable retrie plugin
|
|
default: True
|
|
manual: True
|
|
|
|
common retrie
|
|
if flag(retrie) && impl(ghc < 9.10)
|
|
build-depends: haskell-language-server:hls-retrie-plugin
|
|
cpp-options: -Dhls_retrie
|
|
|
|
library hls-retrie-plugin
|
|
import: defaults, pedantic, warnings
|
|
if !(flag(retrie) && impl(ghc < 9.10))
|
|
buildable: False
|
|
exposed-modules: Ide.Plugin.Retrie
|
|
hs-source-dirs: plugins/hls-retrie-plugin/src
|
|
build-depends:
|
|
, aeson
|
|
, base >=4.12 && <5
|
|
, bytestring
|
|
, containers
|
|
, extra
|
|
, ghc
|
|
, ghcide == 2.9.0.1
|
|
, hashable
|
|
, hls-plugin-api == 2.9.0.1
|
|
, haskell-language-server:hls-refactor-plugin
|
|
, lens
|
|
, lsp
|
|
, lsp-types
|
|
, mtl
|
|
, retrie >=0.1.1.0
|
|
, safe-exceptions
|
|
, stm
|
|
, text
|
|
, text-rope
|
|
, transformers
|
|
, unordered-containers
|
|
|
|
default-extensions:
|
|
DataKinds
|
|
|
|
test-suite hls-retrie-plugin-tests
|
|
import: defaults, pedantic, test-defaults, warnings
|
|
if !(flag(retrie) && impl(ghc < 9.10))
|
|
buildable: False
|
|
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.9.0.1
|
|
, text
|
|
|
|
-----------------------------
|
|
-- hlint plugin
|
|
-----------------------------
|
|
|
|
flag ghc-lib
|
|
description:
|
|
Use ghc-lib-parser rather than the ghc library (requires hlint and
|
|
ghc-lib-parser-ex to also be built with it)
|
|
default: True
|
|
manual: True
|
|
|
|
flag hlint
|
|
description: Enable hlint plugin
|
|
default: True
|
|
manual: True
|
|
|
|
common hlint
|
|
if flag(hlint) && impl(ghc < 9.10)
|
|
build-depends: haskell-language-server:hls-hlint-plugin
|
|
cpp-options: -Dhls_hlint
|
|
|
|
library hls-hlint-plugin
|
|
import: defaults, pedantic, warnings
|
|
-- https://github.com/ndmitchell/hlint/pull/1594
|
|
if !(flag(hlint) && impl(ghc < 9.10))
|
|
buildable: False
|
|
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.9.0.1
|
|
, hashable
|
|
, hlint >= 3.5 && < 3.9
|
|
, hls-plugin-api == 2.9.0.1
|
|
, lens
|
|
, mtl
|
|
, refact
|
|
, regex-tdfa
|
|
, stm
|
|
, temporary
|
|
, text
|
|
, text-rope
|
|
, transformers
|
|
, unordered-containers
|
|
, ghc-lib-parser-ex
|
|
, apply-refact
|
|
--
|
|
, lsp-types
|
|
|
|
if flag(ghc-lib)
|
|
cpp-options: -DGHC_LIB
|
|
build-depends:
|
|
ghc-lib-parser
|
|
else
|
|
build-depends:
|
|
ghc
|
|
, ghc-boot
|
|
|
|
default-extensions:
|
|
DataKinds
|
|
|
|
test-suite hls-hlint-plugin-tests
|
|
import: defaults, pedantic, test-defaults, warnings
|
|
if !(flag(hlint) && impl(ghc < 9.10))
|
|
buildable: False
|
|
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.9.0.1
|
|
, lens
|
|
, lsp-types
|
|
, text
|
|
|
|
-----------------------------
|
|
-- stan plugin
|
|
-----------------------------
|
|
|
|
flag stan
|
|
description: Enable stan plugin
|
|
default: True
|
|
manual: True
|
|
|
|
common stan
|
|
if flag(stan) && 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 flag(stan) && 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 flag(stan) && 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.9.0.1
|
|
, 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
|
|
if !flag(modulename)
|
|
buildable: False
|
|
exposed-modules: Ide.Plugin.ModuleName
|
|
hs-source-dirs: plugins/hls-module-name-plugin/src
|
|
build-depends:
|
|
, aeson
|
|
, base >=4.12 && <5
|
|
, containers
|
|
, filepath
|
|
, ghcide == 2.9.0.1
|
|
, hls-plugin-api == 2.9.0.1
|
|
, lsp
|
|
, text
|
|
, text-rope
|
|
, transformers
|
|
|
|
|
|
test-suite hls-module-name-plugin-tests
|
|
import: defaults, pedantic, test-defaults, warnings
|
|
if !flag(modulename)
|
|
buildable: False
|
|
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.9.0.1
|
|
|
|
-----------------------------
|
|
-- 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
|
|
if !flag(pragmas)
|
|
buildable: False
|
|
exposed-modules: Ide.Plugin.Pragmas
|
|
hs-source-dirs: plugins/hls-pragmas-plugin/src
|
|
build-depends:
|
|
, base >=4.12 && <5
|
|
, extra
|
|
, fuzzy
|
|
, ghcide == 2.9.0.1
|
|
, hls-plugin-api == 2.9.0.1
|
|
, lens
|
|
, lsp
|
|
, text
|
|
, transformers
|
|
, containers
|
|
|
|
test-suite hls-pragmas-plugin-tests
|
|
import: defaults, pedantic, test-defaults, warnings
|
|
if !flag(pragmas)
|
|
buildable: False
|
|
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.9.0.1
|
|
, lens
|
|
, lsp-types
|
|
, text
|
|
|
|
-----------------------------
|
|
-- splice plugin
|
|
-----------------------------
|
|
|
|
flag splice
|
|
description: Enable splice plugin
|
|
default: True
|
|
manual: True
|
|
|
|
common splice
|
|
if flag(splice) && impl(ghc < 9.10)
|
|
build-depends: haskell-language-server:hls-splice-plugin
|
|
cpp-options: -Dhls_splice
|
|
|
|
library hls-splice-plugin
|
|
import: defaults, pedantic, warnings
|
|
if !(flag(splice) && impl(ghc < 9.10))
|
|
buildable: False
|
|
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
|
|
, ghcide == 2.9.0.1
|
|
, hls-plugin-api == 2.9.0.1
|
|
, 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
|
|
if !(flag(splice) && impl(ghc < 9.10))
|
|
buildable: False
|
|
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.9.0.1
|
|
, text
|
|
|
|
-----------------------------
|
|
-- 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
|
|
if !flag(alternateNumberFormat)
|
|
buildable: False
|
|
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.9.0.1
|
|
, ghc-boot-th
|
|
, hls-graph
|
|
, hls-plugin-api == 2.9.0.1
|
|
, lens
|
|
, lsp ^>=2.7
|
|
, mtl
|
|
, regex-tdfa
|
|
, syb
|
|
, text
|
|
|
|
default-extensions:
|
|
LambdaCase
|
|
OverloadedStrings
|
|
RecordWildCards
|
|
|
|
test-suite hls-alternate-number-format-plugin-tests
|
|
import: defaults, pedantic, test-defaults, warnings
|
|
if !flag(alternateNumberFormat)
|
|
buildable: False
|
|
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.9.0.1
|
|
, 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
|
|
if !flag(qualifyImportedNames)
|
|
buildable: False
|
|
exposed-modules: Ide.Plugin.QualifyImportedNames
|
|
hs-source-dirs: plugins/hls-qualify-imported-names-plugin/src
|
|
build-depends:
|
|
, base >=4.12 && <5
|
|
, containers
|
|
, ghcide == 2.9.0.1
|
|
, hls-plugin-api == 2.9.0.1
|
|
, lens
|
|
, lsp
|
|
, text
|
|
, text-rope
|
|
, dlist
|
|
, transformers
|
|
|
|
default-extensions:
|
|
DataKinds
|
|
|
|
test-suite hls-qualify-imported-names-plugin-tests
|
|
import: defaults, pedantic, test-defaults, warnings
|
|
if !flag(qualifyImportedNames)
|
|
buildable: False
|
|
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.9.0.1
|
|
|
|
-----------------------------
|
|
-- 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
|
|
if !flag(codeRange)
|
|
buildable: False
|
|
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.9.0.1
|
|
, hashable
|
|
, hls-plugin-api == 2.9.0.1
|
|
, lens
|
|
, lsp
|
|
, mtl
|
|
, semigroupoids
|
|
, transformers
|
|
, vector
|
|
|
|
test-suite hls-code-range-plugin-tests
|
|
import: defaults, pedantic, test-defaults, warnings
|
|
if !flag(codeRange)
|
|
buildable: False
|
|
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.9.0.1
|
|
, 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
|
|
if !flag(changeTypeSignature)
|
|
buildable: False
|
|
exposed-modules: Ide.Plugin.ChangeTypeSignature
|
|
hs-source-dirs: plugins/hls-change-type-signature-plugin/src
|
|
build-depends:
|
|
, base >=4.12 && < 5
|
|
, ghcide == 2.9.0.1
|
|
, hls-plugin-api == 2.9.0.1
|
|
, 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
|
|
if !flag(changeTypeSignature)
|
|
buildable: False
|
|
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.9.0.1
|
|
, 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
|
|
if !flag(gadt)
|
|
buildable: False
|
|
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.9.0.1
|
|
, ghc-exactprint
|
|
, hls-plugin-api == 2.9.0.1
|
|
, haskell-language-server:hls-refactor-plugin
|
|
, lens
|
|
, lsp >=2.7
|
|
, mtl
|
|
, text
|
|
, transformers
|
|
|
|
default-extensions: DataKinds
|
|
|
|
test-suite hls-gadt-plugin-tests
|
|
import: defaults, pedantic, test-defaults, warnings
|
|
if !flag(gadt)
|
|
buildable: False
|
|
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.9.0.1
|
|
, 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
|
|
if !flag(explicitFixity)
|
|
buildable: False
|
|
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.9.0.1
|
|
, hashable
|
|
, hls-plugin-api == 2.9.0.1
|
|
, lsp >=2.7
|
|
, text
|
|
|
|
default-extensions: DataKinds
|
|
|
|
test-suite hls-explicit-fixity-plugin-tests
|
|
import: defaults, pedantic, test-defaults, warnings
|
|
if !flag(explicitFixity)
|
|
buildable: False
|
|
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.9.0.1
|
|
, 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
|
|
if !flag(explicitFields)
|
|
buildable: False
|
|
exposed-modules: Ide.Plugin.ExplicitFields
|
|
build-depends:
|
|
, base >=4.12 && <5
|
|
, ghcide == 2.9.0.1
|
|
, hls-plugin-api == 2.9.0.1
|
|
, 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
|
|
if !flag(explicitFields)
|
|
buildable: False
|
|
type: exitcode-stdio-1.0
|
|
hs-source-dirs: plugins/hls-explicit-record-fields-plugin/test
|
|
main-is: Main.hs
|
|
build-depends:
|
|
, base
|
|
, filepath
|
|
, text
|
|
, ghcide
|
|
, haskell-language-server:hls-explicit-record-fields-plugin
|
|
, hls-test-utils == 2.9.0.1
|
|
|
|
-----------------------------
|
|
-- 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
|
|
if !flag(overloadedRecordDot)
|
|
buildable: False
|
|
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
|
|
if !flag(overloadedRecordDot)
|
|
buildable: False
|
|
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.9.0.1
|
|
|
|
|
|
-----------------------------
|
|
-- floskell plugin
|
|
-----------------------------
|
|
|
|
flag floskell
|
|
description: Enable floskell plugin
|
|
default: True
|
|
manual: True
|
|
|
|
common floskell
|
|
if flag(floskell) && impl(ghc < 9.10)
|
|
build-depends: haskell-language-server:hls-floskell-plugin
|
|
cpp-options: -Dhls_floskell
|
|
|
|
library hls-floskell-plugin
|
|
import: defaults, pedantic, warnings
|
|
-- https://github.com/ennocramer/floskell/pull/82
|
|
if !(flag(floskell) && impl(ghc < 9.10))
|
|
buildable: False
|
|
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.9.0.1
|
|
, hls-plugin-api == 2.9.0.1
|
|
, lsp-types ^>=2.3
|
|
, mtl
|
|
, text
|
|
|
|
|
|
test-suite hls-floskell-plugin-tests
|
|
import: defaults, pedantic, test-defaults, warnings
|
|
if !(flag(floskell) && impl(ghc < 9.10))
|
|
buildable: False
|
|
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.9.0.1
|
|
|
|
-----------------------------
|
|
-- 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
|
|
if !flag(fourmolu)
|
|
buildable: False
|
|
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 || ^>= 0.16
|
|
, ghc-boot-th
|
|
, ghcide == 2.9.0.1
|
|
, hls-plugin-api == 2.9.0.1
|
|
, lens
|
|
, lsp
|
|
, mtl
|
|
, process-extras >= 0.7.1
|
|
, text
|
|
, transformers
|
|
, yaml
|
|
|
|
test-suite hls-fourmolu-plugin-tests
|
|
import: defaults, pedantic, test-defaults, warnings
|
|
if !flag(fourmolu)
|
|
buildable: False
|
|
type: exitcode-stdio-1.0
|
|
hs-source-dirs: plugins/hls-fourmolu-plugin/test
|
|
main-is: Main.hs
|
|
-- Work around https://gitlab.haskell.org/ghc/ghc/-/issues/24648
|
|
if os(darwin)
|
|
ghc-options: -optl-Wl,-ld_classic
|
|
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.9.0.1
|
|
, 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
|
|
if !flag(ormolu)
|
|
buildable: False
|
|
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.9.0.1
|
|
, hls-plugin-api == 2.9.0.1
|
|
, 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
|
|
if !flag(ormolu)
|
|
buildable: False
|
|
type: exitcode-stdio-1.0
|
|
hs-source-dirs: plugins/hls-ormolu-plugin/test
|
|
main-is: Main.hs
|
|
-- Work around https://gitlab.haskell.org/ghc/ghc/-/issues/24648
|
|
if os(darwin)
|
|
ghc-options: -optl-Wl,-ld_classic
|
|
build-tool-depends:
|
|
ormolu:ormolu
|
|
build-depends:
|
|
, base
|
|
, aeson
|
|
, filepath
|
|
, haskell-language-server:hls-ormolu-plugin
|
|
, hls-plugin-api
|
|
, hls-test-utils == 2.9.0.1
|
|
, lsp-types
|
|
, ormolu
|
|
|
|
-----------------------------
|
|
-- stylish-haskell plugin
|
|
-----------------------------
|
|
|
|
flag stylishHaskell
|
|
description: Enable stylishHaskell plugin
|
|
default: True
|
|
manual: True
|
|
|
|
common stylishHaskell
|
|
if flag(stylishHaskell) && impl(ghc < 9.10)
|
|
build-depends: haskell-language-server:hls-stylish-haskell-plugin
|
|
cpp-options: -Dhls_stylishHaskell
|
|
|
|
library hls-stylish-haskell-plugin
|
|
import: defaults, pedantic, warnings
|
|
-- https://github.com/haskell/stylish-haskell/issues/479
|
|
if !(flag(stylishHaskell) && impl(ghc < 9.10))
|
|
buildable: False
|
|
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.9.0.1
|
|
, hls-plugin-api == 2.9.0.1
|
|
, lsp-types
|
|
, mtl
|
|
, stylish-haskell ^>=0.12 || ^>=0.13 || ^>=0.14
|
|
, text
|
|
|
|
|
|
test-suite hls-stylish-haskell-plugin-tests
|
|
import: defaults, pedantic, test-defaults, warnings
|
|
if !(flag(stylishHaskell) && impl(ghc < 9.10))
|
|
buildable: False
|
|
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.9.0.1
|
|
|
|
-----------------------------
|
|
-- 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
|
|
if !flag(refactor)
|
|
buildable: False
|
|
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.9.0.1
|
|
, hls-plugin-api == 2.9.0.1
|
|
, lsp
|
|
, text
|
|
, text-rope
|
|
, transformers
|
|
, unordered-containers
|
|
, containers
|
|
, ghc-exactprint < 1 || >= 1.4
|
|
, extra
|
|
, syb
|
|
, hls-graph
|
|
, dlist
|
|
, deepseq
|
|
, mtl
|
|
, lens
|
|
, time
|
|
-- FIXME: Only needed to workaround for qualified imports in GHC 9.4
|
|
, regex-applicative
|
|
, parser-combinators
|
|
if impl(ghc < 9.10)
|
|
build-depends: data-default
|
|
|
|
test-suite hls-refactor-plugin-tests
|
|
import: defaults, pedantic, test-defaults, warnings
|
|
if !flag(refactor)
|
|
buildable: False
|
|
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
|
|
, data-default
|
|
, directory
|
|
, extra
|
|
, filepath
|
|
, ghcide:ghcide
|
|
, haskell-language-server:hls-refactor-plugin
|
|
, hls-test-utils == 2.9.0.1
|
|
, lens
|
|
, lsp-test
|
|
, lsp-types
|
|
, parser-combinators
|
|
, regex-tdfa
|
|
, shake
|
|
, tasty
|
|
, tasty-expected-failure
|
|
, tasty-hunit
|
|
, text
|
|
|
|
-----------------------------
|
|
-- 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
|
|
if !flag(semanticTokens)
|
|
buildable: False
|
|
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.9.0.1
|
|
, hls-plugin-api == 2.9.0.1
|
|
, lens
|
|
, lsp >=2.6
|
|
, text
|
|
, transformers
|
|
, bytestring
|
|
, syb
|
|
, array
|
|
, deepseq
|
|
, dlist
|
|
, hls-graph == 2.9.0.1
|
|
, template-haskell
|
|
, data-default
|
|
, stm
|
|
, stm-containers
|
|
|
|
default-extensions: DataKinds
|
|
|
|
test-suite hls-semantic-tokens-plugin-tests
|
|
import: defaults, pedantic, test-defaults, warnings
|
|
if !flag(semanticTokens)
|
|
buildable: False
|
|
type: exitcode-stdio-1.0
|
|
hs-source-dirs: plugins/hls-semantic-tokens-plugin/test
|
|
main-is: SemanticTokensTest.hs
|
|
|
|
build-depends:
|
|
, aeson
|
|
, base
|
|
, containers
|
|
, data-default
|
|
, filepath
|
|
, ghcide == 2.9.0.1
|
|
, haskell-language-server:hls-semantic-tokens-plugin
|
|
, hls-plugin-api == 2.9.0.1
|
|
, hls-test-utils == 2.9.0.1
|
|
, lens
|
|
, lsp
|
|
, lsp-test
|
|
, text
|
|
, text-rope
|
|
|
|
-----------------------------
|
|
-- notes plugin
|
|
-----------------------------
|
|
|
|
flag notes
|
|
description: Enable notes plugin
|
|
default: True
|
|
manual: True
|
|
|
|
common notes
|
|
if flag(notes)
|
|
build-depends: haskell-language-server:hls-notes-plugin
|
|
cpp-options: -Dhls_notes
|
|
|
|
library hls-notes-plugin
|
|
import: defaults, pedantic, warnings
|
|
if !flag(notes)
|
|
buildable: False
|
|
exposed-modules:
|
|
Ide.Plugin.Notes
|
|
hs-source-dirs: plugins/hls-notes-plugin/src
|
|
build-depends:
|
|
, base >=4.12 && <5
|
|
, array
|
|
, ghcide == 2.9.0.1
|
|
, hls-graph == 2.9.0.1
|
|
, hls-plugin-api == 2.9.0.1
|
|
, lens
|
|
, lsp >=2.7
|
|
, mtl >= 2.2
|
|
, regex-tdfa >= 1.3.1
|
|
, text
|
|
, text-rope
|
|
, unordered-containers
|
|
default-extensions:
|
|
DataKinds
|
|
, DeriveAnyClass
|
|
, DerivingStrategies
|
|
, OverloadedStrings
|
|
, LambdaCase
|
|
, TypeFamilies
|
|
|
|
test-suite hls-notes-plugin-tests
|
|
import: defaults, pedantic, test-defaults, warnings
|
|
if !flag(notes)
|
|
buildable: False
|
|
type: exitcode-stdio-1.0
|
|
hs-source-dirs: plugins/hls-notes-plugin/test
|
|
main-is: NotesTest.hs
|
|
build-depends:
|
|
, base
|
|
, filepath
|
|
, haskell-language-server:hls-notes-plugin
|
|
, hls-test-utils == 2.9.0.1
|
|
default-extensions: OverloadedStrings
|
|
|
|
----------------------------
|
|
----------------------------
|
|
-- HLS
|
|
----------------------------
|
|
----------------------------
|
|
|
|
library
|
|
import: defaults
|
|
, warnings
|
|
, pedantic
|
|
-- plugins
|
|
, cabal
|
|
, callHierarchy
|
|
, cabalfmt
|
|
, cabalgild
|
|
, changeTypeSignature
|
|
, class
|
|
, eval
|
|
, importLens
|
|
, rename
|
|
, retrie
|
|
, hlint
|
|
, stan
|
|
, moduleName
|
|
, pragmas
|
|
, splice
|
|
, alternateNumberFormat
|
|
, qualifyImportedNames
|
|
, codeRange
|
|
, gadt
|
|
, explicitFixity
|
|
, explicitFields
|
|
, floskell
|
|
, fourmolu
|
|
, ormolu
|
|
, stylishHaskell
|
|
, refactor
|
|
, overloadedRecordDot
|
|
, semanticTokens
|
|
, notes
|
|
|
|
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.9.0.1
|
|
, githash >=0.1.6.1
|
|
, hie-bios
|
|
, hls-plugin-api == 2.9.0.1
|
|
, 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
|
|
, hashable
|
|
, hls-plugin-api
|
|
, hls-test-utils == 2.9.0.1
|
|
, 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) && impl(ghc < 9.10)
|
|
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.9.0.1
|
|
, 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
|
|
type: exitcode-stdio-1.0
|
|
ghc-options: -threaded
|
|
main-is: Main.hs
|
|
hs-source-dirs: bench
|
|
build-tool-depends:
|
|
haskell-language-server:ghcide-bench,
|
|
hp2pretty:hp2pretty,
|
|
default-extensions:
|
|
LambdaCase
|
|
RecordWildCards
|
|
ViewPatterns
|
|
|
|
build-depends:
|
|
, aeson
|
|
, base >=4.16 && <5
|
|
, containers
|
|
, data-default
|
|
, directory
|
|
, extra
|
|
, filepath
|
|
, haskell-language-server:ghcide-bench-lib
|
|
, haskell-language-server
|
|
, hls-plugin-api
|
|
, lens
|
|
, lens-aeson
|
|
, shake
|
|
, shake-bench == 0.2.*
|
|
, text
|
|
, yaml
|
|
|
|
|
|
test-suite ghcide-tests
|
|
import: warnings
|
|
type: exitcode-stdio-1.0
|
|
default-language: GHC2021
|
|
build-tool-depends:
|
|
, ghcide:ghcide
|
|
, ghcide:ghcide-test-preprocessor
|
|
, implicit-hie:gen-hie
|
|
|
|
build-depends:
|
|
, aeson
|
|
, base
|
|
, containers
|
|
, data-default
|
|
, directory
|
|
, enummapset
|
|
, extra
|
|
, filepath
|
|
, fuzzy
|
|
, ghcide
|
|
, hls-plugin-api
|
|
, lens
|
|
, list-t
|
|
, lsp
|
|
, lsp-test ^>=0.17.1
|
|
, lsp-types
|
|
, monoid-subclasses
|
|
, mtl
|
|
, network-uri
|
|
, QuickCheck
|
|
, random
|
|
, regex-tdfa ^>=1.3.1
|
|
, shake
|
|
, sqlite-simple
|
|
, stm
|
|
, stm-containers
|
|
, tasty
|
|
, tasty-expected-failure
|
|
, tasty-hunit >=0.10
|
|
, tasty-quickcheck
|
|
, tasty-rerun
|
|
, text
|
|
, text-rope
|
|
, unordered-containers
|
|
, hls-test-utils == 2.9.0.1
|
|
|
|
if impl(ghc <9.3)
|
|
build-depends: ghc-typelits-knownnat
|
|
|
|
hs-source-dirs: ghcide/test/exe
|
|
ghc-options: -threaded -O0
|
|
|
|
main-is: Main.hs
|
|
other-modules:
|
|
Config
|
|
AsyncTests
|
|
BootTests
|
|
ClientSettingsTests
|
|
CodeLensTests
|
|
CompletionTests
|
|
CPPTests
|
|
CradleTests
|
|
DependentFileTest
|
|
DiagnosticTests
|
|
ExceptionTests
|
|
FindDefinitionAndHoverTests
|
|
FuzzySearch
|
|
GarbageCollectionTests
|
|
HaddockTests
|
|
HieDbRetry
|
|
HighlightTests
|
|
IfaceTests
|
|
InitializeResponseTests
|
|
LogType
|
|
NonLspCommandLine
|
|
OpenCloseTest
|
|
OutlineTests
|
|
PluginSimpleTests
|
|
PositionMappingTests
|
|
PreprocessorTests
|
|
Progress
|
|
ReferenceTests
|
|
RootUriTests
|
|
SafeTests
|
|
SymlinkTests
|
|
THTests
|
|
UnitTests
|
|
WatchedFileTests
|
|
|
|
-- Tests that have been pulled out of the main file
|
|
default-extensions:
|
|
LambdaCase
|
|
OverloadedStrings
|
|
RecordWildCards
|
|
ViewPatterns
|
|
|
|
|
|
executable ghcide-bench
|
|
default-language: GHC2021
|
|
build-depends:
|
|
aeson,
|
|
base,
|
|
bytestring,
|
|
containers,
|
|
data-default,
|
|
extra,
|
|
filepath,
|
|
hls-plugin-api,
|
|
hls-test-utils,
|
|
lens,
|
|
lsp-test,
|
|
lsp-types,
|
|
optparse-applicative,
|
|
process,
|
|
safe-exceptions,
|
|
hls-graph,
|
|
shake,
|
|
tasty-hunit >= 0.10,
|
|
text,
|
|
haskell-language-server:ghcide-bench-lib,
|
|
hs-source-dirs: ghcide-bench/exe
|
|
ghc-options: -threaded -Wall -Wno-name-shadowing -rtsopts
|
|
main-is: Main.hs
|
|
default-extensions:
|
|
LambdaCase
|
|
OverloadedStrings
|
|
RecordWildCards
|
|
ViewPatterns
|
|
|
|
library ghcide-bench-lib
|
|
default-language: GHC2021
|
|
hs-source-dirs: ghcide-bench/src
|
|
ghc-options: -Wall -Wno-name-shadowing
|
|
exposed-modules:
|
|
Experiments.Types
|
|
Experiments
|
|
build-depends:
|
|
aeson,
|
|
async,
|
|
base == 4.*,
|
|
binary,
|
|
bytestring,
|
|
deepseq,
|
|
directory,
|
|
extra,
|
|
filepath,
|
|
ghcide:{ghcide},
|
|
hashable,
|
|
lens,
|
|
lsp-test,
|
|
lsp-types,
|
|
optparse-applicative,
|
|
parser-combinators,
|
|
process,
|
|
safe-exceptions,
|
|
shake,
|
|
text,
|
|
hls-test-utils,
|
|
row-types
|
|
default-extensions:
|
|
LambdaCase
|
|
RecordWildCards
|
|
ViewPatterns
|
|
|
|
|
|
test-suite ghcide-bench-test
|
|
type: exitcode-stdio-1.0
|
|
default-language: GHC2021
|
|
build-tool-depends:
|
|
ghcide:ghcide,
|
|
main-is: Main.hs
|
|
hs-source-dirs: ghcide-bench/test
|
|
ghc-options: -Wunused-packages
|
|
ghc-options: -threaded -Wall
|
|
build-depends:
|
|
base,
|
|
extra,
|
|
haskell-language-server:ghcide-bench-lib,
|
|
lsp-test ^>= 0.17,
|
|
tasty,
|
|
tasty-hunit >= 0.10,
|
|
tasty-rerun
|
|
default-extensions:
|
|
LambdaCase
|
|
OverloadedStrings
|
|
RecordWildCards
|
|
ViewPatterns
|