on master help sign in
Do not panic if entered unknown code via stack trace

e.g. Rust std library

commitec599a1eac0fca7d7499f1acb7f306acbaee8cca authorDmitry Sharshakov <d3dx12.xx@gmail.com> dateMon 23 Aug 2021, 21:25 (5 years ago) parent3a5e044
1 file changed+10−6
helix-term/src/application.rs+10−6
helix-term/src/application.rs+10−6
@@ -324,17 +324,21 @@ impl Application {
324324 .unwrap();
325325
326326 let (view, doc) = current!(self.editor);
327− log::info!("{:?}", doc);
328− let start = doc.text().line_to_char(line - 1) + column;
327+
328+ let text_end = doc.text().len_chars() - 1;
329+ let start = doc.text().try_line_to_char(line - 1).unwrap_or(0) + column;
329330 if let Some(end_line) = end_line {
330− let end =
331− doc.text().line_to_char(end_line - 1) + end_column.unwrap_or(0);
331+ let end = doc.text().try_line_to_char(end_line - 1).unwrap_or(0)
332+ + end_column.unwrap_or(0);
332333 doc.set_selection(
333334 view.id,
334− Selection::new(smallvec![Range::new(start, end)], 0),
335+ Selection::new(
336+ smallvec![Range::new(start.min(text_end), end.min(text_end))],
337+ 0,
338+ ),
335339 );
336340 } else {
337− doc.set_selection(view.id, Selection::point(start));
341+ doc.set_selection(view.id, Selection::point(start.min(text_end)));
338342 }
339343 align_view(doc, view, Align::Center);
340344 }