diff options
| author | nyamatongwe <unknown> | 2011-02-13 10:08:08 +1100 | 
|---|---|---|
| committer | nyamatongwe <unknown> | 2011-02-13 10:08:08 +1100 | 
| commit | 0e4ae90f839d6ab1bfbd84327ee498a96390172d (patch) | |
| tree | 93e017190d0f7620d4b7bed9c92fe320a9c67084 /lexers/LexCPP.cxx | |
| parent | a66ec5a196b0207fa23c529a13cf5662d11b2b6f (diff) | |
| download | scintilla-mirror-0e4ae90f839d6ab1bfbd84327ee498a96390172d.tar.gz | |
Added Merge method to SparseState to make it possible to detect significant
changes in lexers which will require styling beyond the end of the current range.
Diffstat (limited to 'lexers/LexCPP.cxx')
| -rw-r--r-- | lexers/LexCPP.cxx | 8 | 
1 files changed, 4 insertions, 4 deletions
| diff --git a/lexers/LexCPP.cxx b/lexers/LexCPP.cxx index 92248f7f0..2e5fdd0d1 100644 --- a/lexers/LexCPP.cxx +++ b/lexers/LexCPP.cxx @@ -506,7 +506,7 @@ void SCI_METHOD LexerCPP::Lex(unsigned int startPos, int length, int initStyle,  	const int maskActivity = 0x3F;  	std::string rawStringTerminator = rawStringTerminators.ValueAt(lineCurrent-1); -	bool changedRawStringState = rawStringTerminators.Delete(lineCurrent); +	SparseState<std::string> rawSTNew(lineCurrent);  	int activitySet = preproc.IsInactive() ? 0x40 : 0; @@ -540,8 +540,7 @@ void SCI_METHOD LexerCPP::Lex(unsigned int startPos, int length, int initStyle,  			lineCurrent++;  			vlls.Add(lineCurrent, preproc);  			if (rawStringTerminator != "") { -				rawStringTerminators.Set(lineCurrent-1, rawStringTerminator); -				changedRawStringState = true; +				rawSTNew.Set(lineCurrent-1, rawStringTerminator);  			}  		} @@ -893,7 +892,8 @@ void SCI_METHOD LexerCPP::Lex(unsigned int startPos, int length, int initStyle,  		}  		continuationLine = false;  	} -	if (definitionsChanged || changedRawStringState) +	const bool rawStringsChanged = rawStringTerminators.Merge(rawSTNew, lineCurrent); +	if (definitionsChanged || rawStringsChanged)  		styler.ChangeLexerState(startPos, startPos + length);  	sc.Complete();  } | 
