OSDN Git Service

crystaledit: Separate JavaScript and Java parsers. osdn.net #41083
authorTakashi Sawanaka <sdottaka@users.sourceforge.net>
Wed, 30 Dec 2020 01:03:48 +0000 (10:03 +0900)
committerTakashi Sawanaka <sdottaka@users.sourceforge.net>
Wed, 30 Dec 2020 01:03:48 +0000 (10:03 +0900)
59 files changed:
Externals/crystaledit/Sample/SampleStatic.vs2017.vcxproj
Externals/crystaledit/Sample/SampleStatic.vs2017.vcxproj.filters
Externals/crystaledit/Sample/SampleStatic.vs2019.vcxproj
Externals/crystaledit/Sample/SampleStatic.vs2019.vcxproj.filters
Externals/crystaledit/editlib/parsers/cplusplus.cpp
Externals/crystaledit/editlib/parsers/crystallineparser.cpp
Externals/crystaledit/editlib/parsers/crystallineparser.h
Externals/crystaledit/editlib/parsers/csharp.cpp
Externals/crystaledit/editlib/parsers/html.cpp
Externals/crystaledit/editlib/parsers/java.cpp
Externals/crystaledit/editlib/parsers/javascript.cpp [new file with mode: 0644]
Externals/crystaledit/test/test.vs2017.vcxproj
Externals/crystaledit/test/test.vs2017.vcxproj.filters
Externals/crystaledit/test/test.vs2019.vcxproj
Externals/crystaledit/test/test.vs2019.vcxproj.filters
Src/Merge.rc
Src/Merge.vs2017.vcxproj
Src/Merge.vs2017.vcxproj.filters
Src/Merge.vs2019.vcxproj
Src/Merge.vs2019.vcxproj.filters
Src/resource.h
Translations/TranslationsStatus.html
Translations/TranslationsStatus.xml
Translations/WinMerge/Arabic.po
Translations/WinMerge/Basque.po
Translations/WinMerge/Brazilian.po
Translations/WinMerge/Bulgarian.po
Translations/WinMerge/Catalan.po
Translations/WinMerge/ChineseSimplified.po
Translations/WinMerge/ChineseTraditional.po
Translations/WinMerge/Croatian.po
Translations/WinMerge/Czech.po
Translations/WinMerge/Danish.po
Translations/WinMerge/Dutch.po
Translations/WinMerge/English.pot
Translations/WinMerge/Finnish.po
Translations/WinMerge/French.po
Translations/WinMerge/Galician.po
Translations/WinMerge/German.po
Translations/WinMerge/Greek.po
Translations/WinMerge/Hungarian.po
Translations/WinMerge/Italian.po
Translations/WinMerge/Japanese.po
Translations/WinMerge/Korean.po
Translations/WinMerge/Lithuanian.po
Translations/WinMerge/Norwegian.po
Translations/WinMerge/Persian.po
Translations/WinMerge/Polish.po
Translations/WinMerge/Portuguese.po
Translations/WinMerge/Romanian.po
Translations/WinMerge/Russian.po
Translations/WinMerge/Serbian.po
Translations/WinMerge/Sinhala.po
Translations/WinMerge/Slovak.po
Translations/WinMerge/Slovenian.po
Translations/WinMerge/Spanish.po
Translations/WinMerge/Swedish.po
Translations/WinMerge/Turkish.po
Translations/WinMerge/Ukrainian.po

index 2df995b..819a26d 100644 (file)
     <ClCompile Include="..\editlib\parsers\batch.cpp" />\r
     <ClCompile Include="..\editlib\ccrystaleditview.cpp" />\r
     <ClCompile Include="..\editlib\parsers\crystallineparser.cpp" />\r
+    <ClCompile Include="..\editlib\parsers\javascript.cpp" />\r
     <ClCompile Include="..\editlib\renderers\ccrystalrendererdirectwrite.cpp">\r
       <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
     </ClCompile>\r
index 1559d7e..6ef1de7 100644 (file)
     <ClCompile Include="..\editlib\dialogs\ceditreplacedlg.cpp">\r
       <Filter>editlib\dialogs</Filter>\r
     </ClCompile>\r
+    <ClCompile Include="..\editlib\utils\hqbitmap.cpp">\r
+      <Filter>Source Files</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="..\editlib\parsers\javascript.cpp">\r
+      <Filter>editlib\parsers</Filter>\r
+    </ClCompile>\r
   </ItemGroup>\r
   <ItemGroup>\r
     <ResourceCompile Include="Sample.rc">\r
     <ClInclude Include="..\editlib\dialogs\memcombo.h">\r
       <Filter>editlib\dialogs</Filter>\r
     </ClInclude>\r
+    <ClInclude Include="..\editlib\utils\hqbitmap.h">\r
+      <Filter>Header Files</Filter>\r
+    </ClInclude>\r
   </ItemGroup>\r
   <ItemGroup>\r
     <Image Include="res\mg_icons.bmp">\r
index f82f608..e361c2a 100644 (file)
     <ClCompile Include="..\editlib\parsers\batch.cpp" />
     <ClCompile Include="..\editlib\ccrystaleditview.cpp" />
     <ClCompile Include="..\editlib\parsers\crystallineparser.cpp" />
+    <ClCompile Include="..\editlib\parsers\javascript.cpp" />
     <ClCompile Include="..\editlib\renderers\ccrystalrendererdirectwrite.cpp">
       <PrecompiledHeader>NotUsing</PrecompiledHeader>
     </ClCompile>
index 719da67..f15a907 100644 (file)
     <ClCompile Include="..\editlib\dialogs\ceditreplacedlg.cpp">
       <Filter>editlib\dialogs</Filter>
     </ClCompile>
+    <ClCompile Include="..\editlib\utils\hqbitmap.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\editlib\parsers\javascript.cpp">
+      <Filter>editlib\parsers</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <ResourceCompile Include="Sample.rc">
     <ClInclude Include="..\editlib\dialogs\memcombo.h">
       <Filter>editlib\dialogs</Filter>
     </ClInclude>
