From 4307048ed861f8287d5a8799ee3434c07c78f7f6 Mon Sep 17 00:00:00 2001 From: doe300 Date: Sat, 11 Feb 2023 12:27:20 +0100 Subject: [PATCH] Implemented removal of .bak .in file extensions for language detection This allows e.g. to detect my_code.cpp.bak as cpp and Makefile.in as makefile. --- src/source.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) 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");