module Ide.Plugin.CallHierarchy (descriptor) where

import           Development.IDE
import qualified Ide.Plugin.CallHierarchy.Internal as X
import           Ide.Types
import           Language.LSP.Types

descriptor :: PluginId -> PluginDescriptor IdeState
descriptor :: PluginId -> PluginDescriptor IdeState
descriptor PluginId
plId = (forall ideState. PluginId -> PluginDescriptor ideState
defaultPluginDescriptor PluginId
plId)
    { pluginHandlers :: PluginHandlers IdeState
Ide.Types.pluginHandlers =
        forall (m :: Method 'FromClient 'Request) ideState.
PluginRequestMethod m =>
SClientMethod m
-> PluginMethodHandler ideState m -> PluginHandlers ideState
mkPluginHandler SMethod 'TextDocumentPrepareCallHierarchy
STextDocumentPrepareCallHierarchy PluginMethodHandler IdeState 'TextDocumentPrepareCallHierarchy
X.prepareCallHierarchy
     forall a. Semigroup a => a -> a -> a
<> forall (m :: Method 'FromClient 'Request) ideState.
PluginRequestMethod m =>
SClientMethod m
-> PluginMethodHandler ideState m -> PluginHandlers ideState
mkPluginHandler SMethod 'CallHierarchyIncomingCalls
SCallHierarchyIncomingCalls PluginMethodHandler IdeState 'CallHierarchyIncomingCalls
X.incomingCalls
     forall a. Semigroup a => a -> a -> a
<> forall (m :: Method 'FromClient 'Request) ideState.
PluginRequestMethod m =>
SClientMethod m
-> PluginMethodHandler ideState m -> PluginHandlers ideState
mkPluginHandler SMethod 'CallHierarchyOutgoingCalls
SCallHierarchyOutgoingCalls PluginMethodHandler IdeState 'CallHierarchyOutgoingCalls
X.outgoingCalls
    }