aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--TODO.md3
-rw-r--r--helix-view/src/document.rs9
-rw-r--r--helix-view/src/tree.rs21
3 files changed, 28 insertions, 5 deletions
diff --git a/TODO.md b/TODO.md
index 8318b0bf..e378d457 100644
--- a/TODO.md
+++ b/TODO.md
@@ -27,8 +27,9 @@
- [ ] regex search / select next
- [ ] f / t mappings
+- [ ] open_above (O) command
- [ ] = for auto indent line/selection
-- [ ] q should only close the view, if all are closed, close the editor
+- [x] q should only close the view, if all are closed, close the editor
- [ ] buffers should sit on editor.buffers, view simply refs them
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);