state

package
v1.7.0 Latest Latest
Warning

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

Go to latest
Published: Jan 15, 2025 License: BSD-4-Clause Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const (
	FileCreate = uint8(iota)
	FileChange
	FileRename
	FileDelete
	FileOpen
	FileClose
)
View Source
const RootOnUpdate = "update"

Variables

This section is empty.

Functions

func CloseDoc

func CloseDoc(uri Uri)

func GetDoc

func GetDoc(uri Uri) *TextDocument

func GetOpenDocsIter

func GetOpenDocsIter() iter.Seq2[Uri, *TextDocument]

func GetTree

func GetTree(uri Uri) *Tree

func GetTreeText

func GetTreeText(uri Uri) (tree *Tree, text []byte, err error)

func NodeToPosString added in v1.2.0

func NodeToPosString(node *Node) string

func ParseTree

func ParseTree(text []byte) (*Tree, error)

func RemoveDoc

func RemoveDoc(uri Uri) error

func RemoveTree

func RemoveTree(uri Uri)

func SetTree

func SetTree(uri Uri, tree *Tree)

func TempDoc

func TempDoc(uri Uri) (doc *TextDocument, err error)

func ToString

func ToString(node *Node, doc *TextDocument) string

func UriFileExist

func UriFileExist(uri Uri) bool

func WalkFiles

func WalkFiles(uri Uri, extensions []string, cb func(Uri, string) error) (err error)

func WalkTrees

func WalkTrees(cb func(Uri, *Tree))

Types

type Docs

type Docs map[Uri]*TextDocument

func (Docs) Get

func (docs Docs) Get(uri Uri) (doc *TextDocument, err error)

type Duplicate

type Duplicate struct {
	Family *Family
	Member *Member
	Uri    string
}

type Duplicates

type Duplicates map[string][]*Duplicate

type FamMem added in v1.1.0

type FamMem struct {
	Family *Family
	Member *Member
	Node   *Node
}

type Families

type Families map[string]*Family

type Family

type Family struct {
	Name       string
	Aliases    []string
	Members    Members
	Duplicates Duplicates
	Uri        Uri
	Node       *Node
	Root       *Root
}

func (*Family) AddMember

func (family *Family) AddMember(node *Node, text []byte) *Member

func (*Family) AddMemberName added in v1.1.0

func (family *Family) AddMemberName(node *Node, name string, aliases []string, surname string) *Member

func (*Family) FindMember added in v1.4.0

func (family *Family) FindMember(name string) (mem *Member)

func (*Family) GetMember

func (family *Family) GetMember(name string) *Member

func (*Family) HasMember added in v1.1.0

func (family *Family) HasMember(name string) bool

func (*Family) MembersIter

func (family *Family) MembersIter() iter.Seq[*Member]

func (*Family) NamesIter

func (family *Family) NamesIter() iter.Seq[string]

type File

type File struct {
	Uri  Uri
	Path []string
}

func CreateFile

func CreateFile(uri Uri, folder Uri) (file *File, err error)

func (*File) PathIncludes

func (file *File) PathIncludes(parts ...string) bool

type FileTree

type FileTree struct {
	Name     string
	File     *File
	Family   *Family
	Member   *Member
	Children FilesTree
}

type Files

type Files map[Uri]*File

type FilesTree

type FilesTree map[string]*FileTree

type Listeners

type Listeners map[string][]func()

type Member

type Member struct {
	Node    *Node
	Name    string
	Aliases []string
	Surname string
	Refs    Refs
	InfoUri Uri
	Family  *Family
	Origin  *Member
}

func (*Member) GetUniqName

func (member *Member) GetUniqName() string

func (*Member) HasName added in v1.1.0

func (member *Member) HasName(name string) bool

func (*Member) NamesIter

func (member *Member) NamesIter() iter.Seq[string]

func (*Member) NormalizeName added in v1.7.0

func (member *Member) NormalizeName(name string) (res string)

type Members

type Members map[string]*Member

type NodeRefs

type NodeRefs map[Uri]map[string]*FamMem

type Ref

type Ref struct {
	Uri     Uri
	Node    *Node
	Surname string
	Name    string
	Member  *Member
	Family  *Family
}

type Refs

type Refs []*Ref

type Root

type Root struct {
	Folders      UriSet
	Families     Families
	Duplicates   Duplicates
	NodeRefs     NodeRefs
	UnknownRefs  []*Ref
	UnknownFiles Files
	DirtyUris    UriSet
	Labels       map[Uri][]string
	Listeners    Listeners
	Log          func(string, ...any)

	UpdateLock sync.Mutex
}

func CreateRoot

func CreateRoot(logger func(string, ...any)) *Root

func (*Root) AddFamily

func (root *Root) AddFamily(uri Uri, node *Node, text []byte) *Family

func (*Root) AddLabel added in v1.7.0

func (root *Root) AddLabel(uri Uri, label string)

func (*Root) AddNodeRef

func (root *Root) AddNodeRef(uri Uri, famMem *FamMem)

func (*Root) AddRef

func (root *Root) AddRef(ref *Ref)

func (*Root) AddUnknownFile

func (root *Root) AddUnknownFile(uri Uri) error

func (*Root) AddUnknownRef added in v1.1.0

func (root *Root) AddUnknownRef(ref *Ref)

func (*Root) FamilyIter

func (root *Root) FamilyIter() iter.Seq[*Family]

func (*Root) FindFamiliesByUri

func (root *Root) FindFamiliesByUri(uri Uri) []*Family

func (*Root) FindFamily

func (root *Root) FindFamily(name string) *Family

func (*Root) FindFolder

func (root *Root) FindFolder(uri Uri) Uri

func (*Root) FindMember

func (root *Root) FindMember(surname string, name string) (family *Family, member *Member)

func (*Root) GetFamMem added in v1.1.0

func (root *Root) GetFamMem(uri Uri, node *Node) *FamMem

func (*Root) GetFamilyByUriNode added in v1.1.0

func (root *Root) GetFamilyByUriNode(uri Uri, node *Node) *Family

func (*Root) GetMemberByUriNode

func (root *Root) GetMemberByUriNode(uri Uri, node *Node) *Member

func (*Root) MembersIter

func (root *Root) MembersIter() iter.Seq[*Member]

func (*Root) OnUpdate

func (root *Root) OnUpdate(cb func())

func (*Root) OpenDoc

func (root *Root) OpenDoc(uri Uri) (doc *TextDocument, err error)

func (*Root) OpenDocText

func (root *Root) OpenDocText(uri Uri, text string, tree *Tree) (doc *TextDocument, err error)

func (*Root) RemoveFamily

func (root *Root) RemoveFamily(f *Family)

func (*Root) SetFolders

func (root *Root) SetFolders(folders []Uri) (err error)

func (*Root) Trigger

func (root *Root) Trigger(event string)

func (*Root) Update

func (root *Root) Update(tree *Tree, text []byte, uri Uri) (err error)

func (*Root) UpdateDirty

func (root *Root) UpdateDirty() error

func (*Root) UpdateUnknownFiles

func (root *Root) UpdateUnknownFiles()

func (*Root) UpdateUnknownRefs

func (root *Root) UpdateUnknownRefs()

type UriSet

type UriSet map[Uri]uint8

func (UriSet) Has

func (uris UriSet) Has(uri Uri) bool

func (UriSet) Remove

func (uris UriSet) Remove(uri Uri)

func (UriSet) Set

func (uris UriSet) Set(uri Uri)

func (UriSet) SetState

func (uris UriSet) SetState(uri Uri, val uint8)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL
JackTT - Gopher 🇻🇳