@@ -27,6 +27,7 @@ type Server struct {
2727 codeLensProviders []CodeLensProvider
2828 diagnosticsProviders []DiagnosticsProvider
2929 codeActionProviders []CodeActionProvider
30+ hoverProviders []HoverProvider
3031 commandProviders []CommandProvider
3132 indexers map [string ]indexer.Indexer
3233 commandMap map [string ]CommandFunc
@@ -46,6 +47,7 @@ func NewServer(filescanner *indexer.FileScanner, cacheDir, version string) *Serv
4647 codeLensProviders : make ([]CodeLensProvider , 0 ),
4748 diagnosticsProviders : make ([]DiagnosticsProvider , 0 ),
4849 codeActionProviders : make ([]CodeActionProvider , 0 ),
50+ hoverProviders : make ([]HoverProvider , 0 ),
4951 commandProviders : make ([]CommandProvider , 0 ),
5052 indexers : make (map [string ]indexer.Indexer ),
5153 commandMap : make (map [string ]CommandFunc ),
@@ -89,6 +91,11 @@ func (s *Server) RegisterCodeActionProvider(provider CodeActionProvider) {
8991 s .codeActionProviders = append (s .codeActionProviders , provider )
9092}
9193
94+ // RegisterHoverProvider registers a hover provider with the server
95+ func (s * Server ) RegisterHoverProvider (provider HoverProvider ) {
96+ s .hoverProviders = append (s .hoverProviders , provider )
97+ }
98+
9299// RegisterCommandProvider registers a command provider with the server
93100func (s * Server ) RegisterCommandProvider (provider CommandProvider ) {
94101 s .commandProviders = append (s .commandProviders , provider )
@@ -355,6 +362,13 @@ func (s *Server) handle(ctx context.Context, conn *jsonrpc2.Conn, req *jsonrpc2.
355362 }
356363 return s .codeLens (ctx , & params ), nil
357364
365+ case "textDocument/hover" :
366+ var params protocol.HoverParams
367+ if err := json .Unmarshal (* req .Params , & params ); err != nil {
368+ return nil , err
369+ }
370+ return s .hover (ctx , & params )
371+
358372 case "textDocument/diagnostic" :
359373 var params protocol.DiagnosticParams
360374 if err := json .Unmarshal (* req .Params , & params ); err != nil {
@@ -539,6 +553,7 @@ func (s *Server) initialize(ctx context.Context, params *protocol.InitializePara
539553 },
540554 "definitionProvider" : true ,
541555 "referencesProvider" : true ,
556+ "hoverProvider" : true ,
542557 "codeLensProvider" : map [string ]interface {}{
543558 "resolveProvider" : true ,
544559 },
0 commit comments