Initial upload: TermDiagram v0.1.0
This commit is contained in:
24
src/termdiagram/ui/tree_view.py
Normal file
24
src/termdiagram/ui/tree_view.py
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
from typing import List
|
||||||
|
from rich.tree import Tree
|
||||||
|
from rich.text import Text
|
||||||
|
from ..models import Module, ClassSymbol
|
||||||
|
|
||||||
|
|
||||||
|
class TreeView:
|
||||||
|
def create_tree(self, modules: List[Module], show_methods: bool = True) -> Tree:
|
||||||
|
tree = Tree("Project", hide_root=False)
|
||||||
|
|
||||||
|
for module in modules:
|
||||||
|
module_node = tree.add(f"[bold cyan]{module.name}[/]")
|
||||||
|
|
||||||
|
for cls in module.classes:
|
||||||
|
class_node = module_node.add(f"[bold yellow]{cls.name}[/]")
|
||||||
|
|
||||||
|
if show_methods:
|
||||||
|
for method in cls.methods:
|
||||||
|
class_node.add(f"[green]{method.name}()[/]")
|
||||||
|
|
||||||
|
for func in module.functions:
|
||||||
|
module_node.add(f"[green]{func.name}()[/]")
|
||||||
|
|
||||||
|
return tree
|
||||||
Reference in New Issue
Block a user