hls-class-plugin-2.3.0.0: src/Ide/Plugin/Class.hs
module Ide.Plugin.Class (descriptor, Log(..)) where
import Development.IDE (IdeState, Recorder,
WithPriority)
import Ide.Plugin.Class.CodeAction
import Ide.Plugin.Class.CodeLens
import Ide.Plugin.Class.Types
import Ide.Types
import Language.LSP.Protocol.Message
descriptor :: Recorder (WithPriority Log) -> PluginId -> PluginDescriptor IdeState
descriptor recorder plId = (defaultPluginDescriptor plId)
{ pluginCommands = commands plId
, pluginRules = getInstanceBindTypeSigsRule recorder >> getInstanceBindLensRule recorder
, pluginHandlers = mkPluginHandler SMethod_TextDocumentCodeAction (codeAction recorder)
<> mkPluginHandler SMethod_TextDocumentCodeLens codeLens
<> mkResolveHandler SMethod_CodeLensResolve codeLensResolve
}
commands :: PluginId -> [PluginCommand IdeState]
commands plId
= [ PluginCommand codeActionCommandId
"add placeholders for minimal methods" (addMethodPlaceholders plId)
, PluginCommand typeLensCommandId
"add type signatures for instance methods" (codeLensCommandHandler plId)
]