This repository was archived by the owner on Oct 7, 2020. It is now read-only.
This repository was archived by the owner on Oct 7, 2020. It is now read-only.
Split between haskell-ide-engine and haskell-plugin-api #118
Closed
Description
The original idea was to keep hie-plugin-api
lightweight, as just types, so that different projects could expose a PluginDescriptor
as part of their normal publishing to hackage.
But it looks like hie-plugin-api
is going to grow quite big, as we start putting utility stuff into it, in which case we may as well push the monad definition into it. Or at least the type for it.
This means that anything exposing a plugin will need ghc-mod
, ghc
and various other packages.
It also simplifies
type SyncCommandFunc resp = forall m. (MonadIO m,GHC.GhcMonad m,HasIdeState m)
=> [AcceptedContext] -> IdeRequest -> m (IdeResponse resp)
type AsyncCommandFunc resp = forall m. (MonadIO m,GHC.GhcMonad m,HasIdeState m)
=> (IdeResponse resp -> IO ()) -> [AcceptedContext] -> IdeRequest -> m ()
to
type SyncCommandFunc resp = [AcceptedContext] -> IdeRequest -> IdeM (IdeResponse resp)
type AsyncCommandFunc resp = (IdeResponse resp -> IO ())
-> [AcceptedContext] -> IdeRequest -> IdeM ()