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..db6e2475c80ace9f4bedc8495a0f27ae99a347da |
| --- /dev/null |
| +++ b/tools/clang/rewrite_to_chrome_style/EditTracker.h |
| @@ -0,0 +1,48 @@ |
| +// 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" |
|
Łukasz Anforowicz
2016/12/22 17:34:36
very nitty nit / please ignore me: Can me forward
dcheng
2016/12/22 20:49:40
It could be. But I only bothered forward declaring
|
| +#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 |
| +// 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>:<prefix>:<original text>:<next text> |
|
Łukasz Anforowicz
2016/12/22 17:34:36
typo:s/next/new/
nit/suggestion: s/<prefix>/<tag>
dcheng
2016/12/22 20:49:40
We already have a hack for newlines: https://cs.ch
|
| + // for each distinct filename for each tracked edit. |
| + void SerializeTo(llvm::StringRef prefix, llvm::raw_ostream& output) const; |
| + |
| + private: |
| + EditTracker(const EditTracker&) = delete; |
|
Łukasz Anforowicz
2016/12/22 17:34:36
Is this meant to be an equivalent of DISALLOW_COPY
dcheng
2016/12/22 20:49:40
Done.
|
| + |
| + // The string key is the original text. |
| + llvm::StringMap<EditInfo> tracked_edits_; |
|
dcheng
2016/12/22 10:26:22
Incidentally, LLVM solved the whole "std::map<std:
Łukasz Anforowicz
2016/12/22 17:34:36
I don't know what is meant by "sad situation" + I
dcheng
2016/12/22 20:49:40
It doesn't help with unordered sets, and the trans
|
| +}; |
| + |
| +#endif // #define TOOLS_CLANG_REWRITE_TO_CHROME_STYLE_EDIT_TRACKER_H_ |