Add MS Transact-SQL

Add built-in support for Microsoft's SQL dialect, Transact-SQL, used by Microsoft SQL Server. This enables Lexilla's dedicated MS SQL lexer.
To preserve the current file extension mapping, the new lexer is mapped to the *.tsql file extension only.
Users can select "Microsoft Transact-SQL" from the Language menu to apply MS SQL Server style to scripts with the *.sql extension.

Keywords and styles copied from https://www.scintilla.org/mssql.properties

Fix #5940, fix #7988, fix #11718, fix #12610, fix #13160, close #13184
This commit is contained in:
Robert Di Pardo 2023-02-20 23:55:19 -05:00 committed by Don Ho
parent feb454ad6f
commit 01bbebf825
10 changed files with 42 additions and 1 deletions

View File

@ -33,7 +33,7 @@ enum LangType {L_TEXT, L_PHP , L_C, L_CPP, L_CS, L_OBJC, L_JAVA, L_RC,\
L_CSOUND, L_ERLANG, L_ESCRIPT, L_FORTH, L_LATEX, \ L_CSOUND, L_ERLANG, L_ESCRIPT, L_FORTH, L_LATEX, \
L_MMIXAL, L_NIM, L_NNCRONTAB, L_OSCRIPT, L_REBOL, \ L_MMIXAL, L_NIM, L_NNCRONTAB, L_OSCRIPT, L_REBOL, \
L_REGISTRY, L_RUST, L_SPICE, L_TXT2TAGS, L_VISUALPROLOG,\ L_REGISTRY, L_RUST, L_SPICE, L_TXT2TAGS, L_VISUALPROLOG,\
L_TYPESCRIPT, L_JSON5,\ L_TYPESCRIPT, L_JSON5, L_MSSQL,\
// Don't use L_JS, use L_JAVASCRIPT instead // Don't use L_JS, use L_JAVASCRIPT instead
// The end of enumated language type, so it should be always at the end // The end of enumated language type, so it should be always at the end
L_EXTERNAL}; L_EXTERNAL};

View File

@ -3597,6 +3597,8 @@ LangType Notepad_plus::menuID2LangType(int cmdID)
return L_VB; return L_VB;
case IDM_LANG_SQL : case IDM_LANG_SQL :
return L_SQL; return L_SQL;
case IDM_LANG_MSSQL :
return L_MSSQL;
case IDM_LANG_ASCII : case IDM_LANG_ASCII :
return L_ASCII; return L_ASCII;
case IDM_LANG_TEXT : case IDM_LANG_TEXT :

View File

@ -943,6 +943,7 @@ BEGIN
MENUITEM "Lua", IDM_LANG_LUA MENUITEM "Lua", IDM_LANG_LUA
MENUITEM "Makefile", IDM_LANG_MAKEFILE MENUITEM "Makefile", IDM_LANG_MAKEFILE
MENUITEM "Matlab", IDM_LANG_MATLAB MENUITEM "Matlab", IDM_LANG_MATLAB
MENUITEM "Microsoft Transact-SQL", IDM_LANG_MSSQL
MENUITEM "MMIXAL", IDM_LANG_MMIXAL MENUITEM "MMIXAL", IDM_LANG_MMIXAL
MENUITEM "MS-DOS Style", IDM_LANG_ASCII MENUITEM "MS-DOS Style", IDM_LANG_ASCII
MENUITEM "Nim", IDM_LANG_NIM MENUITEM "Nim", IDM_LANG_NIM
@ -1069,6 +1070,7 @@ BEGIN
BEGIN BEGIN
MENUITEM "Makefile", IDM_LANG_MAKEFILE MENUITEM "Makefile", IDM_LANG_MAKEFILE
MENUITEM "Matlab", IDM_LANG_MATLAB MENUITEM "Matlab", IDM_LANG_MATLAB
MENUITEM "Microsoft Transact-SQL",IDM_LANG_MSSQL
MENUITEM "MMIXAL", IDM_LANG_MMIXAL MENUITEM "MMIXAL", IDM_LANG_MMIXAL
MENUITEM "MS-DOS Style", IDM_LANG_ASCII MENUITEM "MS-DOS Style", IDM_LANG_ASCII
END END

