(&self)
| 218 | } |
| 219 | |
| 220 | pub fn selected(&self) -> Option<String> { |
| 221 | let lines = self.selected_lines()?; |
| 222 | let last_line_len = lines.last()?.len(); |
| 223 | let mut lines: String = lines.join("\n"); |
| 224 | if let Some((selected_row, selected_col)) = self.select_row_col { |
| 225 | if selected_row < self.cursor_row { |
| 226 | lines = lines[selected_col..].to_owned(); |
| 227 | lines.truncate(lines.len() - (last_line_len - self.cursor_col)); |
| 228 | Some(lines) |
| 229 | } else if selected_row > self.cursor_row { |
| 230 | lines = lines[self.cursor_col..].to_owned(); |
| 231 | lines.truncate(lines.len() - (last_line_len - selected_col)); |
| 232 | Some(lines) |
| 233 | } else if selected_col < self.cursor_col { |
| 234 | lines = lines[selected_col..].to_owned(); |
| 235 | lines.truncate(lines.len() - (last_line_len - self.cursor_col)); |
| 236 | Some(lines) |
| 237 | } else if selected_col > self.cursor_col { |
| 238 | lines = lines[self.cursor_col..].to_owned(); |
| 239 | lines.truncate(lines.len() - (last_line_len - selected_col)); |
| 240 | Some(lines) |
| 241 | } else { |
| 242 | None |
| 243 | } |
| 244 | } else { |
| 245 | None |
| 246 | } |
| 247 | } |
| 248 | |
| 249 | pub fn cur_line_mut(&mut self) -> &mut String { |
| 250 | self.edited = true; |
no test coverage detected