aboutsummaryrefslogtreecommitdiff
path: root/helix-view
diff options
context:
space:
mode:
Diffstat (limited to 'helix-view')
-rw-r--r--helix-view/src/document.rs9
-rw-r--r--helix-view/src/tree.rs21
2 files changed, 26 insertions, 4 deletions
diff --git a/helix-view/src/document.rs b/helix-view/src/document.rs
index 426c8e21..569e72ee 100644
--- a/helix-view/src/document.rs
+++ b/helix-view/src/document.rs
@@ -300,10 +300,11 @@ impl Document {
}
pub fn relative_path(&self) -> Option<&Path> {
- self.path.as_ref().map(|path| {
- path.strip_prefix(std::env::current_dir().unwrap())
- .unwrap_or(path)
- })
+ let cwdir = std::env::current_dir().expect("couldn't determine current directory");
+
+ self.path
+ .as_ref()
+ .map(|path| path.strip_prefix(cwdir).unwrap_or(path))
}
// pub fn slice<R>(&self, range: R) -> RopeSlice where R: RangeBounds {
diff --git a/helix-view/src/tree.rs b/helix-view/src/tree.rs
index 9903ba79..382ef09e 100644
--- a/helix-view/src/tree.rs
+++ b/helix-view/src/tree.rs
@@ -303,6 +303,27 @@ impl Tree {
// For now that's okay though, since it's unlikely you'll be able to open a large enough
// number of splits to notice.
+ // current = focus
+ // let found = loop do {
+ // node = focus.parent;
+ // let found = node.next_sibling_of(current)
+ // if some {
+ // break found;
+ // }
+ // // else
+ // if node == root {
+ // return first child of root;
+ // };
+ // current = parent;
+ // }
+ // }
+ //
+ // use found next sibling
+ // loop do {
+ // if found = view -> focus = found, return
+ // if found = container -> found = first child
+ // }
+
let iter = self.traverse();
let mut iter = iter.skip_while(|&(key, _view)| key != self.focus);