xrefs

package
v0.0.67 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 14, 2024 License: Apache-2.0, NCSA Imports: 14 Imported by: 0

Documentation

Overview

Package xrefs defines the xrefs Service interface and some useful utility functions.

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrPermissionDenied is returned by an implementation of a method when the
	// user is not allowed to view the content because of some restrictions.
	ErrPermissionDenied = status.Error(codes.PermissionDenied, "access denied")

	// ErrDecorationsNotFound is returned by an implementation of the Decorations
	// method when decorations for the given file cannot be found.
	ErrDecorationsNotFound = status.Error(codes.NotFound, "file decorations not found")

	// ErrCanceled is returned by services when the caller cancels the RPC.
	ErrCanceled = status.Error(codes.Canceled, "canceled")

	// ErrDeadlineExceeded is returned by services when something times out.
	ErrDeadlineExceeded = status.Error(codes.DeadlineExceeded, "deadline exceeded")
)

Functions

func ConvertFilters

func ConvertFilters(filters []string) []*regexp.Regexp

ConvertFilters converts each filter glob into an equivalent regexp.

func FixTickets added in v0.0.18

func FixTickets(tickets []string) ([]string, error)

FixTickets converts the specified tickets, which are expected to be Kythe URIs, into canonical form. It is an error if len(tickets) == 0.

func IsCallerKind added in v0.0.27

func IsCallerKind(requestedKind xpb.CrossReferencesRequest_CallerKind, edgeKind string) bool

IsCallerKind determines whether the given edgeKind matches the requested caller kind.

func IsDeclKind added in v0.0.21

func IsDeclKind(requestedKind xpb.CrossReferencesRequest_DeclarationKind, edgeKind string, incomplete bool) bool

IsDeclKind reports whether the given edgeKind matches the requested declaration kind

func IsDefKind added in v0.0.17

func IsDefKind(requestedKind xpb.CrossReferencesRequest_DefinitionKind, edgeKind string, incomplete bool) bool

IsDefKind reports whether the given edgeKind matches the requested definition kind.

func IsInternalKind added in v0.0.27

func IsInternalKind(kind string) bool

IsInternalKind determines whether the given edge kind is an internal variant.

func IsRefKind added in v0.0.17

func IsRefKind(requestedKind xpb.CrossReferencesRequest_ReferenceKind, edgeKind string) bool

IsRefKind determines whether the given edgeKind matches the requested reference kind.

func IsRelatedNodeKind added in v0.0.27

func IsRelatedNodeKind(requestedKinds stringset.Set, kind string) bool

IsRelatedNodeKind determines whether the give edge kind matches the requested related node kinds.

func IsSpeculative added in v0.0.64

func IsSpeculative(edgeKind string) bool

IsSpeculative returns whether the edge kind is considered speculative.

func MatchesAny

func MatchesAny(str string, patterns []*regexp.Regexp) bool

MatchesAny reports whether if str matches any of the patterns

func RegisterHTTPHandlers

func RegisterHTTPHandlers(ctx context.Context, xs Service, mux *http.ServeMux)

RegisterHTTPHandlers registers JSON HTTP handlers with mux using the given xrefs Service. The following methods with be exposed:

GET /decorations
  Request: JSON encoded xrefs.DecorationsRequest
  Response: JSON encoded xrefs.DecorationsReply
GET /xrefs
  Request: JSON encoded xrefs.CrossReferencesRequest
  Response: JSON encoded xrefs.CrossReferencesReply
GET /documentation
  Request: JSON encoded xrefs.DocumentationRequest
  Response: JSON encoded xrefs.DocumentationReply

Note: /nodes, /edges, /decorations, and /xrefs will return their responses as serialized protobufs if the "proto" query parameter is set.

Types

type BoundedRequests added in v0.0.27

type BoundedRequests struct {
	MaxTickets int
	Service
}

BoundedRequests guards against requests for more tickets than allowed per the MaxTickets configuration.

func (BoundedRequests) CrossReferences added in v0.0.27

CrossReferences implements part of the Service interface.

func (BoundedRequests) Documentation added in v0.0.27

Documentation implements part of the Service interface.

type ByName added in v0.0.16

type ByName []*cpb.Fact

ByName orders a slice of facts by their fact names.

func (ByName) Len added in v0.0.16

func (s ByName) Len() int

func (ByName) Less added in v0.0.16

func (s ByName) Less(i, j int) bool

func (ByName) Swap added in v0.0.16

func (s ByName) Swap(i, j int)

type Service

type Service interface {
	// Decorations returns an index of the nodes associated with a specified file.
	Decorations(context.Context, *xpb.DecorationsRequest) (*xpb.DecorationsReply, error)

	// CrossReferences returns the global cross-references for the given nodes.
	CrossReferences(context.Context, *xpb.CrossReferencesRequest) (*xpb.CrossReferencesReply, error)

	// Documentation takes a set of tickets and returns documentation for them.
	Documentation(context.Context, *xpb.DocumentationRequest) (*xpb.DocumentationReply, error)

	// Close releases any underlying resources.
	Close(context.Context) error
}

Service defines the interface for file based cross-references. Informally, the cross-references of an entity comprise the definitions of that entity, together with all the places where those definitions are referenced through constructs such as type declarations, variable references, function calls, and so on.

func WebClient

func WebClient(addr string) Service

WebClient returns an xrefs Service based on a remote web server.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL