37 std::unique_ptr<char[]>
data;
50 void Clear() noexcept;
64 void EnsureUndoRoom();
77 void BeginUndoAction();
79 void DropUndoSequence();
80 void DeleteUndoHistory();
84 void SetSavePoint() noexcept;
85 bool IsSavePoint() const noexcept;
88 void TentativeStart();
89 void TentativeCommit();
90 bool TentativeActive() const noexcept;
91 int TentativeSteps() noexcept;
95 bool CanUndo() const noexcept;
97 const
Action &GetUndoStep() const;
98 void CompletedUndoStep();
99 bool CanRedo() const noexcept;
101 const
Action &GetRedoStep() const;
102 void CompletedRedoStep();
123 std::unique_ptr<ILineVector>
plv;
127 void ResetLineEnds();
129 bool MaintainingLineCharacterIndex() const noexcept;
136 CellBuffer(
bool hasStyles_,
bool largeDocument_);
150 const
char *BufferPointer();
156 void SetUTF8Substance(
bool utf8Substance_) noexcept;
157 int GetLineEndTypes() const noexcept {
return utf8LineEnds; }
158 void SetLineEndTypes(
int utf8LineEnds_);
159 bool ContainsLineEnd(
const char *s,
Sci::Position length)
const noexcept;
160 void SetPerLine(
PerLine *pl)
noexcept;
161 int LineCharacterIndex() const noexcept;
162 void AllocateLineCharacterIndex(
int lineCharacterIndex);
163 void ReleaseLineCharacterIndex(
int lineCharacterIndex);
164 Sci::
Line Lines() const noexcept;
180 bool IsReadOnly() const noexcept;
181 void SetReadOnly(
bool set) noexcept;
182 bool IsLarge() const noexcept;
183 bool HasStyles() const noexcept;
188 bool IsSavePoint() const noexcept;
190 void TentativeStart();
191 void TentativeCommit();
192 bool TentativeActive() const noexcept;
193 int TentativeSteps() noexcept;
195 bool SetUndoCollection(
bool collectUndo);
196 bool IsCollectingUndo() const noexcept;
197 void BeginUndoAction();
198 void EndUndoAction();
200 void DeleteUndoHistory();
204 bool CanUndo() const noexcept;
206 const
Action &GetUndoStep() const;
207 void PerformUndoStep();
208 bool CanRedo() const noexcept;
210 const
Action &GetRedoStep() const;
211 void PerformRedoStep();
static Sci_Position LineStart(Sci_Position line, Accessor &styler)
Actions are used to store all the information required to perform one undo/redo step.
std::unique_ptr< char[]> data
void Create(actionType at_, Sci::Position position_=0, const char *data_=nullptr, Sci::Position lenData_=0, bool mayCoalesce_=true)
Holder for an expandable array of characters that supports undo and line markers.
SplitVector< char > style
SplitVector< char > substance
std::unique_ptr< ILineVector > plv
virtual void InsertLines(Sci::Line line, Sci::Line lines)=0
virtual void RemoveLine(Sci::Line line)=0
virtual void InsertLine(Sci::Line line)=0
void operator=(const UndoHistory &)=delete
void operator=(UndoHistory &&)=delete
std::vector< Action > actions
UndoHistory(const UndoHistory &)=delete
UndoHistory(UndoHistory &&)=delete
A Position is a position within a document between two characters or at the beginning or end.
Styling buffer using one element for each run rather than using a filled buffer.