Qt 6.x
The Qt SDK
Loading...
Searching...
No Matches
QQmlJS::Dom::IndentingLineWriter Class Reference

#include <qqmldomindentinglinewriter_p.h>

+ Inheritance diagram for QQmlJS::Dom::IndentingLineWriter:
+ Collaboration diagram for QQmlJS::Dom::IndentingLineWriter:

Public Member Functions

 IndentingLineWriter (SinkF innerSink, QString fileName, const LineWriterOptions &options=LineWriterOptions(), const FormatTextStatus &initialStatus=FormatTextStatus::initialStatus(), int lineNr=0, int columnNr=0, int utf16Offset=0, QString currentLine=QString())
 
void reindentAndSplit (QString eol, bool eof=false) override
 
FormatPartialStatusfStatus ()
 
void lineChanged () override
 
void willCommit () override
 
bool reindent () const
 
void setReindent (bool v)
 
- Public Member Functions inherited from QQmlJS::Dom::LineWriter
 LineWriter (SinkF innerSink, QString fileName, const LineWriterOptions &options=LineWriterOptions(), int lineNr=0, int columnNr=0, int utf16Offset=0, QString currentLine=QString())
 
std::function< void(QStringView)> sink ()
 
virtual ~LineWriter ()
 
QList< SinkFinnerSinks ()
 
void addInnerSink (SinkF s)
 
LineWriterensureNewline (int nNewlines=1, TextAddType t=TextAddType::Extra)
 
LineWriterensureSpace (TextAddType t=TextAddType::Extra)
 
LineWriterensureSpace (QStringView space, TextAddType t=TextAddType::Extra)
 
LineWriternewline ()
 
LineWriterspace ()
 
LineWriterwrite (QStringView v, TextAddType tType=TextAddType::Normal)
 
LineWriterwrite (QStringView v, SourceLocation *toUpdate)
 
void commitLine (QString eol, TextAddType t=TextAddType::Normal, int untilChar=-1)
 
void flush ()
 
void eof (bool ensureNewline=true)
 
SourceLocation committedLocation () const
 
PendingSourceLocationId startSourceLocation (SourceLocation *)
 
PendingSourceLocationId startSourceLocation (std::function< void(SourceLocation)>)
 
void endSourceLocation (PendingSourceLocationId)
 
quint32 counter () const
 
int addTextAddCallback (std::function< bool(LineWriter &, TextAddType)> callback)
 
bool removeTextAddCallback (int i)
 
int addNewlinesAutospacerCallback (int nLines)
 
void handleTrailingSpace (LineWriterOptions::TrailingSpace s)
 
void setLineIndent (int indentAmount)
 
QString fileName () const
 
const QStringcurrentLine () const
 
const LineWriterOptionsoptions () const
 
virtual void lineChanged ()
 
virtual void reindentAndSplit (QString eol, bool eof=false)
 
virtual void willCommit ()
 

Protected Attributes

FormatTextStatus m_preCachedStatus
 
bool m_fStatusValid = false
 
FormatPartialStatus m_fStatus
 
- Protected Attributes inherited from QQmlJS::Dom::LineWriter
QList< SinkFm_innerSinks
 
QString m_fileName
 
int m_lineNr = 0
 
int m_columnNr = 0
 
int m_lineUtf16Offset = 0
 
int m_currentColumnNr = 0
 
int m_utf16Offset = 0
 
QString m_currentLine
 
LineWriterOptions m_options
 
PendingSourceLocationId m_lastSourceLocationId
 
QMap< PendingSourceLocationId, PendingSourceLocationm_pendingSourceLocations
 
QAtomicInt m_lastCallbackId
 
QMap< int, std::function< bool(LineWriter &, TextAddType)> > m_textAddCallbacks
 
quint32 m_counter = 0
 
quint32 m_committedEmptyLines = 0x7FFFFFFF
 
bool m_reindent = true
 

Additional Inherited Members

- Public Types inherited from QQmlJS::Dom::LineWriter
enum class  TextAddType {
  Normal , Extra , Newline , NewlineSplit ,
  NewlineExtra , PartialCommit , Eof
}
 
- Protected Member Functions inherited from QQmlJS::Dom::LineWriter
void changeAtOffset (quint32 offset, qint32 change, qint32 colChange, qint32 lineChange)
 
QString eolToWrite () const
 
SourceLocation currentSourceLocation () const
 
int column (int localIndex)
 
void textAddCallback (TextAddType t)
 

Detailed Description

Definition at line 30 of file qqmldomindentinglinewriter_p.h.

Constructor & Destructor Documentation

◆ IndentingLineWriter()

QQmlJS::Dom::IndentingLineWriter::IndentingLineWriter ( SinkF  innerSink,
QString  fileName,
const LineWriterOptions options = LineWriterOptions(),
const FormatTextStatus initialStatus = FormatTextStatus::initialStatus(),
int  lineNr = 0,
int  columnNr = 0,
int  utf16Offset = 0,
QString  currentLine = QString() 
)
inline

