KTextEditor
katetextrange.cpp
16TextRange::TextRange(TextBuffer &buffer, KTextEditor::Range range, InsertBehaviors insertBehavior, EmptyBehavior emptyBehavior)
18 , m_start(buffer, this, range.start(), (insertBehavior & ExpandLeft) ? Kate::TextCursor::StayOnInsert : Kate::TextCursor::MoveOnInsert)
19 , m_end(buffer, this, range.end(), (insertBehavior & ExpandRight) ? Kate::TextCursor::MoveOnInsert : Kate::TextCursor::StayOnInsert)
69 m_start.setInsertBehavior((_insertBehaviors & ExpandLeft) ? KTextEditor::MovingCursor::StayOnInsert : KTextEditor::MovingCursor::MoveOnInsert);
70 m_end.setInsertBehavior((_insertBehaviors & ExpandRight) ? KTextEditor::MovingCursor::MoveOnInsert : KTextEditor::MovingCursor::StayOnInsert);
144 if (oldLineRange.start() == -1 || (m_start.lineInternal() != -1 && m_start.lineInternal() < oldLineRange.start())) {
175void TextRange::setRange(KTextEditor::Range range, KTextEditor::Attribute::Ptr attribute, qreal zDepth)
194 // for ranges which are allowed to become empty, normalize them, if the end has moved to the front of the start
204 m_buffer.notifyAboutRangeChange(m_view, toLineRange(), false /* attribute not interesting here */);
244 m_buffer.notifyAboutRangeChange(m_view, toLineRange(), true /* even for nullptr attribute, we had before one => repaint */);
bool isValid() const
Returns whether the current position of this cursor is a valid position, i.e.
Definition movingcursor.h:159
A class which provides notifications of state changes to a MovingRange.
Definition movingrangefeedback.h:36
virtual void rangeInvalid(MovingRange *range)
The range is now invalid (ie.
Definition movingapi.cpp:181
bool isEmpty() const
Returns true if this range contains no characters, ie.
Definition movingrange.h:417
@ DoNotExpand
Don't expand to encapsulate new characters in either direction. This is the default.
Definition movingrange.h:154
@ ExpandRight
Expand to encapsulate new characters to the right of the range.
Definition movingrange.h:158
@ ExpandLeft
Expand to encapsulate new characters to the left of the range.
Definition movingrange.h:156
An object representing a section of text, from one Cursor to another.
Definition include/ktexteditor/range.h:49
constexpr Cursor end() const noexcept
Get the end position of this range.
Definition include/ktexteditor/range.h:163
constexpr Cursor start() const noexcept
Get the start position of this range.
Definition include/ktexteditor/range.h:153
static constexpr Range invalid() noexcept
Returns an invalid range.
Definition include/ktexteditor/range.h:121
KTEXTEDITOR_NO_EXPORT void addMultilineRange(TextRange *range)
Add/Remove a multiline range that spans multiple blocks.
Definition katetextbuffer.cpp:966
int lineInternal() const
Non-virtual version of line(), which is faster.
Definition katetextcursor.h:124
InsertBehavior insertBehavior() const override
Get current insert behavior.
Definition katetextcursor.h:75
void setInsertBehavior(InsertBehavior insertBehavior) override
Set insert behavior.
Definition katetextcursor.h:66
void setPosition(const TextCursor &position)
Fast way to set the current cursor position to position.
Definition katetextcursor.cpp:48
int line() const override
Retrieve the line on which this cursor is situated.
Definition katetextcursor.h:114
void setAttribute(KTextEditor::Attribute::Ptr attribute) override
Sets the currently active attribute for this range.
Definition katetextrange.cpp:232
TextRange(TextBuffer &buffer, KTextEditor::Range range, InsertBehaviors insertBehavior, EmptyBehavior emptyBehavior=AllowEmpty)
Construct a text range.
Definition katetextrange.cpp:16
KTextEditor::MovingRangeFeedback * feedback() const override
Gets the active MovingRangeFeedback for this range.
Definition katetextrange.h:267
const TextCursor & startInternal() const
Non-virtual version of start(), which is faster.
Definition katetextrange.h:163
KTextEditor::Document * document() const override
Gets the document to which this range is bound.
Definition katetextrange.cpp:284
const KTextEditor::Attribute::Ptr & attribute() const override
Gets the active Attribute for this range.
Definition katetextrange.h:239
void setZDepth(qreal zDepth) override
Set the current Z-depth of this range.
Definition katetextrange.cpp:268
InsertBehaviors insertBehaviors() const override
Get current insert behaviors.
Definition katetextrange.cpp:78
void setAttributeOnlyForViews(bool onlyForViews) override
Set if this range's attribute is only visible in views, not for example prints.
Definition katetextrange.cpp:262
KTextEditor::View * view() const override
Gets the active view for this range.
Definition katetextrange.h:219
void setFeedback(KTextEditor::MovingRangeFeedback *feedback) override
Sets the currently active MovingRangeFeedback for this range.
Definition katetextrange.cpp:247
const KTextEditor::Range toRange() const
Convert this clever range into a dumb one.
Definition katetextrange.h:198
void setView(KTextEditor::View *view) override
Sets the currently active view for this range.
Definition katetextrange.cpp:215
void setInsertBehaviors(InsertBehaviors insertBehaviors) override
Set insert behaviors.
Definition katetextrange.cpp:61
const TextCursor & endInternal() const
Nonvirtual version of end(), which is faster.
Definition katetextrange.h:181
EmptyBehavior emptyBehavior() const override
Will this range invalidate itself if it becomes empty?
Definition katetextrange.h:89
KTextEditor::LineRange toLineRange() const
Hides parent's impl of toLineRange() and uses non-virtual functions internally.
Definition katetextrange.h:189
void setEmptyBehavior(EmptyBehavior emptyBehavior) override
Set if this range will invalidate itself if it becomes empty.
Definition katetextrange.cpp:93
void setRange(KTextEditor::Range range) override
Set the range of this range.
Definition katetextrange.cpp:109
Q_SCRIPTABLE Q_NOREPLY void start()
bool isValid(QStringView ifopt)
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Fri Oct 4 2024 12:03:01 by doxygen 1.12.0 written by Dimitri van Heesch, © 1997-2006
Documentation copyright © 1996-2024 The KDE developers.
Generated on Fri Oct 4 2024 12:03:01 by doxygen 1.12.0 written by Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.