summaryrefslogtreecommitdiff
path: root/helix-view
diff options
context:
space:
mode:
Diffstat (limited to 'helix-view')
-rw-r--r--helix-view/src/editor.rs4
-rw-r--r--helix-view/src/tree.rs12
2 files changed, 16 insertions, 0 deletions
diff --git a/helix-view/src/editor.rs b/helix-view/src/editor.rs
index f4a48ba6..1ad21059 100644
--- a/helix-view/src/editor.rs
+++ b/helix-view/src/editor.rs
@@ -885,6 +885,10 @@ impl Editor {
self.tree.focus_direction(tree::Direction::Down);
}
+ pub fn transpose_view(&mut self) {
+ self.tree.transpose();
+ }
+
pub fn should_close(&self) -> bool {
self.tree.is_empty()
}
diff --git a/helix-view/src/tree.rs b/helix-view/src/tree.rs
index b068f4c7..522a79d7 100644
--- a/helix-view/src/tree.rs
+++ b/helix-view/src/tree.rs
@@ -526,6 +526,18 @@ impl Tree {
}
}
+ pub fn transpose(&mut self) {
+ let focus = self.focus;
+ let parent = self.nodes[focus].parent;
+ if let Content::Container(container) = &mut self.nodes[parent].content {
+ container.layout = match container.layout {
+ Layout::Vertical => Layout::Horizontal,
+ Layout::Horizontal => Layout::Vertical,
+ };
+ self.recalculate();
+ }
+ }
+
pub fn area(&self) -> Rect {
self.area
}