KateBuffer

KateBuffer Class Reference

#include <katebuffer.h>

Inheritance diagram for KateBuffer:

Signals

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_DISABLE_COPY (Class)
 
 Q_DISABLE_COPY_MOVE (Class)
 
 Q_DISABLE_MOVE (Class)
 
 Q_EMIT Q_EMIT
 
 Q_ENUM (...)
 
 Q_ENUM_NS (...)
 
 Q_ENUMS (...)
 
 Q_FLAG (...)
 
 Q_FLAG_NS (...)
 
 Q_FLAGS (...)
 
 Q_GADGET Q_GADGET
 
 Q_INTERFACES (...)
 
 Q_INVOKABLE Q_INVOKABLE
 
 Q_NAMESPACE Q_NAMESPACE
 
 Q_NAMESPACE_EXPORT (EXPORT_MACRO)
 
 Q_OBJECT Q_OBJECT
 
 Q_PROPERTY (...)
 
 Q_REVISION Q_REVISION
 
 Q_SET_OBJECT_NAME (Object)
 
 Q_SIGNAL Q_SIGNAL
 
 Q_SIGNALS Q_SIGNALS
 
 Q_SLOT Q_SLOT
 
 Q_SLOTS Q_SLOTS
 
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)
 
 QT_NO_NARROWING_CONVERSIONS_IN_CONNECT QT_NO_NARROWING_CONVERSIONS_IN_CONNECT
 
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
 objectName
 
- 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)
explicit

Create an empty buffer.

Parameters
docparent document

(with one block with one empty line)

Definition at line 50 of file katebuffer.cpp.

KateBuffer::~KateBuffer ( )
override

Goodbye buffer.

Cleanup on destruction.

Definition at line 66 of file katebuffer.cpp.

Member Function Documentation

bool KateBuffer::brokenEncoding ( ) const
inline

Did encoding errors occur on load?

Returns
encoding errors occurred on load?

Definition at line 126 of file katebuffer.h.

bool KateBuffer::canEncode ( )

Can the current codec handle all chars.

Returns
chars can be encoded

Definition at line 221 of file katebuffer.cpp.

void KateBuffer::clear ( )
overridevirtual

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

Parameters
startLinestart line
Returns
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
inline

Return the total number of lines in the buffer.

Definition at line 187 of file katebuffer.h.

bool KateBuffer::editChanged ( ) const
inline

were there changes in the current running editing session?

Returns
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
inline

dirty lines end

Returns
end line

Definition at line 94 of file katebuffer.h.

bool KateBuffer::editTagFrom ( ) const
inline

line inserted/removed?

Returns
line inserted/removed?

Definition at line 103 of file katebuffer.h.

int KateBuffer::editTagStart ( ) const
inline

dirty lines start

Returns
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.

Parameters
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.

Parameters
m_filefilename to open
enforceTextCodecenforce to use only the set text codec
Returns
success

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)
inline

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)

Parameters
m_filefilename to save to
Returns
success

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 
)
signal

Emitted when the highlighting of a certain range has changed.

bool KateBuffer::tooLongLinesWrapped ( ) const
inline

Too long lines wrapped on load?

Returns
too long lines wrapped on load?

Definition at line 135 of file katebuffer.h.

void KateBuffer::unwrapLine ( int  line)
overridevirtual

Unwrap given line.

Parameters
lineline to unwrap

Reimplemented from Kate::TextBuffer.

Definition at line 302 of file katebuffer.cpp.

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

Wrap line at given cursor position.

Parameters
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.