diff --git a/src/source.cpp b/src/source.cpp index 901b4f9..0d03bf9 100644 --- a/src/source.cpp +++ b/src/source.cpp @@ -57,8 +57,13 @@ Glib::RefPtr Source::guess_language(const boost::filesystem::path if(result_uncertain) content_type.clear(); auto language = language_manager->guess_language(filename, content_type); + auto extension = file_path.extension().string(); + if(!language && (extension == ".in" || extension == ".bak")) { + auto path_copy = file_path; + path_copy.replace_extension(); + return guess_language(path_copy); + } if(!language) { - auto extension = file_path.extension().string(); if(filename == "CMakeLists.txt") language = language_manager->get_language("cmake"); else if(filename == "meson.build") @@ -90,7 +95,7 @@ Glib::RefPtr Source::guess_language(const boost::filesystem::path } } else if(language->get_id() == "cuda") { - if(file_path.extension() == ".cuh") + if(extension == ".cuh") language = language_manager->get_language("cpphdr"); else language = language_manager->get_language("cpp");