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