Browse Source

Removed reparse on tab switch after rename-refactoring, which is already reparsing affected buffers.

merge-requests/365/head
eidheim 10 years ago
parent
commit
9e3fbd216e
  1. 8
      src/notebook.cc
  2. 2
      src/notebook.h
  3. 2
      src/source.cc
  4. 2
      src/source.h
  5. 11
      src/window.cc

8
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(reparse_needed) {
if(auto clang_view=dynamic_cast<Source::ClangView*>(view)) {
for(auto a_view: source_views) {
if(auto a_clang_view=dynamic_cast<Source::ClangView*>(a_view)) {
if(clang_view!=a_clang_view)
a_clang_view->start_reparse_needed=true;
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() {

2
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:

2
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())

2
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);

11
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<Source::ClangView*>(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;c<notebook.size();c++) {
if(notebook.get_view(c)->rename_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<std::string>(number)+" occurrences in file "+notebook.get_view(c)->file_path.string()+"\n");
Singleton::terminal()->print("Replaced "+boost::lexical_cast<std::string>(number)+" occurrences in file "+view->file_path.string()+"\n");
notebook.save(c);
}
}

Loading…
Cancel
Save