Chromium Code Reviews| Index: tools/clang/rewrite_to_chrome_style/EditTracker.h |
| diff --git a/tools/clang/rewrite_to_chrome_style/EditTracker.h b/tools/clang/rewrite_to_chrome_style/EditTracker.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..ef5e30145adade2118b257dd79ab59d487006647 |
| --- /dev/null |
| +++ b/tools/clang/rewrite_to_chrome_style/EditTracker.h |
| @@ -0,0 +1,49 @@ |
| +// Copyright 2016 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#ifndef TOOLS_CLANG_REWRITE_TO_CHROME_STYLE_EDIT_TRACKER_H_ |
| +#define TOOLS_CLANG_REWRITE_TO_CHROME_STYLE_EDIT_TRACKER_H_ |
| + |
| +#include <map> |
| + |
| +#include "clang/Basic/SourceLocation.h" |
| +#include "clang/Basic/SourceManager.h" |
| +#include "llvm/ADT/StringMap.h" |
| +#include "llvm/ADT/StringRef.h" |
| +#include "llvm/ADT/StringSet.h" |
| + |
| +namespace llvm { |
| +class raw_ostream; |
| +} // namespace llvm |
| + |
| +struct EditInfo { |
| + std::string new_text; |
| + llvm::StringSet<> filenames; |
| +}; |
| + |
| +// Simple class that tracks the edits made by path. Used to dump the databaes |
|
danakj
2016/12/22 21:06:40
the databaes are bae
|
| +// used by the Blink rebase helper. |
| +class EditTracker { |
| + public: |
| + EditTracker() = default; |
| + |
| + void Add(const clang::SourceManager& source_manager, |
| + clang::SourceLocation location, |
| + llvm::StringRef original_text, |
| + llvm::StringRef new_text); |
| + |
| + // Serializes the tracked edits to |output|. Emits: |
| + // <filename>:<tag>:<original text>:<new text> |
| + // for each distinct filename for each tracked edit. |
| + void SerializeTo(llvm::StringRef tag, llvm::raw_ostream& output) const; |
| + |
| + private: |
| + EditTracker(const EditTracker&) = delete; |
| + EditTracker& operator=(const EditTracker&) = delete; |
| + |
| + // The string key is the original text. |
| + llvm::StringMap<EditInfo> tracked_edits_; |
| +}; |
| + |
| +#endif // #define TOOLS_CLANG_REWRITE_TO_CHROME_STYLE_EDIT_TRACKER_H_ |