on master help sign in
ui: Be smarter about centering previews
2ce8796Blaž Hrastnik
helix-term/src/ui/picker.rs+7−3
@@ -124,9 +124,13 @@ impl<T: 'static> Component for FilePicker<T> {
124 }) {
124 }) {
125 // align to middle
125 // align to middle
126 let first_line = line
126 let first_line = line
127− .map(|(start, _)| start)
127+ .map(|(start, end)| {
128− .unwrap_or(0)
128+ let height = end.saturating_sub(start) + 1;
129+ let middle = start + (height.saturating_sub(1) / 2);
129− .saturating_sub(inner.height as usize / 2);
130+ middle.saturating_sub(inner.height as usize / 2).min(start)
131+ })
132+ .unwrap_or(0);
133+
130 let offset = Position::new(first_line, 0);
134 let offset = Position::new(first_line, 0);
131
135
132 let highlights = EditorView::doc_syntax_highlights(
136 let highlights = EditorView::doc_syntax_highlights(