@@ -324,17 +324,21 @@ impl Application {
324 .unwrap();
324 .unwrap();
326 let (view, doc) = current!(self.editor);
326 let (view, doc) = current!(self.editor);
327− log::info!("{:?}", doc);
327+
328+ let text_end = doc.text().len_chars() - 1;
328− let start = doc.text().line_to_char(line - 1) + column;
329+ let start = doc.text().try_line_to_char(line - 1).unwrap_or(0) + column;
329 if let Some(end_line) = end_line {
330 if let Some(end_line) = end_line {
330− let end =
331+ let end = doc.text().try_line_to_char(end_line - 1).unwrap_or(0)
331− doc.text().line_to_char(end_line - 1) + end_column.unwrap_or(0);
332+ + end_column.unwrap_or(0);
332 doc.set_selection(
333 doc.set_selection(
334− Selection::new(smallvec![Range::new(start, end)], 0),
336+ smallvec![Range::new(start.min(text_end), end.min(text_end))],
337− doc.set_selection(view.id, Selection::point(start));
341+ doc.set_selection(view.id, Selection::point(start.min(text_end)));
339 align_view(doc, view, Align::Center);
343 align_view(doc, view, Align::Center);