diff options
author | nyamatongwe <devnull@localhost> | 2011-02-13 10:08:08 +1100 |
---|---|---|
committer | nyamatongwe <devnull@localhost> | 2011-02-13 10:08:08 +1100 |
commit | e75470ad1d39842c12b407820c2886f7ae035ab9 (patch) | |
tree | 4668e914b8b3a00d69e6239c065edea184df400a /lexers/LexCPP.cxx | |
parent | 7cf9bf29bb2e51ca412e86b4a73cc5e4545115af (diff) | |
download | scintilla-mirror-e75470ad1d39842c12b407820c2886f7ae035ab9.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(); } |