diff options
author | XhmikosR <xhmikosr@users.sourceforge.net> | 2012-10-05 14:23:29 +0300 |
---|---|---|
committer | XhmikosR <xhmikosr@users.sourceforge.net> | 2012-10-05 14:23:29 +0300 |
commit | 0de9e62977e4c4976c783217ec94a61c52dd25b5 (patch) | |
tree | 84bdddee1281eef839df8f28c36817f4275daa9d /scintilla/lexers/LexSQL.cxx | |
parent | 85823e4191a7d184568daadf90c6739fcf514a0a (diff) | |
download | notepad2-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.cxx | 28 |
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;
|