From: Takashi Sawanaka Date: Sun, 17 Mar 2019 13:28:43 +0000 (+0900) Subject: editlib: Add Lua syntax highlighting X-Git-Tag: 2.16.5~421 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=7a81e46e300b617af80531b8971053fa7c849556;p=winmerge-jp%2Fwinmerge-jp.git editlib: Add Lua syntax highlighting --- diff --git a/Externals/crystaledit/Sample/SampleStatic.vs2015.vcxproj b/Externals/crystaledit/Sample/SampleStatic.vs2015.vcxproj index 8b290d236..68f73e9a6 100644 --- a/Externals/crystaledit/Sample/SampleStatic.vs2015.vcxproj +++ b/Externals/crystaledit/Sample/SampleStatic.vs2015.vcxproj @@ -501,6 +501,7 @@ + diff --git a/Externals/crystaledit/Sample/SampleStatic.vs2015.vcxproj.filters b/Externals/crystaledit/Sample/SampleStatic.vs2015.vcxproj.filters index 830bf40ef..967f93438 100644 --- a/Externals/crystaledit/Sample/SampleStatic.vs2015.vcxproj.filters +++ b/Externals/crystaledit/Sample/SampleStatic.vs2015.vcxproj.filters @@ -231,6 +231,9 @@ editlib\parsers + + editlib\parsers + diff --git a/Externals/crystaledit/Sample/SampleStatic.vs2017.vcxproj b/Externals/crystaledit/Sample/SampleStatic.vs2017.vcxproj index 1da567755..6463916ee 100644 --- a/Externals/crystaledit/Sample/SampleStatic.vs2017.vcxproj +++ b/Externals/crystaledit/Sample/SampleStatic.vs2017.vcxproj @@ -501,6 +501,7 @@ + diff --git a/Externals/crystaledit/Sample/SampleStatic.vs2017.vcxproj.filters b/Externals/crystaledit/Sample/SampleStatic.vs2017.vcxproj.filters index 830bf40ef..967f93438 100644 --- a/Externals/crystaledit/Sample/SampleStatic.vs2017.vcxproj.filters +++ b/Externals/crystaledit/Sample/SampleStatic.vs2017.vcxproj.filters @@ -231,6 +231,9 @@ editlib\parsers + + editlib\parsers + diff --git a/Externals/crystaledit/Sample/SampleStatic.vs2019.vcxproj b/Externals/crystaledit/Sample/SampleStatic.vs2019.vcxproj index 86e02da4f..81c17cf88 100644 --- a/Externals/crystaledit/Sample/SampleStatic.vs2019.vcxproj +++ b/Externals/crystaledit/Sample/SampleStatic.vs2019.vcxproj @@ -501,6 +501,7 @@ + diff --git a/Externals/crystaledit/Sample/SampleStatic.vs2019.vcxproj.filters b/Externals/crystaledit/Sample/SampleStatic.vs2019.vcxproj.filters index 259d56122..e24c9b343 100644 --- a/Externals/crystaledit/Sample/SampleStatic.vs2019.vcxproj.filters +++ b/Externals/crystaledit/Sample/SampleStatic.vs2019.vcxproj.filters @@ -231,6 +231,9 @@ editlib\parsers + + editlib\parsers + diff --git a/Externals/crystaledit/editlib/ccrystaltextview.cpp b/Externals/crystaledit/editlib/ccrystaltextview.cpp index e19e70437..e18fba8a7 100644 --- a/Externals/crystaledit/editlib/ccrystaltextview.cpp +++ b/Externals/crystaledit/editlib/ccrystaltextview.cpp @@ -302,6 +302,7 @@ CCrystalTextView::TextDefinition CCrystalTextView::m_SourceDefs[] = CCrystalTextView::SRC_INSTALLSHIELD, _T ("InstallShield"), _T ("rul"), &CrystalLineParser::ParseLineIS, SRCOPT_AUTOINDENT|SRCOPT_BRACEANSI, /*2,*/ _T ("/*"), _T ("*/"), _T ("//"), (DWORD)-1, CCrystalTextView::SRC_JAVA, _T ("Java"), _T ("java,jav,js"), &CrystalLineParser::ParseLineJava, SRCOPT_AUTOINDENT|SRCOPT_BRACEANSI, /*2,*/ _T ("/*"), _T ("*/"), _T ("//"), (DWORD)-1, CCrystalTextView::SRC_LISP, _T ("AutoLISP"), _T ("lsp,dsl"), &CrystalLineParser::ParseLineLisp, SRCOPT_AUTOINDENT|SRCOPT_BRACEANSI, /*2,*/ _T (";|"), _T ("|;"), _T (";"), (DWORD)-1, + CCrystalTextView::SRC_LUA, _T ("Lua"), _T ("lua"), &CrystalLineParser::ParseLineLua, SRCOPT_AUTOINDENT|SRCOPT_BRACEANSI, /*2,*/ _T ("--[["), _T ("--]]"), _T ("--"), (DWORD)-1, CCrystalTextView::SRC_NSIS, _T ("NSIS"), _T ("nsi,nsh"), &CrystalLineParser::ParseLineNsis, SRCOPT_AUTOINDENT|SRCOPT_BRACEANSI, /*2,*/ _T ("/*"), _T ("*/"), _T (";"), (DWORD)-1, CCrystalTextView::SRC_PASCAL, _T ("Pascal"), _T ("pas"), &CrystalLineParser::ParseLinePascal, SRCOPT_AUTOINDENT|SRCOPT_BRACEANSI, /*2,*/ _T ("{"), _T ("}"), _T (""), (DWORD)-1, CCrystalTextView::SRC_PERL, _T ("Perl"), _T ("pl,pm,plx"), &CrystalLineParser::ParseLinePerl, SRCOPT_AUTOINDENT|SRCOPT_EOLNUNIX, /*4,*/ _T (""), _T (""), _T ("#"), (DWORD)-1, diff --git a/Externals/crystaledit/editlib/ccrystaltextview.h b/Externals/crystaledit/editlib/ccrystaltextview.h index eff164c82..c17c61d95 100644 --- a/Externals/crystaledit/editlib/ccrystaltextview.h +++ b/Externals/crystaledit/editlib/ccrystaltextview.h @@ -724,6 +724,7 @@ public : SRC_INSTALLSHIELD, SRC_JAVA, SRC_LISP, + SRC_LUA, SRC_NSIS, SRC_PASCAL, SRC_PERL, diff --git a/Externals/crystaledit/editlib/crystallineparser.h b/Externals/crystaledit/editlib/crystallineparser.h index 2a5a914f3..54f5e4787 100644 --- a/Externals/crystaledit/editlib/crystallineparser.h +++ b/Externals/crystaledit/editlib/crystallineparser.h @@ -32,6 +32,8 @@ if (pBuf != nullptr)\ #define COOKIE_SET_EXT_COMMENT_DEPTH(cookie, depth) (cookie) = (((cookie) & 0xF0FFFFFF) | ((depth) << 24)) #define COOKIE_GET_RAWSTRING_NUMBER_COUNT(cookie) (((cookie) & 0xF0000000) >> 28) #define COOKIE_SET_RAWSTRING_NUMBER_COUNT(cookie, count) (cookie) = (((cookie) & 0x0FFFFFFF) | ((count) << 28)) +#define COOKIE_GET_LUA_EQUALS_SIGN_COUNT(cookie) (((cookie) & 0xF0000000) >> 28) +#define COOKIE_SET_LUA_EQUALS_SIGN_COUNT(cookie, count) (cookie) = (((cookie) & 0x0FFFFFFF) | ((count) << 28)) namespace CrystalLineParser { @@ -59,6 +61,7 @@ DWORD ParseLineInnoSetup(DWORD dwCookie, const TCHAR *pszChars, int nLength, TEX DWORD ParseLineIS(DWORD dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems); DWORD ParseLineJava(DWORD dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems); DWORD ParseLineLisp(DWORD dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems); +DWORD ParseLineLua(DWORD dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems); DWORD ParseLineNsis(DWORD dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems); DWORD ParseLinePascal(DWORD dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems); DWORD ParseLinePerl(DWORD dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems); diff --git a/Externals/crystaledit/editlib/lua.cpp b/Externals/crystaledit/editlib/lua.cpp new file mode 100644 index 000000000..4371a7ae7 --- /dev/null +++ b/Externals/crystaledit/editlib/lua.cpp @@ -0,0 +1,355 @@ +/////////////////////////////////////////////////////////////////////////// +// File: lua.cpp +// Version: 1.0.0.0 +// Created: 17-May-2019 +// +// Copyright: Stcherbatchenko Andrei, portions by Takashi Sawanaka +// E-mail: sdottaka@users.sourceforge.net +// +// Lua syntax highlighing definition +// +// You are free to use or modify this code to the following restrictions: +// - Acknowledge me somewhere in your about box, simple "Parts of code by.." +// will be enough. If you can't (or don't want to), contact me personally. +// - LEAVE THIS HEADER INTACT +//////////////////////////////////////////////////////////////////////////// + +#include "StdAfx.h" +#include "crystallineparser.h" +#include "SyntaxColors.h" +#include "string_util.h" +#include + +#ifdef _DEBUG +#define new DEBUG_NEW +#endif + +// Lua keywords +static LPCTSTR s_apszLuaKeywordList[] = + { +_T ("and"), +_T ("break"), +_T ("do"), +_T ("else"), +_T ("elseif"), +_T ("end"), +_T ("false"), +_T ("for"), +_T ("function"), +_T ("if"), +_T ("in"), +_T ("local"), +_T ("nil"), +_T ("not"), +_T ("or"), +_T ("repeat"), +_T ("return"), +_T ("then"), +_T ("true"), +_T ("until"), +_T ("while"), + }; + +static bool +IsLuaKeyword (LPCTSTR pszChars, int nLength) +{ + return ISXKEYWORD (s_apszLuaKeywordList, pszChars, nLength); +} + +static bool +IsLuaNumber (LPCTSTR pszChars, int nLength) +{ + if (nLength > 2 && pszChars[0] == '0') + { + if (pszChars[1] == 'x') + { + for (int I = 2; I < nLength; I++) + { + if (_istdigit (pszChars[I]) || (pszChars[I] >= 'A' && pszChars[I] <= 'F') || + (pszChars[I] >= 'a' && pszChars[I] <= 'f') || pszChars[I] == '_') + continue; + return false; + } + return true; + } + else if (pszChars[1] == 'o') + { + for (int I = 2; I < nLength; I++) + { + if ((pszChars[I] >= '0' && pszChars[I] <= '7') || pszChars[I] == '_') + continue; + return false; + } + return true; + } + else if (pszChars[1] == 'b') + { + for (int I = 2; I < nLength; I++) + { + if ((pszChars[I] >= '0' && pszChars[I] <= '1') || pszChars[I] == '_') + continue; + return false; + } + return true; + } + } + if (!_istdigit (pszChars[0]) && pszChars[0] != '.') + return false; + for (int I = 1; I < nLength; I++) + { + if (!_istdigit (pszChars[I]) && pszChars[I] != '+' && + pszChars[I] != '-' && pszChars[I] != '.' && pszChars[I] != 'e' && + pszChars[I] != 'E' && pszChars[I] != '_') + return false; + } + return true; +} + +DWORD +CrystalLineParser::ParseLineLua (DWORD dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems) +{ + if (nLength == 0) + return dwCookie & (COOKIE_EXT_COMMENT | COOKIE_RAWSTRING | 0xFF000000); + + bool bRedefineBlock = true; + bool bDecIndex = false; + int nIdentBegin = -1; + int nPrevI = -1; + int I=0; + for (I = 0;; nPrevI = I, I = static_cast(::CharNext(pszChars+I) - pszChars)) + { + if (I == nPrevI) + { + // CharNext did not advance, so we're at the end of the string + // and we already handled this character, so stop + break; + } + + if (bRedefineBlock) + { + int nPos = I; + if (bDecIndex) + nPos = nPrevI; + if (dwCookie & (COOKIE_COMMENT | COOKIE_EXT_COMMENT)) + { + DEFINE_BLOCK (nPos, COLORINDEX_COMMENT); + } + else if (dwCookie & (COOKIE_CHAR | COOKIE_STRING | COOKIE_RAWSTRING)) + { + DEFINE_BLOCK (nPos, COLORINDEX_STRING); + } + else + { + if (xisalnum (pszChars[nPos]) || pszChars[nPos] == '.' && nPos > 0 && (!xisalpha (*::CharPrev(pszChars, pszChars + nPos)) && !xisalpha (*::CharNext(pszChars + nPos)))) + { + DEFINE_BLOCK (nPos, COLORINDEX_NORMALTEXT); + } + else + { + DEFINE_BLOCK (nPos, COLORINDEX_OPERATOR); + bRedefineBlock = true; + bDecIndex = true; + goto out; + } + } + bRedefineBlock = false; + bDecIndex = false; + } +out: + + // Can be bigger than length if there is binary data + // See bug #1474782 Crash when comparing SQL with with binary data + if (I >= nLength || pszChars[I] == 0) + break; + + if (dwCookie & COOKIE_COMMENT) + { + DEFINE_BLOCK (I, COLORINDEX_COMMENT); + dwCookie |= COOKIE_COMMENT; + break; + } + + // String constant "...." + if (dwCookie & COOKIE_STRING) + { + if (pszChars[I] == '"' && (I == 0 || I == 1 && pszChars[nPrevI] != '\\' || I >= 2 && (pszChars[nPrevI] != '\\' || pszChars[nPrevI] == '\\' && *::CharPrev(pszChars, pszChars + nPrevI) == '\\'))) + { + dwCookie &= ~COOKIE_STRING; + bRedefineBlock = true; + } + continue; + } + + // Char constant '..' + if (dwCookie & COOKIE_CHAR) + { + if (pszChars[I] == '\'' && (I == 0 || I == 1 && pszChars[nPrevI] != '\\' || I >= 2 && (pszChars[nPrevI] != '\\' || pszChars[nPrevI] == '\\' && *::CharPrev(pszChars, pszChars + nPrevI) == '\\'))) + { + dwCookie &= ~COOKIE_CHAR; + bRedefineBlock = true; + } + continue; + } + + // Raw string constant [[ ... ]], [=[ ... ]=], [==[ ... ]==], ... + if (dwCookie & COOKIE_RAWSTRING) + { + const int nEqualsSignCount = COOKIE_GET_LUA_EQUALS_SIGN_COUNT(dwCookie); + if (I >= nEqualsSignCount + 1 && pszChars[I] == ']' && pszChars[I - nEqualsSignCount - 1] == ']' && + std::all_of(pszChars + I - nEqualsSignCount, pszChars + I, [](const auto c) { return c == '='; })) + { + dwCookie &= ~COOKIE_RAWSTRING; + bRedefineBlock = true; + } + continue; + } + + // Extended comment --[[ ... ]] , --[=[ ... ]=], --[==[ ... ]==], ... + if (dwCookie & COOKIE_EXT_COMMENT) + { + const int nEqualsSignCount = COOKIE_GET_LUA_EQUALS_SIGN_COUNT(dwCookie); + if (I >= nEqualsSignCount + 1 && pszChars[I] == ']' && pszChars[I - nEqualsSignCount - 1] == ']' && + std::all_of(pszChars + I - nEqualsSignCount, pszChars + I, [](const auto c) { return c == '='; })) + { + dwCookie &= ~COOKIE_EXT_COMMENT; + bRedefineBlock = true; + } + continue; + } + + if (I > 0 && pszChars[I] == '-' && pszChars[nPrevI] == '-') + { + DEFINE_BLOCK (nPrevI, COLORINDEX_COMMENT); + dwCookie |= COOKIE_COMMENT; + break; + } + + // Normal text + if (pszChars[I] == '"') + { + DEFINE_BLOCK (I, COLORINDEX_STRING); + dwCookie |= COOKIE_STRING; + continue; + } + if (pszChars[I] == '\'') + { + // if (I + 1 < nLength && pszChars[I + 1] == '\'' || I + 2 < nLength && pszChars[I + 1] != '\\' && pszChars[I + 2] == '\'' || I + 3 < nLength && pszChars[I + 1] == '\\' && pszChars[I + 3] == '\'') + if (!I || !xisalnum (pszChars[nPrevI])) + { + DEFINE_BLOCK (I, COLORINDEX_STRING); + dwCookie |= COOKIE_CHAR; + continue; + } + } + // Raw string [[ ... ]], [=[ ... ]=], [==[ ... ]==], ... + if (pszChars[I] == '[' && I + 1 < nLength && (pszChars[I + 1] == '[' || pszChars[I + 1] == '=')) + { + int nEqualsSignCount = 0; + while (I + 1 + nEqualsSignCount < nLength && pszChars[I + 1 + nEqualsSignCount] == '=') + ++nEqualsSignCount; + if (I + 1 + nEqualsSignCount < nLength && pszChars[I + 1 + nEqualsSignCount] == '[') + { + DEFINE_BLOCK (I, COLORINDEX_STRING); + dwCookie |= COOKIE_RAWSTRING; + COOKIE_SET_LUA_EQUALS_SIGN_COUNT(dwCookie, nEqualsSignCount); + continue; + } + } + // Extended comment [[ ... ]], [=[ ... ]=], [==[ ... ]==], ... + if (pszChars[I] == '-' && I + 3 < nLength && pszChars[I + 1] == '-' && pszChars[I + 2] == '[' && (pszChars[I + 3] == '[' || pszChars[I + 3] == '=')) + { + int nEqualsSignCount = 0; + while (I + 3 + nEqualsSignCount < nLength && pszChars[I + 3 + nEqualsSignCount] == '=') + ++nEqualsSignCount; + if (I + 3 + nEqualsSignCount < nLength && pszChars[I + 3 + nEqualsSignCount] == '[') + { + DEFINE_BLOCK (I, COLORINDEX_COMMENT); + dwCookie |= COOKIE_EXT_COMMENT; + COOKIE_SET_LUA_EQUALS_SIGN_COUNT(dwCookie, nEqualsSignCount); + continue; + } + } + + if (pBuf == nullptr) + continue; // We don't need to extract keywords, + // for faster parsing skip the rest of loop + + if (xisalnum (pszChars[I]) || pszChars[I] == '.' && I > 0 && (!xisalpha (pszChars[nPrevI]) && !xisalpha (pszChars[I + 1]))) + { + if (nIdentBegin == -1) + nIdentBegin = I; + } + else + { + if (nIdentBegin >= 0) + { + if (IsLuaKeyword (pszChars + nIdentBegin, I - nIdentBegin)) + { + DEFINE_BLOCK (nIdentBegin, COLORINDEX_KEYWORD); + } + else if (IsLuaNumber (pszChars + nIdentBegin, I - nIdentBegin)) + { + DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); + } + else + { + bool bFunction = false; + + for (int j = I; j < nLength; j++) + { + if (!xisspace (pszChars[j])) + { + if (pszChars[j] == '(') + { + bFunction = true; + } + break; + } + } + if (bFunction) + { + DEFINE_BLOCK (nIdentBegin, COLORINDEX_FUNCNAME); + } + } + bRedefineBlock = true; + bDecIndex = true; + nIdentBegin = -1; + } + } + } + + if (nIdentBegin >= 0) + { + if (IsLuaKeyword (pszChars + nIdentBegin, I - nIdentBegin)) + { + DEFINE_BLOCK (nIdentBegin, COLORINDEX_KEYWORD); + } + else if (IsLuaNumber (pszChars + nIdentBegin, I - nIdentBegin)) + { + DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); + } + else + { + bool bFunction = false; + + for (int j = I; j < nLength; j++) + { + if (!xisspace (pszChars[j])) + { + if (pszChars[j] == '(') + { + bFunction = true; + } + break; + } + } + if (bFunction) + { + DEFINE_BLOCK (nIdentBegin, COLORINDEX_FUNCNAME); + } + } + } + + dwCookie &= COOKIE_EXT_COMMENT | COOKIE_RAWSTRING | 0xFF000000; + return dwCookie; +} diff --git a/Src/Merge.rc b/Src/Merge.rc index 66b0c6426..92bf987f0 100644 --- a/Src/Merge.rc +++ b/Src/Merge.rc @@ -2633,6 +2633,7 @@ BEGIN IDS_COLORSCHEME_INSTALLSHIELD "InstallShield" IDS_COLORSCHEME_JAVA "Java" IDS_COLORSCHEME_LISP "AutoLISP" + IDS_COLORSCHEME_LUA "Lua" END STRINGTABLE diff --git a/Src/Merge.vs2015.vcxproj b/Src/Merge.vs2015.vcxproj index afece4d5c..8fbd91d3a 100644 --- a/Src/Merge.vs2015.vcxproj +++ b/Src/Merge.vs2015.vcxproj @@ -494,6 +494,7 @@ + diff --git a/Src/Merge.vs2015.vcxproj.filters b/Src/Merge.vs2015.vcxproj.filters index 36496d8bc..7a81b6da6 100644 --- a/Src/Merge.vs2015.vcxproj.filters +++ b/Src/Merge.vs2015.vcxproj.filters @@ -784,6 +784,9 @@ EditLib\parsers + + EditLib\parsers + diff --git a/Src/Merge.vs2017.vcxproj b/Src/Merge.vs2017.vcxproj index 811dd91c4..0ebade61e 100644 --- a/Src/Merge.vs2017.vcxproj +++ b/Src/Merge.vs2017.vcxproj @@ -506,6 +506,7 @@ + diff --git a/Src/Merge.vs2017.vcxproj.filters b/Src/Merge.vs2017.vcxproj.filters index 36496d8bc..7a81b6da6 100644 --- a/Src/Merge.vs2017.vcxproj.filters +++ b/Src/Merge.vs2017.vcxproj.filters @@ -784,6 +784,9 @@ EditLib\parsers + + EditLib\parsers + diff --git a/Src/Merge.vs2019.vcxproj b/Src/Merge.vs2019.vcxproj index fbdb6ae28..6a4162239 100644 --- a/Src/Merge.vs2019.vcxproj +++ b/Src/Merge.vs2019.vcxproj @@ -506,6 +506,7 @@ + diff --git a/Src/Merge.vs2019.vcxproj.filters b/Src/Merge.vs2019.vcxproj.filters index 36496d8bc..7a81b6da6 100644 --- a/Src/Merge.vs2019.vcxproj.filters +++ b/Src/Merge.vs2019.vcxproj.filters @@ -784,6 +784,9 @@ EditLib\parsers + + EditLib\parsers + diff --git a/Src/resource.h b/Src/resource.h index 2fd4cf9e1..30e474576 100644 --- a/Src/resource.h +++ b/Src/resource.h @@ -1098,27 +1098,28 @@ #define IDS_COLORSCHEME_INSTALLSHIELD 33165 #define IDS_COLORSCHEME_JAVA 33166 #define IDS_COLORSCHEME_LISP 33167 -#define IDS_COLORSCHEME_NSIS 33168 -#define IDS_COLORSCHEME_PASCAL 33169 -#define IDS_COLORSCHEME_PERL 33170 -#define IDS_COLORSCHEME_PHP 33171 -#define IDS_COLORSCHEME_PO 33172 -#define IDS_COLORSCHEME_POWERSHELL 33173 -#define IDS_COLORSCHEME_PYTHON 33174 -#define IDS_COLORSCHEME_REXX 33175 -#define IDS_COLORSCHEME_RSRC 33176 -#define IDS_COLORSCHEME_RUBY 33177 -#define IDS_COLORSCHEME_RUST 33178 -#define IDS_COLORSCHEME_SGML 33179 -#define IDS_COLORSCHEME_SH 33180 -#define IDS_COLORSCHEME_SIOD 33181 -#define IDS_COLORSCHEME_SQL 33182 -#define IDS_COLORSCHEME_TCL 33183 -#define IDS_COLORSCHEME_TEX 33184 -#define IDS_COLORSCHEME_VERILOG 33185 -#define IDS_COLORSCHEME_VHDL 33186 -#define IDS_COLORSCHEME_XML 33187 -#define ID_COLORSCHEME_LAST 33187 // = IDS_COLORSCHEME_XML +#define IDS_COLORSCHEME_LUA 33168 +#define IDS_COLORSCHEME_NSIS 33169 +#define IDS_COLORSCHEME_PASCAL 33170 +#define IDS_COLORSCHEME_PERL 33171 +#define IDS_COLORSCHEME_PHP 33172 +#define IDS_COLORSCHEME_PO 33173 +#define IDS_COLORSCHEME_POWERSHELL 33174 +#define IDS_COLORSCHEME_PYTHON 33175 +#define IDS_COLORSCHEME_REXX 33176 +#define IDS_COLORSCHEME_RSRC 33177 +#define IDS_COLORSCHEME_RUBY 33178 +#define IDS_COLORSCHEME_RUST 33179 +#define IDS_COLORSCHEME_SGML 33180 +#define IDS_COLORSCHEME_SH 33181 +#define IDS_COLORSCHEME_SIOD 33182 +#define IDS_COLORSCHEME_SQL 33183 +#define IDS_COLORSCHEME_TCL 33184 +#define IDS_COLORSCHEME_TEX 33185 +#define IDS_COLORSCHEME_VERILOG 33186 +#define IDS_COLORSCHEME_VHDL 33187 +#define IDS_COLORSCHEME_XML 33188 +#define ID_COLORSCHEME_LAST 33188 // = IDS_COLORSCHEME_XML #define ID_TOOLBAR_NONE 33194 #define ID_TOOLBAR_SMALL 33195 #define ID_TOOLBAR_BIG 33196 diff --git a/Translations/WinMerge/Basque.po b/Translations/WinMerge/Basque.po index a603ce1d6..2b1da050f 100644 --- a/Translations/WinMerge/Basque.po +++ b/Translations/WinMerge/Basque.po @@ -4769,6 +4769,10 @@ msgstr "Ez Nabarmenduta" msgid "Batch" msgstr "Batch" +#: Merge.rc:23B300 +msgid "Lua" +msgstr "" + #: Merge.rc:55B03C15 #, c-format msgid "Portable Object" diff --git a/Translations/WinMerge/Brazilian.po b/Translations/WinMerge/Brazilian.po index e6e3d51b6..0218fa11c 100644 --- a/Translations/WinMerge/Brazilian.po +++ b/Translations/WinMerge/Brazilian.po @@ -4869,6 +4869,10 @@ msgstr "Sem Destacar" msgid "Batch" msgstr "Batch" +#: Merge.rc:23B300 +msgid "Lua" +msgstr "" + #: Merge.rc:55B03C15 #, c-format msgid "Portable Object" diff --git a/Translations/WinMerge/Bulgarian.po b/Translations/WinMerge/Bulgarian.po index b34d24cdd..64147be80 100644 --- a/Translations/WinMerge/Bulgarian.po +++ b/Translations/WinMerge/Bulgarian.po @@ -4694,6 +4694,10 @@ msgstr "" msgid "Batch" msgstr "" +#: Merge.rc:23B300 +msgid "Lua" +msgstr "" + #: Merge.rc:55B03C15 #, c-format msgid "Portable Object" diff --git a/Translations/WinMerge/Catalan.po b/Translations/WinMerge/Catalan.po index fc3e14bb4..8bb6f89e3 100644 --- a/Translations/WinMerge/Catalan.po +++ b/Translations/WinMerge/Catalan.po @@ -4690,6 +4690,10 @@ msgstr "" msgid "Batch" msgstr "" +#: Merge.rc:23B300 +msgid "Lua" +msgstr "" + #: Merge.rc:55B03C15 #, c-format msgid "Portable Object" diff --git a/Translations/WinMerge/ChineseSimplified.po b/Translations/WinMerge/ChineseSimplified.po index 9688b58e0..25b0ffea1 100644 --- a/Translations/WinMerge/ChineseSimplified.po +++ b/Translations/WinMerge/ChineseSimplified.po @@ -4693,6 +4693,10 @@ msgstr "" msgid "Batch" msgstr "批处理" +#: Merge.rc:23B300 +msgid "Lua" +msgstr "" + #: Merge.rc:55B03C15 #, c-format msgid "Portable Object" diff --git a/Translations/WinMerge/ChineseTraditional.po b/Translations/WinMerge/ChineseTraditional.po index c172c2b1a..374f3fb7d 100644 --- a/Translations/WinMerge/ChineseTraditional.po +++ b/Translations/WinMerge/ChineseTraditional.po @@ -4781,6 +4781,10 @@ msgstr "無高亮度顯示" msgid "Batch" msgstr "Batch" +#: Merge.rc:23B300 +msgid "Lua" +msgstr "" + #: Merge.rc:55B03C15 #, c-format msgid "Portable Object" diff --git a/Translations/WinMerge/Croatian.po b/Translations/WinMerge/Croatian.po index da2db7a0d..662216767 100644 --- a/Translations/WinMerge/Croatian.po +++ b/Translations/WinMerge/Croatian.po @@ -4766,6 +4766,10 @@ msgstr "Nije označeno" msgid "Batch" msgstr "Batch" +#: Merge.rc:23B300 +msgid "Lua" +msgstr "" + #: Merge.rc:55B03C15 #, c-format msgid "Portable Object" diff --git a/Translations/WinMerge/Czech.po b/Translations/WinMerge/Czech.po index fefa50bd7..1838cf312 100644 --- a/Translations/WinMerge/Czech.po +++ b/Translations/WinMerge/Czech.po @@ -4697,6 +4697,10 @@ msgstr "Žádné zvýraznění" msgid "Batch" msgstr "" +#: Merge.rc:23B300 +msgid "Lua" +msgstr "" + #: Merge.rc:55B03C15 #, c-format msgid "Portable Object" diff --git a/Translations/WinMerge/Danish.po b/Translations/WinMerge/Danish.po index 3c5ec7086..7c6d76e52 100644 --- a/Translations/WinMerge/Danish.po +++ b/Translations/WinMerge/Danish.po @@ -4818,6 +4818,10 @@ msgstr "Ingen fremhævning" msgid "Batch" msgstr "Batch" +#: Merge.rc:23B300 +msgid "Lua" +msgstr "" + #: Merge.rc:55B03C15 #, c-format msgid "Portable Object" diff --git a/Translations/WinMerge/Dutch.po b/Translations/WinMerge/Dutch.po index 8a35e4645..bbdac0380 100644 --- a/Translations/WinMerge/Dutch.po +++ b/Translations/WinMerge/Dutch.po @@ -4921,6 +4921,10 @@ msgstr "Geen markering" msgid "Batch" msgstr "Batch" +#: Merge.rc:23B300 +msgid "Lua" +msgstr "" + #: Merge.rc:55B03C15 #, c-format msgid "Portable Object" diff --git a/Translations/WinMerge/English.pot b/Translations/WinMerge/English.pot index ce139fcb5..f03d42679 100644 --- a/Translations/WinMerge/English.pot +++ b/Translations/WinMerge/English.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: WinMerge\n" "Report-Msgid-Bugs-To: http://bugs.winmerge.org/\n" -"POT-Creation-Date: 2019-03-09 22:42+0000\n" +"POT-Creation-Date: 2019-03-17 19:29+0000\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: English \n" @@ -3711,6 +3711,10 @@ msgstr "" msgid "Batch" msgstr "" +#: Merge.rc:23B300 +msgid "Lua" +msgstr "" + #: Merge.rc:55B03C15 msgid "Portable Object" msgstr "" diff --git a/Translations/WinMerge/Finnish.po b/Translations/WinMerge/Finnish.po index 5521e19d1..fb439625d 100644 --- a/Translations/WinMerge/Finnish.po +++ b/Translations/WinMerge/Finnish.po @@ -4523,6 +4523,10 @@ msgstr "Ei korostusta" msgid "Batch" msgstr "Batch" +#: Merge.rc:23B300 +msgid "Lua" +msgstr "" + #: Merge.rc:55B03C15 #, c-format msgid "Portable Object" diff --git a/Translations/WinMerge/French.po b/Translations/WinMerge/French.po index 2c6f5d28c..9147d84c7 100644 --- a/Translations/WinMerge/French.po +++ b/Translations/WinMerge/French.po @@ -4769,6 +4769,10 @@ msgstr "Pas de surbrillance" msgid "Batch" msgstr "Batch" +#: Merge.rc:23B300 +msgid "Lua" +msgstr "" + #: Merge.rc:55B03C15 #, c-format msgid "Portable Object" diff --git a/Translations/WinMerge/Galician.po b/Translations/WinMerge/Galician.po index 960402fc8..d2ccad00d 100644 --- a/Translations/WinMerge/Galician.po +++ b/Translations/WinMerge/Galician.po @@ -4759,6 +4759,10 @@ msgstr "Sen Resaltar" msgid "Batch" msgstr "Batch" +#: Merge.rc:23B300 +msgid "Lua" +msgstr "" + #: Merge.rc:55B03C15 #, c-format msgid "Portable Object" diff --git a/Translations/WinMerge/German.po b/Translations/WinMerge/German.po index 463b6b9c0..cc9a2c066 100644 --- a/Translations/WinMerge/German.po +++ b/Translations/WinMerge/German.po @@ -4830,6 +4830,10 @@ msgstr "Keine Hervorhebung" msgid "Batch" msgstr "Batch" +#: Merge.rc:23B300 +msgid "Lua" +msgstr "" + #: Merge.rc:55B03C15 #, c-format msgid "Portable Object" diff --git a/Translations/WinMerge/Greek.po b/Translations/WinMerge/Greek.po index 43712b1d4..2a2a5ac02 100644 --- a/Translations/WinMerge/Greek.po +++ b/Translations/WinMerge/Greek.po @@ -4739,6 +4739,10 @@ msgstr "Χωρίς Χρωματισμό Κώδικα" msgid "Batch" msgstr "" +#: Merge.rc:23B300 +msgid "Lua" +msgstr "" + #: Merge.rc:55B03C15 #, c-format msgid "Portable Object" diff --git a/Translations/WinMerge/Hungarian.po b/Translations/WinMerge/Hungarian.po index 11322d667..a80ada193 100644 --- a/Translations/WinMerge/Hungarian.po +++ b/Translations/WinMerge/Hungarian.po @@ -4666,6 +4666,10 @@ msgstr "" msgid "Batch" msgstr "" +#: Merge.rc:23B300 +msgid "Lua" +msgstr "" + #: Merge.rc:55B03C15 #, c-format msgid "Portable Object" diff --git a/Translations/WinMerge/Italian.po b/Translations/WinMerge/Italian.po index bab70bc4c..167fe5ebc 100644 --- a/Translations/WinMerge/Italian.po +++ b/Translations/WinMerge/Italian.po @@ -4733,6 +4733,10 @@ msgstr "" msgid "Batch" msgstr "Batch" +#: Merge.rc:23B300 +msgid "Lua" +msgstr "" + #: Merge.rc:55B03C15 #, c-format msgid "Portable Object" diff --git a/Translations/WinMerge/Japanese.po b/Translations/WinMerge/Japanese.po index d4883ddb4..11726bb25 100644 --- a/Translations/WinMerge/Japanese.po +++ b/Translations/WinMerge/Japanese.po @@ -4126,6 +4126,10 @@ msgstr "ハイライトなし" msgid "Batch" msgstr "Batch" +#: Merge.rc:23B300 +msgid "Lua" +msgstr "Lua" + #: Merge.rc:55B03C15 msgid "Portable Object" msgstr "Portable Object(.po)" diff --git a/Translations/WinMerge/Korean.po b/Translations/WinMerge/Korean.po index 27954e3cc..fedfd9bcf 100644 --- a/Translations/WinMerge/Korean.po +++ b/Translations/WinMerge/Korean.po @@ -4870,6 +4870,10 @@ msgstr "강조 표시 없음" msgid "Batch" msgstr "일괄 처리" +#: Merge.rc:23B300 +msgid "Lua" +msgstr "" + #: Merge.rc:55B03C15 #, c-format msgid "Portable Object" diff --git a/Translations/WinMerge/Lithuanian.po b/Translations/WinMerge/Lithuanian.po index 94a3dac22..cf29e1d80 100644 --- a/Translations/WinMerge/Lithuanian.po +++ b/Translations/WinMerge/Lithuanian.po @@ -4059,6 +4059,10 @@ msgstr "Nenaudoti paryškinimo" msgid "Batch" msgstr "Batch" +#: Merge.rc:23B300 +msgid "Lua" +msgstr "" + #: Merge.rc:55B03C15 msgid "Portable Object" msgstr "Portable Object" diff --git a/Translations/WinMerge/Norwegian.po b/Translations/WinMerge/Norwegian.po index d6d2b4dde..d521fbcb0 100644 --- a/Translations/WinMerge/Norwegian.po +++ b/Translations/WinMerge/Norwegian.po @@ -4766,6 +4766,10 @@ msgstr "Ingen markering" msgid "Batch" msgstr "Batch" +#: Merge.rc:23B300 +msgid "Lua" +msgstr "" + #: Merge.rc:55B03C15 #, c-format msgid "Portable Object" diff --git a/Translations/WinMerge/Persian.po b/Translations/WinMerge/Persian.po index 88a95a8db..bda8c69da 100644 --- a/Translations/WinMerge/Persian.po +++ b/Translations/WinMerge/Persian.po @@ -4822,6 +4822,10 @@ msgstr " برجسته نکردن " msgid "Batch" msgstr " دسته " +#: Merge.rc:23B300 +msgid "Lua" +msgstr "" + #: Merge.rc:55B03C15 #, c-format msgid "Portable Object" diff --git a/Translations/WinMerge/Polish.po b/Translations/WinMerge/Polish.po index c68032e89..74d889a8f 100644 --- a/Translations/WinMerge/Polish.po +++ b/Translations/WinMerge/Polish.po @@ -4767,6 +4767,10 @@ msgstr "Bez podświetlenia" msgid "Batch" msgstr "Batch" +#: Merge.rc:23B300 +msgid "Lua" +msgstr "" + #: Merge.rc:55B03C15 #, c-format msgid "Portable Object" diff --git a/Translations/WinMerge/Portuguese.po b/Translations/WinMerge/Portuguese.po index 400b07a79..ea4877960 100644 --- a/Translations/WinMerge/Portuguese.po +++ b/Translations/WinMerge/Portuguese.po @@ -4526,6 +4526,10 @@ msgstr "Sem Destaque" msgid "Batch" msgstr "Quantidade" +#: Merge.rc:23B300 +msgid "Lua" +msgstr "" + #: Merge.rc:55B03C15 #, c-format msgid "Portable Object" diff --git a/Translations/WinMerge/Romanian.po b/Translations/WinMerge/Romanian.po index 0746be456..e9da9f0a8 100644 --- a/Translations/WinMerge/Romanian.po +++ b/Translations/WinMerge/Romanian.po @@ -4740,6 +4740,10 @@ msgstr "" msgid "Batch" msgstr "Batch" +#: Merge.rc:23B300 +msgid "Lua" +msgstr "" + #: Merge.rc:55B03C15 #, c-format msgid "Portable Object" diff --git a/Translations/WinMerge/Russian.po b/Translations/WinMerge/Russian.po index 28093df53..0062b16e3 100644 --- a/Translations/WinMerge/Russian.po +++ b/Translations/WinMerge/Russian.po @@ -4767,6 +4767,10 @@ msgstr "Без выделения" msgid "Batch" msgstr "Пакет" +#: Merge.rc:23B300 +msgid "Lua" +msgstr "" + #: Merge.rc:55B03C15 #, c-format msgid "Portable Object" diff --git a/Translations/WinMerge/Serbian.po b/Translations/WinMerge/Serbian.po index 079659f03..83c489252 100644 --- a/Translations/WinMerge/Serbian.po +++ b/Translations/WinMerge/Serbian.po @@ -4734,6 +4734,10 @@ msgstr "Није означено" msgid "Batch" msgstr "Batch" +#: Merge.rc:23B300 +msgid "Lua" +msgstr "" + #: Merge.rc:55B03C15 #, c-format msgid "Portable Object" diff --git a/Translations/WinMerge/Sinhala.po b/Translations/WinMerge/Sinhala.po index 31dca18b8..38c613be4 100644 --- a/Translations/WinMerge/Sinhala.po +++ b/Translations/WinMerge/Sinhala.po @@ -4764,6 +4764,10 @@ msgstr "No Highlighting" msgid "Batch" msgstr "Batch" +#: Merge.rc:23B300 +msgid "Lua" +msgstr "" + #: Merge.rc:55B03C15 #, c-format msgid "Portable Object" diff --git a/Translations/WinMerge/Slovak.po b/Translations/WinMerge/Slovak.po index b6dd804b1..09adac746 100644 --- a/Translations/WinMerge/Slovak.po +++ b/Translations/WinMerge/Slovak.po @@ -4766,6 +4766,10 @@ msgstr "Bez zvýrazňovania" msgid "Batch" msgstr "Dávkový" +#: Merge.rc:23B300 +msgid "Lua" +msgstr "" + #: Merge.rc:55B03C15 #, c-format msgid "Portable Object" diff --git a/Translations/WinMerge/Slovenian.po b/Translations/WinMerge/Slovenian.po index 7f1772c36..b85e22f75 100644 --- a/Translations/WinMerge/Slovenian.po +++ b/Translations/WinMerge/Slovenian.po @@ -4770,6 +4770,10 @@ msgstr "Brez osvetljevanja" msgid "Batch" msgstr "Paket (Batch)" +#: Merge.rc:23B300 +msgid "Lua" +msgstr "" + #: Merge.rc:55B03C15 #, c-format msgid "Portable Object" diff --git a/Translations/WinMerge/Spanish.po b/Translations/WinMerge/Spanish.po index 18700d218..5286f8b76 100644 --- a/Translations/WinMerge/Spanish.po +++ b/Translations/WinMerge/Spanish.po @@ -4768,6 +4768,10 @@ msgstr "No Seleccionado" msgid "Batch" msgstr "Batch" +#: Merge.rc:23B300 +msgid "Lua" +msgstr "" + #: Merge.rc:55B03C15 #, c-format msgid "Portable Object" diff --git a/Translations/WinMerge/Swedish.po b/Translations/WinMerge/Swedish.po index 8af13603d..4c084835f 100644 --- a/Translations/WinMerge/Swedish.po +++ b/Translations/WinMerge/Swedish.po @@ -4900,6 +4900,10 @@ msgstr "Ingen Markering" msgid "Batch" msgstr "Sats" +#: Merge.rc:23B300 +msgid "Lua" +msgstr "" + #: Merge.rc:55B03C15 #, c-format msgid "Portable Object" diff --git a/Translations/WinMerge/Turkish.po b/Translations/WinMerge/Turkish.po index 4374c466f..8de9fbd5e 100644 --- a/Translations/WinMerge/Turkish.po +++ b/Translations/WinMerge/Turkish.po @@ -4760,6 +4760,10 @@ msgstr "Vurgulama Yok" msgid "Batch" msgstr "Batch" +#: Merge.rc:23B300 +msgid "Lua" +msgstr "" + #: Merge.rc:55B03C15 #, c-format msgid "Portable Object" diff --git a/Translations/WinMerge/Ukrainian.po b/Translations/WinMerge/Ukrainian.po index 3c4851604..927a82c64 100644 --- a/Translations/WinMerge/Ukrainian.po +++ b/Translations/WinMerge/Ukrainian.po @@ -4766,6 +4766,10 @@ msgstr "Не підсвічувати" msgid "Batch" msgstr "Бетч" +#: Merge.rc:23B300 +msgid "Lua" +msgstr "" + #: Merge.rc:55B03C15 #, c-format msgid "Portable Object"