chore: Bump Rust edition to 2024 (#27800)

Follow-up to https://github.com/zed-industries/zed/pull/27791

Release Notes:

- N/A
This commit is contained in:
Piotr Osiewicz 2025-03-31 20:55:27 +02:00 committed by GitHub
parent d50905e000
commit dc64ec9cc8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
802 changed files with 3775 additions and 3662 deletions

View file

@ -1,6 +1,6 @@
use super::{
wrap_map::{self, WrapEdit, WrapPoint, WrapSnapshot},
Highlights,
wrap_map::{self, WrapEdit, WrapPoint, WrapSnapshot},
};
use crate::{EditorStyle, GutterDimensions};
use collections::{Bound, HashMap, HashSet};
@ -17,8 +17,8 @@ use std::{
fmt::Debug,
ops::{Deref, DerefMut, Range, RangeBounds, RangeInclusive},
sync::{
atomic::{AtomicUsize, Ordering::SeqCst},
Arc,
atomic::{AtomicUsize, Ordering::SeqCst},
},
};
use sum_tree::{Bias, SumTree, Summary, TreeMap};
@ -1282,8 +1282,8 @@ impl BlockSnapshot {
let mut cursor = self.transforms.cursor::<(BlockRow, WrapRow)>(&());
cursor.seek(&BlockRow(rows.start), Bias::Right, &());
let transform_output_start = cursor.start().0 .0;
let transform_input_start = cursor.start().1 .0;
let transform_output_start = cursor.start().0.0;
let transform_input_start = cursor.start().1.0;
let mut input_start = transform_input_start;
let mut input_end = transform_input_start;
@ -1441,7 +1441,7 @@ impl BlockSnapshot {
let wrap_start_row = input_start.0 + overshoot;
let wrap_end_row = cmp::min(
input_start.0 + (range.end.0 - output_start.0),
cursor.end(&()).1 .0,
cursor.end(&()).1.0,
);
let summary = self
.wrap_snapshot
@ -1532,7 +1532,7 @@ impl BlockSnapshot {
let max_input_row = WrapRow(self.transforms.summary().input_rows);
let mut search_left =
(bias == Bias::Left && cursor.start().1 .0 > 0) || cursor.end(&()).1 == max_input_row;
(bias == Bias::Left && cursor.start().1.0 > 0) || cursor.end(&()).1 == max_input_row;
let mut reversed = false;
loop {
@ -1591,7 +1591,7 @@ impl BlockSnapshot {
cursor.seek(&WrapRow(wrap_point.row()), Bias::Right, &());
if let Some(transform) = cursor.item() {
if transform.block.is_some() {
BlockPoint::new(cursor.start().1 .0, 0)
BlockPoint::new(cursor.start().1.0, 0)
} else {
let (input_start_row, output_start_row) = cursor.start();
let input_start = Point::new(input_start_row.0, 0);
@ -1611,20 +1611,20 @@ impl BlockSnapshot {
match transform.block.as_ref() {
Some(block) => {
if block.place_below() {
let wrap_row = cursor.start().1 .0 - 1;
let wrap_row = cursor.start().1.0 - 1;
WrapPoint::new(wrap_row, self.wrap_snapshot.line_len(wrap_row))
} else if block.place_above() {
WrapPoint::new(cursor.start().1 .0, 0)
WrapPoint::new(cursor.start().1.0, 0)
} else if bias == Bias::Left {
WrapPoint::new(cursor.start().1 .0, 0)
WrapPoint::new(cursor.start().1.0, 0)
} else {
let wrap_row = cursor.end(&()).1 .0 - 1;
let wrap_row = cursor.end(&()).1.0 - 1;
WrapPoint::new(wrap_row, self.wrap_snapshot.line_len(wrap_row))
}
}
None => {
let overshoot = block_point.row - cursor.start().0 .0;
let wrap_row = cursor.start().1 .0 + overshoot;
let overshoot = block_point.row - cursor.start().0.0;
let wrap_row = cursor.start().1.0 + overshoot;
WrapPoint::new(wrap_row, block_point.column)
}
}
@ -1656,11 +1656,11 @@ impl BlockChunks<'_> {
.item()
.map_or(false, |transform| transform.block.is_none())
{
let start_input_row = self.transforms.start().1 .0;
let start_output_row = self.transforms.start().0 .0;
let start_input_row = self.transforms.start().1.0;
let start_output_row = self.transforms.start().0.0;
if start_output_row < self.max_output_row {
let end_input_row = cmp::min(
self.transforms.end(&()).1 .0,
self.transforms.end(&()).1.0,
start_input_row + (self.max_output_row - start_output_row),
);
self.input_chunks.seek(start_input_row..end_input_row);
@ -1683,8 +1683,8 @@ impl<'a> Iterator for BlockChunks<'a> {
let transform = self.transforms.item()?;
if transform.block.is_some() {
let block_start = self.transforms.start().0 .0;
let mut block_end = self.transforms.end(&()).0 .0;
let block_start = self.transforms.start().0.0;
let mut block_end = self.transforms.end(&()).0.0;
self.advance();
if self.transforms.item().is_none() {
block_end -= 1;
@ -1719,7 +1719,7 @@ impl<'a> Iterator for BlockChunks<'a> {
}
}
let transform_end = self.transforms.end(&()).0 .0;
let transform_end = self.transforms.end(&()).0.0;
let (prefix_rows, prefix_bytes) =
offset_for_row(self.input_chunk.text, transform_end - self.output_row);
self.output_row += prefix_rows;
@ -1758,7 +1758,7 @@ impl Iterator for BlockRows<'_> {
self.started = true;
}
if self.output_row.0 >= self.transforms.end(&()).0 .0 {
if self.output_row.0 >= self.transforms.end(&()).0.0 {
self.transforms.next(&());
while let Some(transform) = self.transforms.item() {
if transform
@ -1778,7 +1778,7 @@ impl Iterator for BlockRows<'_> {
.as_ref()
.map_or(true, |block| block.is_replacement())
{
self.input_rows.seek(self.transforms.start().1 .0);
self.input_rows.seek(self.transforms.start().1.0);
}
}
@ -1913,7 +1913,7 @@ mod tests {
display_map::{fold_map::FoldMap, inlay_map::InlayMap, tab_map::TabMap, wrap_map::WrapMap},
test::test_font,
};
use gpui::{div, font, px, App, AppContext as _, Element};
use gpui::{App, AppContext as _, Element, div, font, px};
use itertools::Itertools;
use language::{Buffer, Capability};
use multi_buffer::{ExcerptRange, MultiBuffer};

View file

@ -389,7 +389,7 @@ impl SeekTarget<'_, ItemSummary, ItemSummary> for Anchor {
#[cfg(test)]
mod test {
use super::*;
use gpui::{div, App};
use gpui::{App, div};
use multi_buffer::MultiBuffer;
#[gpui::test]
@ -419,24 +419,32 @@ mod test {
// Verify creases are inserted
let crease_snapshot = crease_map.snapshot();
assert!(crease_snapshot
.query_row(MultiBufferRow(1), &snapshot)
.is_some());
assert!(crease_snapshot
.query_row(MultiBufferRow(3), &snapshot)
.is_some());
assert!(
crease_snapshot
.query_row(MultiBufferRow(1), &snapshot)
.is_some()
);
assert!(
crease_snapshot
.query_row(MultiBufferRow(3), &snapshot)
.is_some()
);
// Remove creases
crease_map.remove(crease_ids, &snapshot);
// Verify creases are removed
let crease_snapshot = crease_map.snapshot();
assert!(crease_snapshot
.query_row(MultiBufferRow(1), &snapshot)
.is_none());
assert!(crease_snapshot
.query_row(MultiBufferRow(3), &snapshot)
.is_none());
assert!(
crease_snapshot
.query_row(MultiBufferRow(1), &snapshot)
.is_none()
);
assert!(
crease_snapshot
.query_row(MultiBufferRow(3), &snapshot)
.is_none()
);
}
#[gpui::test]

View file

@ -1,6 +1,6 @@
use super::{
inlay_map::{InlayBufferRows, InlayChunks, InlayEdit, InlayOffset, InlayPoint, InlaySnapshot},
Highlights,
inlay_map::{InlayBufferRows, InlayChunks, InlayEdit, InlayOffset, InlayPoint, InlaySnapshot},
};
use gpui::{AnyElement, App, ElementId};
use language::{Chunk, ChunkRenderer, Edit, Point, TextSummary};
@ -97,8 +97,8 @@ impl FoldPoint {
pub fn to_inlay_point(self, snapshot: &FoldSnapshot) -> InlayPoint {
let mut cursor = snapshot.transforms.cursor::<(FoldPoint, InlayPoint)>(&());
cursor.seek(&self, Bias::Right, &());
let overshoot = self.0 - cursor.start().0 .0;
InlayPoint(cursor.start().1 .0 + overshoot)
let overshoot = self.0 - cursor.start().0.0;
InlayPoint(cursor.start().1.0 + overshoot)
}
pub fn to_offset(self, snapshot: &FoldSnapshot) -> FoldOffset {
@ -527,7 +527,7 @@ impl FoldMap {
edit.old.start = old_transforms.start().0;
}
let old_start =
old_transforms.start().1 .0 + (edit.old.start - old_transforms.start().0).0;
old_transforms.start().1.0 + (edit.old.start - old_transforms.start().0).0;
old_transforms.seek_forward(&edit.old.end, Bias::Right, &());
if old_transforms.item().map_or(false, |t| t.is_fold()) {
@ -535,14 +535,14 @@ impl FoldMap {
edit.old.end = old_transforms.start().0;
}
let old_end =
old_transforms.start().1 .0 + (edit.old.end - old_transforms.start().0).0;
old_transforms.start().1.0 + (edit.old.end - old_transforms.start().0).0;
new_transforms.seek(&edit.new.start, Bias::Left, &());
if new_transforms.item().map_or(false, |t| t.is_fold()) {
edit.new.start = new_transforms.start().0;
}
let new_start =
new_transforms.start().1 .0 + (edit.new.start - new_transforms.start().0).0;
new_transforms.start().1.0 + (edit.new.start - new_transforms.start().0).0;
new_transforms.seek_forward(&edit.new.end, Bias::Right, &());
if new_transforms.item().map_or(false, |t| t.is_fold()) {
@ -550,7 +550,7 @@ impl FoldMap {
edit.new.end = new_transforms.start().0;
}
let new_end =
new_transforms.start().1 .0 + (edit.new.end - new_transforms.start().0).0;
new_transforms.start().1.0 + (edit.new.end - new_transforms.start().0).0;
fold_edits.push(FoldEdit {
old: FoldOffset(old_start)..FoldOffset(old_end),
@ -600,8 +600,8 @@ impl FoldSnapshot {
let mut cursor = self.transforms.cursor::<(FoldPoint, InlayPoint)>(&());
cursor.seek(&range.start, Bias::Right, &());
if let Some(transform) = cursor.item() {
let start_in_transform = range.start.0 - cursor.start().0 .0;
let end_in_transform = cmp::min(range.end, cursor.end(&()).0).0 - cursor.start().0 .0;
let start_in_transform = range.start.0 - cursor.start().0.0;
let end_in_transform = cmp::min(range.end, cursor.end(&()).0).0 - cursor.start().0.0;
if let Some(placeholder) = transform.placeholder.as_ref() {
summary = TextSummary::from(
&placeholder.text
@ -610,10 +610,10 @@ impl FoldSnapshot {
} else {
let inlay_start = self
.inlay_snapshot
.to_offset(InlayPoint(cursor.start().1 .0 + start_in_transform));
.to_offset(InlayPoint(cursor.start().1.0 + start_in_transform));
let inlay_end = self
.inlay_snapshot
.to_offset(InlayPoint(cursor.start().1 .0 + end_in_transform));
.to_offset(InlayPoint(cursor.start().1.0 + end_in_transform));
summary = self
.inlay_snapshot
.text_summary_for_range(inlay_start..inlay_end);
@ -626,7 +626,7 @@ impl FoldSnapshot {
.summary::<_, TransformSummary>(&range.end, Bias::Right, &())
.output;
if let Some(transform) = cursor.item() {
let end_in_transform = range.end.0 - cursor.start().0 .0;
let end_in_transform = range.end.0 - cursor.start().0.0;
if let Some(placeholder) = transform.placeholder.as_ref() {
summary +=
TextSummary::from(&placeholder.text[..end_in_transform.column as usize]);
@ -634,7 +634,7 @@ impl FoldSnapshot {
let inlay_start = self.inlay_snapshot.to_offset(cursor.start().1);
let inlay_end = self
.inlay_snapshot
.to_offset(InlayPoint(cursor.start().1 .0 + end_in_transform));
.to_offset(InlayPoint(cursor.start().1.0 + end_in_transform));
summary += self
.inlay_snapshot
.text_summary_for_range(inlay_start..inlay_end);
@ -655,10 +655,10 @@ impl FoldSnapshot {
cursor.end(&()).1
}
} else {
let overshoot = point.0 - cursor.start().0 .0;
let overshoot = point.0 - cursor.start().0.0;
FoldPoint(cmp::min(
cursor.start().1 .0 + overshoot,
cursor.end(&()).1 .0,
cursor.start().1.0 + overshoot,
cursor.end(&()).1.0,
))
}
}
@ -686,8 +686,8 @@ impl FoldSnapshot {
let mut cursor = self.transforms.cursor::<(FoldPoint, InlayPoint)>(&());
cursor.seek(&fold_point, Bias::Left, &());
let overshoot = fold_point.0 - cursor.start().0 .0;
let inlay_point = InlayPoint(cursor.start().1 .0 + overshoot);
let overshoot = fold_point.0 - cursor.start().0.0;
let inlay_point = InlayPoint(cursor.start().1.0 + overshoot);
let input_rows = self.inlay_snapshot.row_infos(inlay_point.row());
FoldRows {
@ -769,7 +769,7 @@ impl FoldSnapshot {
transform_cursor.seek(&range.start, Bias::Right, &());
let inlay_start = {
let overshoot = range.start.0 - transform_cursor.start().0 .0;
let overshoot = range.start.0 - transform_cursor.start().0.0;
transform_cursor.start().1 + InlayOffset(overshoot)
};
@ -781,7 +781,7 @@ impl FoldSnapshot {
{
inlay_start
} else if range.end < transform_end.0 {
let overshoot = range.end.0 - transform_cursor.start().0 .0;
let overshoot = range.end.0 - transform_cursor.start().0.0;
transform_cursor.start().1 + InlayOffset(overshoot)
} else {
transform_end.1
@ -823,18 +823,18 @@ impl FoldSnapshot {
let mut cursor = self.transforms.cursor::<(FoldPoint, InlayPoint)>(&());
cursor.seek(&point, Bias::Right, &());
if let Some(transform) = cursor.item() {
let transform_start = cursor.start().0 .0;
let transform_start = cursor.start().0.0;
if transform.placeholder.is_some() {
if point.0 == transform_start || matches!(bias, Bias::Left) {
FoldPoint(transform_start)
} else {
FoldPoint(cursor.end(&()).0 .0)
FoldPoint(cursor.end(&()).0.0)
}
} else {
let overshoot = InlayPoint(point.0 - transform_start);
let inlay_point = cursor.start().1 + overshoot;
let clipped_inlay_point = self.inlay_snapshot.clip_point(inlay_point, bias);
FoldPoint(cursor.start().0 .0 + (clipped_inlay_point - cursor.start().1).0)
FoldPoint(cursor.start().0.0 + (clipped_inlay_point - cursor.start().1).0)
}
} else {
FoldPoint(self.transforms.summary().output.lines)
@ -1148,8 +1148,8 @@ impl FoldRows<'_> {
pub(crate) fn seek(&mut self, row: u32) {
let fold_point = FoldPoint::new(row, 0);
self.cursor.seek(&fold_point, Bias::Left, &());
let overshoot = fold_point.0 - self.cursor.start().0 .0;
let inlay_point = InlayPoint(self.cursor.start().1 .0 + overshoot);
let overshoot = fold_point.0 - self.cursor.start().0.0;
let inlay_point = InlayPoint(self.cursor.start().1.0 + overshoot);
self.input_rows.seek(inlay_point.row());
self.fold_point = fold_point;
}
@ -1170,7 +1170,7 @@ impl Iterator for FoldRows<'_> {
if self.cursor.item().is_some() {
if traversed_fold {
self.input_rows.seek(self.cursor.start().1 .0.row);
self.input_rows.seek(self.cursor.start().1.0.row);
self.input_rows.next();
}
*self.fold_point.row_mut() += 1;
@ -1195,7 +1195,7 @@ impl FoldChunks<'_> {
self.transform_cursor.seek(&range.start, Bias::Right, &());
let inlay_start = {
let overshoot = range.start.0 - self.transform_cursor.start().0 .0;
let overshoot = range.start.0 - self.transform_cursor.start().0.0;
self.transform_cursor.start().1 + InlayOffset(overshoot)
};
@ -1208,7 +1208,7 @@ impl FoldChunks<'_> {
{
inlay_start
} else if range.end < transform_end.0 {
let overshoot = range.end.0 - self.transform_cursor.start().0 .0;
let overshoot = range.end.0 - self.transform_cursor.start().0.0;
self.transform_cursor.start().1 + InlayOffset(overshoot)
} else {
transform_end.1
@ -1260,7 +1260,7 @@ impl<'a> Iterator for FoldChunks<'a> {
let transform_start = self.transform_cursor.start();
let transform_end = self.transform_cursor.end(&());
let inlay_end = if self.max_output_offset < transform_end.0 {
let overshoot = self.max_output_offset.0 - transform_start.0 .0;
let overshoot = self.max_output_offset.0 - transform_start.0.0;
transform_start.1 + InlayOffset(overshoot)
} else {
transform_end.1
@ -1309,9 +1309,9 @@ impl FoldOffset {
.cursor::<(FoldOffset, TransformSummary)>(&());
cursor.seek(&self, Bias::Right, &());
let overshoot = if cursor.item().map_or(true, |t| t.is_fold()) {
Point::new(0, (self.0 - cursor.start().0 .0) as u32)
Point::new(0, (self.0 - cursor.start().0.0) as u32)
} else {
let inlay_offset = cursor.start().1.input.len + self.0 - cursor.start().0 .0;
let inlay_offset = cursor.start().1.input.len + self.0 - cursor.start().0.0;
let inlay_point = snapshot.inlay_snapshot.to_point(InlayOffset(inlay_offset));
inlay_point.0 - cursor.start().1.input.lines
};
@ -1322,8 +1322,8 @@ impl FoldOffset {
pub fn to_inlay_offset(self, snapshot: &FoldSnapshot) -> InlayOffset {
let mut cursor = snapshot.transforms.cursor::<(FoldOffset, InlayOffset)>(&());
cursor.seek(&self, Bias::Right, &());
let overshoot = self.0 - cursor.start().0 .0;
InlayOffset(cursor.start().1 .0 + overshoot)
let overshoot = self.0 - cursor.start().0.0;
InlayOffset(cursor.start().1.0 + overshoot)
}
}
@ -1384,15 +1384,15 @@ pub type FoldEdit = Edit<FoldOffset>;
#[cfg(test)]
mod tests {
use super::*;
use crate::{display_map::inlay_map::InlayMap, MultiBuffer, ToPoint};
use crate::{MultiBuffer, ToPoint, display_map::inlay_map::InlayMap};
use Bias::{Left, Right};
use collections::HashSet;
use rand::prelude::*;
use settings::SettingsStore;
use std::{env, mem};
use text::Patch;
use util::test::sample_text;
use util::RandomCharIter;
use Bias::{Left, Right};
use util::test::sample_text;
#[gpui::test]
fn test_basic_folds(cx: &mut gpui::App) {

View file

@ -11,7 +11,7 @@ use std::{
use sum_tree::{Bias, Cursor, SumTree};
use text::{Patch, Rope};
use super::{custom_highlights::CustomHighlightsChunks, Highlights};
use super::{Highlights, custom_highlights::CustomHighlightsChunks};
/// Decides where the [`Inlay`]s should be displayed.
///
@ -254,7 +254,7 @@ impl<'a> Iterator for InlayChunks<'a> {
chunk
.text
.len()
.min(self.transforms.end(&()).0 .0 - self.output_offset.0),
.min(self.transforms.end(&()).0.0 - self.output_offset.0),
);
chunk.text = suffix;
@ -352,7 +352,7 @@ impl InlayBufferRows<'_> {
} else {
match self.transforms.item() {
Some(Transform::Isomorphic(_)) => {
buffer_point += inlay_point.0 - self.transforms.start().0 .0;
buffer_point += inlay_point.0 - self.transforms.start().0.0;
buffer_point.row
}
_ => cmp::min(buffer_point.row + 1, self.max_buffer_row.0),
@ -664,18 +664,18 @@ impl InlaySnapshot {
.transforms
.cursor::<(InlayOffset, (InlayPoint, usize))>(&());
cursor.seek(&offset, Bias::Right, &());
let overshoot = offset.0 - cursor.start().0 .0;
let overshoot = offset.0 - cursor.start().0.0;
match cursor.item() {
Some(Transform::Isomorphic(_)) => {
let buffer_offset_start = cursor.start().1 .1;
let buffer_offset_start = cursor.start().1.1;
let buffer_offset_end = buffer_offset_start + overshoot;
let buffer_start = self.buffer.offset_to_point(buffer_offset_start);
let buffer_end = self.buffer.offset_to_point(buffer_offset_end);
InlayPoint(cursor.start().1 .0 .0 + (buffer_end - buffer_start))
InlayPoint(cursor.start().1.0.0 + (buffer_end - buffer_start))
}
Some(Transform::Inlay(inlay)) => {
let overshoot = inlay.text.offset_to_point(overshoot);
InlayPoint(cursor.start().1 .0 .0 + overshoot)
InlayPoint(cursor.start().1.0.0 + overshoot)
}
None => self.max_point(),
}
@ -694,18 +694,18 @@ impl InlaySnapshot {
.transforms
.cursor::<(InlayPoint, (InlayOffset, Point))>(&());
cursor.seek(&point, Bias::Right, &());
let overshoot = point.0 - cursor.start().0 .0;
let overshoot = point.0 - cursor.start().0.0;
match cursor.item() {
Some(Transform::Isomorphic(_)) => {
let buffer_point_start = cursor.start().1 .1;
let buffer_point_start = cursor.start().1.1;
let buffer_point_end = buffer_point_start + overshoot;
let buffer_offset_start = self.buffer.point_to_offset(buffer_point_start);
let buffer_offset_end = self.buffer.point_to_offset(buffer_point_end);
InlayOffset(cursor.start().1 .0 .0 + (buffer_offset_end - buffer_offset_start))
InlayOffset(cursor.start().1.0.0 + (buffer_offset_end - buffer_offset_start))
}
Some(Transform::Inlay(inlay)) => {
let overshoot = inlay.text.point_to_offset(overshoot);
InlayOffset(cursor.start().1 .0 .0 + overshoot)
InlayOffset(cursor.start().1.0.0 + overshoot)
}
None => self.len(),
}
@ -715,7 +715,7 @@ impl InlaySnapshot {
cursor.seek(&point, Bias::Right, &());
match cursor.item() {
Some(Transform::Isomorphic(_)) => {
let overshoot = point.0 - cursor.start().0 .0;
let overshoot = point.0 - cursor.start().0.0;
cursor.start().1 + overshoot
}
Some(Transform::Inlay(_)) => cursor.start().1,
@ -752,7 +752,7 @@ impl InlaySnapshot {
return cursor.end(&()).1;
} else {
let overshoot = offset - cursor.start().0;
return InlayOffset(cursor.start().1 .0 + overshoot);
return InlayOffset(cursor.start().1.0 + overshoot);
}
}
Some(Transform::Inlay(inlay)) => {
@ -785,7 +785,7 @@ impl InlaySnapshot {
return cursor.end(&()).1;
} else {
let overshoot = point - cursor.start().0;
return InlayPoint(cursor.start().1 .0 + overshoot);
return InlayPoint(cursor.start().1.0 + overshoot);
}
}
Some(Transform::Inlay(inlay)) => {
@ -838,11 +838,11 @@ impl InlaySnapshot {
return point;
}
} else {
let overshoot = point.0 - cursor.start().0 .0;
let overshoot = point.0 - cursor.start().0.0;
let buffer_point = cursor.start().1 + overshoot;
let clipped_buffer_point = self.buffer.clip_point(buffer_point, bias);
let clipped_overshoot = clipped_buffer_point - cursor.start().1;
let clipped_point = InlayPoint(cursor.start().0 .0 + clipped_overshoot);
let clipped_point = InlayPoint(cursor.start().0.0 + clipped_overshoot);
if clipped_point == point {
return clipped_point;
} else {
@ -903,19 +903,19 @@ impl InlaySnapshot {
let mut cursor = self.transforms.cursor::<(InlayOffset, usize)>(&());
cursor.seek(&range.start, Bias::Right, &());
let overshoot = range.start.0 - cursor.start().0 .0;
let overshoot = range.start.0 - cursor.start().0.0;
match cursor.item() {
Some(Transform::Isomorphic(_)) => {
let buffer_start = cursor.start().1;
let suffix_start = buffer_start + overshoot;
let suffix_end =
buffer_start + (cmp::min(cursor.end(&()).0, range.end).0 - cursor.start().0 .0);
buffer_start + (cmp::min(cursor.end(&()).0, range.end).0 - cursor.start().0.0);
summary = self.buffer.text_summary_for_range(suffix_start..suffix_end);
cursor.next(&());
}
Some(Transform::Inlay(inlay)) => {
let suffix_start = overshoot;
let suffix_end = cmp::min(cursor.end(&()).0, range.end).0 - cursor.start().0 .0;
let suffix_end = cmp::min(cursor.end(&()).0, range.end).0 - cursor.start().0.0;
summary = inlay.text.cursor(suffix_start).summary(suffix_end);
cursor.next(&());
}
@ -927,7 +927,7 @@ impl InlaySnapshot {
.summary::<_, TransformSummary>(&range.end, Bias::Right, &())
.output;
let overshoot = range.end.0 - cursor.start().0 .0;
let overshoot = range.end.0 - cursor.start().0.0;
match cursor.item() {
Some(Transform::Isomorphic(_)) => {
let prefix_start = cursor.start().1;
@ -959,7 +959,7 @@ impl InlaySnapshot {
} else {
match cursor.item() {
Some(Transform::Isomorphic(_)) => {
buffer_point += inlay_point.0 - cursor.start().0 .0;
buffer_point += inlay_point.0 - cursor.start().0.0;
MultiBufferRow(buffer_point.row)
}
_ => cmp::min(MultiBufferRow(buffer_point.row + 1), max_buffer_row),
@ -1066,9 +1066,9 @@ fn push_isomorphic(sum_tree: &mut SumTree<Transform>, summary: TextSummary) {
mod tests {
use super::*;
use crate::{
InlayId, MultiBuffer,
display_map::{InlayHighlights, TextHighlights},
hover_links::InlayHighlight,
InlayId, MultiBuffer,
};
use gpui::{App, HighlightStyle};
use project::{InlayHint, InlayHintLabel, ResolveState};

View file

@ -1,6 +1,6 @@
use super::{
fold_map::{self, FoldChunks, FoldEdit, FoldPoint, FoldSnapshot},
Highlights,
fold_map::{self, FoldChunks, FoldEdit, FoldPoint, FoldSnapshot},
};
use language::{Chunk, Point};
use multi_buffer::MultiBufferSnapshot;
@ -602,10 +602,10 @@ impl<'a> Iterator for TabChunks<'a> {
mod tests {
use super::*;
use crate::{
display_map::{fold_map::FoldMap, inlay_map::InlayMap},
MultiBuffer,
display_map::{fold_map::FoldMap, inlay_map::InlayMap},
};
use rand::{prelude::StdRng, Rng};
use rand::{Rng, prelude::StdRng};
#[gpui::test]
fn test_expand_tabs(cx: &mut gpui::App) {

View file

@ -1,7 +1,7 @@
use super::{
Highlights,
fold_map::FoldRows,
tab_map::{self, TabEdit, TabPoint, TabSnapshot},
Highlights,
};
use gpui::{App, AppContext as _, Context, Entity, Font, LineWrapper, Pixels, Task};
use language::{Chunk, Point};
@ -593,9 +593,9 @@ impl WrapSnapshot {
let output_end = WrapPoint::new(rows.end, 0);
let mut transforms = self.transforms.cursor::<(WrapPoint, TabPoint)>(&());
transforms.seek(&output_start, Bias::Right, &());
let mut input_start = TabPoint(transforms.start().1 .0);
let mut input_start = TabPoint(transforms.start().1.0);
if transforms.item().map_or(false, |t| t.is_isomorphic()) {
input_start.0 += output_start.0 - transforms.start().0 .0;
input_start.0 += output_start.0 - transforms.start().0.0;
}
let input_end = self
.to_tab_point(output_end)
@ -647,11 +647,11 @@ impl WrapSnapshot {
let mut cursor = self.transforms.cursor::<(WrapPoint, TabPoint)>(&());
cursor.seek(&start, Bias::Right, &());
if let Some(transform) = cursor.item() {
let start_in_transform = start.0 - cursor.start().0 .0;
let end_in_transform = cmp::min(end, cursor.end(&()).0).0 - cursor.start().0 .0;
let start_in_transform = start.0 - cursor.start().0.0;
let end_in_transform = cmp::min(end, cursor.end(&()).0).0 - cursor.start().0.0;
if transform.is_isomorphic() {
let tab_start = TabPoint(cursor.start().1 .0 + start_in_transform);
let tab_end = TabPoint(cursor.start().1 .0 + end_in_transform);
let tab_start = TabPoint(cursor.start().1.0 + start_in_transform);
let tab_end = TabPoint(cursor.start().1.0 + end_in_transform);
summary += &self.tab_snapshot.text_summary_for_range(tab_start..tab_end);
} else {
debug_assert_eq!(start_in_transform.row, end_in_transform.row);
@ -674,7 +674,7 @@ impl WrapSnapshot {
.output;
if let Some(transform) = cursor.item() {
let end_in_transform = end.0 - cursor.start().0 .0;
let end_in_transform = end.0 - cursor.start().0.0;
if transform.is_isomorphic() {
let char_start = cursor.start().1;
let char_end = TabPoint(char_start.0 + end_in_transform);
@ -736,9 +736,9 @@ impl WrapSnapshot {
pub fn to_tab_point(&self, point: WrapPoint) -> TabPoint {
let mut cursor = self.transforms.cursor::<(WrapPoint, TabPoint)>(&());
cursor.seek(&point, Bias::Right, &());
let mut tab_point = cursor.start().1 .0;
let mut tab_point = cursor.start().1.0;
if cursor.item().map_or(false, |t| t.is_isomorphic()) {
tab_point += point.0 - cursor.start().0 .0;
tab_point += point.0 - cursor.start().0.0;
}
TabPoint(tab_point)
}
@ -754,7 +754,7 @@ impl WrapSnapshot {
pub fn tab_point_to_wrap_point(&self, point: TabPoint) -> WrapPoint {
let mut cursor = self.transforms.cursor::<(TabPoint, WrapPoint)>(&());
cursor.seek(&point, Bias::Right, &());
WrapPoint(cursor.start().1 .0 + (point.0 - cursor.start().0 .0))
WrapPoint(cursor.start().1.0 + (point.0 - cursor.start().0.0))
}
pub fn clip_point(&self, mut point: WrapPoint, bias: Bias) -> WrapPoint {
@ -877,9 +877,9 @@ impl WrapChunks<'_> {
let output_start = WrapPoint::new(rows.start, 0);
let output_end = WrapPoint::new(rows.end, 0);
self.transforms.seek(&output_start, Bias::Right, &());
let mut input_start = TabPoint(self.transforms.start().1 .0);
let mut input_start = TabPoint(self.transforms.start().1.0);
if self.transforms.item().map_or(false, |t| t.is_isomorphic()) {
input_start.0 += output_start.0 - self.transforms.start().0 .0;
input_start.0 += output_start.0 - self.transforms.start().0.0;
}
let input_end = self
.snapshot
@ -1169,9 +1169,9 @@ fn consolidate_wrap_edits(edits: Vec<WrapEdit>) -> Vec<WrapEdit> {
mod tests {
use super::*;
use crate::{
MultiBuffer,
display_map::{fold_map::FoldMap, inlay_map::InlayMap, tab_map::TabMap},
test::test_font,
MultiBuffer,
};
use gpui::{px, test::observe};
use rand::prelude::*;