From eea0f35d3862c38aae1a4b2b1e8513ccabf6e755 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Thu, 21 Oct 2021 11:12:19 +0200 Subject: [PATCH] Rename TextBuffer back to Buffer --- crates/buffer/src/anchor.rs | 6 ++--- crates/buffer/src/lib.rs | 21 +++++++-------- crates/buffer/src/selection.rs | 8 +++--- crates/buffer/src/tests.rs | 28 ++++++++++---------- crates/language/src/lib.rs | 48 +++++++++++++++++----------------- 5 files changed, 55 insertions(+), 56 deletions(-) diff --git a/crates/buffer/src/anchor.rs b/crates/buffer/src/anchor.rs index 0a0d63d949..1ac82727df 100644 --- a/crates/buffer/src/anchor.rs +++ b/crates/buffer/src/anchor.rs @@ -1,6 +1,6 @@ use crate::Point; -use super::{Content, TextBuffer}; +use super::{Buffer, Content}; use anyhow::Result; use std::{cmp::Ordering, ops::Range}; use sum_tree::Bias; @@ -65,7 +65,7 @@ impl Anchor { Ok(offset_comparison.then_with(|| self.bias.cmp(&other.bias))) } - pub fn bias_left(&self, buffer: &TextBuffer) -> Anchor { + pub fn bias_left(&self, buffer: &Buffer) -> Anchor { if self.bias == Bias::Left { self.clone() } else { @@ -73,7 +73,7 @@ impl Anchor { } } - pub fn bias_right(&self, buffer: &TextBuffer) -> Anchor { + pub fn bias_right(&self, buffer: &Buffer) -> Anchor { if self.bias == Bias::Right { self.clone() } else { diff --git a/crates/buffer/src/lib.rs b/crates/buffer/src/lib.rs index 715cd12eb4..c2b1e8f6ca 100644 --- a/crates/buffer/src/lib.rs +++ b/crates/buffer/src/lib.rs @@ -56,7 +56,7 @@ type HashMap = std::collections::HashMap; type HashSet = std::collections::HashSet; #[derive(Clone)] -pub struct TextBuffer { +pub struct Buffer { fragments: SumTree, visible_text: Rope, deleted_text: Rope, @@ -441,8 +441,8 @@ pub struct UndoOperation { version: clock::Global, } -impl TextBuffer { - pub fn new(replica_id: u16, remote_id: u64, history: History) -> TextBuffer { +impl Buffer { + pub fn new(replica_id: u16, remote_id: u64, history: History) -> Buffer { let mut fragments = SumTree::new(); let visible_text = Rope::from(history.base_text.as_ref()); @@ -459,7 +459,7 @@ impl TextBuffer { ); } - TextBuffer { + Buffer { visible_text, deleted_text: Rope::new(), fragments, @@ -478,8 +478,7 @@ impl TextBuffer { } pub fn from_proto(replica_id: u16, message: proto::Buffer) -> Result { - let mut buffer = - TextBuffer::new(replica_id, message.id, History::new(message.content.into())); + let mut buffer = Buffer::new(replica_id, message.id, History::new(message.content.into())); let ops = message .history .into_iter() @@ -1369,7 +1368,7 @@ impl TextBuffer { } #[cfg(any(test, feature = "test-support"))] -impl TextBuffer { +impl Buffer { fn random_byte_range(&mut self, start_offset: usize, rng: &mut impl rand::Rng) -> Range { let end = self.clip_offset(rng.gen_range(start_offset..=self.len()), Bias::Right); let start = self.clip_offset(rng.gen_range(start_offset..=end), Bias::Right); @@ -1617,8 +1616,8 @@ impl<'a> From<&'a Snapshot> for Content<'a> { } } -impl<'a> From<&'a TextBuffer> for Content<'a> { - fn from(buffer: &'a TextBuffer) -> Self { +impl<'a> From<&'a Buffer> for Content<'a> { + fn from(buffer: &'a Buffer) -> Self { Self { visible_text: &buffer.visible_text, fragments: &buffer.fragments, @@ -1627,8 +1626,8 @@ impl<'a> From<&'a TextBuffer> for Content<'a> { } } -impl<'a> From<&'a mut TextBuffer> for Content<'a> { - fn from(buffer: &'a mut TextBuffer) -> Self { +impl<'a> From<&'a mut Buffer> for Content<'a> { + fn from(buffer: &'a mut Buffer) -> Self { Self { visible_text: &buffer.visible_text, fragments: &buffer.fragments, diff --git a/crates/buffer/src/selection.rs b/crates/buffer/src/selection.rs index 596c8dac56..98f34865f5 100644 --- a/crates/buffer/src/selection.rs +++ b/crates/buffer/src/selection.rs @@ -1,4 +1,4 @@ -use crate::{Anchor, Point, TextBuffer, ToOffset as _, ToPoint as _}; +use crate::{Anchor, Buffer, Point, ToOffset as _, ToPoint as _}; use std::{cmp::Ordering, mem, ops::Range}; pub type SelectionSetId = clock::Lamport; @@ -29,7 +29,7 @@ impl Selection { } } - pub fn set_head(&mut self, buffer: &TextBuffer, cursor: Anchor) { + pub fn set_head(&mut self, buffer: &Buffer, cursor: Anchor) { if cursor.cmp(self.tail(), buffer).unwrap() < Ordering::Equal { if !self.reversed { mem::swap(&mut self.start, &mut self.end); @@ -53,7 +53,7 @@ impl Selection { } } - pub fn point_range(&self, buffer: &TextBuffer) -> Range { + pub fn point_range(&self, buffer: &Buffer) -> Range { let start = self.start.to_point(buffer); let end = self.end.to_point(buffer); if self.reversed { @@ -63,7 +63,7 @@ impl Selection { } } - pub fn offset_range(&self, buffer: &TextBuffer) -> Range { + pub fn offset_range(&self, buffer: &Buffer) -> Range { let start = self.start.to_offset(buffer); let end = self.end.to_offset(buffer); if self.reversed { diff --git a/crates/buffer/src/tests.rs b/crates/buffer/src/tests.rs index 391dbf5ce6..bb29f7de98 100644 --- a/crates/buffer/src/tests.rs +++ b/crates/buffer/src/tests.rs @@ -10,7 +10,7 @@ use std::{ #[test] fn test_edit() { - let mut buffer = TextBuffer::new(0, 0, History::new("abc".into())); + let mut buffer = Buffer::new(0, 0, History::new("abc".into())); assert_eq!(buffer.text(), "abc"); buffer.edit(vec![3..3], "def"); assert_eq!(buffer.text(), "abcdef"); @@ -34,7 +34,7 @@ fn test_random_edits(mut rng: StdRng) { let mut reference_string = RandomCharIter::new(&mut rng) .take(reference_string_len) .collect::(); - let mut buffer = TextBuffer::new(0, 0, History::new(reference_string.clone().into())); + let mut buffer = Buffer::new(0, 0, History::new(reference_string.clone().into())); buffer.history.group_interval = Duration::from_millis(rng.gen_range(0..=200)); let mut buffer_versions = Vec::new(); log::info!( @@ -101,7 +101,7 @@ fn test_random_edits(mut rng: StdRng) { #[test] fn test_line_len() { - let mut buffer = TextBuffer::new(0, 0, History::new("".into())); + let mut buffer = Buffer::new(0, 0, History::new("".into())); buffer.edit(vec![0..0], "abcd\nefg\nhij"); buffer.edit(vec![12..12], "kl\nmno"); buffer.edit(vec![18..18], "\npqrs\n"); @@ -117,7 +117,7 @@ fn test_line_len() { #[test] fn test_text_summary_for_range() { - let buffer = TextBuffer::new(0, 0, History::new("ab\nefg\nhklm\nnopqrs\ntuvwxyz".into())); + let buffer = Buffer::new(0, 0, History::new("ab\nefg\nhklm\nnopqrs\ntuvwxyz".into())); assert_eq!( buffer.text_summary_for_range(1..3), TextSummary { @@ -177,7 +177,7 @@ fn test_text_summary_for_range() { #[test] fn test_chars_at() { - let mut buffer = TextBuffer::new(0, 0, History::new("".into())); + let mut buffer = Buffer::new(0, 0, History::new("".into())); buffer.edit(vec![0..0], "abcd\nefgh\nij"); buffer.edit(vec![12..12], "kl\nmno"); buffer.edit(vec![18..18], "\npqrs"); @@ -199,7 +199,7 @@ fn test_chars_at() { assert_eq!(chars.collect::(), "PQrs"); // Regression test: - let mut buffer = TextBuffer::new(0, 0, History::new("".into())); + let mut buffer = Buffer::new(0, 0, History::new("".into())); buffer.edit(vec![0..0], "[workspace]\nmembers = [\n \"xray_core\",\n \"xray_server\",\n \"xray_cli\",\n \"xray_wasm\",\n]\n"); buffer.edit(vec![60..60], "\n"); @@ -209,7 +209,7 @@ fn test_chars_at() { #[test] fn test_anchors() { - let mut buffer = TextBuffer::new(0, 0, History::new("".into())); + let mut buffer = Buffer::new(0, 0, History::new("".into())); buffer.edit(vec![0..0], "abc"); let left_anchor = buffer.anchor_before(2); let right_anchor = buffer.anchor_after(2); @@ -345,7 +345,7 @@ fn test_anchors() { #[test] fn test_anchors_at_start_and_end() { - let mut buffer = TextBuffer::new(0, 0, History::new("".into())); + let mut buffer = Buffer::new(0, 0, History::new("".into())); let before_start_anchor = buffer.anchor_before(0); let after_end_anchor = buffer.anchor_after(0); @@ -368,7 +368,7 @@ fn test_anchors_at_start_and_end() { #[test] fn test_undo_redo() { - let mut buffer = TextBuffer::new(0, 0, History::new("1234".into())); + let mut buffer = Buffer::new(0, 0, History::new("1234".into())); // Set group interval to zero so as to not group edits in the undo stack. buffer.history.group_interval = Duration::from_secs(0); @@ -405,7 +405,7 @@ fn test_undo_redo() { #[test] fn test_history() { let mut now = Instant::now(); - let mut buffer = TextBuffer::new(0, 0, History::new("123456".into())); + let mut buffer = Buffer::new(0, 0, History::new("123456".into())); let set_id = if let Operation::UpdateSelections { set_id, .. } = buffer.add_selection_set(buffer.selections_from_ranges(vec![4..4]).unwrap()) @@ -472,9 +472,9 @@ fn test_history() { fn test_concurrent_edits() { let text = "abcdef"; - let mut buffer1 = TextBuffer::new(1, 0, History::new(text.into())); - let mut buffer2 = TextBuffer::new(2, 0, History::new(text.into())); - let mut buffer3 = TextBuffer::new(3, 0, History::new(text.into())); + let mut buffer1 = Buffer::new(1, 0, History::new(text.into())); + let mut buffer2 = Buffer::new(2, 0, History::new(text.into())); + let mut buffer3 = Buffer::new(3, 0, History::new(text.into())); let buf1_op = buffer1.edit(vec![1..2], "12"); assert_eq!(buffer1.text(), "a12cdef"); @@ -513,7 +513,7 @@ fn test_random_concurrent_edits(mut rng: StdRng) { let mut network = Network::new(rng.clone()); for i in 0..peers { - let mut buffer = TextBuffer::new(i as ReplicaId, 0, History::new(base_text.clone().into())); + let mut buffer = Buffer::new(i as ReplicaId, 0, History::new(base_text.clone().into())); buffer.history.group_interval = Duration::from_millis(rng.gen_range(0..=200)); buffers.push(buffer); replica_ids.push(i as u16); diff --git a/crates/language/src/lib.rs b/crates/language/src/lib.rs index d05d0811a4..d364513084 100644 --- a/crates/language/src/lib.rs +++ b/crates/language/src/lib.rs @@ -8,7 +8,7 @@ pub use self::{ language::{BracketPair, Language, LanguageConfig, LanguageRegistry}, }; use anyhow::{anyhow, Result}; -pub use buffer::*; +pub use buffer::{Buffer as TextBuffer, *}; use clock::ReplicaId; use gpui::{AppContext, Entity, ModelContext, MutableAppContext, Task}; use lazy_static::lazy_static; @@ -44,7 +44,7 @@ lazy_static! { const INDENT_SIZE: u32 = 4; pub struct Buffer { - buffer: TextBuffer, + text: TextBuffer, file: Option>, saved_version: clock::Global, saved_mtime: SystemTime, @@ -223,7 +223,7 @@ impl Buffer { } let mut result = Self { - buffer, + text: buffer, saved_mtime, saved_version: clock::Global::new(), file, @@ -244,7 +244,7 @@ impl Buffer { pub fn snapshot(&self) -> Snapshot { Snapshot { - text: self.buffer.snapshot(), + text: self.text.snapshot(), tree: self.syntax_tree(), is_parsing: self.parsing_in_background, language: self.language.clone(), @@ -630,9 +630,9 @@ impl Buffer { .selections .iter() .map(|selection| { - let start_point = selection.start.to_point(&self.buffer); + let start_point = selection.start.to_point(&self.text); if start_point.column == 0 { - let end_point = selection.end.to_point(&self.buffer); + let end_point = selection.end.to_point(&self.text); let delta = Point::new( 0, indent_columns.get(&start_point.row).copied().unwrap_or(0), @@ -801,7 +801,7 @@ impl Buffer { selection_set_ids: impl IntoIterator, now: Instant, ) -> Result<()> { - self.buffer.start_transaction_at(selection_set_ids, now) + self.text.start_transaction_at(selection_set_ids, now) } pub fn end_transaction( @@ -818,7 +818,7 @@ impl Buffer { now: Instant, cx: &mut ModelContext, ) -> Result<()> { - if let Some(start_version) = self.buffer.end_transaction_at(selection_set_ids, now) { + if let Some(start_version) = self.text.end_transaction_at(selection_set_ids, now) { cx.notify(); let was_dirty = start_version != self.saved_version; let edited = self.edits_since(start_version).next().is_some(); @@ -905,7 +905,7 @@ impl Buffer { let first_newline_ix = new_text.find('\n'); let new_text_len = new_text.len(); - let edit = self.buffer.edit(ranges.iter().cloned(), new_text); + let edit = self.text.edit(ranges.iter().cloned(), new_text); if let Some((before_edit, edited)) = autoindent_request { let mut inserted = None; @@ -920,7 +920,7 @@ impl Buffer { } let selection_set_ids = self - .buffer + .text .peek_undo_stack() .unwrap() .starting_selection_set_ids() @@ -949,7 +949,7 @@ impl Buffer { selections: impl Into>, cx: &mut ModelContext, ) -> SelectionSetId { - let operation = self.buffer.add_selection_set(selections); + let operation = self.text.add_selection_set(selections); if let Operation::UpdateSelections { set_id, .. } = &operation { let set_id = *set_id; cx.notify(); @@ -966,7 +966,7 @@ impl Buffer { selections: impl Into>, cx: &mut ModelContext, ) -> Result<()> { - let operation = self.buffer.update_selection_set(set_id, selections)?; + let operation = self.text.update_selection_set(set_id, selections)?; cx.notify(); self.send_operation(operation, cx); Ok(()) @@ -977,7 +977,7 @@ impl Buffer { set_id: Option, cx: &mut ModelContext, ) -> Result<()> { - let operation = self.buffer.set_active_selection_set(set_id)?; + let operation = self.text.set_active_selection_set(set_id)?; self.send_operation(operation, cx); Ok(()) } @@ -987,7 +987,7 @@ impl Buffer { set_id: SelectionSetId, cx: &mut ModelContext, ) -> Result<()> { - let operation = self.buffer.remove_selection_set(set_id)?; + let operation = self.text.remove_selection_set(set_id)?; cx.notify(); self.send_operation(operation, cx); Ok(()) @@ -1003,7 +1003,7 @@ impl Buffer { let was_dirty = self.is_dirty(); let old_version = self.version.clone(); - self.buffer.apply_ops(ops)?; + self.text.apply_ops(ops)?; cx.notify(); if self.edits_since(old_version).next().is_some() { @@ -1027,7 +1027,7 @@ impl Buffer { } pub fn remove_peer(&mut self, replica_id: ReplicaId, cx: &mut ModelContext) { - self.buffer.remove_peer(replica_id); + self.text.remove_peer(replica_id); cx.notify(); } @@ -1035,7 +1035,7 @@ impl Buffer { let was_dirty = self.is_dirty(); let old_version = self.version.clone(); - for operation in self.buffer.undo() { + for operation in self.text.undo() { self.send_operation(operation, cx); } @@ -1050,7 +1050,7 @@ impl Buffer { let was_dirty = self.is_dirty(); let old_version = self.version.clone(); - for operation in self.buffer.redo() { + for operation in self.text.redo() { self.send_operation(operation, cx); } @@ -1068,14 +1068,14 @@ impl Buffer { where T: rand::Rng, { - self.buffer.randomly_edit(rng, old_range_count); + self.text.randomly_edit(rng, old_range_count); } pub fn randomly_mutate(&mut self, rng: &mut T) where T: rand::Rng, { - self.buffer.randomly_mutate(rng); + self.text.randomly_mutate(rng); } } @@ -1092,7 +1092,7 @@ impl Entity for Buffer { impl Clone for Buffer { fn clone(&self) -> Self { Self { - buffer: self.buffer.clone(), + text: self.text.clone(), saved_version: self.saved_version.clone(), saved_mtime: self.saved_mtime, file: self.file.as_ref().map(|f| f.boxed_clone()), @@ -1114,19 +1114,19 @@ impl Deref for Buffer { type Target = TextBuffer; fn deref(&self) -> &Self::Target { - &self.buffer + &self.text } } impl<'a> From<&'a Buffer> for Content<'a> { fn from(buffer: &'a Buffer) -> Self { - Self::from(&buffer.buffer) + Self::from(&buffer.text) } } impl<'a> From<&'a mut Buffer> for Content<'a> { fn from(buffer: &'a mut Buffer) -> Self { - Self::from(&buffer.buffer) + Self::from(&buffer.text) } }