Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
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 (const SinkF &innerSink, const 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 (const 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 (const SinkF &innerSink, const QString &fileName, const LineWriterOptions &options=LineWriterOptions(), int lineNr=0, int columnNr=0, int utf16Offset=0, const QString &currentLine=QString())
 
std::function< void(QStringView)> sink ()
 
virtual ~LineWriter ()
 
QList< SinkFinnerSinks ()
 
void addInnerSink (const 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 (const 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
 

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
 
PendingSourceLocationIdAtomic 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 ( const SinkF & innerSink,
const 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 ( const 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(), 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: