Browse Source

Starts reparse right away on buffer change if reparse has not been run before. This avoids several slow autocompletions if reparse has not been run before.

merge-requests/365/head
eidheim 10 years ago
parent
commit
11d01f8fa1
  1. 9
      src/source_clang.cc
  2. 1
      src/source_clang.h

9
src/source_clang.cc

@ -159,13 +159,20 @@ std::map<std::string, std::string> Source::ClangViewParse::get_buffer_map() cons
void Source::ClangViewParse::start_reparse() { void Source::ClangViewParse::start_reparse() {
parse_thread_mapped=false; parse_thread_mapped=false;
source_readable=false; source_readable=false;
int delay;
if(!is_reparsed) {
delay=0;
is_reparsed=true;
}
else
delay=1000;
delayed_reparse_connection.disconnect(); delayed_reparse_connection.disconnect();
delayed_reparse_connection=Glib::signal_timeout().connect([this]() { delayed_reparse_connection=Glib::signal_timeout().connect([this]() {
source_readable=false; source_readable=false;
parse_thread_go=true; parse_thread_go=true;
set_status("parsing..."); set_status("parsing...");
return false; return false;
}, 1000); }, delay);
} }
std::vector<std::string> Source::ClangViewParse::get_compilation_commands() { std::vector<std::string> Source::ClangViewParse::get_compilation_commands() {

1
src/source_clang.h

@ -61,6 +61,7 @@ namespace Source {
static clang::Index clang_index; static clang::Index clang_index;
std::vector<std::string> get_compilation_commands(); std::vector<std::string> get_compilation_commands();
bool is_reparsed=false;
Glib::Dispatcher parse_done; Glib::Dispatcher parse_done;
Glib::Dispatcher parse_start; Glib::Dispatcher parse_start;
Glib::Dispatcher parse_fail; Glib::Dispatcher parse_fail;

Loading…
Cancel
Save