+    <ClInclude Include="..\editlib\utils\hqbitmap.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <Image Include="res\mg_icons.bmp">
index f291f0c..bbfcc86 100644 (file)
@@ -242,6 +242,14 @@ IsUser1Keyword (const TCHAR *pszChars, int nLength)
 unsigned
 CrystalLineParser::ParseLineC (unsigned dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems)
 {
+  return ParseLineCJava (dwCookie, pszChars, nLength, pBuf, nActualItems, IsCppKeyword, IsUser1Keyword);
+}
+
+unsigned
+CrystalLineParser::ParseLineCJava (unsigned dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems,
+       bool (*IsKeyword)(const TCHAR *pszChars, int nLength),
+       bool (*IsUser1Keyword)(const TCHAR *pszChars, int nLength))
+{
   if (nLength == 0)
     return dwCookie & COOKIE_EXT_COMMENT;
 
@@ -412,11 +420,11 @@ out:
         {
           if (nIdentBegin >= 0)
             {
-              if (IsCppKeyword (pszChars + nIdentBegin, I - nIdentBegin))
+              if (IsKeyword (pszChars + nIdentBegin, I - nIdentBegin))
                 {
                   DEFINE_BLOCK (nIdentBegin, COLORINDEX_KEYWORD);
                 }
-              else if (IsUser1Keyword (pszChars + nIdentBegin, I - nIdentBegin))
+              else if (IsUser1Keyword && IsUser1Keyword (pszChars + nIdentBegin, I - nIdentBegin))
                 {
                   DEFINE_BLOCK (nIdentBegin, COLORINDEX_USER1);
                 }
@@ -457,7 +465,7 @@ out:
         {
           DEFINE_BLOCK (nIdentBegin, COLORINDEX_KEYWORD);
         }
-      else if (IsUser1Keyword (pszChars + nIdentBegin, I - nIdentBegin))
+      else if (IsUser1Keyword && IsUser1Keyword (pszChars + nIdentBegin, I - nIdentBegin))
         {
           DEFINE_BLOCK (nIdentBegin, COLORINDEX_USER1);
         }
index e03d41c..c212f16 100644 (file)
@@ -8,7 +8,7 @@ namespace CrystalLineParser
 // Tabsize is commented out since we have only GUI setting for it now.
 // Not removed because we may later want to have per-filetype settings again.
 // See ccrystaltextview.h for table declaration.
-TextDefinition m_SourceDefs[37] =
+TextDefinition m_SourceDefs[38] =
 {
        SRC_PLAIN, _T ("Plain"), _T ("txt,doc,diz"), &ParseLinePlain, SRCOPT_AUTOINDENT, /*4,*/ _T (""), _T (""), _T (""), (DWORD)-1,
        SRC_ASP, _T ("ASP"), _T ("asp,ascx"), &ParseLineAsp, SRCOPT_AUTOINDENT|SRCOPT_BRACEANSI, /*2,*/ _T (""), _T (""), _T ("'"), (DWORD)-1,
@@ -24,7 +24,8 @@ TextDefinition m_SourceDefs[37] =
        SRC_INI, _T ("INI"), _T ("ini,reg,vbp,isl"), &ParseLineIni, SRCOPT_AUTOINDENT|SRCOPT_BRACEGNU|SRCOPT_EOLNUNIX, /*2,*/ _T (""), _T (""), _T (";"), (DWORD)-1,
        SRC_INNOSETUP, _T ("InnoSetup"), _T ("iss"), &ParseLineInnoSetup, SRCOPT_AUTOINDENT|SRCOPT_BRACEANSI, /*2,*/ _T ("{"), _T ("}"), _T (";"), (DWORD)-1,
        SRC_INSTALLSHIELD, _T ("InstallShield"), _T ("rul"), &ParseLineIS, SRCOPT_AUTOINDENT|SRCOPT_BRACEANSI, /*2,*/ _T ("/*"), _T ("*/"), _T ("//"), (DWORD)-1,
-       SRC_JAVA, _T ("Java"), _T ("java,jav,js"), &ParseLineJava, SRCOPT_AUTOINDENT|SRCOPT_BRACEANSI, /*2,*/ _T ("/*"), _T ("*/"), _T ("//"), (DWORD)-1,
+       SRC_JAVA, _T ("Java"), _T ("java,jav"), &ParseLineJava, SRCOPT_AUTOINDENT|SRCOPT_BRACEANSI, /*2,*/ _T ("/*"), _T ("*/"), _T ("//"), (DWORD)-1,
+       SRC_JAVASCRIPT, _T ("JavaScript"), _T ("js,json"), &ParseLineJavaScript, SRCOPT_AUTOINDENT|SRCOPT_BRACEANSI, /*2,*/ _T ("/*"), _T ("*/"), _T ("//"), (DWORD)-1,
        SRC_LISP, _T ("AutoLISP"), _T ("lsp,dsl"), &ParseLineLisp, SRCOPT_AUTOINDENT|SRCOPT_BRACEANSI, /*2,*/ _T (";|"), _T ("|;"), _T (";"), (DWORD)-1,
        SRC_LUA, _T ("Lua"), _T ("lua"), &ParseLineLua, SRCOPT_AUTOINDENT|SRCOPT_BRACEANSI, /*2,*/ _T ("--[["), _T ("]]"), _T ("--"), (DWORD)-1,
        SRC_NSIS, _T ("NSIS"), _T ("nsi,nsh"), &ParseLineNsis, SRCOPT_AUTOINDENT|SRCOPT_BRACEANSI, /*2,*/ _T ("/*"), _T ("*/"), _T (";"), (DWORD)-1,
index 5838b5d..0bf5d38 100644 (file)
@@ -83,6 +83,7 @@ typedef enum
        SRC_INNOSETUP,\r
        SRC_INSTALLSHIELD,\r
        SRC_JAVA,\r
+       SRC_JAVASCRIPT,\r
        SRC_LISP,\r
        SRC_LUA,\r
        SRC_NSIS,\r
@@ -125,7 +126,7 @@ struct TextDefinition
        unsigned encoding;\r
 };\r
 \r
-extern TextDefinition m_SourceDefs[37];\r
+extern TextDefinition m_SourceDefs[38];\r
 \r
 bool IsXKeyword(const TCHAR *pszKey, size_t nKeyLen, const TCHAR *pszKeywordList[], size_t nKeywordListCount, int(*compare)(const TCHAR *, const TCHAR *, size_t));\r
 bool IsXNumber(const TCHAR* pszChars, int nLength);\r
@@ -140,6 +141,7 @@ unsigned ParseLineAsp(unsigned dwCookie, const TCHAR *pszChars, int nLength, TEX
 unsigned ParseLineBasic(unsigned dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems);\r
 unsigned ParseLineBatch(unsigned dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems);\r
 unsigned ParseLineC(unsigned dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems);\r
+unsigned ParseLineCJava(unsigned dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems, bool (*IsKeyword)(const TCHAR *pszChars, int nLength), bool (*IsUser1Keyword)(const TCHAR *pszChars, int nLength));\r
 unsigned ParseLineCSharp(unsigned dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems);\r
 unsigned ParseLineCss(unsigned dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems);\r
 unsigned ParseLineDcl(unsigned dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems);\r
@@ -151,6 +153,7 @@ unsigned ParseLineIni(unsigned dwCookie, const TCHAR *pszChars, int nLength, TEX
 unsigned ParseLineInnoSetup(unsigned dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems);\r
 unsigned ParseLineIS(unsigned dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems);\r
 unsigned ParseLineJava(unsigned dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems);\r
+unsigned ParseLineJavaScript(unsigned dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems);\r
 unsigned ParseLineLisp(unsigned dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems);\r
 unsigned ParseLineLua(unsigned dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems);\r
 unsigned ParseLineNsis(unsigned dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems);\r
index 5eeb493..01bac56 100644 (file)
@@ -125,244 +125,5 @@ IsCppKeyword (const TCHAR *pszChars, int nLength)
 unsigned
 CrystalLineParser::ParseLineCSharp (unsigned dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems)
 {
-  if (nLength == 0)
-    return dwCookie & COOKIE_EXT_COMMENT;
-
-  bool bFirstChar = (dwCookie & ~COOKIE_EXT_COMMENT) == 0;
-  const TCHAR *pszCommentBegin = nullptr;
-  const TCHAR *pszCommentEnd = nullptr;
-  bool bRedefineBlock = true;
-  bool bDecIndex = false;
-  int nIdentBegin = -1;
-  int nPrevI = -1;
-  int I=0;
-  for (I = 0;; nPrevI = I, I = static_cast<int>(::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))
-            {
-              DEFINE_BLOCK (nPos, COLORINDEX_STRING);
-            }
-          else if (dwCookie & COOKIE_PREPROCESSOR)
-            {
-              DEFINE_BLOCK (nPos, COLORINDEX_PREPROCESSOR);
-            }
-          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] != '\\' || *::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] != '\\' || *::CharPrev(pszChars, pszChars + nPrevI) == '\\')))
-            {
-              dwCookie &= ~COOKIE_CHAR;
-              bRedefineBlock = true;
-            }
-          continue;
-        }
-
-      //  Extended comment /*....*/
-      if (dwCookie & COOKIE_EXT_COMMENT)
-        {
-          if ((pszCommentBegin < pszChars + I) && (I > 0 && pszChars[I] == '/' && pszChars[nPrevI] == '*'))
-            {
-              dwCookie &= ~COOKIE_EXT_COMMENT;
-              bRedefineBlock = true;
-              pszCommentEnd = pszChars + I + 1;
-            }
-          continue;
-        }
-
-      if ((pszCommentEnd < pszChars + I) && (I > 0 && pszChars[I] == '/' && pszChars[nPrevI] == '/'))
-        {
-          DEFINE_BLOCK (nPrevI, COLORINDEX_COMMENT);
-          dwCookie |= COOKIE_COMMENT;
-          break;
-        }
-
-      //  Preprocessor directive #....
-      if (dwCookie & COOKIE_PREPROCESSOR)
-        {
-          if ((pszCommentEnd < pszChars + I) && (I > 0 && pszChars[I] == '*' && pszChars[nPrevI] == '/'))
-            {
-              DEFINE_BLOCK (nPrevI, COLORINDEX_COMMENT);
-              dwCookie |= COOKIE_EXT_COMMENT;
-            }
-          continue;
-        }
-
-      //  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;
-            }
-        }
-      if ((pszCommentEnd < pszChars + I) && (I > 0 && pszChars[I] == '*' && pszChars[nPrevI] == '/'))
-        {
-          DEFINE_BLOCK (nPrevI, COLORINDEX_COMMENT);
-          dwCookie |= COOKIE_EXT_COMMENT;
-          pszCommentBegin = pszChars + I + 1;
-          continue;
-        }
-
-      if (bFirstChar)
-        {
-          if (pszChars[I] == '#')
-            {
-              DEFINE_BLOCK (I, COLORINDEX_PREPROCESSOR);
-              dwCookie |= COOKIE_PREPROCESSOR;
-              continue;
-            }
-          if (!xisspace (pszChars[I]))
-            bFirstChar = false;
-        }
-
-      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 (IsCppKeyword (pszChars + nIdentBegin, I - nIdentBegin))
-                {
-                  DEFINE_BLOCK (nIdentBegin, COLORINDEX_KEYWORD);
-                }
-              else if (IsXNumber (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 (IsCppKeyword (pszChars + nIdentBegin, I - nIdentBegin))
-        {
-          DEFINE_BLOCK (nIdentBegin, COLORINDEX_KEYWORD);
-        }
-      else if (IsXNumber (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);
-            }
-        }
-    }
-
-  if (pszChars[nLength - 1] != '\\' || IsMBSTrail(pszChars, nLength - 1))
-    dwCookie &= COOKIE_EXT_COMMENT;
-  return dwCookie;
+  return ParseLineCJava (dwCookie, pszChars, nLength, pBuf, nActualItems, IsCppKeyword, nullptr);
 }