Definition at line 34 of file qqmldomindentinglinewriter_p.h.

Member Function Documentation

◆ fStatus()

FormatPartialStatus & QQmlJS::Dom::IndentingLineWriter::fStatus ( )

Definition at line 13 of file qqmldomindentinglinewriter.cpp.

References QQmlJS::Dom::formatCodeLine(), QQmlJS::Dom::LineWriterOptions::formatOptions, QQmlJS::Dom::LineWriter::m_currentLine, m_fStatus, m_fStatusValid, QQmlJS::Dom::LineWriter::m_options, and m_preCachedStatus.

Referenced by reindentAndSplit(), and willCommit().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ lineChanged()

void QQmlJS::Dom::IndentingLineWriter::lineChanged ( )
inlineoverridevirtual

Reimplemented from QQmlJS::Dom::LineWriter.

Definition at line 46 of file qqmldomindentinglinewriter_p.h.

References m_fStatusValid.

Referenced by reindentAndSplit().

+ Here is the caller graph for this function:

◆ reindent()

bool QQmlJS::Dom::IndentingLineWriter::reindent ( ) const
inline

◆ reindentAndSplit()

void QQmlJS::Dom::IndentingLineWriter::reindentAndSplit ( QString  eol,
bool  eof = false 
)
overridevirtual

Reimplemented from QQmlJS::Dom::LineWriter.

Definition at line 27 of file qqmldomindentinglinewriter.cpp.

References QString::at(), QQmlJS::Dom::LineWriter::changeAtOffset(), QQmlJS::Dom::LineWriterOptions::codeTrailingSpace, QQmlJS::Dom::LineWriterOptions::commentTrailingSpace, QQmlJS::Dom::LineWriter::commitLine(), QQmlJS::Dom::FormatPartialStatus::currentStatus, QQmlJS::Dom::LineWriter::eof(), QQmlJS::Dom::LineWriter::eolToWrite(), fStatus(), QQmlJS::Dom::LineWriter::handleTrailingSpace(), QString::isEmpty(), QQmlJS::Dom::Scanner::State::isMultiline(), QQmlJS::Dom::Scanner::State::isMultilineComment(), QChar::isSpace(), QQmlJS::Dom::FormatTextStatus::lexerState, QQmlJS::Dom::Token::lexKindIsComment(), lineChanged(), QQmlJS::Dom::FormatPartialStatus::lineTokens, QQmlJS::Dom::LineWriter::m_columnNr, QQmlJS::Dom::LineWriter::m_currentLine, QQmlJS::Dom::LineWriter::m_options, m_preCachedStatus, QQmlJS::Dom::LineWriter::m_reindent, QQmlJS::Dom::LineWriter::m_utf16Offset, QQmlJS::Dom::LineWriterOptions::maxLineLength, QQmlJS::Dom::LineWriterOptions::minContentLength, QQmlJS::Dom::LineWriter::NewlineSplit, Q_ASSERT, qMax(), QQmlJS::Dom::LineWriter::setLineIndent(), QString::size(), QQmlJS::Dom::LineWriterOptions::stringTrailingSpace, QQmlJS::Dom::LineWriterOptions::strongMaxLineExtra, QQmlJS::Dom::FormatPartialStatus::tokenAt(), QQmlJS::Dom::FormatPartialStatus::tokenCount(), and QString::trimmed().

+ Here is the call graph for this function:

◆ setReindent()

void QQmlJS::Dom::IndentingLineWriter::setReindent ( bool  v)
inline

◆ willCommit()

void QQmlJS::Dom::IndentingLineWriter::willCommit ( )
overridevirtual

Reimplemented from QQmlJS::Dom::LineWriter.

Definition at line 22 of file qqmldomindentinglinewriter.cpp.

References QQmlJS::Dom::FormatPartialStatus::currentStatus, fStatus(), and m_preCachedStatus.

+ Here is the call graph for this function:

Member Data Documentation

◆ m_fStatus

FormatPartialStatus QQmlJS::Dom::IndentingLineWriter::m_fStatus
protected

Definition at line 56 of file qqmldomindentinglinewriter_p.h.

Referenced by fStatus().

◆ m_fStatusValid

bool QQmlJS::Dom::IndentingLineWriter::m_fStatusValid = false
protected

Definition at line 55 of file qqmldomindentinglinewriter_p.h.

Referenced by fStatus(), and lineChanged().

◆ m_preCachedStatus

FormatTextStatus QQmlJS::Dom::IndentingLineWriter::m_preCachedStatus
protected

Definition at line 54 of file qqmldomindentinglinewriter_p.h.

Referenced by fStatus(), reindentAndSplit(), and willCommit().


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