mirror of
https://github.com/haskell/ghcide.git
synced 2024-09-11 05:36:09 +03:00
* Add GetHieAsts rule * hlint * fix build for 8.4 * Reimplement Hover/GotoDefn in terms of HIE Files. Implement Document Hightlight LSP request Add GetDocMap, GetHieFile rules. * Fix gotodef for record fields * Completion for locals * Don't need to hack cursor position because of fuzzy ranges * hlint * fix bench and warning on 8.10 * disable 8.4 CI jobs * Don't collect module level bindings * tweaks * Show kinds * docs * Defs for ModuleNames * Fix some tests * hlint * Mark remaining tests as broken * Add completion tests * add highlight tests * Fix HieAst for 8.6 * CPP away the unexpected success * More CPP hacks for 8.10 tests
419 lines
12 KiB
Plaintext
419 lines
12 KiB
Plaintext
cabal-version: 1.20
|
|
build-type: Simple
|
|
category: Development
|
|
name: ghcide
|
|
version: 0.4.0
|
|
license: Apache-2.0
|
|
license-file: LICENSE
|
|
author: Digital Asset and Ghcide contributors
|
|
maintainer: Ghcide contributors
|
|
copyright: Digital Asset and Ghcide contributors 2018-2020
|
|
synopsis: The core of an IDE
|
|
description:
|
|
A library for building Haskell IDE's on top of the GHC API.
|
|
homepage: https://github.com/haskell/ghcide#readme
|
|
bug-reports: https://github.com/haskell/ghcide/issues
|
|
tested-with: GHC>=8.4.4
|
|
extra-source-files: include/ghc-api-version.h README.md CHANGELOG.md
|
|
test/data/hover/*.hs
|
|
test/data/multi/cabal.project
|
|
test/data/multi/hie.yaml
|
|
test/data/multi/a/a.cabal
|
|
test/data/multi/a/*.hs
|
|
test/data/multi/b/b.cabal
|
|
test/data/multi/b/*.hs
|
|
|
|
source-repository head
|
|
type: git
|
|
location: https://github.com/haskell/ghcide.git
|
|
|
|
flag ghc-lib
|
|
description: build against ghc-lib instead of the ghc package
|
|
default: False
|
|
manual: True
|
|
|
|
library
|
|
default-language: Haskell2010
|
|
build-depends:
|
|
aeson,
|
|
array,
|
|
async,
|
|
base == 4.*,
|
|
binary,
|
|
bytestring,
|
|
containers,
|
|
data-default,
|
|
deepseq,
|
|
directory,
|
|
extra,
|
|
fuzzy,
|
|
filepath,
|
|
fingertree,
|
|
haddock-library >= 1.8,
|
|
hashable,
|
|
haskell-lsp-types == 0.22.*,
|
|
haskell-lsp == 0.22.*,
|
|
mtl,
|
|
network-uri,
|
|
prettyprinter-ansi-terminal,
|
|
prettyprinter-ansi-terminal,
|
|
prettyprinter,
|
|
regex-tdfa >= 1.3.1.0,
|
|
rope-utf16-splay,
|
|
safe,
|
|
safe-exceptions,
|
|
shake >= 0.18.4,
|
|
sorted-list,
|
|
stm,
|
|
syb,
|
|
text,
|
|
time,
|
|
transformers,
|
|
unordered-containers >= 0.2.10.0,
|
|
utf8-string,
|
|
hslogger
|
|
if flag(ghc-lib)
|
|
build-depends:
|
|
ghc-lib >= 8.8,
|
|
ghc-lib-parser >= 8.8
|
|
cpp-options: -DGHC_LIB
|
|
else
|
|
build-depends:
|
|
ghc-boot-th,
|
|
ghc-boot,
|
|
ghc >= 8.4,
|
|
-- These dependencies are used by Development.IDE.Session and are
|
|
-- Haskell specific. So don't use them when building with -fghc-lib!
|
|
ghc-check >=0.5.0.1,
|
|
ghc-paths,
|
|
cryptohash-sha1 >=0.11.100 && <0.12,
|
|
hie-bios >= 0.7.1 && < 0.8.0,
|
|
implicit-hie-cradle >= 0.2.0.1 && < 0.3,
|
|
base16-bytestring >=0.1.1 && <0.2
|
|
if os(windows)
|
|
build-depends:
|
|
Win32
|
|
else
|
|
build-depends:
|
|
unix
|
|
c-sources:
|
|
cbits/getmodtime.c
|
|
|
|
default-extensions:
|
|
BangPatterns
|
|
DeriveFunctor
|
|
DeriveGeneric
|
|
FlexibleContexts
|
|
GeneralizedNewtypeDeriving
|
|
LambdaCase
|
|
NamedFieldPuns
|
|
OverloadedStrings
|
|
RecordWildCards
|
|
ScopedTypeVariables
|
|
StandaloneDeriving
|
|
TupleSections
|
|
TypeApplications
|
|
ViewPatterns
|
|
|
|
hs-source-dirs:
|
|
src
|
|
include-dirs:
|
|
include
|
|
exposed-modules:
|
|
Development.IDE
|
|
Development.IDE.Compat
|
|
Development.IDE.Core.Debouncer
|
|
Development.IDE.Core.FileStore
|
|
Development.IDE.Core.IdeConfiguration
|
|
Development.IDE.Core.OfInterest
|
|
Development.IDE.Core.PositionMapping
|
|
Development.IDE.Core.Rules
|
|
Development.IDE.Core.RuleTypes
|
|
Development.IDE.Core.Service
|
|
Development.IDE.Core.Shake
|
|
Development.IDE.GHC.Compat
|
|
Development.IDE.GHC.Error
|
|
Development.IDE.GHC.Util
|
|
Development.IDE.Import.DependencyInformation
|
|
Development.IDE.LSP.HoverDefinition
|
|
Development.IDE.LSP.LanguageServer
|
|
Development.IDE.LSP.Outline
|
|
Development.IDE.LSP.Protocol
|
|
Development.IDE.LSP.Server
|
|
Development.IDE.Spans.Common
|
|
Development.IDE.Spans.AtPoint
|
|
Development.IDE.Spans.LocalBindings
|
|
Development.IDE.Types.Diagnostics
|
|
Development.IDE.Types.Exports
|
|
Development.IDE.Types.Location
|
|
Development.IDE.Types.Logger
|
|
Development.IDE.Types.Options
|
|
Development.IDE.Plugin
|
|
Development.IDE.Plugin.Completions
|
|
Development.IDE.Plugin.CodeAction
|
|
Development.IDE.Plugin.Test
|
|
|
|
-- Unfortunately, we cannot use loadSession with ghc-lib since hie-bios uses
|
|
-- the real GHC library and the types are incompatible. Furthermore, when
|
|
-- building with ghc-lib we need to make this Haskell agnostic, so no
|
|
-- hie-bios!
|
|
-- We also put these modules into a separate hs-source-dirs so we can avoid
|
|
-- compiling them at all if ghc-lib is not set
|
|
if !flag(ghc-lib)
|
|
hs-source-dirs:
|
|
session-loader
|
|
exposed-modules:
|
|
Development.IDE.Session
|
|
other-modules:
|
|
Development.IDE.Session.VersionCheck
|
|
other-modules:
|
|
Development.IDE.Core.Compile
|
|
Development.IDE.Core.Preprocessor
|
|
Development.IDE.Core.FileExists
|
|
Development.IDE.GHC.CPP
|
|
Development.IDE.GHC.Orphans
|
|
Development.IDE.GHC.Warnings
|
|
Development.IDE.GHC.WithDynFlags
|
|
Development.IDE.Import.FindImports
|
|
Development.IDE.LSP.Notifications
|
|
Development.IDE.Spans.Documentation
|
|
Development.IDE.Plugin.CodeAction.PositionIndexed
|
|
Development.IDE.Plugin.CodeAction.Rules
|
|
Development.IDE.Plugin.CodeAction.RuleTypes
|
|
Development.IDE.Plugin.Completions.Logic
|
|
Development.IDE.Plugin.Completions.Types
|
|
Development.IDE.Types.Action
|
|
if (impl(ghc > 8.5) && impl(ghc < 8.7)) && !flag(ghc-lib)
|
|
hs-source-dirs: src-ghc86
|
|
other-modules:
|
|
Development.IDE.GHC.HieAst
|
|
Development.IDE.GHC.HieBin
|
|
Development.IDE.GHC.HieTypes
|
|
Development.IDE.GHC.HieDebug
|
|
Development.IDE.GHC.HieUtils
|
|
if (impl(ghc > 8.7) && impl(ghc < 8.10)) || flag(ghc-lib)
|
|
hs-source-dirs: src-ghc88
|
|
other-modules:
|
|
Development.IDE.GHC.HieAst
|
|
Development.IDE.GHC.HieBin
|
|
if (impl(ghc > 8.9))
|
|
hs-source-dirs: src-ghc810
|
|
other-modules:
|
|
Development.IDE.GHC.HieAst
|
|
Development.IDE.GHC.HieBin
|
|
ghc-options: -Wall -Wno-name-shadowing -Wincomplete-uni-patterns
|
|
|
|
executable ghcide-test-preprocessor
|
|
default-language: Haskell2010
|
|
hs-source-dirs: test/preprocessor
|
|
ghc-options: -Wall -Wno-name-shadowing
|
|
main-is: Main.hs
|
|
build-depends:
|
|
base == 4.*
|
|
|
|
benchmark benchHist
|
|
type: exitcode-stdio-1.0
|
|
default-language: Haskell2010
|
|
ghc-options: -Wall -Wno-name-shadowing -threaded
|
|
main-is: bench/hist/Main.hs
|
|
build-tool-depends:
|
|
ghcide:ghcide,
|
|
ghcide:ghcide-bench
|
|
default-extensions:
|
|
BangPatterns
|
|
DeriveFunctor
|
|
DeriveGeneric
|
|
FlexibleContexts
|
|
GeneralizedNewtypeDeriving
|
|
LambdaCase
|
|
NamedFieldPuns
|
|
OverloadedStrings
|
|
RecordWildCards
|
|
ScopedTypeVariables
|
|
StandaloneDeriving
|
|
TupleSections
|
|
TypeApplications
|
|
ViewPatterns
|
|
|
|
build-depends:
|
|
aeson,
|
|
base == 4.*,
|
|
Chart,
|
|
Chart-diagrams,
|
|
diagrams,
|
|
diagrams-svg,
|
|
directory,
|
|
extra >= 1.7.2,
|
|
filepath,
|
|
shake,
|
|
text,
|
|
yaml
|
|
|
|
executable ghcide
|
|
if flag(ghc-lib)
|
|
buildable: False
|
|
default-language: Haskell2010
|
|
hs-source-dirs: exe
|
|
ghc-options:
|
|
-threaded
|
|
-Wall
|
|
-Wincomplete-uni-patterns
|
|
-Wno-name-shadowing
|
|
-- allow user RTS overrides
|
|
-rtsopts
|
|
-- disable idle GC
|
|
-- disable parallel GC
|
|
-- increase nursery size
|
|
"-with-rtsopts=-I0 -qg -A128M"
|
|
main-is: Main.hs
|
|
build-depends:
|
|
aeson,
|
|
base == 4.*,
|
|
data-default,
|
|
directory,
|
|
extra,
|
|
filepath,
|
|
gitrev,
|
|
hashable,
|
|
haskell-lsp,
|
|
haskell-lsp-types,
|
|
hie-bios,
|
|
ghcide,
|
|
lens,
|
|
optparse-applicative,
|
|
text,
|
|
unordered-containers
|
|
other-modules:
|
|
Arguments
|
|
Paths_ghcide
|
|
|
|
default-extensions:
|
|
BangPatterns
|
|
DeriveFunctor
|
|
DeriveGeneric
|
|
FlexibleContexts
|
|
GeneralizedNewtypeDeriving
|
|
LambdaCase
|
|
NamedFieldPuns
|
|
OverloadedStrings
|
|
RecordWildCards
|
|
ScopedTypeVariables
|
|
StandaloneDeriving
|
|
TupleSections
|
|
TypeApplications
|
|
ViewPatterns
|
|
|
|
test-suite ghcide-tests
|
|
if flag(ghc-lib)
|
|
buildable: False
|
|
type: exitcode-stdio-1.0
|
|
default-language: Haskell2010
|
|
build-tool-depends:
|
|
ghcide:ghcide,
|
|
ghcide:ghcide-test-preprocessor
|
|
build-depends:
|
|
aeson,
|
|
base,
|
|
binary,
|
|
bytestring,
|
|
containers,
|
|
directory,
|
|
extra,
|
|
filepath,
|
|
--------------------------------------------------------------
|
|
-- The MIN_GHC_API_VERSION macro relies on MIN_VERSION pragmas
|
|
-- which require depending on ghc. So the tests need to depend
|
|
-- on ghc if they need to use MIN_GHC_API_VERSION. Maybe a
|
|
-- better solution can be found, but this is a quick solution
|
|
-- which works for now.
|
|
ghc,
|
|
--------------------------------------------------------------
|
|
ghcide,
|
|
ghc-typelits-knownnat,
|
|
haddock-library,
|
|
haskell-lsp,
|
|
haskell-lsp-types,
|
|
network-uri,
|
|
lens,
|
|
lsp-test >= 0.11.0.5 && < 0.12,
|
|
optparse-applicative,
|
|
process,
|
|
QuickCheck,
|
|
quickcheck-instances,
|
|
rope-utf16-splay,
|
|
safe,
|
|
safe-exceptions,
|
|
shake,
|
|
tasty,
|
|
tasty-expected-failure,
|
|
tasty-hunit,
|
|
tasty-quickcheck,
|
|
tasty-rerun,
|
|
text
|
|
if (impl(ghc >= 8.6))
|
|
build-depends:
|
|
record-dot-preprocessor,
|
|
record-hasfield
|
|
hs-source-dirs: test/cabal test/exe test/src bench/lib
|
|
include-dirs: include
|
|
ghc-options: -threaded -Wall -Wno-name-shadowing -O0
|
|
main-is: Main.hs
|
|
other-modules:
|
|
Development.IDE.Test
|
|
Development.IDE.Test.Runfiles
|
|
Experiments
|
|
default-extensions:
|
|
BangPatterns
|
|
DeriveFunctor
|
|
DeriveGeneric
|
|
FlexibleContexts
|
|
GeneralizedNewtypeDeriving
|
|
LambdaCase
|
|
NamedFieldPuns
|
|
OverloadedStrings
|
|
RecordWildCards
|
|
ScopedTypeVariables
|
|
StandaloneDeriving
|
|
TupleSections
|
|
TypeApplications
|
|
ViewPatterns
|
|
|
|
executable ghcide-bench
|
|
default-language: Haskell2010
|
|
build-tool-depends:
|
|
ghcide:ghcide
|
|
build-depends:
|
|
aeson,
|
|
base,
|
|
bytestring,
|
|
containers,
|
|
directory,
|
|
extra,
|
|
filepath,
|
|
ghcide,
|
|
lsp-test >= 0.11.0.2 && < 0.12,
|
|
optparse-applicative,
|
|
process,
|
|
safe-exceptions
|
|
hs-source-dirs: bench/lib bench/exe
|
|
include-dirs: include
|
|
ghc-options: -threaded -Wall -Wno-name-shadowing
|
|
main-is: Main.hs
|
|
other-modules:
|
|
Experiments
|
|
default-extensions:
|
|
BangPatterns
|
|
DeriveFunctor
|
|
DeriveGeneric
|
|
FlexibleContexts
|
|
GeneralizedNewtypeDeriving
|
|
LambdaCase
|
|
NamedFieldPuns
|
|
OverloadedStrings
|
|
RecordWildCards
|
|
ScopedTypeVariables
|
|
StandaloneDeriving
|
|
TupleSections
|
|
TypeApplications
|
|
ViewPatterns
|