in src/main/kotlin/com/jetbrains/interactiveRebase/services/ActionService.kt [877:909]
fun expandCollapsedCommits(
parentCommit: CommitInfo,
branch: BranchInfo,
enableNestedCollapsing: Boolean = true,
) {
project.takeActionWithDeselecting({
if (!parentCommit.isCollapsed) return@takeActionWithDeselecting
parentCommit.isCollapsed = false
val collapseCommand =
parentCommit.changes.filterIsInstance<CollapseCommand>().lastOrNull() as CollapseCommand
if (collapseCommand == null) return@takeActionWithDeselecting
var collapsedCommits = collapseCommand.collapsedCommits
parentCommit.changes.asReversed().removeIf { it === collapseCommand }
val index = branch.currentCommits.indexOf(parentCommit)
collapsedCommits.forEach { commit ->
commit.isCollapsed = false
commit.changes.asReversed().removeIf { it === collapseCommand }
}
if (collapsedCommits.size >= 30 && enableNestedCollapsing) {
collapsedCommits = collapseAgainIfNeeded(collapsedCommits, branch, parentCommit)
} else {
branch.isNestedCollapsed = false
}
branch.addCommitsToCurrentCommits(index, collapsedCommits)
}, modelService.graphInfo)
if (branch.currentCommits.size >= 300) {
createNotification()
}
}