View File

@ -3483,6 +3483,7 @@ void Notepad_plus::command(int id)
case IDM_LANG_OBJC : case IDM_LANG_OBJC :
case IDM_LANG_VB : case IDM_LANG_VB :
case IDM_LANG_SQL : case IDM_LANG_SQL :
case IDM_LANG_MSSQL :
case IDM_LANG_ASCII : case IDM_LANG_ASCII :
case IDM_LANG_TEXT : case IDM_LANG_TEXT :
case IDM_LANG_RC : case IDM_LANG_RC :

View File

@ -7617,6 +7617,8 @@ int NppParameters::langTypeToCommandID(LangType lt) const
id = IDM_LANG_USER; break; id = IDM_LANG_USER; break;
case L_SQL : case L_SQL :
id = IDM_LANG_SQL; break; id = IDM_LANG_SQL; break;
case L_MSSQL :
id = IDM_LANG_MSSQL; break;
case L_VB : case L_VB :
id = IDM_LANG_VB; break; id = IDM_LANG_VB; break;
case L_TCL : case L_TCL :

View File

@ -153,6 +153,7 @@ LanguageNameInfo ScintillaEditView::_langNameInfoArray[L_EXTERNAL + 1] = {
{TEXT("visualprolog"), TEXT("Visual Prolog"), TEXT("Visual Prolog file"), L_VISUALPROLOG, "visualprolog"}, {TEXT("visualprolog"), TEXT("Visual Prolog"), TEXT("Visual Prolog file"), L_VISUALPROLOG, "visualprolog"},
{TEXT("typescript"), TEXT("TypeScript"), TEXT("TypeScript file"), L_TYPESCRIPT, "cpp"}, {TEXT("typescript"), TEXT("TypeScript"), TEXT("TypeScript file"), L_TYPESCRIPT, "cpp"},
{TEXT("json5"), TEXT("json5"), TEXT("JSON5 file"), L_JSON5, "json"}, {TEXT("json5"), TEXT("json5"), TEXT("JSON5 file"), L_JSON5, "json"},
{TEXT("mssql"), TEXT("mssql"), TEXT("Microsoft Transact-SQL (SQL Server) file"), L_MSSQL, "mssql"},
{TEXT("ext"), TEXT("External"), TEXT("External"), L_EXTERNAL, "null"} {TEXT("ext"), TEXT("External"), TEXT("External"), L_EXTERNAL, "null"}
}; };
@ -1626,6 +1627,9 @@ void ScintillaEditView::defineDocType(LangType typeDoc)
case L_SQL : case L_SQL :
setSqlLexer(); break; setSqlLexer(); break;
case L_MSSQL :
setMSSqlLexer(); break;
case L_VB : case L_VB :
setVBLexer(); break; setVBLexer(); break;

View File

@ -770,6 +770,10 @@ protected:
execute(SCI_SETPROPERTY, reinterpret_cast<WPARAM>("sql.backslash.escapes"), reinterpret_cast<LPARAM>(kbBackSlash ? "1" : "0")); execute(SCI_SETPROPERTY, reinterpret_cast<WPARAM>("sql.backslash.escapes"), reinterpret_cast<LPARAM>(kbBackSlash ? "1" : "0"));
}; };
void setMSSqlLexer() {
setLexer(L_MSSQL, LIST_0 | LIST_1 | LIST_2 | LIST_3 | LIST_4 | LIST_5);
};
void setBashLexer() { void setBashLexer() {
setLexer(L_BASH, LIST_0); setLexer(L_BASH, LIST_0);
}; };

File diff suppressed because one or more lines are too long

View File

