Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions docs/contributing/plugin-tutorial.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ import Ide.Logger
import Ide.Plugin.Error

import Development.IDE.Core.RuleTypes
import Development.IDE.Core.RuleInput
import Development.IDE.Core.Service hiding (Log)
import Development.IDE.Core.Shake hiding (Log)
import Development.IDE.GHC.Compat
Expand Down Expand Up @@ -290,13 +291,12 @@ provider :: PluginMethodHandler IdeState Method_TextDocumentCodeLens
provider state -- ghcide state, used to retrieve typechecking artifacts
pId -- Plugin ID
CodeLensParams{_textDocument = TextDocumentIdentifier{_uri}} = do
-- VSCode uses URIs instead of file paths
-- haskell-lsp provides conversion functions
nfp <- getNormalizedFilePathE _uri
-- Classify the URI as a Haskell source file in the project
input <- classifyAsProjectHaskell _uri
-- Get the typechecking artifacts from the module
tmr <- runActionE "importLens" state $ useE TypeCheck nfp
tmr <- runActionE "importLens" state $ useE TypeCheck input
-- We also need a GHC session with all the dependencies
hsc <- runActionE "importLens" state $ useE GhcSessionDeps nfp
hsc <- runActionE "importLens" state $ useE GhcSessionDeps input
-- Use the GHC API to extract the "minimal" imports
(imports, mbMinImports) <- liftIO $ extractMinimalImports hsc tmr

Expand Down
7 changes: 7 additions & 0 deletions ghcide-test/data/dependency-autogen/Dependency.hs
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
module Dependency where

import Data.Version (Version)
import Paths_minimal_autogen (version)

v :: Version
v = version
6 changes: 6 additions & 0 deletions ghcide-test/data/dependency-autogen/cabal.project
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
packages: .
minimal-autogen
package *
ghc-options: -fwrite-ide-info
package minimal-autogen
ghc-options: -fwrite-ide-info
10 changes: 10 additions & 0 deletions ghcide-test/data/dependency-autogen/dependency-autogen.cabal
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
name: dependency-autogen
version: 0.1.0.0
cabal-version: 2.0
build-type: Simple

library
exposed-modules: Dependency
default-language: Haskell2010
build-depends: base
, minimal-autogen
2 changes: 2 additions & 0 deletions ghcide-test/data/dependency-autogen/hie.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
cradle:
cabal:
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
module MinimalAutogen where

minimalAutogen :: ()
minimalAutogen = ()
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
module Paths_minimal_autogen where

import Data.Version (Version, makeVersion)

version :: Version
version = makeVersion [0, 1, 0, 0]
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
name: minimal-autogen
version: 0.1.0.0
cabal-version: 2.0
build-type: Simple

library
exposed-modules: MinimalAutogen
, Paths_minimal_autogen
default-language: Haskell2010
build-depends: base
6 changes: 6 additions & 0 deletions ghcide-test/data/dependency-boot/Dependency.hs
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
module Dependency where

import Data.Set (Set, empty)

emptySet :: Set Int
emptySet = empty
5 changes: 5 additions & 0 deletions ghcide-test/data/dependency-boot/cabal.project
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
packages: .
package *
ghc-options: -fwrite-ide-info
package containers
ghc-options: -fwrite-ide-info
10 changes: 10 additions & 0 deletions ghcide-test/data/dependency-boot/dependency-boot.cabal
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
name: dependency-boot
version: 0.1.0.0
cabal-version: 2.0
build-type: Simple

library
exposed-modules: Dependency
default-language: Haskell2010
build-depends: base
, containers
2 changes: 2 additions & 0 deletions ghcide-test/data/dependency-boot/hie.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
cradle:
cabal:
6 changes: 6 additions & 0 deletions ghcide-test/data/dependency-where/Dependency.hs
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
module Dependency where

import Data.Scientific (Scientific(base10Exponent))

b :: Scientific -> Int
b = base10Exponent
5 changes: 5 additions & 0 deletions ghcide-test/data/dependency-where/cabal.project
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
packages: .
package *
ghc-options: -fwrite-ide-info
package scientific
ghc-options: -fwrite-ide-info
10 changes: 10 additions & 0 deletions ghcide-test/data/dependency-where/dependency-where.cabal
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
name: dependency
version: 0.1.0.0
cabal-version: 2.0
build-type: Simple

library
exposed-modules: Dependency
default-language: Haskell2010
build-depends: base
, scientific >= 0.3.8.1
2 changes: 2 additions & 0 deletions ghcide-test/data/dependency-where/hie.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
cradle:
cabal:
6 changes: 6 additions & 0 deletions ghcide-test/data/dependency/Dependency.hs
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
module Dependency where

import Control.Concurrent.Async (AsyncCancelled (..))

asyncCancelled :: AsyncCancelled
asyncCancelled = AsyncCancelled
7 changes: 7 additions & 0 deletions ghcide-test/data/dependency/cabal.project
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
packages: .
package *
ghc-options: -fwrite-ide-info
package async
ghc-options: -fwrite-ide-info
package hashable
ghc-options: -fwrite-ide-info
10 changes: 10 additions & 0 deletions ghcide-test/data/dependency/dependency.cabal
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
name: dependency
version: 0.1.0.0
cabal-version: 2.0
build-type: Simple

library
exposed-modules: Dependency
default-language: Haskell2010
build-depends: base
, async >= 2.2.6
2 changes: 2 additions & 0 deletions ghcide-test/data/dependency/hie.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
cradle:
cabal:
Loading
Loading