github.com/jd-ly/tools@v0.5.7/internal/lsp/implementation.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/jd-ly/tools/internal/lsp/protocol" 11 "github.com/jd-ly/tools/internal/lsp/source" 12 ) 13 14 func (s *Server) implementation(ctx context.Context, params *protocol.ImplementationParams) ([]protocol.Location, error) { 15 snapshot, fh, ok, release, err := s.beginFileRequest(ctx, params.TextDocument.URI, source.Go) 16 defer release() 17 if !ok { 18 return nil, err 19 } 20 return source.Implementation(ctx, snapshot, fh, params.Position) 21 }