15 #ifndef LLVM_CLANG_APPLYREPLACEMENTS_H 16 #define LLVM_CLANG_APPLYREPLACEMENTS_H 18 #include "clang/Tooling/Core/Diagnostic.h" 19 #include "clang/Tooling/Refactoring.h" 20 #include "clang/Tooling/Refactoring/AtomicChange.h" 21 #include "llvm/ADT/StringMap.h" 22 #include "llvm/ADT/StringRef.h" 24 #include <system_error> 29 class DiagnosticsEngine;
35 typedef std::vector<clang::tooling::TranslationUnitReplacements>
TUReplacements;
41 typedef std::vector<clang::tooling::TranslationUnitDiagnostics>
TUDiagnostics;
44 typedef llvm::DenseMap<
const clang::FileEntry *,
45 std::vector<tooling::AtomicChange>>
66 const llvm::StringRef
Directory, TUReplacements &TUs,
67 TUReplacementFiles &TUFiles, clang::DiagnosticsEngine &Diagnostics);
70 const llvm::StringRef
Directory, TUDiagnostics &TUs,
71 TUReplacementFiles &TUFiles, clang::DiagnosticsEngine &Diagnostics);
91 clang::SourceManager &SM);
102 llvm::Expected<std::string>
104 const tooling::ApplyChangesSpec &Spec,
105 DiagnosticsEngine &Diagnostics);
117 clang::DiagnosticsEngine &Diagnostics);
122 #endif // LLVM_CLANG_APPLYREPLACEMENTS_H
bool deleteReplacementFiles(const TUReplacementFiles &Files, clang::DiagnosticsEngine &Diagnostics)
Delete the replacement files.
std::vector< clang::tooling::TranslationUnitReplacements > TUReplacements
Collection of TranslationUnitReplacements.
static std::string replace(llvm::StringRef Haystack, llvm::StringRef Needle, llvm::StringRef Repl)
llvm::Expected< std::string > applyChanges(StringRef File, const std::vector< tooling::AtomicChange > &Changes, const tooling::ApplyChangesSpec &Spec, DiagnosticsEngine &Diagnostics)
Apply AtomicChange on File and rewrite it.
llvm::StringRef Directory
std::error_code collectReplacementsFromDirectory(const llvm::StringRef Directory, TUReplacements &TUs, TUReplacementFiles &TUFiles, clang::DiagnosticsEngine &Diagnostics)
Recursively descends through a directory structure rooted at Directory and attempts to deserialize *...
===– Representation.cpp - ClangDoc Representation --------—*- C++ -*-===//
bool mergeAndDeduplicate(const TUReplacements &TUs, const TUDiagnostics &TUDs, FileToChangesMap &FileChanges, clang::SourceManager &SM)
Deduplicate, check for conflicts, and extract all Replacements stored in TUs.
std::vector< clang::tooling::TranslationUnitDiagnostics > TUDiagnostics
Collection of TranslationUniDiagnostics.
std::vector< std::string > TUReplacementFiles
Collection of TranslationUnitReplacement files.
llvm::DenseMap< const clang::FileEntry *, std::vector< tooling::AtomicChange > > FileToChangesMap
Map mapping file name to a set of AtomicChange targeting that file.
llvm::StringMap< std::string > Files