@ -538,6 +538,7 @@
#define IDM_LANG_VISUALPROLOG (IDM_LANG + 83) #define IDM_LANG_VISUALPROLOG (IDM_LANG + 83)
#define IDM_LANG_TYPESCRIPT (IDM_LANG + 84) #define IDM_LANG_TYPESCRIPT (IDM_LANG + 84)
#define IDM_LANG_JSON5 (IDM_LANG + 85) #define IDM_LANG_JSON5 (IDM_LANG + 85)
#define IDM_LANG_MSSQL (IDM_LANG + 86)
#define IDM_LANG_EXTERNAL (IDM_LANG + 165) #define IDM_LANG_EXTERNAL (IDM_LANG + 165)
#define IDM_LANG_EXTERNAL_LIMIT (IDM_LANG + 179) #define IDM_LANG_EXTERNAL_LIMIT (IDM_LANG + 179)

View File

@ -727,6 +727,23 @@
<WordsStyle name="IDENTIFIER" styleID="7" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" /> <WordsStyle name="IDENTIFIER" styleID="7" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" />
<WordsStyle name="DOUBLE QUOTE STRING" styleID="8" fgColor="808080" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" /> <WordsStyle name="DOUBLE QUOTE STRING" styleID="8" fgColor="808080" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" />
</LexerType> </LexerType>
<LexerType name="mssql" desc="T-SQL (MS SQL Server)" ext="">
<WordsStyle name="STATEMENT" styleID="9" fgColor="0000D0" bgColor="FFFFFF" fontName="" fontStyle="1" fontSize="" keywordClass="instre1" />
<WordsStyle name="DATA TYPE" styleID="10" fgColor="FF0000" bgColor="FFFFD0" fontName="" fontStyle="0" fontSize="" keywordClass="instre2" />
<WordsStyle name="SYSTEM TABLE" styleID="11" fgColor="000000" bgColor="D0FFFF" fontName="" fontStyle="0" fontSize="" keywordClass="type1" />
<WordsStyle name="GLOBAL" styleID="12" fgColor="FF0000" bgColor="FFD0D0" fontName="" fontStyle="0" fontSize="" keywordClass="type2" />
<WordsStyle name="FUNCTION" styleID="13" fgColor="000000" bgColor="D0FFD0" fontName="" fontStyle="0" fontSize="" keywordClass="type3" />
<WordsStyle name="SYSTEM STORED PROC" styleID="14" fgColor="FF0000" bgColor="FFD0FF" fontName="" fontStyle="0" fontSize="" keywordClass="type4" />
<WordsStyle name="COMMENT" styleID="1" fgColor="008000" bgColor="FFFFFF" fontName="" fontStyle="2" fontSize="" />
<WordsStyle name="COMMENT LINE" styleID="2" fgColor="008000" bgColor="FFFFFF" fontName="" fontStyle="2" fontSize="" />
<WordsStyle name="NUMBER" styleID="3" fgColor="308080" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" />
<WordsStyle name="STRING" styleID="4" fgColor="B000D0" bgColor="FFFFFF" fontName="" fontStyle="2" fontSize="" />
<WordsStyle name="OPERATOR" styleID="5" fgColor="B08000" bgColor="FFFFFF" fontName="" fontStyle="1" fontSize="" />
<WordsStyle name="IDENTIFIER" styleID="6" fgColor="5080E0" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" />
<WordsStyle name="VARIABLE" styleID="7" fgColor="CC1166" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" />
<WordsStyle name="COL NAME" styleID="8" fgColor="808080" bgColor="F0F0FF" fontName="" fontStyle="0" fontSize="" />
<WordsStyle name="COL NAME IN []&apos;s" styleID="16" fgColor="D08000" bgColor="FFFFFF" fontName="" fontStyle="2" fontSize="" />
</LexerType>
<LexerType name="mmixal" desc="MMIXAL" ext=""> <LexerType name="mmixal" desc="MMIXAL" ext="">
<WordsStyle name="DIVSION OF LEADING WHITESPACE IN LINE" styleID="0" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" /> <WordsStyle name="DIVSION OF LEADING WHITESPACE IN LINE" styleID="0" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" />
<WordsStyle name="COMMENT" styleID="1" fgColor="007F00" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" /> <WordsStyle name="COMMENT" styleID="1" fgColor="007F00" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" />