modindex

package
v0.29.0 Latest Latest
Warning

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

Go to latest
Published: Jan 6, 2025 License: BSD-3-Clause Imports: 24 Imported by: 0

Documentation

Overview

Package modindex contains code for building and searching an index to the Go module cache. The directory containing the index, returned by IndexDir(), contains a file index-name-<ver> that contains the name of the current index. We believe writing that short file is atomic. ReadIndex reads that file to get the file name of the index. WriteIndex writes an index with a unique name and then writes that name into a new version of index-name-<ver>. (<ver> stands for the CurrentVersion of the index format.)

Index

Constants

View Source
const CurrentVersion int = 0

CurrentVersion tells readers about the format of the index.

Variables

View Source
var IndexDir string

IndexDir is where the module index is stored.

Functions

func Create added in v0.27.0

func Create(cachedir string) error

Create always creates a new index for the go module cache that is in cachedir.

func DirToImportPathVersion

func DirToImportPathVersion(dir Relpath) (string, string, error)

DirToImportPathVersion computes import path and semantic version

func Update added in v0.27.0

func Update(cachedir string) (bool, error)

Update the index for the go module cache that is in cachedir, If there is no existing index it will build one. If there are changed directories since the last index, it will write a new one and return true. Otherwise it returns false.

Types

type Abspath

type Abspath string // absolute paths

distinguish various types of directory names. It's easy to get confused.

type Candidate added in v0.27.0

type Candidate struct {
	PkgName    string
	Name       string
	Dir        string
	ImportPath string
	Type       LexType
	Deprecated bool
	// information for Funcs
	Results int16   // how many results
	Sig     []Field // arg names and types
}

type Entry

type Entry struct {
	Dir        Relpath // directory in modcache
	ImportPath string
	PkgName    string
	Version    string
	//ModTime    STime    // is this useful?
	Names []string // exported names and information
}

An Entry contains information for an import path.

type Field added in v0.27.0

type Field struct {
	Arg, Type string
}

type Index

type Index struct {
	Version  int
	Cachedir Abspath   // The directory containing the module cache
	Changed  time.Time // The index is up to date as of Changed
	Entries  []Entry
}

Index is returned by ReadIndex().

func ReadIndex

func ReadIndex(cachedir string) (*Index, error)

ReadIndex reads the latest version of the on-disk index for the cache directory cd. It returns (nil, nil) if there is no index, but returns a non-nil error if the index exists but could not be read.

func (*Index) Lookup added in v0.27.0

func (ix *Index) Lookup(pkg, name string, prefix bool) []Candidate

Lookup finds all the symbols in the index with the given PkgName and name. If prefix is true, it finds all of these with name as a prefix.

type LexType added in v0.27.0

type LexType int8
const (
	Const LexType = iota
	Var
	Type
	Func
)

type Relpath

type Relpath string // paths with GOMODCACHE prefix removed

Directories

Path Synopsis
A command for building and maintaing the module cache a.out <flags> <command> <args> The commands are 'create' which builds a new index, 'update', which attempts to update an existing index, 'query', which looks up things in the index.
A command for building and maintaing the module cache a.out <flags> <command> <args> The commands are 'create' which builds a new index, 'update', which attempts to update an existing index, 'query', which looks up things in the index.

Jump to

Keyboard shortcuts

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