Skip to content

Commit

Permalink
Link shakeReverseDependencies to optRunSubset
Browse files Browse the repository at this point in the history
  • Loading branch information
pepeiborra committed May 17, 2021
1 parent ac1c346 commit 9f0978f
Show file tree
Hide file tree
Showing 6 changed files with 31 additions and 28 deletions.
6 changes: 3 additions & 3 deletions ghcide/exe/Main.hs
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,11 @@ import Development.IDE (Logger (Logger),
Priority (Info), action)
import Development.IDE.Core.OfInterest (kick)
import Development.IDE.Core.Rules (mainRule)
import Development.IDE.Graph (ShakeOptions (shakeThreads))
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.IDE.Graph (ShakeOptions (shakeThreads))
import Ide.Plugin.Config (Config (checkParents, checkProject))
import Ide.Plugin.ConfigUtils (pluginsToDefaultConfig,
pluginsToVSCodeExtensionSchema)
Expand Down Expand Up @@ -98,8 +98,8 @@ main = do
then Test.plugin
else mempty

,Main.argsIdeOptions = \config sessionLoader ->
let defOptions = defaultIdeOptions sessionLoader
,Main.argsIdeOptions = \config sessionLoader ->
let defOptions = Main.argsIdeOptions def config sessionLoader
in defOptions
{ optShakeProfiling = argsShakeProfiling
, optOTMemoryProfiling = IdeOTMemoryProfiling argsOTMemoryProfiling
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 @@ -148,7 +148,7 @@ instance Default Arguments where
, argsGhcidePlugin = mempty
, argsHlsPlugins = pluginDescToIdePlugins Ghcide.descriptors
, argsSessionLoadingOptions = def
, argsIdeOptions = const defaultIdeOptions
, argsIdeOptions = const (defaultIdeOptions False)
, argsLspOptions = def {LSP.completionTriggerCharacters = Just "."}
, argsDefaultHlsConfig = def
, argsGetHieDbLoc = getHieDbLoc
Expand Down
9 changes: 5 additions & 4 deletions ghcide/src/Development/IDE/Types/Options.hs
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ optShakeFiles opts
| otherwise = Just value
where
value = shakeFiles (optShakeOptions opts)
defValue = shakeFiles (optShakeOptions $ defaultIdeOptions undefined)
defValue = shakeFiles (optShakeOptions $ defaultIdeOptions False undefined)
data OptHaddockParse = HaddockParse | NoHaddockParse
deriving (Eq,Ord,Show,Enum)

Expand Down Expand Up @@ -119,15 +119,16 @@ clientSupportsProgress :: LSP.ClientCapabilities -> IdeReportProgress
clientSupportsProgress caps = IdeReportProgress $ Just True ==
(LSP._workDoneProgress =<< LSP._window (caps :: LSP.ClientCapabilities))

defaultIdeOptions :: Action IdeGhcSession -> IdeOptions
defaultIdeOptions session = IdeOptions
defaultIdeOptions :: Bool -> Action IdeGhcSession -> IdeOptions
defaultIdeOptions optRunSubsetValue session = IdeOptions
{optPreprocessor = IdePreprocessedSource [] []
,optGhcSession = session
,optExtensions = ["hs", "lhs"]
,optPkgLocationOpts = defaultIdePkgLocationOptions
,optShakeOptions = shakeOptions
{shakeThreads = 0
,shakeFiles = "/dev/null"
,shakeReverseDependencies = optRunSubsetValue
}
,optShakeProfiling = Nothing
,optOTMemoryProfiling = IdeOTMemoryProfiling False
Expand All @@ -143,7 +144,7 @@ defaultIdeOptions session = IdeOptions
,optCustomDynFlags = id
,optSkipProgress = defaultSkipProgress
,optProgressStyle = Explicit
,optRunSubset = False
,optRunSubset = optRunSubsetValue
}

defaultSkipProgress :: Typeable a => a -> Bool
Expand Down
10 changes: 5 additions & 5 deletions hls-graph/src/Development/IDE/Graph.hs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ module Development.IDE.Graph(
actionFinally, actionBracket, actionCatch,
Shake.ShakeException(..),
-- * Configuration
ShakeOptions(shakeAllowRedefineRules, shakeThreads, shakeFiles, shakeExtra),
ShakeOptions(shakeAllowRedefineRules, shakeThreads, shakeFiles, shakeExtra, shakeReverseDependencies),
getShakeExtra, getShakeExtraRules, newShakeExtra,
-- * Explicit parallelism
parallel,
Expand All @@ -19,7 +19,7 @@ module Development.IDE.Graph(
reschedule,
) where

import qualified Development.Shake as Shake
import Development.IDE.Graph.Internal.Action
import Development.IDE.Graph.Internal.Options
import Development.IDE.Graph.Internal.Rules
import Development.IDE.Graph.Internal.Action
import Development.IDE.Graph.Internal.Options
import Development.IDE.Graph.Internal.Rules
import qualified Development.Shake as Shake
26 changes: 14 additions & 12 deletions hls-graph/src/Development/IDE/Graph/Internal/Options.hs
Original file line number Diff line number Diff line change
Expand Up @@ -2,30 +2,32 @@

module Development.IDE.Graph.Internal.Options where

import qualified Development.Shake as Shake
import qualified Data.HashMap.Strict as Map
import Development.IDE.Graph.Internal.Action
import Development.IDE.Graph.Internal.Rules
import Data.Dynamic
import Data.Dynamic
import qualified Data.HashMap.Strict as Map
import Development.IDE.Graph.Internal.Action
import Development.IDE.Graph.Internal.Rules
import qualified Development.Shake as Shake

data ShakeOptions = ShakeOptions {
shakeThreads :: Int,
shakeFiles :: FilePath,
shakeExtra :: Maybe Dynamic,
shakeAllowRedefineRules :: Bool,
shakeTimings :: Bool
shakeThreads :: Int,
shakeFiles :: FilePath,
shakeExtra :: Maybe Dynamic,
shakeAllowRedefineRules :: Bool,
shakeReverseDependencies :: Bool,
shakeTimings :: Bool
}

shakeOptions :: ShakeOptions
shakeOptions = ShakeOptions 0 ".shake" Nothing False False
shakeOptions = ShakeOptions 0 ".shake" Nothing False False False

fromShakeOptions :: ShakeOptions -> Shake.ShakeOptions
fromShakeOptions ShakeOptions{..} = Shake.shakeOptions{
Shake.shakeThreads = shakeThreads,
Shake.shakeFiles = shakeFiles,
Shake.shakeExtra = maybe Map.empty f shakeExtra,
Shake.shakeAllowRedefineRules = shakeAllowRedefineRules,
Shake.shakeTimings = shakeTimings
Shake.shakeTimings = shakeTimings,
Shake.shakeReverseDependencies = shakeReverseDependencies
}
where f x = Map.singleton (dynTypeRep x) x

Expand Down
6 changes: 3 additions & 3 deletions src/Ide/Main.hs
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,12 @@ import qualified Data.ByteString.Lazy.Char8 as LBS
import Data.Default
import qualified Data.Text as T
import Development.IDE.Core.Rules
import Development.IDE.Graph (ShakeOptions (shakeThreads))
import Development.IDE.Main (isLSP)
import qualified Development.IDE.Main as Main
import qualified Development.IDE.Session as Session
import Development.IDE.Types.Logger as G
import qualified Development.IDE.Types.Options as Ghcide
import Development.IDE.Graph (ShakeOptions (shakeThreads))
import Ide.Arguments
import Ide.Logger
import Ide.Plugin.ConfigUtils (pluginsToDefaultConfig,
Expand Down Expand Up @@ -98,8 +98,8 @@ runLspMode ghcideArgs@GhcideArguments{..} idePlugins = do
{ Main.argCommand = argsCommand
, Main.argsHlsPlugins = idePlugins
, Main.argsLogger = pure hlsLogger
, Main.argsIdeOptions = \_config sessionLoader ->
let defOptions = Ghcide.defaultIdeOptions sessionLoader
, Main.argsIdeOptions = \config sessionLoader ->
let defOptions = Main.argsIdeOptions def config sessionLoader
in defOptions
{ Ghcide.optShakeProfiling = argsShakeProfiling
, Ghcide.optTesting = Ghcide.IdeTesting argsTesting
Expand Down

0 comments on commit 9f0978f

Please sign in to comment.