Documentation ¶
Overview ¶
Package cache implements the caching layer for gopls.
Index ¶
- Variables
- type Cache
- func (c *Cache) FileSet() *token.FileSet
- func (c *Cache) GetFile(ctx context.Context, uri span.URI) (source.FileHandle, error)
- func (c *Cache) ID() string
- func (c *Cache) MemStats() map[reflect.Type]int
- func (c *Cache) NewSession(ctx context.Context) *Session
- func (c *Cache) PackageStats(withNames bool) template.HTML
- type KnownMetadata
- type Metadata
- type PackageID
- type PackageName
- type PackagePath
- type Session
- func (s *Session) Cache() interface{}
- func (s *Session) DidModifyFiles(ctx context.Context, changes []source.FileModification) (map[source.Snapshot][]span.URI, []func(), error)
- func (s *Session) ExpandModificationsToDirectories(ctx context.Context, changes []source.FileModification) []source.FileModification
- func (s *Session) FileWatchingGlobPatterns(ctx context.Context) map[string]struct{}
- func (s *Session) GetFile(ctx context.Context, uri span.URI) (source.FileHandle, error)
- func (s *Session) ID() string
- func (s *Session) ModifyFiles(ctx context.Context, changes []source.FileModification) error
- func (s *Session) NewView(ctx context.Context, name string, folder span.URI, options *source.Options) (source.View, source.Snapshot, func(), error)
- func (s *Session) Options() *source.Options
- func (s *Session) Overlays() []source.Overlay
- func (s *Session) SetOptions(options *source.Options)
- func (s *Session) SetProgressTracker(tracker *progress.Tracker)
- func (s *Session) Shutdown(ctx context.Context)
- func (s *Session) String() string
- func (s *Session) View(name string) source.View
- func (s *Session) ViewOf(uri span.URI) (source.View, error)
- func (s *Session) Views() []source.View
- type SessionKey
- type View
- func (v *View) FileKind(fh source.FileHandle) source.FileKind
- func (v *View) Folder() span.URI
- func (v *View) ID() string
- func (v *View) IsGoPrivatePath(target string) bool
- func (v *View) ModuleUpgrades() map[string]string
- func (v *View) Name() string
- func (v *View) Options() *source.Options
- func (v *View) Rebuild(ctx context.Context) (source.Snapshot, func(), error)
- func (v *View) RegisterModuleUpgrades(upgrades map[string]string)
- func (v *View) Session() *Session
- func (v *View) SetOptions(ctx context.Context, options *source.Options) (source.View, error)
- func (v *View) Shutdown(ctx context.Context)
- func (v *View) Snapshot(ctx context.Context) (source.Snapshot, func())
Constants ¶
This section is empty.
Variables ¶
var ( KeyCreateSession = NewSessionKey("create_session", "A new session was added") KeyUpdateSession = NewSessionKey("update_session", "Updated information about a session") KeyShutdownSession = NewSessionKey("shutdown_session", "A session was shut down") )
Functions ¶
This section is empty.
Types ¶
type Cache ¶
type Cache struct {
// contains filtered or unexported fields
}
type KnownMetadata ¶ added in v0.1.6
type KnownMetadata struct { *Metadata // Valid is true if the given metadata is Valid. // Invalid metadata can still be used if a metadata reload fails. Valid bool // ShouldLoad is true if the given metadata should be reloaded. ShouldLoad bool }
KnownMetadata is a wrapper around metadata that tracks its validity.
type Metadata ¶ added in v0.1.6
type Metadata struct { ID PackageID PkgPath PackagePath Name PackageName GoFiles []span.URI CompiledGoFiles []span.URI ForTest PackagePath TypesSizes types.Sizes Errors []packages.Error Deps []PackageID MissingDeps map[PackagePath]struct{} Module *packages.Module // Config is the *packages.Config associated with the loaded package. Config *packages.Config // IsIntermediateTestVariant reports whether the given package is an // intermediate test variant, e.g. // "golang.org/x/tools/internal/lsp/cache [golang.org/x/tools/internal/lsp/source.test]". IsIntermediateTestVariant bool // contains filtered or unexported fields }
Metadata holds package Metadata extracted from a call to packages.Load.
func (*Metadata) ModuleInfo ¶ added in v0.1.10
ModuleInfo implements the source.Metadata interface.
func (*Metadata) PackageName ¶ added in v0.1.6
Name implements the source.Metadata interface.
func (*Metadata) PackagePath ¶ added in v0.1.6
PkgPath implements the source.Metadata interface.
type PackageID ¶ added in v0.1.6
type PackageID string
Declare explicit types for package paths, names, and IDs to ensure that we never use an ID where a path belongs, and vice versa. If we confused these, it would result in confusing errors because package IDs often look like package paths.
type PackageName ¶ added in v0.1.6
type PackageName string
Declare explicit types for package paths, names, and IDs to ensure that we never use an ID where a path belongs, and vice versa. If we confused these, it would result in confusing errors because package IDs often look like package paths.
type PackagePath ¶ added in v0.1.6
type PackagePath string
Declare explicit types for package paths, names, and IDs to ensure that we never use an ID where a path belongs, and vice versa. If we confused these, it would result in confusing errors because package IDs often look like package paths.
type Session ¶
type Session struct {
// contains filtered or unexported fields
}
func (*Session) DidModifyFiles ¶
func (*Session) ExpandModificationsToDirectories ¶
func (s *Session) ExpandModificationsToDirectories(ctx context.Context, changes []source.FileModification) []source.FileModification
func (*Session) FileWatchingGlobPatterns ¶
func (*Session) ModifyFiles ¶
func (*Session) SetOptions ¶
func (*Session) SetProgressTracker ¶ added in v0.1.4
type SessionKey ¶
type SessionKey struct {
// contains filtered or unexported fields
}
SessionKey represents an event label key that has a *Session value.
func NewSessionKey ¶
func NewSessionKey(name, description string) *SessionKey
NewSessionKey creates a new Key for *Session values.
func (*SessionKey) Description ¶
func (k *SessionKey) Description() string
func (*SessionKey) From ¶
func (k *SessionKey) From(t label.Label) *Session
From can be used to get the session value from a Label.
func (*SessionKey) Get ¶
func (k *SessionKey) Get(lm label.Map) *Session
Get can be used to get the session for the key from a label.Map.
func (*SessionKey) Name ¶
func (k *SessionKey) Name() string
type View ¶
type View struct {
// contains filtered or unexported fields
}
func (*View) FileKind ¶ added in v0.1.9
func (v *View) FileKind(fh source.FileHandle) source.FileKind