MCPcopy
hub / github.com/wagoodman/dive / getAbsPositionNode

Method getAbsPositionNode

runtime/ui/viewmodel/filetree.go:304–332  ·  view source on GitHub ↗

getAbsPositionNode determines the selected screen cursor's location in the file tree, returning the selected FileNode.

(filterRegex *regexp.Regexp)

Source from the content-addressed store, hash-verified

302
303// getAbsPositionNode determines the selected screen cursor's location in the file tree, returning the selected FileNode.
304func (vm *FileTreeViewModel) getAbsPositionNode(filterRegex *regexp.Regexp) (node *filetree.FileNode) {
305 var visitor func(*filetree.FileNode) error
306 var evaluator func(*filetree.FileNode) bool
307 var dfsCounter int
308
309 visitor = func(curNode *filetree.FileNode) error {
310 if dfsCounter == vm.TreeIndex {
311 node = curNode
312 }
313 dfsCounter++
314 return nil
315 }
316
317 evaluator = func(curNode *filetree.FileNode) bool {
318 regexMatch := true
319 if filterRegex != nil {
320 match := filterRegex.Find([]byte(curNode.Path()))
321 regexMatch = match != nil
322 }
323 return !curNode.Parent.Data.ViewInfo.Collapsed && !curNode.Data.ViewInfo.Hidden && regexMatch
324 }
325
326 err := vm.ModelTree.VisitDepthParentFirst(visitor, evaluator)
327 if err != nil {
328 logrus.Errorf("unable to get node position: %+v", err)
329 }
330
331 return node
332}
333
334// ToggleCollapse will collapse/expand the selected FileNode.
335func (vm *FileTreeViewModel) ToggleCollapse(filterRegex *regexp.Regexp) error {

Callers 4

CurrentNodeMethod · 0.95
CursorLeftMethod · 0.95
CursorRightMethod · 0.95
ToggleCollapseMethod · 0.95

Calls 2

PathMethod · 0.80
VisitDepthParentFirstMethod · 0.45

Tested by

no test coverage detected