clang API Documentation

Public Types | Public Member Functions | Friends
clang::RewriteBuffer Class Reference

#include <Rewriter.h>

List of all members.

Public Types

typedef RewriteRope::const_iterator iterator

Public Member Functions

iterator begin () const
iterator end () const
unsigned size () const
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 use this function to overwrite memory mapped files in-place (PR17960). Consider using a higher-level utility such as Rewriter::overwriteChangedFiles() instead.
void RemoveText (unsigned OrigOffset, unsigned Size, bool removeLineIfEmpty=false)
 RemoveText - Remove the specified text.
void InsertText (unsigned OrigOffset, StringRef Str, bool InsertAfter=true)
void InsertTextBefore (unsigned OrigOffset, StringRef Str)
void InsertTextAfter (unsigned OrigOffset, StringRef Str)
void ReplaceText (unsigned OrigOffset, unsigned OrigLength, StringRef NewStr)

Friends

class Rewriter

Detailed Description

RewriteBuffer - As code is rewritten, SourceBuffer's from the original input with modifications get a new RewriteBuffer associated with them. The RewriteBuffer captures the modified text itself as well as information used to map between SourceLocation's in the original input and offsets in the RewriteBuffer. For example, if text is inserted into the buffer, any locations after the insertion point have to be mapped.

Definition at line 37 of file Rewriter.h.


Member Typedef Documentation

Definition at line 44 of file Rewriter.h.


Member Function Documentation

Definition at line 45 of file Rewriter.h.

References clang::RewriteRope::begin().

Referenced by clang::Rewriter::getRewrittenText(), RemoveText(), and write().

iterator clang::RewriteBuffer::end ( ) const [inline]

Definition at line 46 of file Rewriter.h.

References clang::RewriteRope::end().

Referenced by RemoveText(), and write().

void RewriteBuffer::InsertText ( unsigned  OrigOffset,
StringRef  Str,
bool  InsertAfter = true 
)

InsertText - Insert some text at the specified point, where the offset in the buffer is specified relative to the original SourceBuffer. The text is inserted after the specified location.

Definition at line 94 of file Rewriter.cpp.

References clang::RewriteRope::insert().

Referenced by clang::Rewriter::IncreaseIndentation(), clang::Rewriter::InsertText(), InsertTextAfter(), clang::Rewriter::InsertTextAfterToken(), and InsertTextBefore().

void clang::RewriteBuffer::InsertTextAfter ( unsigned  OrigOffset,
StringRef  Str 
) [inline]

InsertTextAfter - Insert some text at the specified point, where the offset in the buffer is specified relative to the original SourceBuffer. The text is inserted after the specified location.

Definition at line 81 of file Rewriter.h.

References InsertText().

Referenced by clang::html::AddLineNumbers(), clang::html::HighlightRange(), and clang::RewriteMacrosInInput().

void clang::RewriteBuffer::InsertTextBefore ( unsigned  OrigOffset,
StringRef  Str 
) [inline]

InsertTextBefore - Insert some text before the specified point, where the offset in the buffer is specified relative to the original SourceBuffer. The text is inserted before the specified location. This is method is the same as InsertText with "InsertAfter == false".

Definition at line 74 of file Rewriter.h.

References InsertText().

Referenced by AddLineNumber(), clang::html::AddLineNumbers(), clang::html::HighlightRange(), and clang::RewriteMacrosInInput().

void RewriteBuffer::RemoveText ( unsigned  OrigOffset,
unsigned  Size,
bool  removeLineIfEmpty = false 
)

RemoveText - Remove the specified text.

Definition at line 51 of file Rewriter.cpp.

References begin(), end(), clang::RewriteRope::erase(), clang::isWhitespace(), and clang::RewriteRope::size().

Referenced by clang::Rewriter::RemoveText().

void RewriteBuffer::ReplaceText ( unsigned  OrigOffset,
unsigned  OrigLength,
StringRef  NewStr 
)

ReplaceText - This method replaces a range of characters in the input buffer with a new string. This is effectively a combined "remove/insert" operation.

ReplaceText - This method replaces a range of characters in the input buffer with a new string. This is effectively a combined "remove+insert" operation.

Definition at line 110 of file Rewriter.cpp.

References clang::RewriteRope::erase(), and clang::RewriteRope::insert().

Referenced by clang::html::EscapeText(), and clang::Rewriter::ReplaceText().

Definition at line 47 of file Rewriter.h.

References clang::RewriteRope::size().

raw_ostream & RewriteBuffer::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 use this function to overwrite memory mapped files in-place (PR17960). Consider using a higher-level utility such as Rewriter::overwriteChangedFiles() instead.

The original buffer is not actually changed.

Definition at line 27 of file Rewriter.cpp.

References begin(), end(), and clang::RopePieceBTreeIterator::MoveToNextPiece().

Referenced by clang::tooling::applyAllReplacements(), clang::arcmt::MigrationProcess::applyTransform(), clang::index::SimpleFormatContext::getRewrittenText(), clang::FixItRewriter::WriteFixedFile(), and clang::FixItRewriter::WriteFixedFiles().


Friends And Related Function Documentation

friend class Rewriter [friend]

Definition at line 38 of file Rewriter.h.


The documentation for this class was generated from the following files: