Unnamed repository; edit this file 'description' to name the repository.
Fix panic paint mysterious matching pair
When the matching pair is out of bounds it still paints it causing an out of bound panic. A dirty fix since it still have some issue, at least it does not panic now.
Ivan Tham 2021-06-04
parent fdb5bfa · commit 29b9eed
-rw-r--r--helix-term/src/ui/editor.rs14
1 files changed, 10 insertions, 4 deletions
diff --git a/helix-term/src/ui/editor.rs b/helix-term/src/ui/editor.rs
index b1c4ce3f..e5d9f679 100644
--- a/helix-term/src/ui/editor.rs
+++ b/helix-term/src/ui/editor.rs
@@ -306,6 +306,7 @@ impl EditorView {
),
cursor_style,
);
+ // TODO: set cursor position for IME
if let Some(syntax) = doc.syntax() {
use helix_core::match_brackets;
let pos = doc.selection(view.id).cursor();
@@ -313,10 +314,15 @@ impl EditorView {
if let Some(pos) = pos {
let pos = view.screen_coords_at_pos(doc, text, pos);
if let Some(pos) = pos {
- let style = Style::default().add_modifier(Modifier::REVERSED);
- surface
- .get_mut(pos.col as u16 + OFFSET, pos.row as u16)
- .set_style(style);
+ // this only prevents panic due to painting selection too far
+ // TODO: prevent painting when scroll past x or in gutter
+ // TODO: use a more correct width check
+ if (pos.col as u16) < viewport.width {
+ let style = Style::default().add_modifier(Modifier::REVERSED);
+ surface
+ .get_mut(pos.col as u16 + OFFSET, pos.row as u16)
+ .set_style(style);
+ }
}
}
}