summaryrefslogtreecommitdiffstats
path: root/scintilla/lexers/LexSQL.cxx
diff options
context:
space:
mode:
authorXhmikosR <xhmikosr@users.sourceforge.net>2012-10-05 14:23:29 +0300
committerXhmikosR <xhmikosr@users.sourceforge.net>2012-10-05 14:23:29 +0300
commit0de9e62977e4c4976c783217ec94a61c52dd25b5 (patch)
tree84bdddee1281eef839df8f28c36817f4275daa9d /scintilla/lexers/LexSQL.cxx
parent85823e4191a7d184568daadf90c6739fcf514a0a (diff)
downloadnotepad2-mod-0de9e62977e4c4976c783217ec94a61c52dd25b5.zip
notepad2-mod-0de9e62977e4c4976c783217ec94a61c52dd25b5.tar.gz
notepad2-mod-0de9e62977e4c4976c783217ec94a61c52dd25b5.tar.bz2
update scintilla to 13e09b27b3c8 HG
Diffstat (limited to 'scintilla/lexers/LexSQL.cxx')
-rw-r--r--scintilla/lexers/LexSQL.cxx28
1 files changed, 13 insertions, 15 deletions
diff --git a/scintilla/lexers/LexSQL.cxx b/scintilla/lexers/LexSQL.cxx
index 5e40f90..6d97789 100644
--- a/scintilla/lexers/LexSQL.cxx
+++ b/scintilla/lexers/LexSQL.cxx
@@ -122,13 +122,11 @@ public :
return sqlStatesLine;
}
-
- unsigned short int IntoSelectStatement (unsigned short int sqlStatesLine, bool found) {
+ unsigned short int IntoSelectStatementOrAssignment (unsigned short int sqlStatesLine, bool found) {
if (found)
- sqlStatesLine |= MASK_INTO_SELECT_STATEMENT;
+ sqlStatesLine |= MASK_INTO_SELECT_STATEMENT_OR_ASSIGNEMENT;
else
- sqlStatesLine &= ~MASK_INTO_SELECT_STATEMENT;
-
+ sqlStatesLine &= ~MASK_INTO_SELECT_STATEMENT_OR_ASSIGNEMENT;
return sqlStatesLine;
}
@@ -161,11 +159,9 @@ public :
bool IsIntoExceptionBlock (unsigned short int sqlStatesLine) {
return (sqlStatesLine & MASK_INTO_EXCEPTION) != 0;
}
-
- bool IsIntoSelectStatement (unsigned short int sqlStatesLine) {
- return (sqlStatesLine & MASK_INTO_SELECT_STATEMENT) != 0;
+ bool IsIntoSelectStatementOrAssignment (unsigned short int sqlStatesLine) {
+ return (sqlStatesLine & MASK_INTO_SELECT_STATEMENT_OR_ASSIGNEMENT) != 0;
}
-
bool IsCaseMergeWithoutWhenFound (unsigned short int sqlStatesLine) {
return (sqlStatesLine & MASK_CASE_MERGE_WITHOUT_WHEN_FOUND) != 0;
}
@@ -188,7 +184,7 @@ private :
SparseState <unsigned short int> sqlStatement;
enum {
MASK_NESTED_CASES = 0x01FF,
- MASK_INTO_SELECT_STATEMENT = 0x0200,
+ MASK_INTO_SELECT_STATEMENT_OR_ASSIGNEMENT = 0x0200,
MASK_CASE_MERGE_WITHOUT_WHEN_FOUND = 0x0400,
MASK_MERGE_STATEMENT = 0x0800,
MASK_INTO_DECLARE = 0x1000,
@@ -608,9 +604,12 @@ void SCI_METHOD LexerSQL::Fold(unsigned int startPos, int length, int initStyle,
sqlStatesCurrentLine = sqlStates.IntoMergeStatement(sqlStatesCurrentLine, false);
levelNext--;
}
- if (sqlStates.IsIntoSelectStatement(sqlStatesCurrentLine))
- sqlStatesCurrentLine = sqlStates.IntoSelectStatement(sqlStatesCurrentLine, false);
+ if (sqlStates.IsIntoSelectStatementOrAssignment(sqlStatesCurrentLine))
+ sqlStatesCurrentLine = sqlStates.IntoSelectStatementOrAssignment(sqlStatesCurrentLine, false);
}
+ if (ch == ':' && chNext == '=' && !IsCommentStyle(style))
+ sqlStatesCurrentLine = sqlStates.IntoSelectStatementOrAssignment(sqlStatesCurrentLine, true);
+
if (options.foldComment && IsStreamCommentStyle(style)) {
if (!IsStreamCommentStyle(stylePrev)) {
levelNext++;
@@ -666,10 +665,9 @@ void SCI_METHOD LexerSQL::Fold(unsigned int startPos, int length, int initStyle,
} else {
s[j] = '\0';
}
-
if (!options.foldOnlyBegin &&
strcmp(s, "select") == 0) {
- sqlStatesCurrentLine = sqlStates.IntoSelectStatement(sqlStatesCurrentLine, true);
+ sqlStatesCurrentLine = sqlStates.IntoSelectStatementOrAssignment(sqlStatesCurrentLine, true);
} else if (strcmp(s, "if") == 0) {
if (endFound) {
endFound = false;
@@ -766,7 +764,7 @@ void SCI_METHOD LexerSQL::Fold(unsigned int startPos, int length, int initStyle,
(strcmp(s, "endif") == 0)) {
endFound = true;
levelNext--;
- if (sqlStates.IsIntoSelectStatement(sqlStatesCurrentLine) && !sqlStates.IsCaseMergeWithoutWhenFound(sqlStatesCurrentLine))
+ if (sqlStates.IsIntoSelectStatementOrAssignment(sqlStatesCurrentLine) && !sqlStates.IsCaseMergeWithoutWhenFound(sqlStatesCurrentLine))
levelNext--;
if (levelNext < SC_FOLDLEVELBASE) {
levelNext = SC_FOLDLEVELBASE;