Implement cancel for buffer

This commit is contained in:
Antonio Scandurra
2021-05-11 12:35:27 +02:00
parent 0baff0c61d
commit 143c50f321
3 changed files with 60 additions and 17 deletions
+8 -1
View File
@@ -2378,8 +2378,11 @@ mod tests {
use super::*;
use cmp::Ordering;
use gpui::App;
use std::collections::BTreeMap;
use std::{cell::RefCell, rc::Rc};
use std::{
collections::BTreeMap,
sync::atomic::{self, AtomicUsize},
};
#[test]
fn test_edit() {
@@ -3275,6 +3278,8 @@ mod tests {
where
I: IntoIterator<Item = Range<usize>>,
{
static NEXT_SELECTION_ID: AtomicUsize = AtomicUsize::new(0);
let mut ranges = ranges.into_iter().collect::<Vec<_>>();
ranges.sort_unstable_by_key(|range| range.start);
@@ -3282,6 +3287,7 @@ mod tests {
for range in ranges {
if range.start > range.end {
selections.push(Selection {
id: NEXT_SELECTION_ID.fetch_add(1, atomic::Ordering::SeqCst),
start: self.anchor_before(range.end)?,
end: self.anchor_before(range.start)?,
reversed: true,
@@ -3289,6 +3295,7 @@ mod tests {
});
} else {
selections.push(Selection {
id: NEXT_SELECTION_ID.fetch_add(1, atomic::Ordering::SeqCst),
start: self.anchor_after(range.start)?,
end: self.anchor_before(range.end)?,
reversed: false,
+1
View File
@@ -21,6 +21,7 @@ pub enum SelectionGoal {
#[derive(Clone, Debug, Eq, PartialEq)]
pub struct Selection {
pub id: usize,
pub start: Anchor,
pub end: Anchor,
pub reversed: bool,