diff options
author | Neil <nyamatongwe@gmail.com> | 2013-09-03 18:25:32 +1000 |
---|---|---|
committer | Neil <nyamatongwe@gmail.com> | 2013-09-03 18:25:32 +1000 |
commit | 77e3727bdd5c981c338fd1c0bc073393aa2f5068 (patch) | |
tree | 14ab874e81b5216e3f4154d94a9b14da76f48bd2 /lexlib/SubStyles.h | |
parent | e27fc2d13734da7861ca1c640143b172927f25a6 (diff) | |
download | scintilla-mirror-77e3727bdd5c981c338fd1c0bc073393aa2f5068.tar.gz |
Added GetStyleFromSubStyle.
Tests for this and other sub styles methods.
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; } |