OSDN Git Service

crystallineparser.h: Merge TEXTBLOCK if the color is the same as the previous TEXTBLOCK
authorTakashi Sawanaka <sdottaka@users.sourceforge.net>
Sun, 15 Nov 2020 10:37:22 +0000 (19:37 +0900)
committerTakashi Sawanaka <sdottaka@users.sourceforge.net>
Sun, 15 Nov 2020 10:37:22 +0000 (19:37 +0900)
Externals/crystaledit/editlib/parsers/crystallineparser.h
Externals/crystaledit/test/luaTests.cpp

index 4c78600..5838b5d 100644 (file)
@@ -9,10 +9,11 @@ if (pBuf != nullptr)\
   {\\r
     if (nActualItems == 0 || pBuf[nActualItems - 1].m_nCharPos <= (pos)){\\r
         if (nActualItems > 0 && pBuf[nActualItems - 1].m_nCharPos == (pos)) nActualItems--;\\r
-        pBuf[nActualItems].m_nCharPos = (pos);\\r
-        pBuf[nActualItems].m_nColorIndex = (colorindex);\\r
-        pBuf[nActualItems].m_nBgColorIndex = COLORINDEX_BKGND;\\r
-        nActualItems ++;}\\r
+        if (nActualItems == 0 || pBuf[nActualItems - 1].m_nColorIndex != (colorindex)){\\r
+            pBuf[nActualItems].m_nCharPos = (pos);\\r
+            pBuf[nActualItems].m_nColorIndex = (colorindex);\\r
+            pBuf[nActualItems].m_nBgColorIndex = COLORINDEX_BKGND;\\r
+            nActualItems ++;}}\\r
   }\r
 \r
 #define COOKIE_COMMENT          0x0001\r
index 2985c06..a327b75 100644 (file)
@@ -66,19 +66,15 @@ namespace test
                                        }, 6},\r
                                { 0, {\r
                                        {0,  COLORINDEX_COMMENT,    COLORINDEX_BKGND},\r
-                                       {13, COLORINDEX_COMMENT,    COLORINDEX_BKGND},\r
-                                       {23, COLORINDEX_COMMENT,    COLORINDEX_BKGND},\r
                                        {33, COLORINDEX_STRING,     COLORINDEX_BKGND},\r
-                                       {37, COLORINDEX_STRING,     COLORINDEX_BKGND},\r
-                                       {44, COLORINDEX_STRING,     COLORINDEX_BKGND},\r
                                        {56, COLORINDEX_NORMALTEXT, COLORINDEX_BKGND},\r
-                                       }, 7},\r
+                                       }, 3},\r
                                { COOKIE_EXT_COMMENT,             {{0, COLORINDEX_COMMENT, COLORINDEX_BKGND}}, 1 },\r
-                               { COOKIE_EXT_COMMENT | (1 << 28), {{0, COLORINDEX_COMMENT, COLORINDEX_BKGND}, {2, COLORINDEX_COMMENT, COLORINDEX_BKGND}}, 2 },\r
-                               { COOKIE_EXT_COMMENT | (2 << 28), {{0, COLORINDEX_COMMENT, COLORINDEX_BKGND}, {3, COLORINDEX_COMMENT, COLORINDEX_BKGND}}, 2 },\r
+                               { COOKIE_EXT_COMMENT | (1 << 28), {{0, COLORINDEX_COMMENT, COLORINDEX_BKGND}}, 1 },\r
+                               { COOKIE_EXT_COMMENT | (2 << 28), {{0, COLORINDEX_COMMENT, COLORINDEX_BKGND}}, 1 },\r
                                { COOKIE_RAWSTRING,               {{0, COLORINDEX_COMMENT, COLORINDEX_BKGND}, {4, COLORINDEX_STRING,  COLORINDEX_BKGND}}, 2 },\r
-                               { COOKIE_RAWSTRING | (1 << 28),   {{0, COLORINDEX_STRING,  COLORINDEX_BKGND}, {2, COLORINDEX_STRING,  COLORINDEX_BKGND}}, 2 },\r
-                               { COOKIE_RAWSTRING | (2 << 28),   {{0, COLORINDEX_STRING,  COLORINDEX_BKGND}, {3, COLORINDEX_STRING,  COLORINDEX_BKGND}}, 2 },\r
+                               { COOKIE_RAWSTRING | (1 << 28),   {{0, COLORINDEX_STRING,  COLORINDEX_BKGND}}, 1 },\r
+                               { COOKIE_RAWSTRING | (2 << 28),   {{0, COLORINDEX_STRING,  COLORINDEX_BKGND}}, 1 },\r
                                { 0,                              {{0, COLORINDEX_STRING,  COLORINDEX_BKGND}, {4, COLORINDEX_OPERATOR, COLORINDEX_BKGND}}, 2 },\r
                        };\r
                        for (size_t i = 0; i < std::size(expected); ++i)\r