Get Editor compiling with MultiBuffer as its buffer

There's a bunch of unimplemented methods in MultiBuffer, but everything compiles.

Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
This commit is contained in:
Nathan Sobo
2021-12-08 19:23:04 -07:00
co-authored by Max Brunsfeld
parent daedf179b2
commit 87d16c271e
18 changed files with 929 additions and 448 deletions
+7 -7
View File
@@ -974,7 +974,7 @@ mod tests {
display_map::{fold_map::FoldMap, tab_map::TabMap},
test::Observer,
};
use language::{Buffer, RandomCharIter};
use language::{multi_buffer::MultiBuffer, RandomCharIter};
use rand::prelude::*;
use std::{cmp, env};
use text::Rope;
@@ -1004,12 +1004,12 @@ mod tests {
log::info!("Tab size: {}", tab_size);
log::info!("Wrap width: {:?}", wrap_width);
let buffer = cx.add_model(|cx| {
let buffer = cx.update(|cx| {
let len = rng.gen_range(0..10);
let text = RandomCharIter::new(&mut rng).take(len).collect::<String>();
Buffer::new(0, text, cx)
MultiBuffer::build_simple(&text, cx)
});
let buffer_snapshot = buffer.read_with(&cx, |buffer, _| buffer.snapshot());
let buffer_snapshot = buffer.read_with(&cx, |buffer, cx| buffer.snapshot(cx));
let (mut fold_map, folds_snapshot) = FoldMap::new(buffer_snapshot.clone());
let (tab_map, tabs_snapshot) = TabMap::new(folds_snapshot.clone(), tab_size);
log::info!(
@@ -1074,15 +1074,15 @@ mod tests {
}
_ => {
buffer.update(&mut cx, |buffer, cx| {
let v0 = buffer.version();
let subscription = buffer.subscribe();
let edit_count = rng.gen_range(1..=5);
buffer.randomly_edit(&mut rng, edit_count, cx);
buffer_edits.extend(buffer.edits_since(&v0));
buffer_edits.extend(subscription.consume());
});
}
}
let buffer_snapshot = buffer.read_with(&cx, |buffer, _| buffer.snapshot());
let buffer_snapshot = buffer.read_with(&cx, |buffer, cx| buffer.snapshot(cx));
log::info!("Unwrapped text (no folds): {:?}", buffer_snapshot.text());
let (folds_snapshot, fold_edits) = fold_map.read(buffer_snapshot, buffer_edits);
log::info!(