Browse Source

Slight cleanup: now uses get_iter_at_line_end instead of various implementations

merge-requests/365/head
eidheim 10 years ago
parent
commit
83919efd22
  1. 18
      src/source.cc
  2. 4
      src/source_clang.cc
  3. 6
      src/window.cc

18
src/source.cc

@ -241,9 +241,7 @@ void Source::View::cleanup_whitespace_characters() {
buffer->begin_user_action();
for(int line=0;line<buffer->get_line_count();line++) {
auto iter=buffer->get_iter_at_line(line);
auto end_iter=iter;
while(!end_iter.ends_line())
end_iter.forward_char();
auto end_iter=get_iter_at_line_end(line);
if(iter==end_iter)
continue;
iter=end_iter;
@ -676,9 +674,7 @@ void Source::View::place_cursor_at_line_offset(int line, int offset) {
line=std::min(line, get_buffer()->get_line_count()-1);
if(line<0)
line=0;
auto iter=get_buffer()->get_iter_at_line(line);
while(!iter.ends_line())
iter.forward_char();
auto iter=get_iter_at_line_end(line);
offset=std::min(offset, iter.get_line_offset());
get_buffer()->place_cursor(get_buffer()->get_iter_at_line_offset(line, offset));
}
@ -687,9 +683,7 @@ void Source::View::place_cursor_at_line_index(int line, int index) {
line=std::min(line, get_buffer()->get_line_count()-1);
if(line<0)
line=0;
auto iter=get_buffer()->get_iter_at_line(line);
while(!iter.ends_line())
iter.forward_char();
auto iter=get_iter_at_line_end(line);
index=std::min(index, iter.get_line_index());
get_buffer()->place_cursor(get_buffer()->get_iter_at_line_index(line, index));
}
@ -724,8 +718,7 @@ void Source::View::set_info(const std::string &info) {
std::string Source::View::get_line(const Gtk::TextIter &iter) {
auto line_start_it = get_buffer()->get_iter_at_line(iter.get_line());
auto line_end_it = iter;
while(!line_end_it.ends_line() && line_end_it.forward_char()) {}
auto line_end_it = get_iter_at_line_end(iter.get_line());
std::string line(get_buffer()->get_text(line_start_it, line_end_it));
return line;
}
@ -1112,8 +1105,7 @@ bool Source::View::on_key_press_event_basic(GdkEventKey* key) {
//Next two are smart home/end keys that works with wrapped lines
//Note that smart end goes FIRST to end of line to avoid hiding empty chars after expressions
else if(key->keyval==GDK_KEY_End && (key->state&GDK_CONTROL_MASK)==0) {
auto end_line_iter=iter;
while(!end_line_iter.ends_line() && end_line_iter.forward_char()) {}
auto end_line_iter=get_iter_at_line_end(iter.get_line());
auto end_sentence_iter=end_line_iter;
while(!end_sentence_iter.starts_line() &&
(*end_sentence_iter==' ' || *end_sentence_iter=='\t' || end_sentence_iter.ends_line()) &&

4
src/source_clang.cc

@ -1022,9 +1022,7 @@ Source::ClangViewRefactor::ClangViewRefactor(const boost::filesystem::path &file
start_iter.forward_char();
whitespaces_removed++;
}
auto end_iter=start_iter;
while(!end_iter.ends_line())
end_iter.forward_char();
auto end_iter=clang_view->get_iter_at_line_end(offset.first.line-1);
std::string line=Glib::Markup::escape_text(clang_view->get_buffer()->get_text(start_iter, end_iter));
//markup token as bold

6
src/window.cc

@ -137,8 +137,7 @@ Window::Window() {
auto iter=view->get_buffer()->begin();
while(view->get_source_buffer()->forward_iter_to_source_mark(iter, "debug_breakpoint") ||
view->get_source_buffer()->get_source_marks_at_iter(iter, "debug_breakpoint").size()) {
auto end_iter=iter;
while(!end_iter.ends_line() && end_iter.forward_char()) {}
auto end_iter=view->get_iter_at_line_end(iter.get_line());
view->get_source_buffer()->remove_source_marks(iter, end_iter, "debug_breakpoint");
Project::current->debug_remove_breakpoint(view->file_path, iter.get_line()+1, view->get_buffer()->get_line_count()+1);
}
@ -864,8 +863,7 @@ void Window::set_menu_actions() {
if(view->get_source_buffer()->get_source_marks_at_line(line_nr, "debug_breakpoint").size()>0) {
auto start_iter=view->get_buffer()->get_iter_at_line(line_nr);
auto end_iter=start_iter;
while(!end_iter.ends_line() && end_iter.forward_char()) {}
auto end_iter=view->get_iter_at_line_end(line_nr);
view->get_source_buffer()->remove_source_marks(start_iter, end_iter, "debug_breakpoint");
if(Project::current && Project::debugging)
Project::current->debug_remove_breakpoint(view->file_path, line_nr+1, view->get_buffer()->get_line_count()+1);

Loading…
Cancel
Save