From 08b14ea99ebf07fe82de6ad85288e7e37f619126 Mon Sep 17 00:00:00 2001 From: nyamatongwe Date: Tue, 22 Mar 2011 20:26:07 +1100 Subject: =?UTF-8?q?Ignore=20';'=20in=20a=20comment.=20Bug=20#3196071.=20Fr?= =?UTF-8?q?om=20J=C3=A9r=C3=B4me=20LAFORGE.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lexers/LexSQL.cxx | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) (limited to 'lexers/LexSQL.cxx') diff --git a/lexers/LexSQL.cxx b/lexers/LexSQL.cxx index ebcd72c0b..6b77d2961 100644 --- a/lexers/LexSQL.cxx +++ b/lexers/LexSQL.cxx @@ -283,6 +283,20 @@ private: style == SCE_SQL_COMMENTDOCKEYWORDERROR; } + bool IsCommentStyle (int style) { + switch (style) { + case SCE_SQL_COMMENT : + case SCE_SQL_COMMENTDOC : + case SCE_SQL_COMMENTLINE : + case SCE_SQL_COMMENTLINEDOC : + case SCE_SQL_COMMENTDOCKEYWORD : + case SCE_SQL_COMMENTDOCKEYWORDERROR : + return true; + default : + return false; + } + } + OptionsSQL options; OptionSetSQL osSQL; SQLStates sqlStates; @@ -521,7 +535,7 @@ void SCI_METHOD LexerSQL::Fold(unsigned int startPos, int length, int initStyle, style = styleNext; styleNext = styler.StyleAt(i + 1); bool atEOL = (ch == '\r' && chNext != '\n') || (ch == '\n'); - if (atEOL || (ch == ';')) { + if (atEOL || (!IsCommentStyle(style) && ch == ';')) { if (endFound) { //Maybe this is the end of "EXCEPTION" BLOCK (eg. "BEGIN ... EXCEPTION ... END;") sqlStatesCurrentLine = sqlStates.IntoExceptionBlock(sqlStatesCurrentLine, false); @@ -554,7 +568,7 @@ void SCI_METHOD LexerSQL::Fold(unsigned int startPos, int length, int initStyle, if (ch == '(') { if (levelCurrent > levelNext) levelCurrent--; - levelNext++; + levelNext++; } else if (ch == ')') { levelNext--; } else if ((!options.foldOnlyBegin) && ch == ';') { -- cgit v1.2.3