From 1cf887dea93f7aa2184772fa2073751f031c5bf3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bla=C5=BE=20Hrastnik?= Date: Sun, 14 Mar 2021 10:04:03 +0900 Subject: [PATCH] Cleanup: use doc.selection() instead of doc.state.selection(). --- helix-core/src/history.rs | 12 ++++++------ helix-core/src/selection.rs | 1 - helix-core/src/state.rs | 18 +++++++++--------- helix-core/src/syntax.rs | 2 +- helix-core/src/transaction.rs | 2 +- helix-term/src/commands.rs | 1 - helix-term/src/ui/editor.rs | 1 - helix-view/src/view.rs | 2 +- 8 files changed, 18 insertions(+), 21 deletions(-) diff --git a/helix-core/src/history.rs b/helix-core/src/history.rs index 66445525..99de3f7c 100644 --- a/helix-core/src/history.rs +++ b/helix-core/src/history.rs @@ -101,7 +101,7 @@ mod test { // Need to commit before applying! history.commit_revision(&transaction1, &state); transaction1.apply(&mut state); - assert_eq!("hello world!", state.doc()); + assert_eq!("hello world!", state.doc); // --- @@ -111,7 +111,7 @@ mod test { // Need to commit before applying! history.commit_revision(&transaction2, &state); transaction2.apply(&mut state); - assert_eq!("hello 世界!", state.doc()); + assert_eq!("hello 世界!", state.doc); // --- fn undo(history: &mut History, state: &mut State) { @@ -126,15 +126,15 @@ mod test { } undo(&mut history, &mut state); - assert_eq!("hello world!", state.doc()); + assert_eq!("hello world!", state.doc); redo(&mut history, &mut state); - assert_eq!("hello 世界!", state.doc()); + assert_eq!("hello 世界!", state.doc); undo(&mut history, &mut state); undo(&mut history, &mut state); - assert_eq!("hello", state.doc()); + assert_eq!("hello", state.doc); // undo at root is a no-op undo(&mut history, &mut state); - assert_eq!("hello", state.doc()); + assert_eq!("hello", state.doc); } } diff --git a/helix-core/src/selection.rs b/helix-core/src/selection.rs index edad81a7..ee925cbc 100644 --- a/helix-core/src/selection.rs +++ b/helix-core/src/selection.rs @@ -128,7 +128,6 @@ impl Range { /// A selection consists of one or more selection ranges. #[derive(Debug, Clone)] pub struct Selection { - // TODO: decide how many ranges to inline SmallVec<[Range; 1]> ranges: SmallVec<[Range; 1]>, primary_index: usize, } diff --git a/helix-core/src/state.rs b/helix-core/src/state.rs index 8ff86f0c..b02f9b39 100644 --- a/helix-core/src/state.rs +++ b/helix-core/src/state.rs @@ -27,22 +27,22 @@ impl State { pub fn new(doc: Rope) -> Self { Self { doc, - selection: Selection::single(0, 0), + selection: Selection::point(0), } } // TODO: doc/selection accessors // TODO: be able to take either Rope or RopeSlice - #[inline] - pub fn doc(&self) -> &Rope { - &self.doc - } + // #[inline] + // pub fn doc(&self) -> &Rope { + // &self.doc + // } - #[inline] - pub fn selection(&self) -> &Selection { - &self.selection - } + // #[inline] + // pub fn selection(&self) -> &Selection { + // &self.selection + // } // pub fn doc(&self, range: R) -> RopeSlice // where diff --git a/helix-core/src/syntax.rs b/helix-core/src/syntax.rs index 15fc38c6..54aa78cf 100644 --- a/helix-core/src/syntax.rs +++ b/helix-core/src/syntax.rs @@ -1578,7 +1578,7 @@ fn test_input_edits() { let edits = LanguageLayer::generate_edits(state.doc.slice(..), &transaction.changes); transaction.apply(&mut state); - assert_eq!(state.doc(), "fn test(a: u32) {}"); + assert_eq!(state.doc, "fn test(a: u32) {}"); assert_eq!( edits, &[InputEdit { diff --git a/helix-core/src/transaction.rs b/helix-core/src/transaction.rs index e12aeebe..bd605305 100644 --- a/helix-core/src/transaction.rs +++ b/helix-core/src/transaction.rs @@ -443,7 +443,7 @@ impl Transaction { /// Generate a transaction that reverts this one. pub fn invert(&self, original: &State) -> Self { - let changes = self.changes.invert(original.doc()); + let changes = self.changes.invert(&original.doc); // Store the current cursor position let selection = original.selection.clone(); diff --git a/helix-term/src/commands.rs b/helix-term/src/commands.rs index edc38a48..36edde4c 100644 --- a/helix-term/src/commands.rs +++ b/helix-term/src/commands.rs @@ -942,7 +942,6 @@ pub fn yank(cx: &mut Context) { // TODO: should selections be made end inclusive? let doc = cx.doc(); let values = doc - .state .selection() .fragments(doc.text().slice(..)) .map(|cow| cow.into_owned()) diff --git a/helix-term/src/ui/editor.rs b/helix-term/src/ui/editor.rs index 68f25830..abdbb7a3 100644 --- a/helix-term/src/ui/editor.rs +++ b/helix-term/src/ui/editor.rs @@ -209,7 +209,6 @@ impl EditorView { for selection in view .doc - .state .selection() .ranges() .iter() diff --git a/helix-view/src/view.rs b/helix-view/src/view.rs index 15f0171f..5b269a9a 100644 --- a/helix-view/src/view.rs +++ b/helix-view/src/view.rs @@ -36,7 +36,7 @@ impl View { } pub fn ensure_cursor_in_view(&mut self) { - let cursor = self.doc.state.selection().cursor(); + let cursor = self.doc.selection().cursor(); let line = self.doc.text().char_to_line(cursor); let document_end = self.first_line + (self.area.height as usize).saturating_sub(2);