diff options
author | Blaž Hrastnik | 2021-03-29 06:22:43 +0000 |
---|---|---|
committer | Blaž Hrastnik | 2021-03-29 06:22:43 +0000 |
commit | c1f2a14453c7621c22b0e4074a9feddac1a62b74 (patch) | |
tree | 14eef319099b6515ca1067b45ef6d9374763dfca /helix-view | |
parent | a323155b99de591e0713d1bd31c32dceed569c2e (diff) |
view: document.rs cleanup
Diffstat (limited to 'helix-view')
-rw-r--r-- | helix-view/src/document.rs | 19 | ||||
-rw-r--r-- | helix-view/src/editor.rs | 5 |
2 files changed, 14 insertions, 10 deletions
diff --git a/helix-view/src/document.rs b/helix-view/src/document.rs index 231c10bc..abc829c0 100644 --- a/helix-view/src/document.rs +++ b/helix-view/src/document.rs @@ -1,4 +1,4 @@ -use anyhow::Error; +use anyhow::{Context, Error}; use std::future::Future; use std::path::{Path, PathBuf}; use std::sync::Arc; @@ -90,7 +90,8 @@ impl Document { use std::{env, fs::File, io::BufReader}; let _current_dir = env::current_dir()?; - let doc = Rope::from_reader(BufReader::new(File::open(path.clone())?))?; + let file = File::open(path.clone()).context(format!("unable to open {:?}", path))?; + let doc = Rope::from_reader(BufReader::new(file))?; // TODO: create if not found @@ -183,7 +184,7 @@ impl Document { let success = transaction.apply(&mut self.state); if !transaction.changes().is_empty() { - // TODO: self.version += 1;? + self.version += 1; // update tree-sitter syntax tree if let Some(syntax) = &mut self.syntax { @@ -193,7 +194,11 @@ impl Document { .unwrap(); } - // TODO: map state.diagnostics over changes::map_pos too + // if let Some(diagnostics) = &mut self.diagnostics { + // for diagnostic in diagnostics { + // // TODO: map state.diagnostics over changes::map_pos too + // } + // } // emit lsp notification if let Some(language_server) = &self.language_server { @@ -230,7 +235,6 @@ impl Document { pub fn undo(&mut self) -> bool { if let Some(transaction) = self.history.undo() { - self.version += 1; let success = self._apply(&transaction); // reset changeset to fix len @@ -243,8 +247,6 @@ impl Document { pub fn redo(&mut self) -> bool { if let Some(transaction) = self.history.redo() { - self.version += 1; - let success = self._apply(&transaction); // reset changeset to fix len @@ -266,9 +268,6 @@ impl Document { // annotations either add a new layer or compose into the previous one. let transaction = Transaction::from(changes).with_selection(self.selection().clone()); - // increment document version - self.version += 1; - // HAXX: we need to reconstruct the state as it was before the changes.. let old_state = self.old_state.take().expect("no old_state available"); diff --git a/helix-view/src/editor.rs b/helix-view/src/editor.rs index 374eddfd..f062b55d 100644 --- a/helix-view/src/editor.rs +++ b/helix-view/src/editor.rs @@ -174,6 +174,11 @@ impl Editor { self.documents.iter().map(|(_id, doc)| doc) } + // pub fn current_document(&self) -> Document { + // let id = self.view().doc; + // let doc = &mut editor.documents[id]; + // } + pub fn cursor_position(&self) -> Option<helix_core::Position> { const OFFSET: u16 = 7; // 1 diagnostic + 5 linenr + 1 gutter let view = self.view(); |