Documentation
¶
Index ¶
- func FuncGraph2FileGraph(f graph.Graph[string, *FuncVertex], g graph.Graph[string, *file.FileVertex]) error
- type Drawable
- type FactStorage
- type FgStorage
- type FuncGraph
- func CreateFuncGraph(fact *FactStorage, relationship *object.SourceContext) (*FuncGraph, error)
- func CreateFuncGraphFromDirWithLSIF(src string, lsifFile string, lang core.LangType) (*FuncGraph, error)
- func CreateFuncGraphFromDirWithSCIP(src string, scipFile string, lang core.LangType) (*FuncGraph, error)
- func CreateFuncGraphFromGolangDir(src string) (*FuncGraph, error)
- func Load(fgs *FgStorage) (*FuncGraph, error)
- func LoadFile(fp string) (*FuncGraph, error)
- func NewEmptyFuncGraph() *FuncGraph
- func (fg *FuncGraph) DirectReferenceIds(f *FuncVertex) []string
- func (fg *FuncGraph) DirectReferencedCount(f *FuncVertex) int
- func (fg *FuncGraph) DirectReferencedIds(f *FuncVertex) []string
- func (fg *FuncGraph) DrawDot(filename string) error
- func (fg *FuncGraph) DrawG6Html(filename string) error
- func (fg *FuncGraph) Dump() (*FgStorage, error)
- func (fg *FuncGraph) DumpFile(fp string) error
- func (fg *FuncGraph) FileCount() int
- func (fg *FuncGraph) FillWithRed(vertexHash string) error
- func (fg *FuncGraph) FillWithYellow(vertexHash string) error
- func (fg *FuncGraph) FuncCount() int
- func (fg *FuncGraph) GetById(id string) (*FuncVertex, error)
- func (fg *FuncGraph) GetFunctionsByFile(fileName string) []*FuncVertex
- func (fg *FuncGraph) GetFunctionsByFileLines(fileName string, lines []int) []*FuncVertex
- func (fg *FuncGraph) ListFiles() []string
- func (fg *FuncGraph) RemoveNodeById(funcId string) error
- func (fg *FuncGraph) Stat(f *FuncVertex) *VertexStat
- func (fg *FuncGraph) ToDirGraph() (*file.FileGraph, error)
- func (fg *FuncGraph) ToFileGraph() (*file.FileGraph, error)
- func (fg *FuncGraph) ToG6Data() (*g6.Data, error)
- func (fg *FuncGraph) TransitiveReferenceIds(f *FuncVertex) []string
- func (fg *FuncGraph) TransitiveReferencedIds(f *FuncVertex) []string
- type FuncPos
- type FuncVertex
- type VertexStat
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func FuncGraph2FileGraph ¶
func FuncGraph2FileGraph(f graph.Graph[string, *FuncVertex], g graph.Graph[string, *file.FileVertex]) error
Types ¶
type FactStorage ¶
type FactStorage struct {
// contains filtered or unexported fields
}
FactStorage fact is some extra metadata extracted from source code something like: function definitions with their annotations/params/receiver ... these data can be used for enhancing relationship
func CreateFact ¶
func CreateFact(root string, lang core.LangType) (*FactStorage, error)
func (*FactStorage) GetFunctionsByFile ¶
func (fs *FactStorage) GetFunctionsByFile(fileName string) *extractor.FunctionFileResult
func (*FactStorage) GetSymbolsByFileAndLine ¶
func (fs *FactStorage) GetSymbolsByFileAndLine(fileName string, line int) []*extractor.Symbol
type FuncGraph ¶
type FuncGraph struct {
// k: file, v: function
Cache map[string][]*FuncVertex
// contains filtered or unexported fields
}
func CreateFuncGraph ¶
func CreateFuncGraph(fact *FactStorage, relationship *object.SourceContext) (*FuncGraph, error)
func NewEmptyFuncGraph ¶
func NewEmptyFuncGraph() *FuncGraph
func (*FuncGraph) DirectReferenceIds ¶ added in v0.9.4
func (fg *FuncGraph) DirectReferenceIds(f *FuncVertex) []string
func (*FuncGraph) DirectReferencedCount ¶ added in v0.9.4
func (fg *FuncGraph) DirectReferencedCount(f *FuncVertex) int
DirectReferencedCount This function returns the number of direct references to a given function vertex in the function graph. It does so by counting the length of the slice of IDs of the function vertices that directly reference the given function vertex.
func (*FuncGraph) DirectReferencedIds ¶ added in v0.9.4
func (fg *FuncGraph) DirectReferencedIds(f *FuncVertex) []string
func (*FuncGraph) DrawG6Html ¶
func (*FuncGraph) FillWithRed ¶
func (*FuncGraph) FillWithYellow ¶
func (*FuncGraph) GetFunctionsByFile ¶
func (fg *FuncGraph) GetFunctionsByFile(fileName string) []*FuncVertex
func (*FuncGraph) GetFunctionsByFileLines ¶
func (fg *FuncGraph) GetFunctionsByFileLines(fileName string, lines []int) []*FuncVertex
func (*FuncGraph) RemoveNodeById ¶
func (*FuncGraph) Stat ¶
func (fg *FuncGraph) Stat(f *FuncVertex) *VertexStat
func (*FuncGraph) TransitiveReferenceIds ¶
func (fg *FuncGraph) TransitiveReferenceIds(f *FuncVertex) []string
func (*FuncGraph) TransitiveReferencedIds ¶
func (fg *FuncGraph) TransitiveReferencedIds(f *FuncVertex) []string
TransitiveReferencedIds This function takes a FuncGraph and a FuncVertex as input and returns a slice of strings containing all the transitive referenced ids. It uses a map to store the referenced ids and a BFS algorithm to traverse the graph and add the referenced ids to the map. Finally, it returns the keys of the map as a slice of strings.
type FuncPos ¶
type FuncVertex ¶
func CreateFuncVertex ¶
func CreateFuncVertex(f *object2.Function, fr *extractor.FunctionFileResult) *FuncVertex
func (*FuncVertex) Id ¶
func (fv *FuncVertex) Id() string
func (*FuncVertex) PosKey ¶
func (fv *FuncVertex) PosKey() string
type VertexStat ¶
type VertexStat struct {
Referenced int `json:"referenced" csv:"referenced"`
Reference int `json:"reference" csv:"reference"`
TransitiveReferenced int `json:"transitiveReferenced" csv:"transitiveReferenced"`
TransitiveReference int `json:"transitiveReference" csv:"transitiveReference"`
// raw
Root *FuncVertex `json:"-" csv:"-"`
ReferencedIds []string `json:"-" csv:"-"`
ReferenceIds []string `json:"-" csv:"-"`
TransitiveReferencedIds []string `json:"-" csv:"-"`
TransitiveReferenceIds []string `json:"-" csv:"-"`
}
func (*VertexStat) VisitedIds ¶
func (v *VertexStat) VisitedIds() []string