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.
This commit is contained in:
parent
fdb5bfafae
commit
29b9eed33c
1 changed files with 10 additions and 4 deletions
|
@ -306,6 +306,7 @@ impl EditorView {
|
||||||
),
|
),
|
||||||
cursor_style,
|
cursor_style,
|
||||||
);
|
);
|
||||||
|
// TODO: set cursor position for IME
|
||||||
if let Some(syntax) = doc.syntax() {
|
if let Some(syntax) = doc.syntax() {
|
||||||
use helix_core::match_brackets;
|
use helix_core::match_brackets;
|
||||||
let pos = doc.selection(view.id).cursor();
|
let pos = doc.selection(view.id).cursor();
|
||||||
|
@ -313,10 +314,15 @@ impl EditorView {
|
||||||
if let Some(pos) = pos {
|
if let Some(pos) = pos {
|
||||||
let pos = view.screen_coords_at_pos(doc, text, pos);
|
let pos = view.screen_coords_at_pos(doc, text, pos);
|
||||||
if let Some(pos) = pos {
|
if let Some(pos) = pos {
|
||||||
let style = Style::default().add_modifier(Modifier::REVERSED);
|
// this only prevents panic due to painting selection too far
|
||||||
surface
|
// TODO: prevent painting when scroll past x or in gutter
|
||||||
.get_mut(pos.col as u16 + OFFSET, pos.row as u16)
|
// TODO: use a more correct width check
|
||||||
.set_style(style);
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue