From 85405c36bc1c7fc6625341e571766a21f93321a4 Mon Sep 17 00:00:00 2001 From: eidheim Date: Wed, 15 Feb 2023 12:08:19 +0100 Subject: [PATCH] Cleanup of Source::guess_language --- src/source.cpp | 24 +++++++----------------- 1 file changed, 7 insertions(+), 17 deletions(-) diff --git a/src/source.cpp b/src/source.cpp index f4e0a7b..5379582 100644 --- a/src/source.cpp +++ b/src/source.cpp @@ -59,11 +59,6 @@ Glib::RefPtr Source::guess_language(const boost::filesystem::path 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) { if(filename == "CMakeLists.txt") language = language_manager->get_language("cmake"); @@ -86,21 +81,16 @@ Glib::RefPtr Source::guess_language(const boost::filesystem::path extension == ".geom" || extension == ".comp") language = language_manager->get_language("glsl"); - else if(!file_path.has_extension()) { - for(auto &part : file_path) { - if(part == "include") { - language = language_manager->get_language("cpphdr"); - break; - } - } - } + else if(extension == ".in" || extension == ".bak") + return guess_language(boost::filesystem::path(file_path).replace_extension()); + else if(!file_path.has_extension() && std::any_of(file_path.begin(), file_path.end(), + [](const boost::filesystem::path &path) { return path == "include"; })) + language = language_manager->get_language("cpphdr"); else { std::ifstream input(file_path.string(), std::ios::binary); std::string tag(5, '\0'); - if(input && input.read(&tag[0], static_cast(tag.size()))) { - if(tag == "get_language("xml"); - } + if(input && input.read(&tag[0], static_cast(tag.size())) && tag == "get_language("xml"); } } else if(language->get_id() == "cuda") {