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(); buffer->begin_user_action();
for(int line=0;line<buffer->get_line_count();line++) { for(int line=0;line<buffer->get_line_count();line++) {
auto iter=buffer->get_iter_at_line(line); auto iter=buffer->get_iter_at_line(line);
auto end_iter=iter; auto end_iter=get_iter_at_line_end(line);
while(!end_iter.ends_line())
end_iter.forward_char();
if(iter==end_iter) if(iter==end_iter)
continue; continue;
iter=end_iter; 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); line=std::min(line, get_buffer()->get_line_count()-1);
if(line<0) if(line<0)
line=0; line=0;
auto iter=get_buffer()->get_iter_at_line(line); auto iter=get_iter_at_line_end(line);
while(!iter.ends_line())
iter.forward_char();
offset=std::min(offset, iter.get_line_offset()); offset=std::min(offset, iter.get_line_offset());
get_buffer()->place_cursor(get_buffer()->get_iter_at_line_offset(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); line=std::min(line, get_buffer()->get_line_count()-1);
if(line<0) if(line<0)
line=0; line=0;
auto iter=get_buffer()->get_iter_at_line(line); auto iter=get_iter_at_line_end(line);
while(!iter.ends_line())
iter.forward_char();
index=std::min(index, iter.get_line_index()); index=std::min(index, iter.get_line_index());
get_buffer()->place_cursor(get_buffer()->get_iter_at_line_index(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) { 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_start_it = get_buffer()->get_iter_at_line(iter.get_line());
auto line_end_it = iter; auto line_end_it = get_iter_at_line_end(iter.get_line());
while(!line_end_it.ends_line() && line_end_it.forward_char()) {}
std::string line(get_buffer()->get_text(line_start_it, line_end_it)); std::string line(get_buffer()->get_text(line_start_it, line_end_it));
return line; 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 //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 //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) { else if(key->keyval==GDK_KEY_End && (key->state&GDK_CONTROL_MASK)==0) {
auto end_line_iter=iter; auto end_line_iter=get_iter_at_line_end(iter.get_line());
while(!end_line_iter.ends_line() && end_line_iter.forward_char()) {}
auto end_sentence_iter=end_line_iter; auto end_sentence_iter=end_line_iter;
while(!end_sentence_iter.starts_line() && while(!end_sentence_iter.starts_line() &&
(*end_sentence_iter==' ' || *end_sentence_iter=='\t' || end_sentence_iter.ends_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(); start_iter.forward_char();
whitespaces_removed++; whitespaces_removed++;
} }
auto end_iter=start_iter; auto end_iter=clang_view->get_iter_at_line_end(offset.first.line-1);
while(!end_iter.ends_line())
end_iter.forward_char();
std::string line=Glib::Markup::escape_text(clang_view->get_buffer()->get_text(start_iter, end_iter)); std::string line=Glib::Markup::escape_text(clang_view->get_buffer()->get_text(start_iter, end_iter));
//markup token as bold //markup token as bold

6
src/window.cc

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

Loading…
Cancel
Save