diff options
-rw-r--r-- | gtk/makefile | 8 | ||||
-rw-r--r-- | gtk/scintilla.mak | 3 | ||||
-rw-r--r-- | include/SciLexer.h | 22 | ||||
-rw-r--r-- | include/Scintilla.iface | 24 | ||||
-rw-r--r-- | macosx/makefile | 8 | ||||
-rw-r--r-- | src/LexMySQL.cxx | 367 | ||||
-rw-r--r-- | win32/makefile | 8 | ||||
-rw-r--r-- | win32/scintilla.mak | 3 | ||||
-rw-r--r-- | win32/scintilla_vc6.mak | 3 |
9 files changed, 434 insertions, 12 deletions
diff --git a/gtk/makefile b/gtk/makefile index c8bde8318..775335616 100644 --- a/gtk/makefile +++ b/gtk/makefile @@ -69,10 +69,10 @@ LexConf.o LexCPP.o LexCrontab.o LexCsound.o LexCSS.o LexD.o LexEiffel.o \ LexErlang.o LexEScript.o LexFlagship.o LexForth.o LexFortran.o LexGAP.o \ LexGui4Cli.o LexHaskell.o LexHTML.o LexInno.o LexKix.o LexLisp.o LexLout.o \ LexLua.o LexMagik.o LexMatlab.o LexMetapost.o LexMMIXAL.o LexMPT.o LexMSSQL.o \ -LexNsis.o LexOpal.o LexOthers.o LexPascal.o LexPB.o LexPerl.o LexPLM.o \ -LexPOV.o LexPowerShell.o LexProgress.o LexPS.o LexPython.o LexR.o LexRebol.o \ -LexRuby.o LexScriptol.o LexSmalltalk.o LexSpecman.o LexSpice.o LexSQL.o \ -LexTADS3.o LexTCL.o LexTeX.o LexVB.o LexVerilog.o LexVHDL.o LexYAML.o +LexMySQL.o LexNsis.o LexOpal.o LexOthers.o LexPascal.o LexPB.o LexPerl.o \ +LexPLM.o LexPOV.o LexPowerShell.o LexProgress.o LexPS.o LexPython.o LexR.o \ +LexRebol.o LexRuby.o LexScriptol.o LexSmalltalk.o LexSpecman.o LexSpice.o \ +LexSQL.o LexTADS3.o LexTCL.o LexTeX.o LexVB.o LexVerilog.o LexVHDL.o LexYAML.o #--Autogenerated -- end of automatically generated section all: $(COMPLIB) diff --git a/gtk/scintilla.mak b/gtk/scintilla.mak index 94217bec9..e60e411d2 100644 --- a/gtk/scintilla.mak +++ b/gtk/scintilla.mak @@ -185,6 +185,7 @@ LEXOBJS=\ $(DIR_O)\LexMMIXAL.obj \ $(DIR_O)\LexMPT.obj \ $(DIR_O)\LexMSSQL.obj \ + $(DIR_O)\LexMySQL.obj \ $(DIR_O)\LexNsis.obj \ $(DIR_O)\LexOpal.obj \ $(DIR_O)\LexOthers.obj \ @@ -438,6 +439,8 @@ $(DIR_O)\LexMPT.obj: ..\src\LexMPT.cxx $(LEX_HEADERS) $(DIR_O)\LexMSSQL.obj: ..\src\LexMSSQL.cxx $(LEX_HEADERS) +$(DIR_O)\LexMySQL.obj: ..\src\LexMySQL.cxx $(LEX_HEADERS) + $(DIR_O)\LexNsis.obj: ..\src\LexNsis.cxx $(LEX_HEADERS) $(DIR_O)\LexOpal.obj: ..\src\LexOpal.cxx $(LEX_HEADERS) diff --git a/include/SciLexer.h b/include/SciLexer.h index 17f160e1d..05cea61d4 100644 --- a/include/SciLexer.h +++ b/include/SciLexer.h @@ -101,6 +101,7 @@ #define SCLEX_R 86 #define SCLEX_MAGIK 87 #define SCLEX_POWERSHELL 88 +#define SCLEX_MYSQL 89 #define SCLEX_AUTOMATIC 1000 #define SCE_P_DEFAULT 0 #define SCE_P_COMMENTLINE 1 @@ -1234,6 +1235,27 @@ #define SCE_POWERSHELL_KEYWORD 8 #define SCE_POWERSHELL_CMDLET 9 #define SCE_POWERSHELL_ALIAS 10 +#define SCE_MYSQL_DEFAULT 0 +#define SCE_MYSQL_COMMENT 1 +#define SCE_MYSQL_COMMENTLINE 2 +#define SCE_MYSQL_VARIABLE 3 +#define SCE_MYSQL_SYSTEMVARIABLE 4 +#define SCE_MYSQL_KNOWNSYSTEMVARIABLE 5 +#define SCE_MYSQL_NUMBER 6 +#define SCE_MYSQL_MAJORKEYWORD 7 +#define SCE_MYSQL_KEYWORD 8 +#define SCE_MYSQL_DATABASEOBJECT 9 +#define SCE_MYSQL_PROCEDUREKEYWORD 10 +#define SCE_MYSQL_STRING 11 +#define SCE_MYSQL_SQSTRING 12 +#define SCE_MYSQL_DQSTRING 13 +#define SCE_MYSQL_OPERATOR 14 +#define SCE_MYSQL_FUNCTION 15 +#define SCE_MYSQL_IDENTIFIER 16 +#define SCE_MYSQL_QUOTEDIDENTIFIER 17 +#define SCE_MYSQL_USER1 18 +#define SCE_MYSQL_USER2 19 +#define SCE_MYSQL_USER3 20 #define SCLEX_ASP 29 #define SCLEX_PHP 30 //--Autogenerated -- end of section automatically generated from Scintilla.iface diff --git a/include/Scintilla.iface b/include/Scintilla.iface index c8759e591..bc2e0a033 100644 --- a/include/Scintilla.iface +++ b/include/Scintilla.iface @@ -2007,6 +2007,7 @@ val SCLEX_ASYMPTOTE=85 val SCLEX_R=86 val SCLEX_MAGIK=87 val SCLEX_POWERSHELL=88 +val SCLEX_MYSQL=89 # When a lexer specifies its language as SCLEX_AUTOMATIC it receives a # value assigned in sequence from SCLEX_AUTOMATIC+1. @@ -3305,6 +3306,29 @@ val SCE_POWERSHELL_IDENTIFIER=7 val SCE_POWERSHELL_KEYWORD=8 val SCE_POWERSHELL_CMDLET=9 val SCE_POWERSHELL_ALIAS=10 +# Lexical state for SCLEX_MYSQL +lex MySQL=SCLEX_MYSQL SCE_MYSQL_ +val SCE_MYSQL_DEFAULT=0 +val SCE_MYSQL_COMMENT=1 +val SCE_MYSQL_COMMENTLINE=2 +val SCE_MYSQL_VARIABLE=3 +val SCE_MYSQL_SYSTEMVARIABLE=4 +val SCE_MYSQL_KNOWNSYSTEMVARIABLE=5 +val SCE_MYSQL_NUMBER=6 +val SCE_MYSQL_MAJORKEYWORD=7 +val SCE_MYSQL_KEYWORD=8 +val SCE_MYSQL_DATABASEOBJECT=9 +val SCE_MYSQL_PROCEDUREKEYWORD=10 +val SCE_MYSQL_STRING=11 +val SCE_MYSQL_SQSTRING=12 +val SCE_MYSQL_DQSTRING=13 +val SCE_MYSQL_OPERATOR=14 +val SCE_MYSQL_FUNCTION=15 +val SCE_MYSQL_IDENTIFIER=16 +val SCE_MYSQL_QUOTEDIDENTIFIER=17 +val SCE_MYSQL_USER1=18 +val SCE_MYSQL_USER2=19 +val SCE_MYSQL_USER3=20 # Events diff --git a/macosx/makefile b/macosx/makefile index 7f19b4967..5cd58b91e 100644 --- a/macosx/makefile +++ b/macosx/makefile @@ -69,10 +69,10 @@ LexConf.o LexCPP.o LexCrontab.o LexCsound.o LexCSS.o LexD.o LexEiffel.o \ LexErlang.o LexEScript.o LexFlagship.o LexForth.o LexFortran.o LexGAP.o \ LexGui4Cli.o LexHaskell.o LexHTML.o LexInno.o LexKix.o LexLisp.o LexLout.o \ LexLua.o LexMagik.o LexMatlab.o LexMetapost.o LexMMIXAL.o LexMPT.o LexMSSQL.o \ -LexNsis.o LexOpal.o LexOthers.o LexPascal.o LexPB.o LexPerl.o LexPLM.o \ -LexPOV.o LexPowerShell.o LexProgress.o LexPS.o LexPython.o LexR.o LexRebol.o \ -LexRuby.o LexScriptol.o LexSmalltalk.o LexSpecman.o LexSpice.o LexSQL.o \ -LexTADS3.o LexTCL.o LexTeX.o LexVB.o LexVerilog.o LexVHDL.o LexYAML.o +LexMySQL.o LexNsis.o LexOpal.o LexOthers.o LexPascal.o LexPB.o LexPerl.o \ +LexPLM.o LexPOV.o LexPowerShell.o LexProgress.o LexPS.o LexPython.o LexR.o \ +LexRebol.o LexRuby.o LexScriptol.o LexSmalltalk.o LexSpecman.o LexSpice.o \ +LexSQL.o LexTADS3.o LexTCL.o LexTeX.o LexVB.o LexVerilog.o LexVHDL.o LexYAML.o #--Autogenerated -- end of automatically generated section # The LEXOBJS have to be treated specially as the functions in them are not called from external code diff --git a/src/LexMySQL.cxx b/src/LexMySQL.cxx new file mode 100644 index 000000000..438d307a3 --- /dev/null +++ b/src/LexMySQL.cxx @@ -0,0 +1,367 @@ +// Scintilla source code edit control +/** @file LexMySQL.cxx + ** Lexer for MySQL + **/ +// Adopted from LexSQL.cxx by Anders Karlsson <anders@mysql.com> +// Original work by Neil Hodgson <neilh@scintilla.org> +// Copyright 1998-2005 by Neil Hodgson <neilh@scintilla.org> +// The License.txt file describes the conditions under which this software may be distributed. + +#include <stdlib.h> +#include <string.h> +#include <ctype.h> +#include <stdio.h> +#include <stdarg.h> + +#include "Platform.h" + +#include "PropSet.h" +#include "Accessor.h" +#include "StyleContext.h" +#include "KeyWords.h" +#include "Scintilla.h" +#include "SciLexer.h" + +#ifdef SCI_NAMESPACE +using namespace Scintilla; +#endif + +static inline bool IsAWordChar(int ch) { + return (ch < 0x80) && (isalnum(ch) || ch == '_'); +} + +static inline bool IsAWordStart(int ch) { + return (ch < 0x80) && (isalpha(ch) || ch == '_'); +} + +static inline bool IsADoxygenChar(int ch) { + return (islower(ch) || ch == '$' || ch == '@' || + ch == '\\' || ch == '&' || ch == '<' || + ch == '>' || ch == '#' || ch == '{' || + ch == '}' || ch == '[' || ch == ']'); +} + +static inline bool IsANumberChar(int ch) { + // Not exactly following number definition (several dots are seen as OK, etc.) + // but probably enough in most cases. + return (ch < 0x80) && + (isdigit(ch) || toupper(ch) == 'E' || + ch == '.' || ch == '-' || ch == '+'); +} + +static void ColouriseMySQLDoc(unsigned int startPos, int length, int initStyle, WordList *keywordlists[], + Accessor &styler) { + + WordList &major_keywords = *keywordlists[0]; + WordList &keywords = *keywordlists[1]; + WordList &database_objects = *keywordlists[2]; + WordList &functions = *keywordlists[3]; + WordList &system_variables = *keywordlists[4]; + WordList &procedure_keywords = *keywordlists[5]; + WordList &kw_user1 = *keywordlists[6]; + WordList &kw_user2 = *keywordlists[7]; + WordList &kw_user3 = *keywordlists[8]; + + StyleContext sc(startPos, length, initStyle, styler); + + for (; sc.More(); sc.Forward()) { + // Determine if the current state should terminate. + switch (sc.state) { + case SCE_MYSQL_OPERATOR: + sc.SetState(SCE_MYSQL_DEFAULT); + break; + case SCE_MYSQL_NUMBER: + // We stop the number definition on non-numerical non-dot non-eE non-sign char + if (!IsANumberChar(sc.ch)) { + sc.SetState(SCE_MYSQL_DEFAULT); + } + break; + case SCE_MYSQL_IDENTIFIER: + if (!IsAWordChar(sc.ch)) { + int nextState = SCE_MYSQL_DEFAULT; + char s[1000]; + sc.GetCurrentLowered(s, sizeof(s)); + if (major_keywords.InList(s)) { + sc.ChangeState(SCE_MYSQL_MAJORKEYWORD); + } else if (keywords.InList(s)) { + sc.ChangeState(SCE_MYSQL_KEYWORD); + } else if (database_objects.InList(s)) { + sc.ChangeState(SCE_MYSQL_DATABASEOBJECT); + } else if (functions.InList(s)) { + sc.ChangeState(SCE_MYSQL_FUNCTION); + } else if (procedure_keywords.InList(s)) { + sc.ChangeState(SCE_MYSQL_PROCEDUREKEYWORD); + } else if (kw_user1.InList(s)) { + sc.ChangeState(SCE_MYSQL_USER1); + } else if (kw_user2.InList(s)) { + sc.ChangeState(SCE_MYSQL_USER2); + } else if (kw_user3.InList(s)) { + sc.ChangeState(SCE_MYSQL_USER3); + } + sc.SetState(nextState); + } + break; + case SCE_MYSQL_VARIABLE: + if (!IsAWordChar(sc.ch)) { + sc.SetState(SCE_MYSQL_DEFAULT); + } + break; + case SCE_MYSQL_SYSTEMVARIABLE: + if (!IsAWordChar(sc.ch)) { + char s[1000]; + sc.GetCurrentLowered(s, sizeof(s)); +// Check for known system variables here. + if (system_variables.InList(&s[2])) { + sc.ChangeState(SCE_MYSQL_KNOWNSYSTEMVARIABLE); + } + sc.SetState(SCE_MYSQL_DEFAULT); + } + break; + case SCE_MYSQL_QUOTEDIDENTIFIER: + if (sc.ch == 0x60) { + if (sc.chNext == 0x60) { + sc.Forward(); // Ignore it + } else { + sc.ForwardSetState(SCE_MYSQL_DEFAULT); + } + } + break; + case SCE_MYSQL_COMMENT: + if (sc.Match('*', '/')) { + sc.Forward(); + sc.ForwardSetState(SCE_MYSQL_DEFAULT); + } + break; + case SCE_MYSQL_COMMENTLINE: + if (sc.atLineStart) { + sc.SetState(SCE_MYSQL_DEFAULT); + } + break; + case SCE_MYSQL_SQSTRING: + if (sc.ch == '\\') { + // Escape sequence + sc.Forward(); + } else if (sc.ch == '\'') { + if (sc.chNext == '\'') { + sc.Forward(); + } else { + sc.ChangeState(SCE_MYSQL_STRING); + sc.ForwardSetState(SCE_MYSQL_DEFAULT); + } + } + break; + case SCE_MYSQL_DQSTRING: + if (sc.ch == '\\') { + // Escape sequence + sc.Forward(); + } else if (sc.ch == '\"') { + if (sc.chNext == '\"') { + sc.Forward(); + } else { + sc.ChangeState(SCE_MYSQL_STRING); + sc.ForwardSetState(SCE_MYSQL_DEFAULT); + } + } + break; + } + + // Determine if a new state should be entered. + if (sc.state == SCE_MYSQL_DEFAULT) { + if (IsADigit(sc.ch) || (sc.ch == '.' && IsADigit(sc.chNext))) { + sc.SetState(SCE_MYSQL_NUMBER); + } else if (IsAWordStart(sc.ch)) { + sc.SetState(SCE_MYSQL_IDENTIFIER); +// Note that the order of SYSTEMVARIABLE and VARIABLE is important here. + } else if (sc.ch == 0x40 && sc.chNext == 0x40) { + sc.SetState(SCE_MYSQL_SYSTEMVARIABLE); + sc.Forward(); // Skip past the second at-sign. + } else if (sc.ch == 0x40) { + sc.SetState(SCE_MYSQL_VARIABLE); + } else if (sc.ch == 0x60) { + sc.SetState(SCE_MYSQL_QUOTEDIDENTIFIER); + } else if (sc.Match('/', '*')) { + sc.SetState(SCE_MYSQL_COMMENT); + sc.Forward(); // Eat the * so it isn't used for the end of the comment + } else if (sc.Match('-', '-') || sc.Match('#')) { + sc.SetState(SCE_MYSQL_COMMENTLINE); + } else if (sc.ch == '\'') { + sc.SetState(SCE_MYSQL_SQSTRING); + } else if (sc.ch == '\"') { + sc.SetState(SCE_MYSQL_DQSTRING); + } else if (isoperator(static_cast<char>(sc.ch))) { + sc.SetState(SCE_MYSQL_OPERATOR); + } + } + } + sc.Complete(); +} + +static bool IsStreamCommentStyle(int style) { + return style == SCE_MYSQL_COMMENT; +} + +// Store both the current line's fold level and the next lines in the +// level store to make it easy to pick up with each increment. +static void FoldMySQLDoc(unsigned int startPos, int length, int initStyle, + WordList *[], Accessor &styler) { + bool foldComment = styler.GetPropertyInt("fold.comment") != 0; + bool foldCompact = styler.GetPropertyInt("fold.compact", 1) != 0; + bool foldOnlyBegin = styler.GetPropertyInt("fold.sql.only.begin", 0) != 0; + + unsigned int endPos = startPos + length; + int visibleChars = 0; + int lineCurrent = styler.GetLine(startPos); + int levelCurrent = SC_FOLDLEVELBASE; + if (lineCurrent > 0) { + levelCurrent = styler.LevelAt(lineCurrent - 1) >> 16; + } + int levelNext = levelCurrent; + char chNext = styler[startPos]; + int styleNext = styler.StyleAt(startPos); + int style = initStyle; + bool endFound = false; + bool whenFound = false; + bool elseFound = false; + for (unsigned int i = startPos; i < endPos; i++) { + char ch = chNext; + chNext = styler.SafeGetCharAt(i + 1); + int stylePrev = style; + style = styleNext; + styleNext = styler.StyleAt(i + 1); + bool atEOL = (ch == '\r' && chNext != '\n') || (ch == '\n'); + if (foldComment && IsStreamCommentStyle(style)) { + if (!IsStreamCommentStyle(stylePrev)) { + levelNext++; + } else if (!IsStreamCommentStyle(styleNext) && !atEOL) { + // Comments don't end at end of line and the next character may be unstyled. + levelNext--; + } + } + if (foldComment && (style == SCE_MYSQL_COMMENTLINE)) { + // MySQL needs -- comments to be followed by space or control char + if ((ch == '-') && (chNext == '-')) { + char chNext2 = styler.SafeGetCharAt(i + 2); + char chNext3 = styler.SafeGetCharAt(i + 3); + if (chNext2 == '{' || chNext3 == '{') { + levelNext++; + } else if (chNext2 == '}' || chNext3 == '}') { + levelNext--; + } + } + } + if (style == SCE_MYSQL_OPERATOR) { + if (ch == '(') { + levelNext++; + } else if (ch == ')') { + levelNext--; + } + } + +// Style new keywords here. + if ((style == SCE_MYSQL_MAJORKEYWORD && stylePrev != SCE_MYSQL_MAJORKEYWORD) + || (style == SCE_MYSQL_KEYWORD && stylePrev != SCE_MYSQL_KEYWORD) + || (style == SCE_MYSQL_PROCEDUREKEYWORD && stylePrev != SCE_MYSQL_PROCEDUREKEYWORD)) { + const int MAX_KW_LEN = 6; // Maximum length of folding keywords + char s[MAX_KW_LEN + 2]; + unsigned int j = 0; + for (; j < MAX_KW_LEN + 1; j++) { + if (!iswordchar(styler[i + j])) { + break; + } + s[j] = static_cast<char>(tolower(styler[i + j])); + } + if (j == MAX_KW_LEN + 1) { + // Keyword too long, don't test it + s[0] = '\0'; + } else { + s[j] = '\0'; + } + if (!foldOnlyBegin && endFound && (strcmp(s, "if") == 0 || strcmp(s, "while") == 0 || strcmp(s, "loop") == 0)) { + endFound = false; + levelNext--; + if (levelNext < SC_FOLDLEVELBASE) { + levelNext = SC_FOLDLEVELBASE; + } +// Note that else is special here. It may or may be followed by an if then, but in aly case the level stays the +// same. When followed by a if .. then, the level will be increased later, if not, at eol. + } else if (!foldOnlyBegin && strcmp(s, "else") == 0) { + levelNext--; + elseFound = true; + } else if (!foldOnlyBegin && strcmp(s, "then") == 0) { + if(whenFound) { + whenFound = false; + } else { + levelNext++; + } + } else if (strcmp(s, "if") == 0) { + elseFound = false; + } else if (strcmp(s, "when") == 0) { + whenFound = true; + } else if (strcmp(s, "begin") == 0) { + levelNext++; + } else if (!foldOnlyBegin && (strcmp(s, "loop") == 0 || strcmp(s, "repeat") == 0 + || strcmp(s, "while") == 0)) { + if(endFound) { + endFound = false; + } else { + levelNext++; + } + } else if (strcmp(s, "end") == 0) { +// Multiple END in a row are counted multiple times! + if (endFound) { + levelNext--; + if (levelNext < SC_FOLDLEVELBASE) { + levelNext = SC_FOLDLEVELBASE; + } + } + endFound = true; + whenFound = false; + } + } +// Handle this for a trailing end withiut an if / while etc, as in the case of a begin. + if (endFound) { + endFound = false; + levelNext--; + if (levelNext < SC_FOLDLEVELBASE) { + levelNext = SC_FOLDLEVELBASE; + } + } + if (atEOL) { + if(elseFound) + levelNext++; + elseFound = false; + + int levelUse = levelCurrent; + int lev = levelUse | levelNext << 16; + if (visibleChars == 0 && foldCompact) + lev |= SC_FOLDLEVELWHITEFLAG; + if (levelUse < levelNext) + lev |= SC_FOLDLEVELHEADERFLAG; + if (lev != styler.LevelAt(lineCurrent)) { + styler.SetLevel(lineCurrent, lev); + } + lineCurrent++; + levelCurrent = levelNext; + visibleChars = 0; + endFound = false; + whenFound = false; + } + if (!isspacechar(ch)) { + visibleChars++; + } + } +} + +static const char * const mysqlWordListDesc[] = { + "Major Keywords", + "Keywords", + "Database Objects", + "Functions", + "System Variables", + "Procedure keywords", + "User Keywords 1", + "User Keywords 2", + "User Keywords 3" +}; + + LexerModule lmMySQL(SCLEX_MYSQL, ColouriseMySQLDoc, "mysql", FoldMySQLDoc, mysqlWordListDesc); diff --git a/win32/makefile b/win32/makefile index b3823f9f9..c99e02d50 100644 --- a/win32/makefile +++ b/win32/makefile @@ -57,10 +57,10 @@ LexConf.o LexCPP.o LexCrontab.o LexCsound.o LexCSS.o LexD.o LexEiffel.o \ LexErlang.o LexEScript.o LexFlagship.o LexForth.o LexFortran.o LexGAP.o \ LexGui4Cli.o LexHaskell.o LexHTML.o LexInno.o LexKix.o LexLisp.o LexLout.o \ LexLua.o LexMagik.o LexMatlab.o LexMetapost.o LexMMIXAL.o LexMPT.o LexMSSQL.o \ -LexNsis.o LexOpal.o LexOthers.o LexPascal.o LexPB.o LexPerl.o LexPLM.o \ -LexPOV.o LexPowerShell.o LexProgress.o LexPS.o LexPython.o LexR.o LexRebol.o \ -LexRuby.o LexScriptol.o LexSmalltalk.o LexSpecman.o LexSpice.o LexSQL.o \ -LexTADS3.o LexTCL.o LexTeX.o LexVB.o LexVerilog.o LexVHDL.o LexYAML.o +LexMySQL.o LexNsis.o LexOpal.o LexOthers.o LexPascal.o LexPB.o LexPerl.o \ +LexPLM.o LexPOV.o LexPowerShell.o LexProgress.o LexPS.o LexPython.o LexR.o \ +LexRebol.o LexRuby.o LexScriptol.o LexSmalltalk.o LexSpecman.o LexSpice.o \ +LexSQL.o LexTADS3.o LexTCL.o LexTeX.o LexVB.o LexVerilog.o LexVHDL.o LexYAML.o #--Autogenerated -- end of automatically generated section SOBJS = ScintillaWin.o ScintillaBase.o Editor.o CharClassify.o Decoration.o \ diff --git a/win32/scintilla.mak b/win32/scintilla.mak index 468a62261..46c2aa032 100644 --- a/win32/scintilla.mak +++ b/win32/scintilla.mak @@ -155,6 +155,7 @@ LEXOBJS=\ $(DIR_O)\LexMMIXAL.obj \ $(DIR_O)\LexMPT.obj \ $(DIR_O)\LexMSSQL.obj \ + $(DIR_O)\LexMySQL.obj \ $(DIR_O)\LexNsis.obj \ $(DIR_O)\LexOpal.obj \ $(DIR_O)\LexOthers.obj \ @@ -389,6 +390,8 @@ $(DIR_O)\LexMPT.obj: ..\src\LexMPT.cxx $(LEX_HEADERS) $(DIR_O)\LexMSSQL.obj: ..\src\LexMSSQL.cxx $(LEX_HEADERS) +$(DIR_O)\LexMySQL.obj: ..\src\LexMySQL.cxx $(LEX_HEADERS) + $(DIR_O)\LexNsis.obj: ..\src\LexNsis.cxx $(LEX_HEADERS) $(DIR_O)\LexOpal.obj: ..\src\LexOpal.cxx $(LEX_HEADERS) diff --git a/win32/scintilla_vc6.mak b/win32/scintilla_vc6.mak index d77121dd9..566452ad7 100644 --- a/win32/scintilla_vc6.mak +++ b/win32/scintilla_vc6.mak @@ -157,6 +157,7 @@ LEXOBJS=\ $(DIR_O)\LexMMIXAL.obj \ $(DIR_O)\LexMPT.obj \ $(DIR_O)\LexMSSQL.obj \ + $(DIR_O)\LexMySQL.obj \ $(DIR_O)\LexNsis.obj \ $(DIR_O)\LexOpal.obj \ $(DIR_O)\LexOthers.obj \ @@ -391,6 +392,8 @@ $(DIR_O)\LexMPT.obj: ..\src\LexMPT.cxx $(LEX_HEADERS) $(DIR_O)\LexMSSQL.obj: ..\src\LexMSSQL.cxx $(LEX_HEADERS) +$(DIR_O)\LexMySQL.obj: ..\src\LexMySQL.cxx $(LEX_HEADERS) + $(DIR_O)\LexNsis.obj: ..\src\LexNsis.cxx $(LEX_HEADERS) $(DIR_O)\LexOpal.obj: ..\src\LexOpal.cxx $(LEX_HEADERS) |