|
|
|
|
@ -27,7 +27,7 @@ namespace sigc {
|
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Notebook::Notebook(Directories &directories) : Gtk::Notebook(), directories(directories) { |
|
|
|
|
Notebook::Notebook() : Gtk::Notebook() { |
|
|
|
|
Gsv::init(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -71,6 +71,7 @@ void Notebook::open(const boost::filesystem::path &file_path) {
|
|
|
|
|
auto language=Source::guess_language(file_path); |
|
|
|
|
if(language && (language->get_id()=="chdr" || language->get_id()=="cpphdr" || language->get_id()=="c" || language->get_id()=="cpp" || language->get_id()=="objc")) { |
|
|
|
|
boost::filesystem::path project_path; |
|
|
|
|
auto directories = *Singleton::directories(); |
|
|
|
|
if(directories.cmake && directories.cmake->project_path!="" && file_path.generic_string().substr(0, directories.cmake->project_path.generic_string().size()+1)==directories.cmake->project_path.generic_string()+'/') { |
|
|
|
|
project_path=directories.cmake->project_path; |
|
|
|
|
if(boost::filesystem::exists(project_path.string()+"/CMakeLists.txt") && !boost::filesystem::exists(project_path.string()+"/compile_commands.json")) |
|
|
|
|
@ -180,6 +181,7 @@ bool Notebook::save(int page, bool reparse_needed) {
|
|
|
|
|
//If CMakeLists.txt have been modified:
|
|
|
|
|
//TODO: recreate cmake even without directories open?
|
|
|
|
|
if(view->file_path.filename()=="CMakeLists.txt") { |
|
|
|
|
auto directories = *Singleton::directories(); |
|
|
|
|
if(directories.cmake && directories.cmake->project_path!="" && view->file_path.generic_string().substr(0, directories.cmake->project_path.generic_string().size()+1)==directories.cmake->project_path.generic_string()+'/' && CMake::create_compile_commands(directories.cmake->project_path)) { |
|
|
|
|
for(auto source_view: source_views) { |
|
|
|
|
if(auto source_clang_view=dynamic_cast<Source::ClangView*>(source_view)) { |
|
|
|
|
|