index 67f12b0..150b39b 100644 (file)
@@ -92,7 +92,7 @@ out:
             {
               const TCHAR *pszEnd = _tcsstr(pszChars + I, _T("</script>"));
               int nextI = pszEnd ? static_cast<int>(pszEnd - pszChars) : nLength;
-              dwCookie = ParseLineJava(dwCookie & ~COOKIE_BLOCK_SCRIPT, pszChars + I, nextI - I, pBuf, nActualItems);
+              dwCookie = ParseLineJavaScript(dwCookie & ~COOKIE_BLOCK_SCRIPT, pszChars + I, nextI - I, pBuf, nActualItems);
               if (!pszEnd)
                 dwCookie |= COOKIE_BLOCK_SCRIPT;
               else
@@ -127,7 +127,7 @@ out:
               {
               case SRC_BASIC: pParseLineFunc = ParseLineBasic; break;
               case SRC_PHP: pParseLineFunc = ParseLinePhpLanguage; break;
-              default: pParseLineFunc = ParseLineJava; break;
+              default: pParseLineFunc = ParseLineJavaScript; break;
               }
               dwCookie = pParseLineFunc(dwCookie & ~COOKIE_EXT_USER1, pszChars + I, nextI - I, pBuf, nActualItems);
               if (!pszEnd)
index fadf561..83e6708 100644 (file)
@@ -87,244 +87,5 @@ IsJavaKeyword (const TCHAR *pszChars, int nLength)
 unsigned
 CrystalLineParser::ParseLineJava (unsigned dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems)
 {
-  if (nLength == 0)
-    return dwCookie & COOKIE_EXT_COMMENT;
-
-  bool bFirstChar = (dwCookie & ~COOKIE_EXT_COMMENT) == 0;
-  const TCHAR *pszCommentBegin = nullptr;
-  const TCHAR *pszCommentEnd = nullptr;
-  bool bRedefineBlock = true;
-  bool bDecIndex = false;
-  int nIdentBegin = -1;
-  int nPrevI = -1;
-  int I=0;
-  for (I = 0;; nPrevI = I, I = static_cast<int>(::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))
-            {
-              DEFINE_BLOCK (nPos, COLORINDEX_STRING);
-            }
-          else if (dwCookie & COOKIE_PREPROCESSOR)
-            {
-              DEFINE_BLOCK (nPos, COLORINDEX_PREPROCESSOR);
-            }
-          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] != '\\' || *::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] != '\\' || *::CharPrev(pszChars, pszChars + nPrevI) == '\\')))
-            {
-              dwCookie &= ~COOKIE_CHAR;
-              bRedefineBlock = true;
-            }
-          continue;
-        }
-
-      //  Extended comment /*....*/
-      if (dwCookie & COOKIE_EXT_COMMENT)
-        {
-          if ((pszCommentBegin < pszChars + I) && (I > 0 && pszChars[I] == '/' && pszChars[nPrevI] == '*'))
-            {
-              dwCookie &= ~COOKIE_EXT_COMMENT;
-              bRedefineBlock = true;
-              pszCommentEnd = pszChars + I + 1;
-            }
-          continue;
-        }
-
-      if ((pszCommentEnd < pszChars + I) && (I > 0 && pszChars[I] == '/' && pszChars[nPrevI] == '/'))
-        {
-          DEFINE_BLOCK (nPrevI, COLORINDEX_COMMENT);
-          dwCookie |= COOKIE_COMMENT;
-          break;
-        }
-
-      //  Preprocessor directive #....
-      if (dwCookie & COOKIE_PREPROCESSOR)
-        {
-          if ((pszCommentEnd < pszChars + I) && (I > 0 && pszChars[I] == '*' && pszChars[nPrevI] == '/'))
-            {
-              DEFINE_BLOCK (nPrevI, COLORINDEX_COMMENT);
-              dwCookie |= COOKIE_EXT_COMMENT;
-            }
-          continue;
-        }
-
-      //  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;
-            }
-        }
-      if ((pszCommentEnd < pszChars + I) && (I > 0 && pszChars[I] == '*' && pszChars[nPrevI] == '/'))
-        {
-          DEFINE_BLOCK (nPrevI, COLORINDEX_COMMENT);
-          dwCookie |= COOKIE_EXT_COMMENT;
-          pszCommentBegin = pszChars + I + 1;
-          continue;
-        }
-
-      if (bFirstChar)
-        {
-          if (pszChars[I] == '#')
-            {
-              DEFINE_BLOCK (I, COLORINDEX_PREPROCESSOR);
-              dwCookie |= COOKIE_PREPROCESSOR;
-              continue;
-            }
-          if (!xisspace (pszChars[I]))
-            bFirstChar = false;
-        }
-
-      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 (IsJavaKeyword (pszChars + nIdentBegin, I - nIdentBegin))
-                {
-                  DEFINE_BLOCK (nIdentBegin, COLORINDEX_KEYWORD);
-                }
-              else if (IsXNumber (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 (IsJavaKeyword (pszChars + nIdentBegin, I - nIdentBegin))
-        {
-          DEFINE_BLOCK (nIdentBegin, COLORINDEX_KEYWORD);
-        }
-      else if (IsXNumber (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);
-            }
-        }
-    }
-
-  if (pszChars[nLength - 1] != '\\' || IsMBSTrail(pszChars, nLength - 1))
-    dwCookie &= COOKIE_EXT_COMMENT;
-  return dwCookie;
+  return ParseLineCJava (dwCookie, pszChars, nLength, pBuf, nActualItems, IsJavaKeyword, nullptr);
 }
diff --git a/Externals/crystaledit/editlib/parsers/javascript.cpp b/Externals/crystaledit/editlib/parsers/javascript.cpp
new file mode 100644 (file)
index 0000000..c235270
--- /dev/null
@@ -0,0 +1,93 @@
+///////////////////////////////////////////////////////////////////////////
+//  File:    javascript.cpp
+//  Version: 1.1.0.4
+//  Updated: 19-Jul-1998
+//
+//  Copyright:  Ferdinand Prantl, portions by Stcherbatchenko Andrei
+//  E-mail:     prantl@ff.cuni.cz
+//
+//  JavaScript 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 "../utils/string_util.h"
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#endif
+
+//  JavaScript keywords
+static const TCHAR * s_apszJavaScriptKeywordList[] =
+  {
+    _T ("async"),
+    _T ("await"),
+    _T ("break"),
+    _T ("case"),
+    _T ("catch"),
+    _T ("class"),
+    _T ("const"),
+    _T ("constructor"),
+    _T ("continue"),
+    _T ("debugger"),
+    _T ("default"),
+    _T ("delete"),
+    _T ("do"),
+    _T ("each"),
+    _T ("enum"),
+    _T ("else"),
+    _T ("export"),
+    _T ("extends"),
+    _T ("false"),
+    _T ("finally"),
+    _T ("for"),
+    _T ("function"),
+    _T ("if"),
+    _T ("implements"),
+    _T ("import"),
+    _T ("in"),
+    _T ("instanceof"),
+    _T ("interface"),
+    _T ("let"),
+    _T ("new"),
+    _T ("null"),
+    _T ("of"),
+    _T ("package"),
+    _T ("protected"),
+    _T ("public"),
+    _T ("resolve"),
+    _T ("return"),
+    _T ("static"),
+    _T ("super"),
+    _T ("switch"),
+    _T ("target"),
+    _T ("this"),
+    _T ("throw"),
+    _T ("true"),
+    _T ("try"),
+    _T ("typeof"),
+    _T ("undefined"),
+    _T ("var"),
+    _T ("void"),
+    _T ("while"),
+    _T ("with"),
+    _T ("yield")
+  };
+
+static bool
+IsJavaScriptKeyword (const TCHAR *pszChars, int nLength)
+{
+  return ISXKEYWORD (s_apszJavaScriptKeywordList, pszChars, nLength);
+}
+
+unsigned
+CrystalLineParser::ParseLineJavaScript (unsigned dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems)
+{
+  return ParseLineCJava (dwCookie, pszChars, nLength, pBuf, nActualItems, IsJavaScriptKeyword, nullptr);
+}
index 87b74ca..7022274 100644 (file)
     <ClCompile Include="..\editlib\parsers\is.cpp" />\r
     <ClCompile Include="..\editlib\parsers\isx.cpp" />\r
     <ClCompile Include="..\editlib\parsers\java.cpp" />\r
+    <ClCompile Include="..\editlib\parsers\javascript.cpp" />\r
     <ClCompile Include="..\editlib\parsers\lisp.cpp" />\r
     <ClCompile Include="..\editlib\parsers\lua.cpp" />\r
     <ClCompile Include="..\editlib\parsers\nsis.cpp" />\r
index 7be3eaa..1f3c31e 100644 (file)
     <ClCompile Include="htmlTests.cpp">\r
       <Filter>Source Files</Filter>\r
     </ClCompile>\r
