ghcide-1.6.0.0: The core of an IDE
Safe HaskellNone
LanguageHaskell2010

Development.IDE.Types.Shake

Synopsis

Documentation

newtype Q k Source #

Constructors

Q (k, NormalizedFilePath) 

Instances

Instances details
Eq k => Eq (Q k) Source # 
Instance details

Defined in Development.IDE.Types.Shake

Methods

(==) :: Q k -> Q k -> Bool #

(/=) :: Q k -> Q k -> Bool #

Show k => Show (Q k) Source # 
Instance details

Defined in Development.IDE.Types.Shake

Methods

showsPrec :: Int -> Q k -> ShowS #

show :: Q k -> String #

showList :: [Q k] -> ShowS #

Hashable k => Hashable (Q k) Source # 
Instance details

Defined in Development.IDE.Types.Shake

Methods

hashWithSalt :: Int -> Q k -> Int #

hash :: Q k -> Int #

NFData k => NFData (Q k) Source # 
Instance details

Defined in Development.IDE.Types.Shake

Methods

rnf :: Q k -> () #

type RuleResult (Q k) Source # 
Instance details

Defined in Development.IDE.Types.Shake

type RuleResult (Q k) = A (RuleResult k)

newtype A v Source #

Invariant: the v must be in normal form (fully evaluated). Otherwise we keep repeatedly rnfing values taken from the Shake database

Constructors

A (Value v) 

Instances

Instances details
Show v => Show (A v) Source # 
Instance details

Defined in Development.IDE.Types.Shake

Methods

showsPrec :: Int -> A v -> ShowS #

show :: A v -> String #

showList :: [A v] -> ShowS #

NFData (A v) Source # 
Instance details

Defined in Development.IDE.Types.Shake

Methods

rnf :: A v -> () #

data Value v Source #

Instances

Instances details
Functor Value Source # 
Instance details

Defined in Development.IDE.Types.Shake

Methods

fmap :: (a -> b) -> Value a -> Value b #

(<$) :: a -> Value b -> Value a #

Show v => Show (Value v) Source # 
Instance details

Defined in Development.IDE.Types.Shake

Methods

showsPrec :: Int -> Value v -> ShowS #

show :: Value v -> String #

showList :: [Value v] -> ShowS #

Generic (Value v) Source # 
Instance details

Defined in Development.IDE.Types.Shake

Associated Types

type Rep (Value v) :: Type -> Type #

Methods

from :: Value v -> Rep (Value v) x #

to :: Rep (Value v) x -> Value v #

NFData v => NFData (Value v) Source # 
Instance details

Defined in Development.IDE.Types.Shake

Methods

rnf :: Value v -> () #

type Rep (Value v) Source # 
Instance details

Defined in Development.IDE.Types.Shake

type Values = Map Key ValueWithDiagnostics Source #

The state of the all values and diagnostics

data Key #

Constructors

(Typeable a, Eq a, Hashable a, Show a) => Key a 

Instances

Instances details
Eq Key 
Instance details

Defined in Development.IDE.Graph.Internal.Types

Methods

(==) :: Key -> Key -> Bool #

(/=) :: Key -> Key -> Bool #

Show Key 
Instance details

Defined in Development.IDE.Graph.Internal.Types

Methods

showsPrec :: Int -> Key -> ShowS #

show :: Key -> String #

showList :: [Key] -> ShowS #

Hashable Key 
Instance details

Defined in Development.IDE.Graph.Internal.Types

Methods

hashWithSalt :: Int -> Key -> Int #

hash :: Key -> Int #

newtype BadDependency Source #

When we depend on something that reported an error, and we fail as a direct result, throw BadDependency which short-circuits the rest of the action

Constructors

BadDependency String 

data ShakeValue Source #

Constructors

ShakeNoCutoff

This is what we use when we get Nothing from a rule.

ShakeResult !ByteString

This is used both for Failed as well as Succeeded.

ShakeStale !ByteString 

Instances

Instances details
Show ShakeValue Source # 
Instance details

Defined in Development.IDE.Types.Shake

Generic ShakeValue Source # 
Instance details

Defined in Development.IDE.Types.Shake

Associated Types

type Rep ShakeValue :: Type -> Type #

NFData ShakeValue Source # 
Instance details

Defined in Development.IDE.Types.Shake

Methods

rnf :: ShakeValue -> () #

type Rep ShakeValue Source # 
Instance details

Defined in Development.IDE.Types.Shake

type Rep ShakeValue = D1 ('MetaData "ShakeValue" "Development.IDE.Types.Shake" "ghcide-1.6.0.0-6rn0EpOlTRZ4j4Z1t1BPzW" 'False) (C1 ('MetaCons "ShakeNoCutoff" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ShakeResult" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ByteString)) :+: C1 ('MetaCons "ShakeStale" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ByteString))))

currentValue :: Value v -> Maybe v Source #

Convert a Value to a Maybe. This will only return Just for up2date results not for stale values.

toNoFileKey :: (Show k, Typeable k, Eq k, Hashable k) => k -> Key Source #

fromKeyType :: Key -> Maybe (SomeTypeRep, NormalizedFilePath) Source #

fromKeyType (Q (k,f)) = (typeOf k, f)

type WithHieDb = forall a. (HieDb -> IO a) -> IO a Source #

Intended to represent HieDb calls wrapped with (currently) retry functionality