================ @@ -761,7 +762,37 @@ void StoreDiags::HandleDiagnostic(DiagnosticsEngine::Level DiagLevel, return false; if (!isInsideMainFile(FixIt.RemoveRange.getBegin(), SM)) return false; - Edits.push_back(toTextEdit(FixIt, SM, *LangOpts)); + + auto R = tooling::Replacement(SM, FixIt.RemoveRange, FixIt.CodeToInsert, + *LangOpts); + auto Err = Replacements->addOrMerge(R); + if (Err) { + log("Skipping formatting the replacement due to conflict: {0}", + llvm::toString(std::move(Err))); + Replacements = std::nullopt; + break; + } + } + + llvm::SmallVector<TextEdit, 1> Edits; + + if (Replacements) { + StringRef Code = SM.getBufferData(SM.getMainFileID()); + auto Repl = format::cleanupAroundReplacements(Code, *Replacements, + format::getNoStyle()); + if (!Repl) { + log("Skipping formatting the replacement due to conflict: {0}", + llvm::toString(std::move(Repl.takeError()))); + Replacements = std::nullopt; + } else { + auto Es = replacementsToEdits(Code, *Repl); ---------------- llvm-beanz wrote:
nit: ```suggestion std::vector<TextEdit> Es = replacementsToEdits(Code, *Repl); ``` see: https://llvm.org/docs/CodingStandards.html#use-auto-type-deduction-to-make-code-more-readable https://github.com/llvm/llvm-project/pull/118569 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits