2 ** Data structure used to store sparse styles.
4 // Copyright 1998-2007 by Neil Hodgson <neilh@scintilla.org>
5 // The License.txt file describes the conditions under which this software may be distributed.
7 /// Styling buffer using one element for each run rather than using
19 std::unique_ptr
<Partitioning
> starts
;
20 std::unique_ptr
<SplitVector
<int>> styles
;
21 int RunFromPosition(int position
) const;
22 int SplitRun(int position
);
23 void RemoveRun(int run
);
24 void RemoveRunIfEmpty(int run
);
25 void RemoveRunIfSameAsPrevious(int run
);
28 // Deleted so RunStyles objects can not be copied.
29 RunStyles(const RunStyles
&) = delete;
30 void operator=(const RunStyles
&) = delete;
33 int ValueAt(int position
) const;
34 int FindNextChange(int position
, int end
) const;
35 int StartRun(int position
) const;
36 int EndRun(int position
) const;
37 // Returns true if some values may have changed
38 bool FillRange(int &position
, int value
, int &fillLength
);
39 void SetValueAt(int position
, int value
);
40 void InsertSpace(int position
, int insertLength
);
42 void DeleteRange(int position
, int deleteLength
);
45 bool AllSameAs(int value
) const;
46 int Find(int value
, int start
) const;