perf: cache file attribution for instant blame navigation
This commit is contained in:
+11
-7
@@ -846,7 +846,11 @@ pub fn run(session: &mut EditorSession, mut clear_screen: bool) -> io::Result<()
|
||||
pending = following;
|
||||
}
|
||||
Event::Resize(_, _) => redraw = true,
|
||||
Event::FocusGained | Event::ColorSchemeChanged => query_theme = true,
|
||||
Event::FocusGained => {
|
||||
redraw |= session.refresh_blame();
|
||||
query_theme = true;
|
||||
}
|
||||
Event::ColorSchemeChanged => query_theme = true,
|
||||
_ => {}
|
||||
}
|
||||
}
|
||||
@@ -7435,12 +7439,12 @@ end
|
||||
let source = editor.blame_source().unwrap();
|
||||
assert!(editor.set_line_blame(
|
||||
source,
|
||||
crate::blame::LineBlame {
|
||||
Arc::new(crate::blame::LineBlame {
|
||||
commit: "0123456789abcdef".into(),
|
||||
author: "A\tuthor".into(),
|
||||
summary: "Summary\n\u{1b}done".into(),
|
||||
uncommitted: false,
|
||||
}
|
||||
})
|
||||
));
|
||||
let mut terminal = Terminal::new(ratatui::backend::TestBackend::new(80, 8)).unwrap();
|
||||
let mut views = BufferViewports::default();
|
||||
@@ -7486,12 +7490,12 @@ end
|
||||
let source = editor.blame_source().unwrap();
|
||||
editor.set_line_blame(
|
||||
source,
|
||||
crate::blame::LineBlame {
|
||||
Arc::new(crate::blame::LineBlame {
|
||||
commit: String::new(),
|
||||
author: String::new(),
|
||||
summary: String::new(),
|
||||
uncommitted: true,
|
||||
},
|
||||
}),
|
||||
);
|
||||
let mut views = BufferViewports::default();
|
||||
let mut terminal = Terminal::new(ratatui::backend::TestBackend::new(50, 8)).unwrap();
|
||||
@@ -7532,12 +7536,12 @@ end
|
||||
let source = session.editor().blame_source().unwrap();
|
||||
session.editor_mut().set_line_blame(
|
||||
source,
|
||||
crate::blame::LineBlame {
|
||||
Arc::new(crate::blame::LineBlame {
|
||||
commit: String::new(),
|
||||
author: String::new(),
|
||||
summary: String::new(),
|
||||
uncommitted: true,
|
||||
},
|
||||
}),
|
||||
);
|
||||
let mut terminal = Terminal::new(ratatui::backend::TestBackend::new(80, 8)).unwrap();
|
||||
let mut views = BufferViewports::default();
|
||||
|
||||
Reference in New Issue
Block a user