From 9e3fbd216e61ab32b239d05a99762ceb2833e980 Mon Sep 17 00:00:00 2001 From: eidheim Date: Sun, 6 Sep 2015 17:36:10 +0200 Subject: [PATCH] Removed reparse on tab switch after rename-refactoring, which is already reparsing affected buffers. --- src/notebook.cc | 16 +++++++++------- src/notebook.h | 2 +- src/source.cc | 2 +- src/source.h | 2 +- src/window.cc | 11 ++++++----- 5 files changed, 18 insertions(+), 15 deletions(-) diff --git a/src/notebook.cc b/src/notebook.cc index 3d1ff49..459ce59 100644 --- a/src/notebook.cc +++ b/src/notebook.cc @@ -112,7 +112,7 @@ void Notebook::open(const boost::filesystem::path &file_path) { DEBUG("end"); } -bool Notebook::save(int page) { +bool Notebook::save(int page, bool reparse_needed) { DEBUG("start"); if(page>=size()) { DEBUG("end false"); @@ -121,11 +121,13 @@ bool Notebook::save(int page) { auto view=get_view(page); if (view->file_path != "" && view->get_buffer()->get_modified()) { if(juci::filesystem::write(view->file_path, view->get_buffer())) { - if(auto clang_view=dynamic_cast(view)) { - for(auto a_view: source_views) { - if(auto a_clang_view=dynamic_cast(a_view)) { - if(clang_view!=a_clang_view) - a_clang_view->start_reparse_needed=true; + if(reparse_needed) { + if(auto clang_view=dynamic_cast(view)) { + for(auto a_view: source_views) { + if(auto a_clang_view=dynamic_cast(a_view)) { + if(clang_view!=a_clang_view) + a_clang_view->reparse_needed=true; + } } } } @@ -161,7 +163,7 @@ bool Notebook::save(int page) { bool Notebook::save_current() { if(get_current_page()==-1) return false; - return save(get_current_page()); + return save(get_current_page(), true); } bool Notebook::close_current_page() { diff --git a/src/notebook.h b/src/notebook.h index a77040f..3c75e0c 100644 --- a/src/notebook.h +++ b/src/notebook.h @@ -18,7 +18,7 @@ public: Source::View* get_current_view(); bool close_current_page(); void open(const boost::filesystem::path &file_path); - bool save(int page); + bool save(int page, bool reparse_needed=false); bool save_current(); private: diff --git a/src/source.cc b/src/source.cc index bc90924..afa41d4 100644 --- a/src/source.cc +++ b/src/source.cc @@ -1774,7 +1774,7 @@ void Source::ClangView::async_delete() { bool Source::ClangView::restart_parse() { if(!restart_parse_running) { - start_reparse_needed=false; + reparse_needed=false; restart_parse_running=true; parse_thread_stop=true; if(restart_parse_thread.joinable()) diff --git a/src/source.h b/src/source.h index 0d75d1f..0f62769 100644 --- a/src/source.h +++ b/src/source.h @@ -138,7 +138,7 @@ namespace Source { ~ClangViewParse(); boost::filesystem::path project_path; void start_reparse(); - bool start_reparse_needed=false; + bool reparse_needed=false; protected: void init_parse(); bool on_key_press_event(GdkEventKey* key); diff --git a/src/window.cc b/src/window.cc index eb73164..3b09318 100644 --- a/src/window.cc +++ b/src/window.cc @@ -104,9 +104,9 @@ Window::Window() : box(Gtk::ORIENTATION_VERTICAL), notebook(directories), compil directories.select(notebook.get_current_view()->file_path); if(auto source_view=dynamic_cast(notebook.get_current_view())) { - if(source_view->start_reparse_needed) { + if(source_view->reparse_needed) { source_view->start_reparse(); - source_view->start_reparse_needed=false; + source_view->reparse_needed=false; } } @@ -688,10 +688,11 @@ void Window::rename_token_entry() { entry_box.entries.emplace_back(*token_name, [this, token_name, token](const std::string& content){ if(notebook.get_current_page()!=-1 && content!=*token_name) { for(int c=0;crename_similar_tokens) { - auto number=notebook.get_view(c)->rename_similar_tokens(*token, content); + auto view=notebook.get_view(c); + if(view->rename_similar_tokens) { + auto number=view->rename_similar_tokens(*token, content); if(number>0) { - Singleton::terminal()->print("Replaced "+boost::lexical_cast(number)+" occurrences in file "+notebook.get_view(c)->file_path.string()+"\n"); + Singleton::terminal()->print("Replaced "+boost::lexical_cast(number)+" occurrences in file "+view->file_path.string()+"\n"); notebook.save(c); } }