+    <ClCompile Include="..\editlib\parsers\javascript.cpp">\r
+      <Filter>Source Files\editlib\parsers</Filter>\r
+    </ClCompile>\r
   </ItemGroup>\r
 </Project>
\ No newline at end of file
index 5890f98..5247621 100644 (file)
     <ClCompile Include="..\editlib\parsers\is.cpp" />
     <ClCompile Include="..\editlib\parsers\isx.cpp" />
     <ClCompile Include="..\editlib\parsers\java.cpp" />
+    <ClCompile Include="..\editlib\parsers\javascript.cpp" />
     <ClCompile Include="..\editlib\parsers\lisp.cpp" />
     <ClCompile Include="..\editlib\parsers\lua.cpp" />
     <ClCompile Include="..\editlib\parsers\nsis.cpp" />
index 0bc8c7d..b94d815 100644 (file)
     <ClCompile Include="htmlTests.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
+    <ClCompile Include="..\editlib\parsers\javascript.cpp">
+      <Filter>Source Files\editlib\parsers</Filter>
+    </ClCompile>
   </ItemGroup>
 </Project>
\ No newline at end of file
index f1543b0..fc9fbe6 100644 (file)
@@ -3366,6 +3366,7 @@ BEGIN
     IDS_COLORSCHEME_INNOSETUP "InnoSetup"\r
     IDS_COLORSCHEME_INSTALLSHIELD "InstallShield"\r
     IDS_COLORSCHEME_JAVA    "Java"\r
+    IDS_COLORSCHEME_JAVASCRIPT "JavaScript"\r
     IDS_COLORSCHEME_LISP    "AutoLISP"\r
     IDS_COLORSCHEME_LUA     "Lua"\r
 END\r
index e2bd050..aee9564 100644 (file)
     <ClCompile Include="..\Externals\crystaledit\editlib\parsers\batch.cpp" />\r
     <ClCompile Include="..\Externals\crystaledit\editlib\ccrystaleditview.cpp" />\r
     <ClCompile Include="..\Externals\crystaledit\editlib\parsers\crystallineparser.cpp" />\r
+    <ClCompile Include="..\Externals\crystaledit\editlib\parsers\javascript.cpp" />\r
     <ClCompile Include="..\Externals\crystaledit\editlib\renderers\ccrystalrendererdirectwrite.cpp">\r
       <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
     </ClCompile>\r
index 70c7694..cdf9c27 100644 (file)
     <ClCompile Include="..\Externals\crystaledit\editlib\utils\hqbitmap.cpp">\r
       <Filter>EditLib\Utils</Filter>\r
     </ClCompile>\r
+    <ClCompile Include="..\Externals\crystaledit\editlib\parsers\javascript.cpp">\r
+      <Filter>EditLib\Parsers\Source Files</Filter>\r
+    </ClCompile>\r
   </ItemGroup>\r
   <ItemGroup>\r
     <ClInclude Include="charsets.h">\r
index 2c29a23..8245bac 100644 (file)
     <ClCompile Include="..\Externals\crystaledit\editlib\parsers\batch.cpp" />\r
     <ClCompile Include="..\Externals\crystaledit\editlib\ccrystaleditview.cpp" />\r
     <ClCompile Include="..\Externals\crystaledit\editlib\parsers\crystallineparser.cpp" />\r
+    <ClCompile Include="..\Externals\crystaledit\editlib\parsers\javascript.cpp" />\r
     <ClCompile Include="..\Externals\crystaledit\editlib\renderers\ccrystalrendererdirectwrite.cpp">\r
       <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
     </ClCompile>\r
index 70c7694..cdf9c27 100644 (file)
     <ClCompile Include="..\Externals\crystaledit\editlib\utils\hqbitmap.cpp">\r
       <Filter>EditLib\Utils</Filter>\r
     </ClCompile>\r
+    <ClCompile Include="..\Externals\crystaledit\editlib\parsers\javascript.cpp">\r
+      <Filter>EditLib\Parsers\Source Files</Filter>\r
+    </ClCompile>\r
   </ItemGroup>\r
   <ItemGroup>\r
     <ClInclude Include="charsets.h">\r
index c1b2e69..472f276 100644 (file)
 #define IDS_COLORSCHEME_INNOSETUP       33164\r
 #define IDS_COLORSCHEME_INSTALLSHIELD   33165\r
 #define IDS_COLORSCHEME_JAVA            33166\r
-#define IDS_COLORSCHEME_LISP            33167\r
-#define IDS_COLORSCHEME_LUA             33168\r
-#define IDS_COLORSCHEME_NSIS            33169\r
-#define IDS_COLORSCHEME_PASCAL          33170\r
-#define IDS_COLORSCHEME_PERL            33171\r
-#define IDS_COLORSCHEME_PHP             33172\r
-#define IDS_COLORSCHEME_PO              33173\r
-#define IDS_COLORSCHEME_POWERSHELL      33174\r
-#define IDS_COLORSCHEME_PYTHON          33175\r
-#define IDS_COLORSCHEME_REXX            33176\r
-#define IDS_COLORSCHEME_RSRC            33177\r
-#define IDS_COLORSCHEME_RUBY            33178\r
-#define IDS_COLORSCHEME_RUST            33179\r
-#define IDS_COLORSCHEME_SGML            33180\r
-#define IDS_COLORSCHEME_SH              33181\r
-#define IDS_COLORSCHEME_SIOD            33182\r
-#define IDS_COLORSCHEME_SQL             33183\r
-#define IDS_COLORSCHEME_TCL             33184\r
-#define IDS_COLORSCHEME_TEX             33185\r
-#define IDS_COLORSCHEME_VERILOG         33186\r
-#define IDS_COLORSCHEME_VHDL            33187\r
-#define IDS_COLORSCHEME_XML             33188\r
-#define ID_COLORSCHEME_LAST             33188 // = IDS_COLORSCHEME_XML\r
+#define IDS_COLORSCHEME_JAVASCRIPT      33167\r
+#define IDS_COLORSCHEME_LISP            33168\r
+#define IDS_COLORSCHEME_LUA             33169\r
+#define IDS_COLORSCHEME_NSIS            33170\r
+#define IDS_COLORSCHEME_PASCAL          33171\r
+#define IDS_COLORSCHEME_PERL            33172\r
+#define IDS_COLORSCHEME_PHP             33173\r
+#define IDS_COLORSCHEME_PO              33174\r
+#define IDS_COLORSCHEME_POWERSHELL      33175\r
+#define IDS_COLORSCHEME_PYTHON          33176\r
+#define IDS_COLORSCHEME_REXX            33177\r
+#define IDS_COLORSCHEME_RSRC            33178\r
+#define IDS_COLORSCHEME_RUBY            33179\r
+#define IDS_COLORSCHEME_RUST            33180\r
+#define IDS_COLORSCHEME_SGML            33181\r
+#define IDS_COLORSCHEME_SH              33182\r
+#define IDS_COLORSCHEME_SIOD            33183\r
+#define IDS_COLORSCHEME_SQL             33184\r
+#define IDS_COLORSCHEME_TCL             33185\r
+#define IDS_COLORSCHEME_TEX             33186\r
+#define IDS_COLORSCHEME_VERILOG         33187\r
+#define IDS_COLORSCHEME_VHDL            33188\r
+#define IDS_COLORSCHEME_XML             33189\r
+#define ID_COLORSCHEME_LAST             33189 // = IDS_COLORSCHEME_XML\r
 #define ID_TOOLBAR_NONE                 33194\r
 #define ID_TOOLBAR_SMALL                33195\r
 #define ID_TOOLBAR_BIG                  33196\r
index c790bfc..a4a860b 100644 (file)
@@ -37,7 +37,7 @@
 </head>
 <body>
 <h1>Translations Status</h1>
-<p>Status from <strong>2020-12-28</strong>:</p>
+<p>Status from <strong>2020-12-30</strong>:</p>
 <h2>WinMerge</h2>
 <table class="status">
   <tr>
   </tr>
   <tr>
     <td class="left">Arabic</td>
-    <td class="right">998</td>
+    <td class="right">999</td>
     <td class="right translated">921</td>
     <td class="right fuzzy">0</td>
-    <td class="right untranslated">77</td>
+    <td class="right untranslated">78</td>
     <td class="center">2019-12-30</td>
   </tr>
   <tr>
     <td class="left">Basque</td>
-    <td class="right">998</td>
+    <td class="right">999</td>
     <td class="right translated">654</td>
     <td class="right fuzzy">0</td>
-    <td class="right untranslated">344</td>
+    <td class="right untranslated">345</td>
     <td class="center">2013-02-03</td>
   </tr>
   <tr>
     <td class="left">Brazilian</td>
-    <td class="right">998</td>
+    <td class="right">999</td>
     <td class="right translated">985</td>
     <td class="right fuzzy">0</td>
