diff options
Diffstat (limited to 'lexlib/SubStyles.h')
-rw-r--r-- | lexlib/SubStyles.h | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/lexlib/SubStyles.h b/lexlib/SubStyles.h index e6c34e0df..ee0edce96 100644 --- a/lexlib/SubStyles.h +++ b/lexlib/SubStyles.h @@ -13,13 +13,14 @@ namespace Scintilla { #endif class WordClassifier { + int baseStyle; int firstStyle; int lenStyles; std::map<std::string, int> wordToStyle; public: - WordClassifier() : firstStyle(0), lenStyles(0) { + WordClassifier(int baseStyle_) : baseStyle(baseStyle_), firstStyle(0), lenStyles(0) { } void Allocate(int firstStyle_, int lenStyles_) { @@ -28,6 +29,10 @@ public: wordToStyle.clear(); } + int Base() const { + return baseStyle; + } + int Start() const { return firstStyle; } @@ -105,8 +110,8 @@ public: secondaryDistance(secondaryDistance_), allocated(0) { while (baseStyles[classifications]) { + classifiers.push_back(WordClassifier(baseStyles[classifications])); classifications++; - classifiers.push_back(WordClassifier()); } } @@ -134,6 +139,14 @@ public: return (block >= 0) ? classifiers[block].Length() : 0; } + int BaseStyle(int subStyle) const { + int block = BlockFromStyle(subStyle); + if (block >= 0) + return classifiers[block].Base(); + else + return subStyle; + } + int DistanceToSecondaryStyles() const { return secondaryDistance; } |