KateBuffer Class Reference

#include <katebuffer.h>

Inheritance diagram for KateBuffer:


void respellCheckBlock (int start, int end)
void tagLines (int start, int end)
- Signals inherited from Kate::TextBuffer
void cleared ()
void editingFinished ()
void editingStarted ()
void lineUnwrapped (int line)
void lineWrapped (const KTextEditor::Cursor &position)
void loaded (const QString &filename, bool encodingErrors)
void saved (const QString &filename)
void textInserted (const KTextEditor::Cursor &position, const QString &text)
void textRemoved (const KTextEditor::Range &range, const QString &text)

Public Member Functions

 KateBuffer (KTextEditor::DocumentPrivate *doc)
 ~KateBuffer () override
bool brokenEncoding () const
bool canEncode ()
void clear () override
KTextEditor::Range computeFoldingRangeForStartLine (int startLine)
int count () const
bool editChanged () const
void editEnd ()
void editStart ()
int editTagEnd () const
bool editTagFrom () const
int editTagStart () const
void ensureHighlighted (int line, int lookAhead=64)
KateHighlighting * highlight ()
void invalidateHighlighting ()
int longestLineLoaded () const
bool openFile (const QString &m_file, bool enforceTextCodec)
Kate::TextLine plainLine (int lineno)
bool saveFile (const QString &m_file)
void setHighlight (int hlMode)
void setTabWidth (int w)
int tabWidth () const
bool tooLongLinesWrapped () const
void unwrapLine (int line) override
void wrapLine (const KTextEditor::Cursor &position) override
- Public Member Functions inherited from Kate::TextBuffer
 TextBuffer (KTextEditor::DocumentPrivate *parent, int blockSize=64, bool alwaysUseKAuth=false)
virtual ~TextBuffer ()
void debugPrint (const QString &title) const
const QByteArraydigest () const
KTextEditor::DocumentPrivate * document () const
bool editingChangedBuffer () const
bool editingChangedNumberOfLines () const
int editingLastLines () const
qint64 editingLastRevision () const
int editingMaximalLineChanged () const
int editingMinimalLineChanged () const
int editingTransactions () const
KEncodingProber::ProberType encodingProberType () const
EndOfLineMode endOfLineMode () const
QTextCodecfallbackTextCodec () const
virtual bool finishEditing ()
bool generateByteOrderMark () const
TextHistoryhistory ()
virtual void insertText (const KTextEditor::Cursor &position, const QString &text)
void invalidateRanges ()
TextLine line (int line) const
int lines () const
virtual bool load (const QString &filename, bool &encodingErrors, bool &tooLongLinesWrapped, int &longestLineLoaded, bool enforceTextCodec)
bool rangePointerValid (TextRange *range) const
QList< TextRange * > rangesForLine (int line, KTextEditor::View *view, bool rangesWithAttributeOnly) const
virtual void removeText (const KTextEditor::Range &range)
qint64 revision () const
virtual bool save (const QString &filename)
void setDigest (const QByteArray &checksum)
void setEncodingProberType (KEncodingProber::ProberType proberType)
void setEndOfLineMode (EndOfLineMode endOfLineMode)
void setFallbackTextCodec (QTextCodec *codec)
void setGenerateByteOrderMark (bool generateByteOrderMark)
void setLineLengthLimit (int lineLengthLimit)
void setNewLineAtEof (bool newlineAtEof)
void setTextCodec (QTextCodec *codec)
virtual bool startEditing ()
QString text () const
QTextCodectextCodec () const
- Public Member Functions inherited from QObject
 QObject (QObject *parent)
bool blockSignals (bool block)
const QObjectListchildren () const const
QMetaObject::Connection connect (const QObject *sender, const char *signal, const char *method, Qt::ConnectionType type) const const
void deleteLater ()
void destroyed (QObject *obj)
bool disconnect (const char *signal, const QObject *receiver, const char *method) const const
bool disconnect (const QObject *receiver, const char *method) const const
void dumpObjectInfo ()
void dumpObjectInfo () const const
void dumpObjectTree ()
void dumpObjectTree () const const
QList< QByteArraydynamicPropertyNames () const const
virtual bool event (QEvent *e)
virtual bool eventFilter (QObject *watched, QEvent *event)
findChild (const QString &name, Qt::FindChildOptions options) const const
QList< T > findChildren (const QString &name, Qt::FindChildOptions options) const const
QList< T > findChildren (const QRegExp &regExp, Qt::FindChildOptions options) const const
QList< T > findChildren (const QRegularExpression &re, Qt::FindChildOptions options) const const
bool inherits (const char *className) const const
void installEventFilter (QObject *filterObj)
bool isWidgetType () const const
bool isWindowType () const const
void killTimer (int id)
virtual const QMetaObjectmetaObject () const const
void moveToThread (QThread *targetThread)
QString objectName () const const
void objectNameChanged (const QString &objectName)
QObjectparent () const const
QVariant property (const char *name) const const
 Q_CLASSINFO (Name, Value)
 Q_ENUM (...)
 Q_ENUM_NS (...)
 Q_ENUMS (...)
 Q_FLAG (...)
 Q_FLAG_NS (...)
 Q_FLAGS (...)
qFindChild (const QObject *obj, const QString &name)
QList< T > qFindChildren (const QObject *obj, const QRegExp &regExp)
QList< T > qFindChildren (const QObject *obj, const QString &name)
qobject_cast (QObject *object)
qobject_cast (const QObject *object)
void removeEventFilter (QObject *obj)
void setObjectName (const QString &name)
void setParent (QObject *parent)
bool setProperty (const char *name, const QVariant &value)
bool signalsBlocked () const const
int startTimer (int interval, Qt::TimerType timerType)
int startTimer (std::chrono::milliseconds time, Qt::TimerType timerType)
QThreadthread () const const

Additional Inherited Members

- Public Types inherited from Kate::TextBuffer
enum  EndOfLineMode { eolUnknown = -1, eolUnix = 0, eolDos = 1, eolMac = 2 }
- Properties inherited from QObject
- Static Public Member Functions inherited from QObject
QMetaObject::Connection connect (const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
QMetaObject::Connection connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type)
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method, Qt::ConnectionType type)
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, Functor functor)
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, const QObject *context, Functor functor, Qt::ConnectionType type)
bool disconnect (const QMetaObject::Connection &connection)
bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *method)
bool disconnect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method)
bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method)
QString tr (const char *sourceText, const char *disambiguation, int n)
QString trUtf8 (const char *sourceText, const char *disambiguation, int n)
- Public Attributes inherited from QObject
typedef QObjectList
- Protected Member Functions inherited from QObject
virtual void childEvent (QChildEvent *event)
virtual void connectNotify (const QMetaMethod &signal)
virtual void customEvent (QEvent *event)
virtual void disconnectNotify (const QMetaMethod &signal)
bool isSignalConnected (const QMetaMethod &signal) const const
int receivers (const char *signal) const const
QObjectsender () const const
int senderSignalIndex () const const
virtual void timerEvent (QTimerEvent *event)

Detailed Description

Constructor & Destructor Documentation

KateBuffer::KateBuffer ( KTextEditor::DocumentPrivate *  doc)

Create an empty buffer.

docparent document

(with one block with one empty line)

Definition at line 50 of file katebuffer.cpp.

KateBuffer::~KateBuffer ( )

Goodbye buffer.

Cleanup on destruction.

Definition at line 66 of file katebuffer.cpp.

Member Function Documentation

bool KateBuffer::brokenEncoding ( ) const

Did encoding errors occur on load?

encoding errors occurred on load?

Definition at line 126 of file katebuffer.h.

bool KateBuffer::canEncode ( )

Can the current codec handle all chars.

chars can be encoded

Definition at line 221 of file katebuffer.cpp.

void KateBuffer::clear ( )

Clear the buffer.

Reimplemented from Kate::TextBuffer.

Definition at line 134 of file katebuffer.cpp.

KTextEditor::Range KateBuffer::computeFoldingRangeForStartLine ( int  startLine)

For a given line, compute the folding range that starts there to be used to fold e.g.

from the icon border

startLinestart line
folding range starting at the given line or invalid range when there is no folding start or startLine is not valid

ensure valid input

no highlighting, no folding, ATM

first: get the wanted start line highlighted

return if no folding start!

now: decided if indentation based folding or not!

get our start indentation level

search next line with indentation level <= our one

get line

indentation higher than our start line? continue

empty line? continue

else, break

lastLine is always one too much

backtrack all empty lines, we don't want to add them to the fold!

we shall not fold one-liners

be done now

'normal' attribute based folding, aka token based like '{' BLUB '}'