-    <td class="right untranslated">13</td>
+    <td class="right untranslated">14</td>
     <td class="center">2020-07-26</td>
   </tr>
   <tr>
     <td class="left">Bulgarian</td>
-    <td class="right">998</td>
+    <td class="right">999</td>
     <td class="right translated">889</td>
     <td class="right fuzzy">0</td>
-    <td class="right untranslated">109</td>
+    <td class="right untranslated">110</td>
     <td class="center">2019-10-24</td>
   </tr>
   <tr>
     <td class="left">Catalan</td>
-    <td class="right">998</td>
+    <td class="right">999</td>
     <td class="right translated">578</td>
     <td class="right fuzzy">0</td>
-    <td class="right untranslated">420</td>
+    <td class="right untranslated">421</td>
     <td class="center"></td>
   </tr>
   <tr>
     <td class="left">ChineseSimplified</td>
-    <td class="right">998</td>
+    <td class="right">999</td>
     <td class="right translated">991</td>
     <td class="right fuzzy">0</td>
-    <td class="right untranslated">7</td>
+    <td class="right untranslated">8</td>
     <td class="center"></td>
   </tr>
   <tr>
     <td class="left">ChineseTraditional</td>
-    <td class="right">998</td>
+    <td class="right">999</td>
     <td class="right translated">873</td>
     <td class="right fuzzy">0</td>
-    <td class="right untranslated">125</td>
+    <td class="right untranslated">126</td>
     <td class="center">2010-02-19</td>
   </tr>
   <tr>
     <td class="left">Croatian</td>
-    <td class="right">998</td>
+    <td class="right">999</td>
     <td class="right translated">645</td>
     <td class="right fuzzy">1</td>
-    <td class="right untranslated">352</td>
+    <td class="right untranslated">353</td>
     <td class="center">2009-02-13</td>
   </tr>
   <tr>
     <td class="left">Czech</td>
-    <td class="right">998</td>
+    <td class="right">999</td>
     <td class="right translated">616</td>
     <td class="right fuzzy">0</td>
-    <td class="right untranslated">382</td>
+    <td class="right untranslated">383</td>
     <td class="center"></td>
   </tr>
   <tr>
     <td class="left">Danish</td>
-    <td class="right">998</td>
+    <td class="right">999</td>
     <td class="right translated">654</td>
     <td class="right fuzzy">0</td>
-    <td class="right untranslated">344</td>
+    <td class="right untranslated">345</td>
     <td class="center">2013-01-13</td>
   </tr>
   <tr>
     <td class="left">Dutch</td>
-    <td class="right">998</td>
+    <td class="right">999</td>
     <td class="right translated">992</td>
     <td class="right fuzzy">0</td>
-    <td class="right untranslated">6</td>
+    <td class="right untranslated">7</td>
     <td class="center">2018-09-06</td>
   </tr>
   <tr>
     <td class="left">English</td>
-    <td class="right">998</td>
-    <td class="right translated">998</td>
+    <td class="right">999</td>
+    <td class="right translated">999</td>
     <td class="right fuzzy">0</td>
     <td class="right untranslated">0</td>
-    <td class="center">2020-12-28</td>
+    <td class="center">2020-12-30</td>
   </tr>
   <tr>
     <td class="left">Finnish</td>
-    <td class="right">998</td>
+    <td class="right">999</td>
     <td class="right translated">918</td>
     <td class="right fuzzy">0</td>
-    <td class="right untranslated">80</td>
+    <td class="right untranslated">81</td>
     <td class="center"></td>
   </tr>
   <tr>
     <td class="left">French</td>
-    <td class="right">998</td>
+    <td class="right">999</td>
     <td class="right translated">911</td>
     <td class="right fuzzy">2</td>
-    <td class="right untranslated">85</td>
+    <td class="right untranslated">86</td>
     <td class="center">2019-06-02</td>
   </tr>
   <tr>
     <td class="left">Galician</td>
-    <td class="right">998</td>
+    <td class="right">999</td>
     <td class="right translated">996</td>
     <td class="right fuzzy">0</td>
-    <td class="right untranslated">2</td>
+    <td class="right untranslated">3</td>
     <td class="center">2020-11-28</td>
   </tr>
   <tr>
     <td class="left">German</td>
-    <td class="right">998</td>
+    <td class="right">999</td>
     <td class="right translated">996</td>
     <td class="right fuzzy">0</td>
-    <td class="right untranslated">2</td>
+    <td class="right untranslated">3</td>
     <td class="center">2020-11-25</td>
   </tr>
   <tr>
     <td class="left">Greek</td>
-    <td class="right">998</td>
+    <td class="right">999</td>
     <td class="right translated">617</td>
     <td class="right fuzzy">0</td>
-    <td class="right untranslated">381</td>
+    <td class="right untranslated">382</td>
     <td class="center"></td>
   </tr>
   <tr>
     <td class="left">Hungarian</td>
-    <td class="right">998</td>
+    <td class="right">999</td>
     <td class="right translated">550</td>
     <td class="right fuzzy">0</td>
-    <td class="right untranslated">448</td>
+    <td class="right untranslated">449</td>
     <td class="center">2011-01-24</td>
   </tr>
   <tr>
     <td class="left">Italian</td>
-    <td class="right">998</td>
+    <td class="right">999</td>
     <td class="right translated">921</td>
     <td class="right fuzzy">0</td>
-    <td class="right untranslated">77</td>
+    <td class="right untranslated">78</td>
     <td class="center">2019-07-12</td>
   </tr>
   <tr>
     <td class="left">Japanese</td>
-    <td class="right">998</td>
+    <td class="right">999</td>
     <td class="right translated">998</td>
     <td class="right fuzzy">0</td>
-    <td class="right untranslated">0</td>
+    <td class="right untranslated">1</td>
     <td class="center">2020-12-07</td>
   </tr>
   <tr>
     <td class="left">Korean</td>
-    <td class="right">998</td>
+    <td class="right">999</td>
     <td class="right translated">877</td>
     <td class="right fuzzy">0</td>
-    <td class="right untranslated">121</td>
+    <td class="right untranslated">122</td>
     <td class="center">2018-02-05</td>
   </tr>
   <tr>
     <td class="left">Lithuanian</td>
-    <td class="right">998</td>
-    <td class="right translated">996</td>
+    <td class="right">999</td>
+    <td class="right translated">998</td>
     <td class="right fuzzy">0</td>
-    <td class="right untranslated">2</td>
-    <td class="center">2020-11-30</td>
+    <td class="right untranslated">1</td>
+    <td class="center">2020-12-29</td>
   </tr>
   <tr>
     <td class="left">Norwegian</td>
-    <td class="right">998</td>
+    <td class="right">999</td>
     <td class="right translated">646</td>
     <td class="right fuzzy">0</td>
-    <td class="right untranslated">352</td>
+    <td class="right untranslated">353</td>
     <td class="center"></td>
   </tr>
   <tr>
     <td class="left">Persian</td>
-    <td class="right">998</td>
+    <td class="right">999</td>
     <td class="right translated">657</td>
     <td class="right fuzzy">0</td>
-    <td class="right untranslated">341</td>
+    <td class="right untranslated">342</td>
     <td class="center">2013-08-15</td>
   </tr>
   <tr>
     <td class="left">Polish</td>
-    <td class="right">998</td>
+    <td class="right">999</td>
     <td class="right translated">960</td>
     <td class="right fuzzy">0</td>
-    <td class="right untranslated">38</td>
+    <td class="right untranslated">39</td>
     <td class="center"></td>
   </tr>
   <tr>
     <td class="left">Portuguese</td>
-    <td class="right">998</td>
+    <td class="right">999</td>
     <td class="right translated">996</td>
     <td class="right fuzzy">0</td>
-    <td class="right untranslated">2</td>
+    <td class="right untranslated">3</td>
     <td class="center">2020-11-29</td>
   </tr>
   <tr>
     <td class="left">Romanian</td>
-    <td class="right">998</td>
+    <td class="right">999</td>
     <td class="right translated">575</td>
     <td class="right fuzzy">44</td>
-    <td class="right untranslated">379</td>
+    <td class="right untranslated">380</td>
     <td class="center"></td>
   </tr>
   <tr>
     <td class="left">Russian</td>
-    <td class="right">998</td>
+    <td class="right">999</td>
     <td class="right translated">992</td>
     <td class="right fuzzy">0</td>
-    <td class="right untranslated">6</td>
+    <td class="right untranslated">7</td>
     <td class="center">2020-11-29</td>
   </tr>
   <tr>
     <td class="left">Serbian</td>
-    <td class="right">998</td>
+    <td class="right">999</td>
     <td class="right translated">645</td>
     <td class="right fuzzy">0</td>
-    <td class="right untranslated">353</td>
+    <td class="right untranslated">354</td>
     <td class="center"></td>
   </tr>
   <tr>
     <td class="left">Sinhala</td>
-    <td class="right">998</td>
+    <td class="right">999</td>
     <td class="right translated">574</td>
     <td class="right fuzzy">64</td>
