Documentation

Overview

Package cache implements the caching layer for gopls.

Index

Constants

This section is empty.

Variables

View Source
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

func BuildGoplsMod

func BuildGoplsMod(ctx context.Context, root span.URI, s source.Snapshot) (*modfile.File, error)

BuildGoplsMod generates a go.mod file for all modules in the workspace. It bypasses any existing gopls.mod.

Types

type Cache

type Cache struct {
	// contains filtered or unexported fields
}

func New

func New(options func(*source.Options)) *Cache

func (*Cache) FileSet

func (c *Cache) FileSet() *token.FileSet

func (*Cache) GetFile

func (c *Cache) GetFile(ctx context.Context, uri span.URI) (source.FileHandle, error)

func (*Cache) ID

func (c *Cache) ID() string

func (*Cache) MemStats

func (c *Cache) MemStats() map[reflect.Type]int

func (*Cache) NewSession

func (c *Cache) NewSession(ctx context.Context) *Session

func (*Cache) PackageStats

func (c *Cache) PackageStats(withNames bool) template.HTML

type Session

type Session struct {
	// contains filtered or unexported fields
}

func (*Session) Cache

func (s *Session) Cache() interface{}

func (*Session) DidModifyFiles

func (s *Session) DidModifyFiles(ctx context.Context, changes []source.FileModification) (map[source.Snapshot][]span.URI, []func(), error)

func (*Session) ExpandModificationsToDirectories

func (s *Session) ExpandModificationsToDirectories(ctx context.Context, changes []source.FileModification) []source.FileModification

func (*Session) FileWatchingGlobPatterns

func (s *Session) FileWatchingGlobPatterns(ctx context.Context) map[string]struct{}

func (*Session) GetFile

func (s *Session) GetFile(ctx context.Context, uri span.URI) (source.FileHandle, error)

func (*Session) ID

func (s *Session) ID() string

func (*Session) ModifyFiles

func (s *Session) ModifyFiles(ctx context.Context, changes []source.FileModification) error

func (*Session) NewView

func (s *Session) NewView(ctx context.Context, name string, folder, tempWorkspace span.URI, options *source.Options) (source.View, source.Snapshot, func(), error)

func (*Session) Options

func (s *Session) Options() *source.Options

func (*Session) Overlays

func (s *Session) Overlays() []source.Overlay

func (*Session) SetOptions

func (s *Session) SetOptions(options *source.Options)

func (*Session) Shutdown

func (s *Session) Shutdown(ctx context.Context)

func (*Session) String

func (s *Session) String() string

func (*Session) View

func (s *Session) View(name string) source.View

View returns the view by name.

func (*Session) ViewOf

func (s *Session) ViewOf(uri span.URI) (source.View, error)

ViewOf returns a view corresponding to the given URI. If the file is not already associated with a view, pick one using some heuristics.

func (*Session) Views

func (s *Session) Views() []source.View

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) Format

func (k *SessionKey) Format(w io.Writer, buf []byte, l label.Label)

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

func (*SessionKey) Of

func (k *SessionKey) Of(v *Session) label.Label

Of creates a new Label with this key and the supplied session.

type View

type View struct {
	// contains filtered or unexported fields
}

func (*View) Folder

func (v *View) Folder() span.URI

Folder returns the folder at the base of this view.

func (*View) ID

func (v *View) ID() string

func (*View) IsGoPrivatePath

func (v *View) IsGoPrivatePath(target string) bool

func (*View) ModuleUpgrades

func (v *View) ModuleUpgrades() map[string]string

func (*View) Name

func (v *View) Name() string

Name returns the user visible name of this view.

func (*View) Options

func (v *View) Options() *source.Options

func (*View) Rebuild

func (v *View) Rebuild(ctx context.Context) (source.Snapshot, func(), error)

func (*View) RegisterModuleUpgrades

func (v *View) RegisterModuleUpgrades(upgrades map[string]string)

func (*View) Session

func (v *View) Session() *Session

func (*View) SetOptions

func (v *View) SetOptions(ctx context.Context, options *source.Options) (source.View, error)

func (*View) Shutdown

func (v *View) Shutdown(ctx context.Context)

func (*View) Snapshot

func (v *View) Snapshot(ctx context.Context) (source.Snapshot, func())

func (*View) TempWorkspace

func (v *View) TempWorkspace() span.URI