This commit is contained in:
Dongdong Zhou 2022-03-21 10:41:27 +00:00
parent 955f99df11
commit 96f09beed3
2 changed files with 8 additions and 8 deletions

View File

@ -213,7 +213,7 @@ pub struct Buffer {
pub rope: Rope,
pub content: BufferContent,
pub syntax: Option<Syntax>,
pub new_line_styles: Rc<RefCell<LineStyles>>,
pub line_styles: Rc<RefCell<LineStyles>>,
pub semantic_styles: Option<Arc<Spans<Style>>>,
pub max_len: usize,
pub max_len_line: usize,
@ -269,7 +269,7 @@ pub fn new(
id: BufferId::next(),
rope,
syntax,
new_line_styles: Rc::new(RefCell::new(HashMap::new())),
line_styles: Rc::new(RefCell::new(HashMap::new())),
semantic_styles: None,
content,
find: Rc::new(RefCell::new(Find::new(0))),
@ -779,7 +779,7 @@ pub fn styles(&self) -> Option<&Arc<Spans<Style>>> {
}
fn line_style(&self, line: usize) -> Arc<Vec<LineStyle>> {
if self.new_line_styles.borrow().get(&line).is_none() {
if self.line_styles.borrow().get(&line).is_none() {
let styles = self
.semantic_styles
.as_ref()
@ -788,11 +788,11 @@ fn line_style(&self, line: usize) -> Arc<Vec<LineStyle>> {
let line_styles = styles
.map(|styles| line_styles(&self.rope, line, styles))
.unwrap_or_default();
self.new_line_styles
self.line_styles
.borrow_mut()
.insert(line, Arc::new(line_styles));
}
self.new_line_styles.borrow().get(&line).cloned().unwrap()
self.line_styles.borrow().get(&line).cloned().unwrap()
}
pub fn history_text_layout(
@ -1639,7 +1639,7 @@ fn update_styles(&mut self, delta: &RopeDelta) {
Arc::make_mut(styles).apply_shape(delta);
}
}
self.new_line_styles.borrow_mut().clear();
self.line_styles.borrow_mut().clear();
}
fn mk_new_rev(

View File

@ -766,7 +766,7 @@ fn event(
if buffer.rev == *rev {
let buffer = Arc::make_mut(buffer);
buffer.semantic_styles = Some(styles.clone());
buffer.new_line_styles.borrow_mut().clear();
buffer.line_styles.borrow_mut().clear();
}
ctx.set_handled();
}
@ -833,7 +833,7 @@ fn event(
if buffer.rev == *rev {
buffer.syntax = Some(syntax.clone());
if buffer.semantic_styles.is_none() {
buffer.new_line_styles.borrow_mut().clear();
buffer.line_styles.borrow_mut().clear();
}
}
}