Browse Source

Merge branch 'master' of http://github.com/eidheim/jucipp

merge-requests/365/head
Jørgen Lien Sellæg 10 years ago
parent
commit
8c9b4f7cb6
  1. 1
      src/files.h
  2. 9
      src/notebook.cc
  3. 13
      src/source.cc
  4. 1
      src/source.h
  5. 8
      src/window.cc

1
src/files.h

@ -30,7 +30,6 @@ const std::string configjson =
" \"45\": \"def:type\",\n"
" \"46\": \"def:identifier\",\n"
" \"109\": \"def:string\",\n"
" \"500\": \"def:preprocessor\",\n"
" \"702\": \"def:statement\",\n"
" \"705\": \"def:comment\"\n"
" },\n"

9
src/notebook.cc

@ -113,6 +113,15 @@ 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<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;
}
}
}
view->get_buffer()->set_modified(false);
Singleton::terminal()->print("File saved to: " +view->file_path.string()+"\n");

13
src/source.cc

@ -320,7 +320,8 @@ Source::View::~View() {
g_clear_object(&search_context);
g_clear_object(&search_settings);
delete_aspell_speller(spellcheck_checker);
if(spellcheck_checker!=NULL)
delete_aspell_speller(spellcheck_checker);
}
void Source::View::search_highlight(const std::string &text, bool case_sensitive, bool regex) {
@ -962,10 +963,12 @@ void Source::ClangViewParse::update_syntax() {
auto kind=(int)token.get_cursor().get_kind();
if(kind==101 || kind==102)
kind=(int)token.get_cursor().get_referenced().get_kind();
ranges.emplace_back(token.offsets, kind); //TODO: Need to get type of referenced token if any
if(kind!=500)
ranges.emplace_back(token.offsets, kind);
}
else if(token.get_kind()==3) // LiteralToken
else if(token.get_kind()==3) { // LiteralToken
ranges.emplace_back(token.offsets, 109);
}
else if(token.get_kind()==4) // CommentToken
ranges.emplace_back(token.offsets, 705);
}
@ -1330,6 +1333,8 @@ void Source::ClangViewAutocomplete::autocomplete() {
get_source_buffer()->begin_user_action();
completion_dialog->show();
}
else
start_reparse();
}
else {
set_status("");
@ -1542,7 +1547,7 @@ Source::ClangViewAutocomplete(file_path, project_path) {
Source::ClangView::ClangView(const boost::filesystem::path &file_path, const boost::filesystem::path& project_path, Glib::RefPtr<Gsv::Language> language): ClangViewRefactor(file_path, project_path) {
if(language) {
get_source_buffer()->set_highlight_syntax(false);
get_source_buffer()->set_highlight_syntax(true);
get_source_buffer()->set_language(language);
}

1
src/source.h

@ -126,6 +126,7 @@ namespace Source {
ClangViewParse(const boost::filesystem::path &file_path, const boost::filesystem::path& project_path);
boost::filesystem::path project_path;
void start_reparse();
bool start_reparse_needed=false;
protected:
void init_parse();
bool on_key_press_event(GdkEventKey* key);

8
src/window.cc

@ -93,8 +93,12 @@ 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()))
source_view->start_reparse();
if(auto source_view=dynamic_cast<Source::ClangView*>(notebook.get_current_view())) {
if(source_view->start_reparse_needed) {
source_view->start_reparse();
source_view->start_reparse_needed=false;
}
}
Singleton::status()->set_text(notebook.get_current_view()->status);
}

Loading…
Cancel
Save