-    <td class="right untranslated">360</td>
+    <td class="right untranslated">361</td>
     <td class="center">2010-12-12</td>
   </tr>
   <tr>
     <td class="left">Slovak</td>
-    <td class="right">998</td>
+    <td class="right">999</td>
     <td class="right translated">991</td>
     <td class="right fuzzy">0</td>
-    <td class="right untranslated">7</td>
+    <td class="right untranslated">8</td>
     <td class="center">2020-11-02</td>
   </tr>
   <tr>
     <td class="left">Slovenian</td>
-    <td class="right">998</td>
-    <td class="right translated">996</td>
+    <td class="right">999</td>
+    <td class="right translated">998</td>
     <td class="right fuzzy">0</td>
-    <td class="right untranslated">2</td>
-    <td class="center">2020-11-08</td>
+    <td class="right untranslated">1</td>
+    <td class="center">2020-12-29</td>
   </tr>
   <tr>
     <td class="left">Spanish</td>
-    <td class="right">998</td>
+    <td class="right">999</td>
     <td class="right translated">886</td>
     <td class="right fuzzy">0</td>
-    <td class="right untranslated">112</td>
+    <td class="right untranslated">113</td>
     <td class="center">2020-04-03</td>
   </tr>
   <tr>
     <td class="left">Swedish</td>
-    <td class="right">998</td>
+    <td class="right">999</td>
     <td class="right translated">921</td>
     <td class="right fuzzy">0</td>
-    <td class="right untranslated">77</td>
+    <td class="right untranslated">78</td>
     <td class="center">2019-10-07</td>
   </tr>
   <tr>
     <td class="left">Turkish</td>
-    <td class="right">998</td>
+    <td class="right">999</td>
     <td class="right translated">987</td>
     <td class="right fuzzy">0</td>
-    <td class="right untranslated">11</td>
+    <td class="right untranslated">12</td>
     <td class="center">2020-09-08</td>
   </tr>
   <tr>
     <td class="left">Ukrainian</td>
-    <td class="right">998</td>
+    <td class="right">999</td>
     <td class="right translated">651</td>
     <td class="right fuzzy">0</td>
-    <td class="right untranslated">347</td>
+    <td class="right untranslated">348</td>
     <td class="center">2009-06-13</td>
   </tr>
 </table>
     <td class="right translated">12</td>
     <td class="right fuzzy">0</td>
     <td class="right untranslated">0</td>
-    <td class="center">2019-02-01</td>
+    <td class="center">2020-12-29</td>
   </tr>
   <tr>
     <td class="left">Spanish</td>
   <tr>
     <td>Slovenian</td>
     <td><a href="mailto:iztok.osredkar at institut-oko.si">Iztok Osredkar</a><br><a href="mailto:filip.komar at gmail.com">Filip Komar</a><br><a href="mailto:jrudec@gmail.com">Jadran Rudec</a><br></td>
-    <td><a href="mailto:filip.komar at gmail.com">Filip Komar</a><br></td>
+    <td><a href="mailto:filip.komar at gmail.com">Filip Komar</a><br><a href="mailto:jrudec at gmail.com">Jadran Rudec</a><br></td>
     <td></td>
     <td></td>
   </tr>
index 4eee8de..0aba6a8 100644 (file)
@@ -1,16 +1,16 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <status>
-  <update>2020-12-28</update>
+  <update>2020-12-30</update>
   <translations project="WinMerge">
     <translation>
       <language>Arabic</language>
       <file>Arabic.po</file>
       <update>2019-12-30</update>
       <strings>
-        <count>998</count>
+        <count>999</count>
         <translated>921</translated>
         <fuzzy>0</fuzzy>
-        <untranslated>77</untranslated>
+        <untranslated>78</untranslated>
       </strings>
     </translation>
     <translation>
       <file>Basque.po</file>
       <update>2013-02-03</update>
       <strings>
-        <count>998</count>
+        <count>999</count>
         <translated>654</translated>
         <fuzzy>0</fuzzy>
-        <untranslated>344</untranslated>
+        <untranslated>345</untranslated>
       </strings>
       <translators>
         <translator>
       <file>Brazilian.po</file>
       <update>2020-07-26</update>
       <strings>
-        <count>998</count>
+        <count>999</count>
         <translated>985</translated>
         <fuzzy>0</fuzzy>
-        <untranslated>13</untranslated>
+        <untranslated>14</untranslated>
       </strings>
       <translators>
         <translator>
       <file>Bulgarian.po</file>
       <update>2019-10-24</update>
       <strings>
-        <count>998</count>
+        <count>999</count>
         <translated>889</translated>
         <fuzzy>0</fuzzy>
-        <untranslated>109</untranslated>
+        <untranslated>110</untranslated>
       </strings>
       <translators>
         <translator>
       <file>Catalan.po</file>
       <update></update>
       <strings>
-        <count>998</count>
+        <count>999</count>
         <translated>578</translated>
         <fuzzy>0</fuzzy>
-        <untranslated>420</untranslated>
+        <untranslated>421</untranslated>
       </strings>
       <translators>
         <translator>
       <file>ChineseSimplified.po</file>
       <update></update>
       <strings>
-        <count>998</count>
+        <count>999</count>
         <translated>991</translated>
         <fuzzy>0</fuzzy>
-        <untranslated>7</untranslated>
+        <untranslated>8</untranslated>
       </strings>
       <translators>
         <translator>
       <file>ChineseTraditional.po</file>
       <update>2010-02-19</update>
       <strings>
-        <count>998</count>
+        <count>999</count>
         <translated>873</translated>
         <fuzzy>0</fuzzy>
-        <untranslated>125</untranslated>
+        <untranslated>126</untranslated>
       </strings>
       <translators>
         <translator>
       <file>Croatian.po</file>
       <update>2009-02-13</update>
       <strings>
-        <count>998</count>
+        <count>999</count>
         <translated>645</translated>
         <fuzzy>1</fuzzy>
-        <untranslated>352</untranslated>
+        <untranslated>353</untranslated>
       </strings>
       <translators>
         <translator>
       <file>Czech.po</file>
       <update></update>
       <strings>
-        <count>998</count>
+        <count>999</count>
         <translated>616</translated>
         <fuzzy>0</fuzzy>
-        <untranslated>382</untranslated>
+        <untranslated>383</untranslated>
       </strings>
       <translators>
         <translator>
       <file>Danish.po</file>
       <update>2013-01-13</update>
       <strings>
-        <count>998</count>
+        <count>999</count>
         <translated>654</translated>
         <fuzzy>0</fuzzy>
-        <untranslated>344</untranslated>
+        <untranslated>345</untranslated>
       </strings>
       <translators>
         <translator>
       <file>Dutch.po</file>
       <update>2018-09-06</update>
       <strings>
-        <count>998</count>
+        <count>999</count>
         <translated>992</translated>
         <fuzzy>0</fuzzy>
-        <untranslated>6</untranslated>
+        <untranslated>7</untranslated>
       </strings>
       <translators>
         <translator>
     <translation template="1">
       <language>English</language>
       <file>English.pot</file>
-      <update>2020-12-28</update>
+      <update>2020-12-30</update>
       <strings>
-        <count>998</count>
-        <translated>998</translated>
+        <count>999</count>
+        <translated>999</translated>
         <fuzzy>0</fuzzy>
         <untranslated>0</untranslated>
       </strings>
       <file>Finnish.po</file>
       <update></update>
       <strings>
-        <count>998</count>
+        <count>999</count>
         <translated>918</translated>
         <fuzzy>0</fuzzy>
-        <untranslated>80</untranslated>
+        <untranslated>81</untranslated>
       </strings>
     </translation>
     <translation>
       <file>French.po</file>
       <update>2019-06-02</update>
       <strings>
-        <count>998</count>
+        <count>999</count>
         <translated>911</translated>
         <fuzzy>2</fuzzy>
-        <untranslated>85</untranslated>
+        <untranslated>86</untranslated>
       </strings>
       <translators>
         <translator maintainer="1">
       <file>Galician.po</file>
       <update>2020-11-28</update>
       <strings>
-        <count>998</count>
+        <count>999</count>
         <translated>996</translated>
         <fuzzy>0</fuzzy>
-        <untranslated>2</untranslated>
+        <untranslated>3</untranslated>
       </strings>
       <translators>
         <translator>
       <file>German.po</file>
       <update>2020-11-25</update>
       <strings>
-        <count>998</count>
+        <count>999</count>
         <translated>996</translated>
         <fuzzy>0</fuzzy>
-        <untranslated>2</untranslated>
+        <untranslated>3</untranslated>
       </strings>
       <translators>
         <translator maintainer="1">
       <file>Greek.po</file>
       <update></update>
       <strings>
-        <count>998</count>
+        <count>999</count>
         <translated>617</translated>
         <fuzzy>0</fuzzy>
-        <untranslated>381</untranslated>
+        <untranslated>382</untranslated>
       </strings>
       <translators>
         <translator>
       <file>Hungarian.po</file>
       <update>2011-01-24</update>
       <strings>
