Safe Haskell | Safe-Inferred |
---|---|
Language | GHC2021 |
Synopsis
- runLanguageServer :: forall config a m. Show config => Recorder (WithPriority Log) -> Options -> Handle -> Handle -> config -> (config -> Value -> Either Text config) -> (config -> m config ()) -> (MVar () -> IO (LanguageContextEnv config -> TRequestMessage Method_Initialize -> IO (Either (TResponseError Method_Initialize) (LanguageContextEnv config, a)), Handlers (m config), (LanguageContextEnv config, a) -> m config <~> IO)) -> IO ()
- setupLSP :: forall config err. Recorder (WithPriority Log) -> FilePath -> (FilePath -> IO FilePath) -> Handlers (ServerM config) -> (LanguageContextEnv config -> FilePath -> WithHieDb -> ThreadQueue -> IO IdeState) -> MVar () -> IO (LanguageContextEnv config -> TRequestMessage Method_Initialize -> IO (Either err (LanguageContextEnv config, IdeState)), Handlers (ServerM config), (LanguageContextEnv config, IdeState) -> ServerM config <~> IO)
- data Log
- data ThreadQueue
- runWithWorkerThreads :: Recorder (WithPriority Log) -> FilePath -> (WithHieDb -> ThreadQueue -> IO ()) -> IO ()
Documentation
runLanguageServer :: forall config a m. Show config => Recorder (WithPriority Log) -> Options -> Handle -> Handle -> config -> (config -> Value -> Either Text config) -> (config -> m config ()) -> (MVar () -> IO (LanguageContextEnv config -> TRequestMessage Method_Initialize -> IO (Either (TResponseError Method_Initialize) (LanguageContextEnv config, a)), Handlers (m config), (LanguageContextEnv config, a) -> m config <~> IO)) -> IO () Source #
:: forall config err. Recorder (WithPriority Log) | |
-> FilePath | root directory, see Note [Root Directory] |
-> (FilePath -> IO FilePath) | Map root paths to the location of the hiedb for the project |
-> Handlers (ServerM config) | |
-> (LanguageContextEnv config -> FilePath -> WithHieDb -> ThreadQueue -> IO IdeState) | |
-> MVar () | |
-> IO (LanguageContextEnv config -> TRequestMessage Method_Initialize -> IO (Either err (LanguageContextEnv config, IdeState)), Handlers (ServerM config), (LanguageContextEnv config, IdeState) -> ServerM config <~> IO) |
data ThreadQueue Source #
runWithWorkerThreads :: Recorder (WithPriority Log) -> FilePath -> (WithHieDb -> ThreadQueue -> IO ()) -> IO () Source #
runWithWorkerThreads create several threads to run the session, db and session loader see Note [Serializing runs in separate thread]