first step: search the first region type, that stays open for the start line

mapping of type to "first" offset of it and current number of not matched openings

walk over all attributes of the line and compute the matchings

folding close?

search for this type, try to decrement counter, perhaps erase element!

folding open?

search for this type, either insert it, with current offset or increment counter!

compute first type with offset

no opening region found, bad, nothing to do

second step: search for matching end region marker!

ensure line is highlighted

search for matching end marker

matching folding close?

end reached? compute resulting range!

matching folding open?

if we arrive here, the opened range spans to the end of the document!

Definition at line 448 of file katebuffer.cpp.

int KateBuffer::count ( ) const

Return the total number of lines in the buffer.

Definition at line 187 of file katebuffer.h.

bool KateBuffer::editChanged ( ) const

were there changes in the current running editing session?

changes done?

Definition at line 76 of file katebuffer.h.

void KateBuffer::editEnd ( )

finish some editing action

not finished, do nothing

nothing change, OK

if we arrive here, line changed should be OK

no highlighting, nothing to do

if we don't touch the highlighted area => fine

look one line too far, needed for linecontinue stuff

for indentation sensitive folding, we need to redo things one line up, to e.g. get notified about new folding starts see bug 351496

really update highlighting

Definition at line 77 of file katebuffer.cpp.

void KateBuffer::editStart ( )

start some editing action

Definition at line 70 of file katebuffer.cpp.

int KateBuffer::editTagEnd ( ) const

dirty lines end

end line

Definition at line 94 of file katebuffer.h.

bool KateBuffer::editTagFrom ( ) const

line inserted/removed?

line inserted/removed?

Definition at line 103 of file katebuffer.h.

int KateBuffer::editTagStart ( ) const

dirty lines start

start line

Definition at line 85 of file katebuffer.h.

void KateBuffer::ensureHighlighted ( int  line,
int  lookAhead = 64 

Update highlighting of given line line, if needed.

If line is already highlighted, this function does nothing. If line is not highlighted, all lines up to line + lookAhead are highlighted.

lookAheadalso highlight these following lines

Definition at line 273 of file katebuffer.cpp.

void KateBuffer::invalidateHighlighting ( )

Invalidate highlighting of whole buffer.

Definition at line 352 of file katebuffer.cpp.

bool KateBuffer::openFile ( const QString m_file,
bool  enforceTextCodec 

Open a file, use the given filename.

m_filefilename to open
enforceTextCodecenforce to use only the set text codec

allow non-existent files without error, if local file! will allow to do "kate newfile.txt" without error messages but still fail if e.g. you mistype a url and it can't be fetched via fish:// or other strange things in kio happen... just clear() + exit with success!

check if this is a normal file or not, avoids to open char devices or directories! else clear buffer and break out with error

try to load

Definition at line 148 of file katebuffer.cpp.

Kate::TextLine KateBuffer::plainLine ( int  lineno)

Return line lineno.

Highlighting of returned line might be out-dated, which may be sufficient for pure text manipulation functions, like search/replace. If you require highlighting to be up to date, call ensureHighlighted prior to this method.

Definition at line 166 of file katebuffer.h.

bool KateBuffer::saveFile ( const QString m_file)

Save the buffer to a file, use the given filename + codec + end of line chars (internal use of qtextstream)

m_filefilename to save to

Definition at line 243 of file katebuffer.cpp.

void KateBuffer::setHighlight ( int  hlMode)

Use highlight for highlighting.

highlight may be 0 in which case highlighting will be disabled.

Definition at line 323 of file katebuffer.cpp.

void KateBuffer::tagLines ( int  start,
int  end 

Emitted when the highlighting of a certain range has changed.

bool KateBuffer::tooLongLinesWrapped ( ) const

Too long lines wrapped on load?

too long lines wrapped on load?

Definition at line 135 of file katebuffer.h.

void KateBuffer::unwrapLine ( int  line)

Unwrap given line.

lineline to unwrap

Reimplemented from Kate::TextBuffer.

Definition at line 302 of file katebuffer.cpp.

void KateBuffer::wrapLine ( const KTextEditor::Cursor position)

Wrap line at given cursor position.

positionline/column as cursor where to wrap

Reimplemented from Kate::TextBuffer.

Definition at line 292 of file katebuffer.cpp.

The documentation for this class was generated from the following files:
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Sat Jul 4 2020 22:58:06 by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.