-        <count>998</count>
+        <count>999</count>
         <translated>550</translated>
         <fuzzy>0</fuzzy>
-        <untranslated>448</untranslated>
+        <untranslated>449</untranslated>
       </strings>
       <translators>
         <translator>
       <file>Italian.po</file>
       <update>2019-07-12</update>
       <strings>
-        <count>998</count>
+        <count>999</count>
         <translated>921</translated>
         <fuzzy>0</fuzzy>
-        <untranslated>77</untranslated>
+        <untranslated>78</untranslated>
       </strings>
       <translators>
         <translator>
       <file>Japanese.po</file>
       <update>2020-12-07</update>
       <strings>
-        <count>998</count>
+        <count>999</count>
         <translated>998</translated>
         <fuzzy>0</fuzzy>
-        <untranslated>0</untranslated>
+        <untranslated>1</untranslated>
       </strings>
       <translators>
         <translator>
       <file>Korean.po</file>
       <update>2018-02-05</update>
       <strings>
-        <count>998</count>
+        <count>999</count>
         <translated>877</translated>
         <fuzzy>0</fuzzy>
-        <untranslated>121</untranslated>
+        <untranslated>122</untranslated>
       </strings>
       <translators>
         <translator>
     <translation>
       <language>Lithuanian</language>
       <file>Lithuanian.po</file>
-      <update>2020-11-30</update>
+      <update>2020-12-29</update>
       <strings>
-        <count>998</count>
-        <translated>996</translated>
+        <count>999</count>
+        <translated>998</translated>
         <fuzzy>0</fuzzy>
-        <untranslated>2</untranslated>
+        <untranslated>1</untranslated>
       </strings>
       <translators>
         <translator>
       <file>Norwegian.po</file>
       <update></update>
       <strings>
-        <count>998</count>
+        <count>999</count>
         <translated>646</translated>
         <fuzzy>0</fuzzy>
-        <untranslated>352</untranslated>
+        <untranslated>353</untranslated>
       </strings>
       <translators>
         <translator>
       <file>Persian.po</file>
       <update>2013-08-15</update>
       <strings>
-        <count>998</count>
+        <count>999</count>
         <translated>657</translated>
         <fuzzy>0</fuzzy>
-        <untranslated>341</untranslated>
+        <untranslated>342</untranslated>
       </strings>
       <translators>
         <translator>
       <file>Polish.po</file>
       <update></update>
       <strings>
-        <count>998</count>
+        <count>999</count>
         <translated>960</translated>
         <fuzzy>0</fuzzy>
-        <untranslated>38</untranslated>
+        <untranslated>39</untranslated>
       </strings>
       <translators>
         <translator>
       <file>Portuguese.po</file>
       <update>2020-11-29</update>
       <strings>
-        <count>998</count>
+        <count>999</count>
         <translated>996</translated>
         <fuzzy>0</fuzzy>
-        <untranslated>2</untranslated>
+        <untranslated>3</untranslated>
       </strings>
       <translators>
         <translator>
       <file>Romanian.po</file>
       <update></update>
       <strings>
-        <count>998</count>
+        <count>999</count>
         <translated>575</translated>
         <fuzzy>44</fuzzy>
-        <untranslated>379</untranslated>
+        <untranslated>380</untranslated>
       </strings>
       <translators>
         <translator>
       <file>Russian.po</file>
       <update>2020-11-29</update>
       <strings>
-        <count>998</count>
+        <count>999</count>
         <translated>992</translated>
         <fuzzy>0</fuzzy>
-        <untranslated>6</untranslated>
+        <untranslated>7</untranslated>
       </strings>
       <translators>
         <translator>
       <file>Serbian.po</file>
       <update></update>
       <strings>
-        <count>998</count>
+        <count>999</count>
         <translated>645</translated>
         <fuzzy>0</fuzzy>
-        <untranslated>353</untranslated>
+        <untranslated>354</untranslated>
       </strings>
       <translators>
         <translator>
       <file>Sinhala.po</file>
       <update>2010-12-12</update>
       <strings>
-        <count>998</count>
+        <count>999</count>
         <translated>574</translated>
         <fuzzy>64</fuzzy>
-        <untranslated>360</untranslated>
+        <untranslated>361</untranslated>
       </strings>
       <translators>
         <translator>
       <file>Slovak.po</file>
       <update>2020-11-02</update>
       <strings>
-        <count>998</count>
+        <count>999</count>
         <translated>991</translated>
         <fuzzy>0</fuzzy>
-        <untranslated>7</untranslated>
+        <untranslated>8</untranslated>
       </strings>
       <translators>
         <translator>
     <translation>
       <language>Slovenian</language>
       <file>Slovenian.po</file>
-      <update>2020-11-08</update>
+      <update>2020-12-29</update>
       <strings>
-        <count>998</count>
-        <translated>996</translated>
+        <count>999</count>
+        <translated>998</translated>
         <fuzzy>0</fuzzy>
-        <untranslated>2</untranslated>
+        <untranslated>1</untranslated>
       </strings>
       <translators>
         <translator>
       <file>Spanish.po</file>
       <update>2020-04-03</update>
       <strings>
-        <count>998</count>
+        <count>999</count>
         <translated>886</translated>
         <fuzzy>0</fuzzy>
-        <untranslated>112</untranslated>
+        <untranslated>113</untranslated>
       </strings>
       <translators>
         <translator>
       <file>Swedish.po</file>
       <update>2019-10-07</update>
       <strings>
-        <count>998</count>
+        <count>999</count>
         <translated>921</translated>
         <fuzzy>0</fuzzy>
-        <untranslated>77</untranslated>
+        <untranslated>78</untranslated>
       </strings>
       <translators>
         <translator>
       <file>Turkish.po</file>
       <update>2020-09-08</update>
       <strings>
-        <count>998</count>
+        <count>999</count>
         <translated>987</translated>
         <fuzzy>0</fuzzy>
-        <untranslated>11</untranslated>
+        <untranslated>12</untranslated>
       </strings>
       <translators>
         <translator>
       <file>Ukrainian.po</file>
       <update>2009-06-13</update>
       <strings>
-        <count>998</count>
+        <count>999</count>
         <translated>651</translated>
         <fuzzy>0</fuzzy>
-        <untranslated>347</untranslated>
+        <untranslated>348</untranslated>
       </strings>
       <translators>
         <translator>
     <translation>
       <language>Slovenian</language>
       <file>Slovenian.po</file>
-      <update>2019-02-01</update>
+      <update>2020-12-29</update>
       <strings>
         <count>12</count>
         <translated>12</translated>
           <name>Filip Komar</name>
           <mail>filip.komar at gmail.com</mail>
         </translator>
+        <translator>
+          <name>Jadran Rudec</name>
+          <mail>jrudec at gmail.com</mail>
+        </translator>
       </translators>
     </translation>
     <translation>
index d3c03d8..9b1372e 100644 (file)
@@ -3322,6 +3322,9 @@ msgstr "بدون تظليل"
 msgid "Batch"
 msgstr "متتالي"
 
+msgid "JavaScript"
+msgstr ""
+
 msgid "Lua"
 msgstr "Lua"
 
index f88c13e..3b4c026 100644 (file)
@@ -3929,6 +3929,9 @@ msgstr "Ez Nabarmenduta"
 msgid "Batch"
 msgstr "Batch"
 
+msgid "JavaScript"
+msgstr ""
+
 msgid "Lua"
 msgstr ""
 
index 90f403e..eac2eff 100644 (file)
@@ -4044,6 +4044,9 @@ msgstr "Sem Destacar"
 msgid "Batch"
 msgstr "Batch"
 
+msgid "JavaScript"
+msgstr ""
+
 msgid "Lua"
 msgstr "Lua"
 
index b8297a4..ef449bf 100644 (file)
@@ -3296,6 +3296,9 @@ msgstr "Без оцветяване"
 msgid "Batch"
 msgstr "Batch"
 
+msgid "JavaScript"
+msgstr ""
+
 msgid "Lua"
 msgstr "Lua"
 
index f8a36ec..5066c8b 100644 (file)
@@ -3858,6 +3858,9 @@ msgstr ""
 msgid "Batch"
 msgstr ""
 
+msgid "JavaScript"
+msgstr ""
+
 msgid "Lua"
 msgstr ""
 
index 99823fc..c4d5986 100644 (file)
@@ -3361,6 +3361,9 @@ msgstr "无高亮"
 msgid "Batch"
 msgstr "批处理文件"
 
+msgid "JavaScript"
+msgstr ""
+
 msgid "Lua"
 msgstr "Lua"
 
index 1447da2..026e39d 100644 (file)
@@ -3938,6 +3938,9 @@ msgstr "無高亮度顯示"
 msgid "Batch"
 msgstr "Batch"
 
+msgid "JavaScript"
+msgstr ""
+
 msgid "Lua"
 msgstr ""
 
