(&self, char_idx: usize)
| 80 | } |
| 81 | |
| 82 | pub fn char_to_position(&self, char_idx: usize) -> (usize, usize) { |
| 83 | let char_idx = char_idx.min(self.len_chars()); |
| 84 | let line = self.char_to_line(char_idx); |
| 85 | let line_start = self.line_to_char(line); |
| 86 | let prefix = self.slice_text(line_start, char_idx); |
| 87 | let column = prefix.graphemes(true).count(); |
| 88 | (line, column.min(self.line_len_chars(line))) |
| 89 | } |
| 90 | |
| 91 | pub fn char_at(&self, char_idx: usize) -> Option<char> { |
| 92 | (char_idx < self.len_chars()).then(|| self.rope.char(char_idx)) |
no test coverage detected