[clang] [clang][analyzer] Add plist macro formatting (PR #156046)

via cfe-commits cfe-commits at lists.llvm.org
Mon Nov 24 08:45:29 PST 2025


================
@@ -132,6 +133,41 @@ MacroExpansionContext::getOriginalText(SourceLocation MacroExpansionLoc) const {
       LangOpts);
 }
 
+std::optional<StringRef> MacroExpansionContext::getFormattedExpandedText(
+    SourceLocation MacroExpansionLoc, bool ShouldFormatMacrosPlist) const {
+  std::optional<StringRef> ExpandedText = getExpandedText(MacroExpansionLoc);
+  if (!ExpandedText)
+    return std::nullopt;
+
+  if (!ShouldFormatMacrosPlist)
+    return ExpandedText;
+
+  auto CachedIt = FormattedExpandedTokens.find(MacroExpansionLoc);
+  if (CachedIt != FormattedExpandedTokens.end())
+    return StringRef(CachedIt->getSecond());
+
+  clang::format::FormatStyle Style = clang::format::getLLVMStyle();
+
+  std::string MacroCodeBlock = ExpandedText->str();
+
+  std::vector<clang::tooling::Range> Ranges;
+  Ranges.emplace_back(0, MacroCodeBlock.length());
+
+  auto Replacements = clang::format::reformat(Style, MacroCodeBlock, Ranges,
+                                              "<macro-expansion>");
+
+  auto Result =
----------------
ankurkraj wrote:

makes sense, have made the changes

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


More information about the cfe-commits mailing list