ghcide-2.9.0.0: The core of an IDE

Safe Haskell | None
Language | GHC2021

Development.IDE.Core.Service

Description

A Shake implementation of the compiler service, built using the Shaker abstraction layer for in-memory use.

Synopsis

- getIdeOptions :: Action IdeOptions
- getIdeOptionsIO :: ShakeExtras -> IO IdeOptions
- data IdeState
- initialise :: Recorder (WithPriority Log) -> Config -> IdePlugins IdeState -> Rules () -> Maybe (LanguageContextEnv Config) -> Debouncer NormalizedUri -> IdeOptions -> WithHieDb -> ThreadQueue -> Monitoring -> FilePath -> IO IdeState
- shutdown :: IdeState -> IO ()
- runAction :: String -> IdeState -> Action a -> IO a
- getDiagnostics :: IdeState -> STM [FileDiagnostic]
- ideLogger :: IdeState -> Recorder (WithPriority Log)
- updatePositionMapping :: IdeState -> VersionedTextDocumentIdentifier -> [TextDocumentContentChangeEvent] -> STM ()
- data Log
  - = LogShake Log
  - | LogOfInterest Log
  - | LogFileExists Log

# Documentation

getIdeOptions :: Action IdeOptions #

getIdeOptionsIO :: ShakeExtras -> IO IdeOptions #

data IdeState #

A Shake database plus persistent store. Can be thought of as storing mappings from `(FilePath, k)` to `RuleResult k`.

#### Instances

Instances details

MonadReader (ReactorChan, IdeState) (ServerM c) # |
Instance details Defined in Development.IDE.LSP.Server Methods ask :: ServerM c (ReactorChan, IdeState) # local :: ((ReactorChan, IdeState) -> (ReactorChan, IdeState)) -> ServerM c a -> ServerM c a # reader :: ((ReactorChan, IdeState) -> a) -> ServerM c a #

initialise #

Arguments

:: Recorder (WithPriority Log) |
-> Config |
-> IdePlugins IdeState |
-> Rules () |
-> Maybe (LanguageContextEnv Config) |
-> Debouncer NormalizedUri |
-> IdeOptions |
-> WithHieDb |
-> ThreadQueue |
-> Monitoring |
-> FilePath | Root directory see Note [Root Directory]
-> IO IdeState |

Initialise the Compiler Service.

shutdown :: IdeState -> IO () #

Shutdown the Compiler Service.

runAction :: String -> IdeState -> Action a -> IO a #

getDiagnostics :: IdeState -> STM [FileDiagnostic] #

ideLogger :: IdeState -> Recorder (WithPriority Log) #

updatePositionMapping :: IdeState -> VersionedTextDocumentIdentifier -> [TextDocumentContentChangeEvent] -> STM () #

data Log #

Constructors

LogShake Log |
LogOfInterest Log |
LogFileExists Log |

#### Instances

Instances details

Show Log # |
Instance details Defined in Development.IDE.Core.Service Methods showsPrec :: Int -> Log -> ShowS # show :: Log -> String # showList :: [Log] -> ShowS #
Pretty Log # |
Instance details Defined in Development.IDE.Core.Service Methods pretty :: Log -> Doc ann # prettyList :: [Log] -> Doc ann #