index 84afe09..889a1e0 100644 (file)
@@ -3929,6 +3929,9 @@ msgstr "Nije označeno"
 msgid "Batch"
 msgstr "Batch"
 
+msgid "JavaScript"
+msgstr ""
+
 msgid "Lua"
 msgstr ""
 
index c2bfa8e..dc698e9 100644 (file)
@@ -3860,6 +3860,9 @@ msgstr "Žádné zvýraznění"
 msgid "Batch"
 msgstr ""
 
+msgid "JavaScript"
+msgstr ""
+
 msgid "Lua"
 msgstr ""
 
index caa562d..4f9708c 100644 (file)
@@ -3968,6 +3968,9 @@ msgstr "Ingen fremhævning"
 msgid "Batch"
 msgstr "Batch"
 
+msgid "JavaScript"
+msgstr ""
+
 msgid "Lua"
 msgstr ""
 
index 7838576..e23f777 100644 (file)
@@ -3370,6 +3370,9 @@ msgstr "Geen markering"
 msgid "Batch"
 msgstr "Batch"
 
+msgid "JavaScript"
+msgstr ""
+
 msgid "Lua"
 msgstr "Lua"
 
index 4f084f8..7daa8fb 100644 (file)
@@ -5,7 +5,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: WinMerge\n"
 "Report-Msgid-Bugs-To: https://bugs.winmerge.org/\n"
-"POT-Creation-Date: 2020-12-28 19:49+0000\n"
+"POT-Creation-Date: 2020-12-30 09:19+0000\n"
 "PO-Revision-Date: \n"
 "Last-Translator: \n"
 "Language-Team: English <winmerge-translate@lists.sourceforge.net>\n"
@@ -2963,6 +2963,9 @@ msgstr ""
 msgid "Batch"
 msgstr ""
 
+msgid "JavaScript"
+msgstr ""
+
 msgid "Lua"
 msgstr ""
 
index 416dd82..f5384a1 100644 (file)
@@ -4025,6 +4025,9 @@ msgstr "Ei korostusta"
 msgid "Batch"
 msgstr "Erä"
 
+msgid "JavaScript"
+msgstr ""
+
 msgid "Lua"
 msgstr "Lua"
 
index 326364a..6b7ed0d 100644 (file)
@@ -4098,6 +4098,9 @@ msgstr "Pas de surbrillance"
 msgid "Batch"
 msgstr "Batch"
 
+msgid "JavaScript"
+msgstr ""
+
 msgid "Lua"
 msgstr "Lua"
 
index 5317e72..4149ff2 100644 (file)
@@ -4065,6 +4065,9 @@ msgstr "Sen resaltar"
 msgid "Batch"
 msgstr "Batch"
 
+msgid "JavaScript"
+msgstr ""
+
 msgid "Lua"
 msgstr "Lua"
 
index eba2352..3dd842d 100644 (file)
@@ -3711,6 +3711,9 @@ msgstr "Keine Hervorhebung"
 msgid "Batch"
 msgstr "Batch"
 
+msgid "JavaScript"
+msgstr ""
+
 msgid "Lua"
 msgstr "Lua"
 
index 95a87a0..efddda7 100644 (file)
@@ -3907,6 +3907,9 @@ msgstr "Χωρίς Χρωματισμό Κώδικα"
 msgid "Batch"
 msgstr ""
 
+msgid "JavaScript"
+msgstr ""
+
 msgid "Lua"
 msgstr ""
 
index 6a0a0ea..18f7680 100644 (file)
@@ -3834,6 +3834,9 @@ msgstr ""
 msgid "Batch"
 msgstr ""
 
+msgid "JavaScript"
+msgstr ""
+
 msgid "Lua"
 msgstr ""
 
index 401cb45..91609f1 100644 (file)
@@ -3343,6 +3343,9 @@ msgstr "Nessuna evidenziazione"
 msgid "Batch"
 msgstr "Batch"
 
+msgid "JavaScript"
+msgstr ""
+
 msgid "Lua"
 msgstr "Lua"
 
index 287ce1b..743adfc 100644 (file)
@@ -3324,6 +3324,9 @@ msgstr "ハイライトなし"
 msgid "Batch"
 msgstr "Batch"
 
+msgid "JavaScript"
+msgstr ""
+
 msgid "Lua"
 msgstr "Lua"
 
index 39b6804..8c7a39f 100644 (file)
@@ -4031,6 +4031,9 @@ msgstr "강조 표시 없음"
 msgid "Batch"
 msgstr "일괄 처리"
 
+msgid "JavaScript"
+msgstr ""
+
 msgid "Lua"
 msgstr ""
 
index d72d8c6..0684cf5 100644 (file)
@@ -2972,6 +2972,9 @@ msgstr "Nenaudoti paryškinimo"
 msgid "Batch"
 msgstr "Batch"
 
+msgid "JavaScript"
+msgstr ""
+
 msgid "Lua"
 msgstr "Lua"
 
index 8f48ef7..12a8db6 100644 (file)
@@ -3929,6 +3929,9 @@ msgstr "Ingen markering"
 msgid "Batch"
 msgstr "Batch"
 
+msgid "JavaScript"
+msgstr ""
+
 msgid "Lua"
 msgstr ""
 
index 3abdfb0..4a3a0f7 100644 (file)
@@ -3972,6 +3972,9 @@ msgstr " برجسته نکردن "
 msgid "Batch"
 msgstr " دسته "
 
+msgid "JavaScript"
+msgstr ""
+
 msgid "Lua"
 msgstr ""
 
index 8aab4be..e0fbf25 100644 (file)
@@ -2970,6 +2970,9 @@ msgstr "Bez podświetlenia"
 msgid "Batch"
 msgstr ""
 
+msgid "JavaScript"
+msgstr ""
+
 msgid "Lua"
 msgstr ""
 
index 918a2fc..f9902c2 100644 (file)
@@ -3407,6 +3407,9 @@ msgstr "Sem Destaque"
 msgid "Batch"
 msgstr "Quantidade"
 
+msgid "JavaScript"
+msgstr ""
+
 msgid "Lua"
 msgstr "Lua"
 
index 3e3b201..a4027f1 100644 (file)
@@ -3908,6 +3908,9 @@ msgstr ""
 msgid "Batch"
 msgstr "Batch"
 
+msgid "JavaScript"
+msgstr ""
+
 msgid "Lua"
 msgstr ""
 
index c68c9c2..14e0612 100644 (file)
@@ -2971,6 +2971,9 @@ msgstr "Без выделения"
 msgid "Batch"
 msgstr "Пакет"
 
+msgid "JavaScript"
+msgstr ""
+
 msgid "Lua"
 msgstr "Библиотека Lua"
 
index e8bd173..185c4c0 100644 (file)
@@ -3901,6 +3901,9 @@ msgstr "Није означено"
 msgid "Batch"
 msgstr "Batch"
 
+msgid "JavaScript"
+msgstr ""
+
 msgid "Lua"
 msgstr ""
 
index ae905af..0e9f4d6 100644 (file)
@@ -3919,6 +3919,9 @@ msgstr "No Highlighting"
 msgid "Batch"
 msgstr "Batch"
 
+msgid "JavaScript"
+msgstr ""
+
 msgid "Lua"
 msgstr ""
 
index 35933c6..ef3df96 100644 (file)
@@ -3384,6 +3384,9 @@ msgstr "Bez zvýrazňovania"
 msgid "Batch"
 msgstr "Dávkový"
 
+msgid "JavaScript"
+msgstr ""
+
 msgid "Lua"
 msgstr "Lua"
 
index 3da4fb5..29ce228 100644 (file)
@@ -4061,6 +4061,9 @@ msgstr "Brez označevanja"
 msgid "Batch"
 msgstr "Paket"
 
+msgid "JavaScript"
+msgstr ""
+
 msgid "Lua"
 msgstr "Lua"
 
index 922e9da..ab8ad70 100644 (file)
@@ -3360,6 +3360,9 @@ msgstr "No Seleccionado"
 msgid "Batch"
 msgstr "Batch"
 
+msgid "JavaScript"
+msgstr ""
+
 msgid "Lua"
 msgstr "Lua"
 
index 522cf21..c891e00 100644 (file)
@@ -4008,6 +4008,9 @@ msgstr "Ingen Markering"
 msgid "Batch"
 msgstr "Sats"
 
+msgid "JavaScript"
+msgstr ""
+
 msgid "Lua"
 msgstr "Lua"
 
index cb71356..b10983f 100644 (file)
@@ -3355,6 +3355,9 @@ msgstr "Vurgulama Yok"
 msgid "Batch"
 msgstr "Toplu İşlem"
 
+msgid "JavaScript"
+msgstr ""
+
 msgid "Lua"
 msgstr "Lua"
 
index f928e2a..4336b77 100644 (file)
@@ -3929,6 +3929,9 @@ msgstr "Не підсвічувати"
 msgid "Batch"
 msgstr "Бетч"
 
+msgid "JavaScript"
+msgstr ""
+
 msgid "Lua"
 msgstr ""