10 #ifndef LLVM_CLANG_REWRITE_CORE_REWRITEBUFFER_H
11 #define LLVM_CLANG_REWRITE_CORE_REWRITEBUFFER_H
16 #include "llvm/ADT/StringRef.h"
37 unsigned size()
const {
return Buffer.
size(); }
41 void Initialize(
const char *BufStart,
const char *BufEnd) {
42 Buffer.
assign(BufStart, BufEnd);
55 raw_ostream &
write(raw_ostream &Stream)
const;
58 void RemoveText(
unsigned OrigOffset,
unsigned Size,
59 bool removeLineIfEmpty =
false);
65 void InsertText(
unsigned OrigOffset, StringRef Str,
66 bool InsertAfter =
true);
87 void ReplaceText(
unsigned OrigOffset,
unsigned OrigLength,
97 unsigned getMappedOffset(
unsigned OrigOffset,
98 bool AfterInserts =
false)
const{
99 return Deltas.
getDeltaAt(2*OrigOffset+AfterInserts)+OrigOffset;
104 void AddInsertDelta(
unsigned OrigOffset,
int Change) {
105 return Deltas.
AddDelta(2*OrigOffset, Change);
110 void AddReplaceDelta(
unsigned OrigOffset,
int Change) {
111 return Deltas.
AddDelta(2*OrigOffset+1, Change);
void AddDelta(unsigned FileIndex, int Delta)
void Initialize(StringRef Input)
void Initialize(const char *BufStart, const char *BufEnd)
Forward-declares and imports various common LLVM datatypes that clang wants to use unqualified...
RewriteRope::const_iterator iterator
void InsertTextAfter(unsigned OrigOffset, StringRef Str)
void InsertText(unsigned OrigOffset, StringRef Str, bool InsertAfter=true)
void ReplaceText(unsigned OrigOffset, unsigned OrigLength, StringRef NewStr)
void RemoveText(unsigned OrigOffset, unsigned Size, bool removeLineIfEmpty=false)
RemoveText - Remove the specified text.
int getDeltaAt(unsigned FileIndex) const
void InsertTextBefore(unsigned OrigOffset, StringRef Str)
void assign(const char *Start, const char *End)
raw_ostream & write(raw_ostream &Stream) const
Write to Stream the result of applying all changes to the original buffer. Note that it isn't safe to...