Revert "Return the previous suggestion when replacing it"
This reverts commit 971c88db80
.
This commit is contained in:
parent
b58ac815a8
commit
65fd605b82
3 changed files with 11 additions and 23 deletions
|
@ -7,7 +7,7 @@ mod wrap_map;
|
||||||
use crate::{Anchor, AnchorRangeExt, MultiBuffer, MultiBufferSnapshot, ToOffset, ToPoint};
|
use crate::{Anchor, AnchorRangeExt, MultiBuffer, MultiBufferSnapshot, ToOffset, ToPoint};
|
||||||
pub use block_map::{BlockMap, BlockPoint};
|
pub use block_map::{BlockMap, BlockPoint};
|
||||||
use collections::{HashMap, HashSet};
|
use collections::{HashMap, HashSet};
|
||||||
use fold_map::{FoldMap, FoldOffset};
|
use fold_map::FoldMap;
|
||||||
use gpui::{
|
use gpui::{
|
||||||
color::Color,
|
color::Color,
|
||||||
fonts::{FontId, HighlightStyle},
|
fonts::{FontId, HighlightStyle},
|
||||||
|
@ -238,22 +238,19 @@ impl DisplayMap {
|
||||||
&self,
|
&self,
|
||||||
new_suggestion: Option<Suggestion<T>>,
|
new_suggestion: Option<Suggestion<T>>,
|
||||||
cx: &mut ModelContext<Self>,
|
cx: &mut ModelContext<Self>,
|
||||||
) -> Option<Suggestion<FoldOffset>>
|
) where
|
||||||
where
|
|
||||||
T: ToPoint,
|
T: ToPoint,
|
||||||
{
|
{
|
||||||
let snapshot = self.buffer.read(cx).snapshot(cx);
|
let snapshot = self.buffer.read(cx).snapshot(cx);
|
||||||
let edits = self.buffer_subscription.consume().into_inner();
|
let edits = self.buffer_subscription.consume().into_inner();
|
||||||
let tab_size = Self::tab_size(&self.buffer, cx);
|
let tab_size = Self::tab_size(&self.buffer, cx);
|
||||||
let (snapshot, edits) = self.fold_map.read(snapshot, edits);
|
let (snapshot, edits) = self.fold_map.read(snapshot, edits);
|
||||||
let (snapshot, edits, old_suggestion) =
|
let (snapshot, edits) = self.suggestion_map.replace(new_suggestion, snapshot, edits);
|
||||||
self.suggestion_map.replace(new_suggestion, snapshot, edits);
|
|
||||||
let (snapshot, edits) = self.tab_map.sync(snapshot, edits, tab_size);
|
let (snapshot, edits) = self.tab_map.sync(snapshot, edits, tab_size);
|
||||||
let (snapshot, edits) = self
|
let (snapshot, edits) = self
|
||||||
.wrap_map
|
.wrap_map
|
||||||
.update(cx, |map, cx| map.sync(snapshot, edits, cx));
|
.update(cx, |map, cx| map.sync(snapshot, edits, cx));
|
||||||
self.block_map.read(snapshot, edits);
|
self.block_map.read(snapshot, edits);
|
||||||
old_suggestion
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn set_font(&self, font_id: FontId, font_size: f32, cx: &mut ModelContext<Self>) -> bool {
|
pub fn set_font(&self, font_id: FontId, font_size: f32, cx: &mut ModelContext<Self>) -> bool {
|
||||||
|
|
|
@ -79,11 +79,7 @@ impl SuggestionMap {
|
||||||
new_suggestion: Option<Suggestion<T>>,
|
new_suggestion: Option<Suggestion<T>>,
|
||||||
fold_snapshot: FoldSnapshot,
|
fold_snapshot: FoldSnapshot,
|
||||||
fold_edits: Vec<FoldEdit>,
|
fold_edits: Vec<FoldEdit>,
|
||||||
) -> (
|
) -> (SuggestionSnapshot, Vec<SuggestionEdit>)
|
||||||
SuggestionSnapshot,
|
|
||||||
Vec<SuggestionEdit>,
|
|
||||||
Option<Suggestion<FoldOffset>>,
|
|
||||||
)
|
|
||||||
where
|
where
|
||||||
T: ToPoint,
|
T: ToPoint,
|
||||||
{
|
{
|
||||||
|
@ -103,8 +99,7 @@ impl SuggestionMap {
|
||||||
let mut snapshot = self.0.lock();
|
let mut snapshot = self.0.lock();
|
||||||
|
|
||||||
let mut patch = Patch::new(edits);
|
let mut patch = Patch::new(edits);
|
||||||
let old_suggestion = snapshot.suggestion.take();
|
if let Some(suggestion) = snapshot.suggestion.take() {
|
||||||
if let Some(suggestion) = &old_suggestion {
|
|
||||||
patch = patch.compose([SuggestionEdit {
|
patch = patch.compose([SuggestionEdit {
|
||||||
old: SuggestionOffset(suggestion.position.0)
|
old: SuggestionOffset(suggestion.position.0)
|
||||||
..SuggestionOffset(suggestion.position.0 + suggestion.text.len()),
|
..SuggestionOffset(suggestion.position.0 + suggestion.text.len()),
|
||||||
|
@ -124,7 +119,7 @@ impl SuggestionMap {
|
||||||
|
|
||||||
snapshot.suggestion = new_suggestion;
|
snapshot.suggestion = new_suggestion;
|
||||||
snapshot.version += 1;
|
snapshot.version += 1;
|
||||||
(snapshot.clone(), patch.into_inner(), old_suggestion)
|
(snapshot.clone(), patch.into_inner())
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn sync(
|
pub fn sync(
|
||||||
|
@ -594,7 +589,7 @@ mod tests {
|
||||||
let (suggestion_map, suggestion_snapshot) = SuggestionMap::new(fold_snapshot.clone());
|
let (suggestion_map, suggestion_snapshot) = SuggestionMap::new(fold_snapshot.clone());
|
||||||
assert_eq!(suggestion_snapshot.text(), "abcdefghi");
|
assert_eq!(suggestion_snapshot.text(), "abcdefghi");
|
||||||
|
|
||||||
let (suggestion_snapshot, _, _) = suggestion_map.replace(
|
let (suggestion_snapshot, _) = suggestion_map.replace(
|
||||||
Some(Suggestion {
|
Some(Suggestion {
|
||||||
position: 3,
|
position: 3,
|
||||||
text: "123\n456".into(),
|
text: "123\n456".into(),
|
||||||
|
@ -859,9 +854,7 @@ mod tests {
|
||||||
};
|
};
|
||||||
|
|
||||||
log::info!("replacing suggestion with {:?}", new_suggestion);
|
log::info!("replacing suggestion with {:?}", new_suggestion);
|
||||||
let (snapshot, edits, _) =
|
self.replace(new_suggestion, fold_snapshot, Default::default())
|
||||||
self.replace(new_suggestion, fold_snapshot, Default::default());
|
|
||||||
(snapshot, edits)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2881,11 +2881,9 @@ impl Editor {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn hide_copilot_suggestion(&mut self, cx: &mut ViewContext<Self>) -> bool {
|
fn hide_copilot_suggestion(&mut self, cx: &mut ViewContext<Self>) -> bool {
|
||||||
let old_suggestion = self
|
if self.has_active_copilot_suggestion(cx) {
|
||||||
.display_map
|
self.display_map
|
||||||
.update(cx, |map, cx| map.replace_suggestion::<usize>(None, cx));
|
.update(cx, |map, cx| map.replace_suggestion::<usize>(None, cx));
|
||||||
|
|
||||||
if old_suggestion.is_some() {
|
|
||||||
cx.notify();
|
cx.notify();
|
||||||
true
|
true
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue