15 #ifndef LLVM_CLANG_REWRITE_CORE_REWRITER_H 16 #define LLVM_CLANG_REWRITE_CORE_REWRITER_H 34 std::map<FileID, RewriteBuffer> RewriteBuffers;
48 : IncludeInsertsAtBeginOfRange(
true),
49 IncludeInsertsAtEndOfRange(
true),
50 RemoveLineIfEmpty(
false) { }
57 : SourceMgr(&SM), LangOpts(&LO) {}
58 explicit Rewriter() : SourceMgr(nullptr), LangOpts(nullptr) {}
95 bool InsertAfter =
true,
bool indentNewLines =
false);
171 std::map<FileID, RewriteBuffer>::const_iterator I =
172 RewriteBuffers.find(FID);
173 return I == RewriteBuffers.end() ? nullptr : &I->second;
178 buffer_iterator
buffer_end() {
return RewriteBuffers.end(); }
179 const_buffer_iterator
buffer_begin()
const {
return RewriteBuffers.begin(); }
180 const_buffer_iterator
buffer_end()
const {
return RewriteBuffers.end(); }
bool IncreaseIndentation(CharSourceRange range, SourceLocation parentIndent)
Increase indentation for the lines between the given source range.
const_buffer_iterator buffer_end() const
static CharSourceRange getTokenRange(SourceRange R)
bool RemoveText(SourceLocation Start, unsigned Length, RewriteOptions opts=RewriteOptions())
RemoveText - Remove the specified text region.
RewriteBuffer & getEditBuffer(FileID FID)
getEditBuffer - This is like getRewriteBufferFor, but always returns a buffer, and allows you to writ...
RewriteBuffer - As code is rewritten, SourceBuffer's from the original input with modifications get a...
std::string getRewrittenText(SourceRange Range) const
getRewrittenText - Return the rewritten form of the text in the specified range.
SourceLocation getBegin() const
std::map< FileID, RewriteBuffer >::const_iterator const_buffer_iterator
bool ReplaceText(SourceLocation Start, unsigned OrigLength, StringRef NewStr)
ReplaceText - This method replaces a range of characters in the input buffer with a new string...
Keeps track of the various options that can be enabled, which controls the dialect of C or C++ that i...
Rewriter(SourceManager &SM, const LangOptions &LO)
SourceManager & getSourceMgr() const
buffer_iterator buffer_end()
Represents a character-granular source range.
bool RemoveText(SourceRange range, RewriteOptions opts=RewriteOptions())
Remove the specified text region.
bool IncreaseIndentation(SourceRange range, SourceLocation parentIndent)
int getRangeSize(SourceRange Range, RewriteOptions opts=RewriteOptions()) const
getRangeSize - Return the size in bytes of the specified range if they are in the same file...
bool overwriteChangedFiles()
overwriteChangedFiles - Save all changed files to disk.
const_buffer_iterator buffer_begin() const
void setSourceMgr(SourceManager &SM, const LangOptions &LO)
Encodes a location in the source.
bool InsertTextAfter(SourceLocation Loc, StringRef Str)
InsertTextAfter - Insert the specified string at the specified location in the original buffer...
const RewriteBuffer * getRewriteBufferFor(FileID FID) const
getRewriteBufferFor - Return the rewrite buffer for the specified FileID.
bool ReplaceText(SourceRange range, StringRef NewStr)
ReplaceText - This method replaces a range of characters in the input buffer with a new string...
bool InsertText(SourceLocation Loc, StringRef Str, bool InsertAfter=true, bool indentNewLines=false)
InsertText - Insert the specified string at the specified location in the original buffer...
bool RemoveLineIfEmpty
If true and removing some text leaves a blank line also remove the empty line (false by default)...
bool InsertTextBefore(SourceLocation Loc, StringRef Str)
InsertText - Insert the specified string at the specified location in the original buffer...
An opaque identifier used by SourceManager which refers to a source file (MemoryBuffer) along with it...
Dataflow Directional Tag Classes.
bool RemoveText(CharSourceRange range, RewriteOptions opts=RewriteOptions())
Remove the specified text region.
const LangOptions & getLangOpts() const
bool IncludeInsertsAtBeginOfRange
Given a source range, true to include previous inserts at the beginning of the range as part of the r...
std::map< FileID, RewriteBuffer >::iterator buffer_iterator
buffer_iterator buffer_begin()
Rewriter - This is the main interface to the rewrite buffers.
Defines the clang::SourceLocation class and associated facilities.
static bool isRewritable(SourceLocation Loc)
isRewritable - Return true if this location is a raw file location, which is rewritable.
A trivial tuple used to represent a source range.
bool InsertTextAfterToken(SourceLocation Loc, StringRef Str)
Insert the specified string after the token in the specified location.
SourceLocation getBegin() const
This class handles loading and caching of source files into memory.
bool IncludeInsertsAtEndOfRange
Given a source range, true to include previous inserts at the end of the range as part of the range i...