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 :: PluginDescriptor IdeState
descriptor :: PluginDescriptor IdeState
descriptor = (forall ideState. PluginId -> PluginDescriptor ideState
defaultPluginDescriptor PluginId
X.callHierarchyId)
  { 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
  }