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;  	}  | 
