hls-class-plugin-1.1.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.Types
descriptor :: Recorder (WithPriority Log) -> PluginId -> PluginDescriptor IdeState
descriptor recorder plId = (defaultPluginDescriptor plId)
{ pluginCommands = commands plId
, pluginRules = rules recorder
, pluginHandlers = mkPluginHandler STextDocumentCodeAction (codeAction recorder)
<> mkPluginHandler STextDocumentCodeLens codeLens
}
commands :: PluginId -> [PluginCommand IdeState]
commands plId
= [ PluginCommand codeActionCommandId
"add placeholders for minimal methods" (addMethodPlaceholders plId)
, PluginCommand typeLensCommandId
"add type signatures for instance methods" codeLensCommandHandler
]