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, tempWorkspace span.URI, ...) (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) 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())
- func (v *View) TempWorkspace() span.URI
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) 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
}