Skip to content

Add hls-graph abstracting over shake #1748

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Apr 18, 2021
Merged
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
1 change: 1 addition & 0 deletions cabal.project
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ packages:
./
./hie-compat
./shake-bench
./hls-graph
./ghcide
./hls-plugin-api
./hls-test-utils
Expand Down
3 changes: 1 addition & 2 deletions ghcide/exe/Main.hs
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ import qualified Development.IDE.Main as Main
import qualified Development.IDE.Plugin.HLS.GhcIde as GhcIde
import qualified Development.IDE.Plugin.Test as Test
import Development.IDE.Types.Options
import Development.Shake (ShakeOptions (shakeThreads))
import Development.IDE.Graph (ShakeOptions (shakeThreads))
import Ide.Plugin.Config (Config (checkParents, checkProject))
import Ide.Plugin.ConfigUtils (pluginsToDefaultConfig,
pluginsToVSCodeExtensionSchema)
Expand Down Expand Up @@ -109,4 +109,3 @@ main = do
, optCheckProject = pure $ checkProject config
}
}

6 changes: 4 additions & 2 deletions ghcide/ghcide.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ library
rope-utf16-splay,
safe,
safe-exceptions,
shake >= 0.18.4,
hls-graph,
sorted-list,
sqlite-simple,
stm,
Expand Down Expand Up @@ -288,7 +288,7 @@ executable ghcide
ghcide,
lens,
optparse-applicative,
shake,
hls-graph,
text,
unordered-containers,
aeson-pretty
Expand Down Expand Up @@ -358,6 +358,7 @@ test-suite ghcide-tests
safe,
safe-exceptions,
shake,
hls-graph,
tasty,
tasty-expected-failure,
tasty-hunit,
Expand Down Expand Up @@ -410,6 +411,7 @@ executable ghcide-bench
optparse-applicative,
process,
safe-exceptions,
hls-graph,
shake,
text
hs-source-dirs: bench/lib bench/exe
Expand Down
2 changes: 1 addition & 1 deletion ghcide/session-loader/Development/IDE/Session.hs
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ import Development.IDE.Types.HscEnvEq (HscEnvEq, newHscEnvEq,
import Development.IDE.Types.Location
import Development.IDE.Types.Logger
import Development.IDE.Types.Options
import Development.Shake (Action)
import Development.IDE.Graph (Action)
import GHC.Check
import qualified HIE.Bios as HieBios
import HIE.Bios.Environment hiding (getCacheDir)
Expand Down
2 changes: 1 addition & 1 deletion ghcide/src/Development/IDE.hs
Original file line number Diff line number Diff line change
Expand Up @@ -51,5 +51,5 @@ import Development.IDE.Types.HscEnvEq as X (HscEnvEq (..),
hscEnvWithImportPaths)
import Development.IDE.Types.Location as X
import Development.IDE.Types.Logger as X
import Development.Shake as X (Action, RuleResult,
import Development.IDE.Graph as X (Action, RuleResult,
Rules, action)
2 changes: 1 addition & 1 deletion ghcide/src/Development/IDE/Core/Actions.hs
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ import Development.IDE.GHC.Compat hiding (TargetFile,
writeHieFile)
import qualified Development.IDE.Spans.AtPoint as AtPoint
import Development.IDE.Types.Location
import Development.Shake hiding (Diagnostic)
import Development.IDE.Graph
import qualified HieDb
import Language.LSP.Types (DocumentHighlight (..),
SymbolInformation (..))
Expand Down
2 changes: 1 addition & 1 deletion ghcide/src/Development/IDE/Core/FileExists.hs
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ import Development.IDE.Core.RuleTypes
import Development.IDE.Core.Shake
import Development.IDE.Types.Location
import Development.IDE.Types.Options
import Development.Shake
import Development.IDE.Graph
import Language.LSP.Server hiding (getVirtualFile)
import Language.LSP.Types
import Language.LSP.Types.Capabilities
Expand Down
2 changes: 1 addition & 1 deletion ghcide/src/Development/IDE/Core/FileStore.hs
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ import Development.IDE.Import.DependencyInformation
import Development.IDE.Types.Diagnostics
import Development.IDE.Types.Location
import Development.IDE.Types.Options
import Development.Shake
import Development.IDE.Graph
import HieDb.Create (deleteMissingRealFiles)
import Ide.Plugin.Config (CheckParents (..))
import System.IO.Error
Expand Down
2 changes: 1 addition & 1 deletion ghcide/src/Development/IDE/Core/IdeConfiguration.hs
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ import Data.Hashable (Hashed, hashed, unhashed)
import Data.Text (Text, isPrefixOf)
import Development.IDE.Core.Shake
import Development.IDE.Types.Location
import Development.Shake
import Development.IDE.Graph
import Language.LSP.Types
import System.FilePath (isRelative)

Expand Down
3 changes: 1 addition & 2 deletions ghcide/src/Development/IDE/Core/OfInterest.hs
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ import qualified Data.HashMap.Strict as HashMap
import Data.Hashable
import qualified Data.Text as T
import Data.Typeable
import Development.Shake
import Development.IDE.Graph
import GHC.Generics

import Control.Monad.Trans.Class
Expand Down Expand Up @@ -117,4 +117,3 @@ kick = do
void $ liftIO $ modifyVar' exportsMap $ (exportsMap'' <>) . (exportsMap' <>)

liftIO $ progressUpdate KickCompleted

2 changes: 1 addition & 1 deletion ghcide/src/Development/IDE/Core/RuleTypes.hs
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ import Development.IDE.GHC.Util
import Development.IDE.Import.DependencyInformation
import Development.IDE.Types.HscEnvEq (HscEnvEq)
import Development.IDE.Types.KnownTargets
import Development.Shake
import Development.IDE.Graph
import GHC.Generics (Generic)

import HscTypes (HomeModInfo,
Expand Down
5 changes: 2 additions & 3 deletions ghcide/src/Development/IDE/Core/Rules.hs
Original file line number Diff line number Diff line change
Expand Up @@ -123,9 +123,8 @@ import Development.IDE.Types.HscEnvEq
import Development.IDE.Types.Location
import qualified Development.IDE.Types.Logger as L
import Development.IDE.Types.Options
import Development.Shake hiding
(Diagnostic)
import Development.Shake.Classes hiding (get, put)
import Development.IDE.Graph
import Development.IDE.Graph.Classes hiding (get, put)
import Fingerprint
import GHC.Generics (Generic)
import GHC.IO.Encoding
Expand Down
2 changes: 1 addition & 1 deletion ghcide/src/Development/IDE/Core/Service.hs
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ import Development.IDE.Core.FileExists (fileExistsRules)
import Development.IDE.Core.OfInterest
import Development.IDE.Types.Logger as Logger
import Development.IDE.Types.Options (IdeOptions (..))
import Development.Shake
import Development.IDE.Graph
import Ide.Plugin.Config
import qualified Language.LSP.Server as LSP
import qualified Language.LSP.Types as LSP
Expand Down
11 changes: 5 additions & 6 deletions ghcide/src/Development/IDE/Core/Shake.hs
Original file line number Diff line number Diff line change
Expand Up @@ -119,12 +119,11 @@ import Development.IDE.Types.Logger hiding (Priority)
import qualified Development.IDE.Types.Logger as Logger
import Development.IDE.Types.Options
import Development.IDE.Types.Shake
import Development.Shake hiding (Info, ShakeValue,
doesFileExist)
import qualified Development.Shake as Shake
import Development.Shake.Classes
import Development.Shake.Database
import Development.Shake.Rule
import Development.IDE.Graph hiding (ShakeValue)
import qualified Development.IDE.Graph as Shake
import Development.IDE.Graph.Classes
import Development.IDE.Graph.Database
import Development.IDE.Graph.Rule
import GHC.Generics
import Language.LSP.Diagnostics
import qualified Language.LSP.Server as LSP
Expand Down
3 changes: 1 addition & 2 deletions ghcide/src/Development/IDE/Core/Tracing.hs
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ import Development.IDE.Types.Logger (Logger, logDebug, logInfo)
import Development.IDE.Types.Shake (Key (..), Value,
ValueWithDiagnostics (..),
Values)
import Development.Shake (Action, actionBracket)
import Development.IDE.Graph (Action, actionBracket)
import Foreign.Storable (Storable (sizeOf))
import HeapSize (recursiveSize, runHeapsize)
import Ide.PluginUtils (installSigUsr1Handler)
Expand Down Expand Up @@ -230,4 +230,3 @@ repeatUntilJust nattempts action = do
case res of
Nothing -> repeatUntilJust (nattempts-1) action
Just{} -> return res

4 changes: 2 additions & 2 deletions ghcide/src/Development/IDE/GHC/ExactPrint.hs
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,8 @@ import Development.IDE.Core.Service (runAction)
import Development.IDE.Core.Shake
import Development.IDE.GHC.Compat hiding (parseExpr)
import Development.IDE.Types.Location
import Development.Shake (RuleResult, Rules)
import Development.Shake.Classes
import Development.IDE.Graph (RuleResult, Rules)
import Development.IDE.Graph.Classes
import qualified GHC.Generics as GHC
import Generics.SYB
import Generics.SYB.GHC
Expand Down
2 changes: 1 addition & 1 deletion ghcide/src/Development/IDE/Main.hs
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ import Development.IDE.Types.Options (IdeGhcSession,
clientSupportsProgress,
defaultIdeOptions)
import Development.IDE.Types.Shake (Key (Key))
import Development.Shake (action)
import Development.IDE.Graph (action)
import GHC.IO.Encoding (setLocaleEncoding)
import GHC.IO.Handle (hDuplicate)
import HIE.Bios.Cradle (findCradle)
Expand Down
2 changes: 1 addition & 1 deletion ghcide/src/Development/IDE/Plugin.hs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
module Development.IDE.Plugin ( Plugin(..) ) where

import Data.Default
import Development.Shake
import Development.IDE.Graph

import Development.IDE.LSP.Server
import qualified Language.LSP.Server as LSP
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import Data.Hashable (Hashable)
import Data.Typeable (Typeable)
import Development.IDE.Types.Exports
import Development.IDE.Types.HscEnvEq (HscEnvEq)
import Development.Shake (RuleResult)
import Development.IDE.Graph (RuleResult)
import GHC.Generics (Generic)

-- Rule type for caching Package Exports
Expand Down
4 changes: 2 additions & 2 deletions ghcide/src/Development/IDE/Plugin/Completions.hs
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@ import Development.IDE.Plugin.Completions.Logic
import Development.IDE.Plugin.Completions.Types
import Development.IDE.Types.HscEnvEq (hscEnv)
import Development.IDE.Types.Location
import Development.Shake
import Development.Shake.Classes
import Development.IDE.Graph
import Development.IDE.Graph.Classes
import GHC.Exts (toList)
import GHC.Generics
import Ide.Plugin.Config (Config)
Expand Down
2 changes: 1 addition & 1 deletion ghcide/src/Development/IDE/Plugin/HLS.hs
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ import Development.IDE.Core.Tracing
import Development.IDE.LSP.Server
import Development.IDE.Plugin
import Development.IDE.Types.Logger
import Development.Shake (Rules)
import Development.IDE.Graph (Rules)
import Ide.Plugin.Config
import Ide.PluginUtils (getClientConfig)
import Ide.Types as HLS
Expand Down
2 changes: 1 addition & 1 deletion ghcide/src/Development/IDE/Plugin/Test.hs
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ import Development.IDE.Plugin
import Development.IDE.Types.Action
import Development.IDE.Types.HscEnvEq (HscEnvEq (hscEnv))
import Development.IDE.Types.Location (fromUri)
import Development.Shake (Action)
import Development.IDE.Graph (Action)
import GHC.Generics (Generic)
import GhcPlugins (HscEnv (hsc_dflags))
import Ide.Types
Expand Down
2 changes: 1 addition & 1 deletion ghcide/src/Development/IDE/Plugin/TypeLenses.hs
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ import Development.IDE.Types.Location (Position (Position, _chara
Range (Range, _end, _start),
toNormalizedFilePath',
uriToFilePath')
import Development.Shake.Classes
import Development.IDE.Graph.Classes
import GHC.Generics (Generic)
import GhcPlugins (GlobalRdrEnv,
HscEnv (hsc_dflags), SDoc,
Expand Down
2 changes: 1 addition & 1 deletion ghcide/src/Development/IDE/Types/Action.hs
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import qualified Data.HashSet as Set
import Data.Hashable (Hashable (..))
import Data.Unique (Unique)
import Development.IDE.Types.Logger
import Development.Shake (Action)
import Development.IDE.Graph (Action)
import Numeric.Natural

data DelayedAction a = DelayedAction
Expand Down
3 changes: 1 addition & 2 deletions ghcide/src/Development/IDE/Types/HscEnvEq.hs
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ import Development.IDE.GHC.Compat
import Development.IDE.GHC.Error (catchSrcErrors)
import Development.IDE.GHC.Util (lookupPackageConfig)
import Development.IDE.Types.Exports (ExportsMap, createExportsMap)
import Development.Shake.Classes
import Development.IDE.Graph.Classes
import GhcPlugins (HscEnv (hsc_dflags),
InstalledPackageInfo (exposedModules),
Module (..),
Expand Down Expand Up @@ -164,4 +164,3 @@ onceAsync act = do
pure (OnceRunning x, unmask $ run x)

data Once a = OncePending | OnceRunning (Async a)

2 changes: 1 addition & 1 deletion ghcide/src/Development/IDE/Types/Options.hs
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ import qualified Data.Text as T
import Data.Typeable
import Development.IDE.Core.RuleTypes
import Development.IDE.Types.Diagnostics
import Development.Shake
import Development.IDE.Graph
import GHC hiding (parseModule,
typecheckModule)
import GhcPlugins as GHC hiding (fst3, (<>))
Expand Down
4 changes: 2 additions & 2 deletions ghcide/src/Development/IDE/Types/Shake.hs
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,9 @@ import Data.Vector (Vector)
import Development.IDE.Core.PositionMapping
import Development.IDE.Types.Diagnostics
import Development.IDE.Types.Location
import Development.Shake (RuleResult,
import Development.IDE.Graph (RuleResult,
ShakeException (shakeExceptionInner))
import Development.Shake.Classes
import Development.IDE.Graph.Classes
import GHC.Generics
import Language.LSP.Types

Expand Down
3 changes: 1 addition & 2 deletions ghcide/src/Generics/SYB/GHC.hs
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import Control.Monad
import Data.Functor.Compose (Compose(Compose))
import Data.Monoid (Any(Any))
import Development.IDE.GHC.Compat
import Development.Shake.Classes
import Development.IDE.Graph.Classes
import Generics.SYB


Expand Down Expand Up @@ -122,4 +122,3 @@ gmapMQ f = runMonadicQuery . gfoldl k pure
where
k :: Data d => MonadicQuery r f (d -> b) -> d -> MonadicQuery r f b
k c x = c <*> MonadicQuery (f x)

4 changes: 2 additions & 2 deletions haskell-language-server.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ library
, optparse-applicative
, optparse-simple
, process
, shake
, hls-graph
, safe-exceptions
, sqlite-simple
, unordered-containers
Expand Down Expand Up @@ -332,7 +332,7 @@ executable haskell-language-server
, mtl
, regex-tdfa
, safe-exceptions
, shake
, hls-graph
, sqlite-simple
, temporary
, transformers
Expand Down
Loading