void DocumentView::trim_trailing_newlines() { //FIXME: Don't strip whitespace if the language doesn't like it (e.g. 'diff') auto buffer_end = buffer()->end(); if(buffer_end.starts_line()) { auto itr = buffer_end; while(itr.backward_line()) { if(!itr.ends_line()) { itr.forward_to_line_end(); break; } } buffer()->erase(itr, buffer_end); } auto current = buffer()->get_insert()->get_iter().get_offset(); buffer()->insert(buffer()->end(), "\n"); //Make sure we have a newline at the end buffer()->place_cursor(buffer()->get_iter_at_offset(current)); }
void TE_View::up() { backward_line(1); }