github.com/v2fly/tools@v0.100.0/internal/lsp/hover.go (about) 1 // Copyright 2019 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package lsp 6 7 import ( 8 "context" 9 10 "github.com/v2fly/tools/internal/lsp/mod" 11 "github.com/v2fly/tools/internal/lsp/protocol" 12 "github.com/v2fly/tools/internal/lsp/source" 13 ) 14 15 func (s *Server) hover(ctx context.Context, params *protocol.HoverParams) (*protocol.Hover, error) { 16 snapshot, fh, ok, release, err := s.beginFileRequest(ctx, params.TextDocument.URI, source.UnknownKind) 17 defer release() 18 if !ok { 19 return nil, err 20 } 21 switch fh.Kind() { 22 case source.Mod: 23 return mod.Hover(ctx, snapshot, fh, params.Position) 24 case source.Go: 25 return source.Hover(ctx, snapshot, fh, params.Position) 26 } 27 return nil, nil 28 }