Browse Source

Fixes to auto-indent buffer.

merge-requests/365/head
eidheim 10 years ago
parent
commit
d912faf484
  1. 21
      src/source_clang.cc
  2. 2
      src/terminal.cc
  3. 2
      src/terminal_win.cc

21
src/source_clang.cc

@ -944,11 +944,26 @@ Source::ClangViewAutocomplete(file_path, project_path, language) {
auto exit_code=Singleton::terminal()->execute(stdout_stream, command);
if(exit_code==0) {
get_source_buffer()->begin_user_action();
auto cursor_line_nr=get_buffer()->get_insert()->get_iter().get_line();
auto iter=get_buffer()->get_insert()->get_iter();
auto cursor_line_nr=iter.get_line();
auto cursor_line_offset=iter.get_line_offset();
get_buffer()->erase(get_buffer()->begin(), get_buffer()->end());
get_buffer()->insert(get_buffer()->begin(), stdout_stream.str());
if(cursor_line_nr<get_buffer()->get_line_count())
get_buffer()->place_cursor(get_buffer()->get_iter_at_line(cursor_line_nr));
cursor_line_nr=std::min(cursor_line_nr, get_buffer()->get_line_count()-1);
if(cursor_line_nr>=0) {
iter=get_buffer()->get_iter_at_line(cursor_line_nr);
for(int c=0;c<cursor_line_offset;c++) {
if(iter.ends_line())
break;
iter.forward_char();
}
get_buffer()->place_cursor(iter);
while(gtk_events_pending())
gtk_main_iteration();
scroll_to(get_buffer()->get_insert(), 0.0, 1.0, 0.5);
}
get_source_buffer()->end_user_action();
set_tab_char_and_size(' ', tab_size); //clang-format only does basic indentation with spaces as I understand it
}

2
src/terminal.cc

@ -225,7 +225,7 @@ int Terminal::execute(std::iostream &stdout_stream, const std::string &command,
next_char_iter++;
umessage.replace(iter, next_char_iter, "?");
}
stdout_stream << umessage;
stdout_stream.write(umessage.data(), n);
}
});
stdout_thread.detach();

2
src/terminal_win.cc

@ -277,7 +277,7 @@ int Terminal::execute(std::iostream &stdout_stream, const std::string &command,
next_char_iter++;
umessage.replace(iter, next_char_iter, "?");
}
stdout_stream << umessage;
stdout_stream.write(umessage.data(), static_cast<ssize_t>(n));
}
});
stdout_thread.detach();

Loading…
Cancel
Save