aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/Decoration.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/Decoration.h')
-rw-r--r--src/Decoration.h20
1 files changed, 10 insertions, 10 deletions
diff --git a/src/Decoration.h b/src/Decoration.h
index 881bd1ff5..d096da385 100644
--- a/src/Decoration.h
+++ b/src/Decoration.h
@@ -14,16 +14,12 @@ namespace Scintilla {
class Decoration {
int indicator;
public:
- Decoration *next;
RunStyles rs;
explicit Decoration(int indicator_);
~Decoration();
bool Empty() const;
- Decoration *Next() const {
- return next;
- }
int Indicator() const {
return indicator;
}
@@ -32,22 +28,24 @@ public:
class DecorationList {
int currentIndicator;
int currentValue;
- Decoration *current;
+ Decoration *current; // Cached so FillRange doesn't have to search for each call.
int lengthDocument;
+ // Ordered by indicator
+ std::vector<std::unique_ptr<Decoration>> decorationList;
+ std::vector<const Decoration*> decorationView; // Read-only view of decorationList
+ bool clickNotified;
+
Decoration *DecorationFromIndicator(int indicator);
Decoration *Create(int indicator, int length);
void Delete(int indicator);
void DeleteAnyEmpty();
- Decoration *root;
- bool clickNotified;
+ void SetView();
public:
DecorationList();
~DecorationList();
- Decoration *Root() const {
- return root;
- }
+ const std::vector<const Decoration*> &View() const { return decorationView; }
void SetCurrentIndicator(int indicator);
int GetCurrentIndicator() const { return currentIndicator; }
@@ -61,6 +59,8 @@ public:
void InsertSpace(int position, int insertLength);
void DeleteRange(int position, int deleteLength);
+ void DeleteLexerDecorations();
+
int AllOnFor(int position) const;
int ValueAt(int indicator, int position);
int Start(int indicator, int position);