Как сказал @Arshad.
Вы можете просто написать рекурсивный метод для вызова Repository.ShowInProjectView()
для каждого из листовых подпакетов.
Это будет похоже (в мета-тегах).язык)
func unfold(root) {
if root.packages.count == 0 {
Repository.ShowInProjectView(root.element);
return;
}
for subRoot in root.packages { unfold(subRoot); }
}
Это будет проходить через все подпакеты пакетов.Когда лист достигнут, он будет развернут с помощью Repository.ShowInProjectView
(и, конечно, всех его родителей).
Чтобы сфокусировать первый элемент пакета, используйте
Repository.ShowInProjectView(package.elements.getat(0))