Skip over folded regions when iterating over multibuffer chunks (#15646)
This commit weaves through new APIs for language::BufferChunks, multi_buffer::MultiBufferChunks and inlay_map::InlayChunks that allow seeking with an upper-bound. This allows us to omit doing syntax highligting and looking up diagnostics for folded ranges. This in turn directly improves performance of assistant panel with large contexts. Release Notes: - Fixed poor performance when editing in the assistant panel after inserting large files using slash commands --------- Co-authored-by: Max <max@zed.dev> Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
This commit is contained in:
parent
390815dd76
commit
ad11d83724
9 changed files with 261 additions and 106 deletions
|
@ -615,6 +615,11 @@ impl<'a> Chunks<'a> {
|
|||
self.offset = offset;
|
||||
}
|
||||
|
||||
pub fn set_range(&mut self, range: Range<usize>) {
|
||||
self.range = range.clone();
|
||||
self.seek(range.start);
|
||||
}
|
||||
|
||||
/// Moves this cursor to the start of the next line in the rope.
|
||||
///
|
||||
/// This method advances the cursor to the beginning of the next line.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue