Skip to content
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
@alanz

Description

@alanz

The original idea was to keep hie-plugin-apilightweight, 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 ()

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions