diff options
Diffstat (limited to 'helix-view/src')
-rw-r--r-- | helix-view/src/document.rs | 9 | ||||
-rw-r--r-- | helix-view/src/tree.rs | 21 |
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); |