diff --git a/src/termdiagram/ui/tree_view.py b/src/termdiagram/ui/tree_view.py new file mode 100644 index 0000000..031cbff --- /dev/null +++ b/src/termdiagram/ui/tree_view.py @@ -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