ghcide-1.4.1.0: src/Development/IDE/Plugin.hs
module Development.IDE.Plugin ( Plugin(..) ) where
import Data.Default
import Development.IDE.Graph
import Development.IDE.LSP.Server
import Ide.Types (DynFlagsModifications)
import qualified Language.LSP.Server as LSP
data Plugin c = Plugin
{pluginRules :: Rules ()
,pluginHandlers :: LSP.Handlers (ServerM c)
,pluginModifyDynflags :: c -> DynFlagsModifications
}
instance Default (Plugin c) where
def = Plugin mempty mempty mempty
instance Semigroup (Plugin c) where
Plugin x1 h1 d1 <> Plugin x2 h2 d2 = Plugin (x1<>x2) (h1 <> h2) (d1 <> d2)
instance Monoid (Plugin c) where
mempty = def