[clang] [clang-format] Detect language for file templates (PR #191502)

Björn Schäpers via cfe-commits cfe-commits at lists.llvm.org
Sun Apr 12 11:58:50 PDT 2026


================
@@ -4427,7 +4427,13 @@ const char *StyleOptionHelpDescription =
     "4. \"{key: value, ...}\" to set specific parameters, e.g.:\n"
     "   --style=\"{BasedOnStyle: llvm, IndentWidth: 8}\"";
 
-static FormatStyle::LanguageKind getLanguageByFileName(StringRef FileName) {
+static FormatStyle::LanguageKind getLanguageByFileName(StringRef &FileName) {
+  constexpr std::array TemplateSuffixes{StringRef{".in"},
+                                        StringRef{".template"}};
+  for (auto Suffix : TemplateSuffixes)
+    if (FileName.ends_with(Suffix))
+      FileName = FileName.drop_back(Suffix.size());
----------------
HazardyKnusperkeks wrote:

Is there a problem with an empty name? Otherwise I wouldn't blow the code up.

https://github.com/llvm/llvm-project/pull/191502


More information about the cfe-commits mailing list