mirror of
https://github.com/golang/go
synced 2024-11-18 10:54:40 -07:00
aa94e735be
Add a symbolStyle configuration option, and use it to parameterize the following behavior when computing workspace symbols: + package (default): include package name in the workspace symbol. + full: fully qualify the symbol by import path + dynamic: use as the symbol the shortest suffix of the full path that contains the match. To implement this, expose package name in the source.Package interface. To be consistent with other handling in the cache package, define a new cache.packageName named string type, to avoid confusion with packageID or packagePath (if confusing those two identifiers was a problem, surely it is a potential problem for package name as well). Change-Id: Ic8ed6ba5473b0523b97e677878e5e6bddfff10a7 Reviewed-on: https://go-review.googlesource.com/c/tools/+/236842 Run-TryBot: Robert Findley <rfindley@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Paul Jolly <paul@myitcv.org.uk>
24 lines
704 B
Go
24 lines
704 B
Go
// Copyright 2020 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package lsp
|
|
|
|
import (
|
|
"context"
|
|
|
|
"golang.org/x/tools/internal/event"
|
|
"golang.org/x/tools/internal/lsp/protocol"
|
|
"golang.org/x/tools/internal/lsp/source"
|
|
)
|
|
|
|
func (s *Server) symbol(ctx context.Context, params *protocol.WorkspaceSymbolParams) ([]protocol.SymbolInformation, error) {
|
|
ctx, done := event.Start(ctx, "lsp.Server.symbol")
|
|
defer done()
|
|
|
|
views := s.session.Views()
|
|
matcher := s.session.Options().SymbolMatcher
|
|
style := s.session.Options().SymbolStyle
|
|
return source.WorkspaceSymbols(ctx, matcher, style, views, params.Query)
|
|
}
|