diff --git a/PowerEditor/src/CMakeLists.txt b/PowerEditor/src/CMakeLists.txt
index aa49d7b06..4e743a2f2 100644
--- a/PowerEditor/src/CMakeLists.txt
+++ b/PowerEditor/src/CMakeLists.txt
@@ -221,7 +221,6 @@ SET(include_files
./NppDarkMode.h
./ScintillaComponent/columnEditor_rc.h
./ScintillaComponent/FindReplaceDlg_rc.h
- ./ScintillaComponent/ScintillaRef.h
./Utf8.h
./WinControls/AboutDlg/AboutDlg.h
./WinControls/AnsiCharPanel/ansiCharPanel.h
diff --git a/PowerEditor/src/MISC/Common/NppConstants.h b/PowerEditor/src/MISC/Common/NppConstants.h
index 76eaf2ed9..2fe62f667 100644
--- a/PowerEditor/src/MISC/Common/NppConstants.h
+++ b/PowerEditor/src/MISC/Common/NppConstants.h
@@ -52,3 +52,69 @@ enum class SubclassID : unsigned int
first = 666,
second = 1984
};
+
+// ScintillaRef
+
+enum changeHistoryState
+{
+ disable,
+ margin,
+ indicator,
+ marginIndicator
+};
+
+enum folderStyle
+{
+ FOLDER_TYPE,
+ FOLDER_STYLE_SIMPLE,
+ FOLDER_STYLE_ARROW,
+ FOLDER_STYLE_CIRCLE,
+ FOLDER_STYLE_BOX,
+ FOLDER_STYLE_NONE
+};
+
+enum lineWrapMethod
+{
+ LINEWRAP_DEFAULT,
+ LINEWRAP_ALIGNED,
+ LINEWRAP_INDENT
+};
+
+enum lineHiliteMode
+{
+ LINEHILITE_NONE,
+ LINEHILITE_HILITE,
+ LINEHILITE_FRAME
+};
+
+// ScintillaRef
+
+// ScintillaEditView
+
+inline constexpr bool fold_expand = true;
+inline constexpr bool fold_collapse = false;
+
+inline constexpr int MODEVENTMASK_OFF = 0;
+
+enum TextCase : unsigned char
+{
+ UPPERCASE,
+ LOWERCASE,
+ PROPERCASE_FORCE,
+ PROPERCASE_BLEND,
+ SENTENCECASE_FORCE,
+ SENTENCECASE_BLEND,
+ INVERTCASE,
+ RANDOMCASE
+};
+
+enum NumBase : unsigned char
+{
+ BASE_10,
+ BASE_16,
+ BASE_08,
+ BASE_02,
+ BASE_16_UPPERCASE
+};
+
+// ScintillaEditView
diff --git a/PowerEditor/src/NppBigSwitch.cpp b/PowerEditor/src/NppBigSwitch.cpp
index a423e5152..f265c949e 100644
--- a/PowerEditor/src/NppBigSwitch.cpp
+++ b/PowerEditor/src/NppBigSwitch.cpp
@@ -32,6 +32,7 @@
#include "functionListPanel.h"
#include "fileBrowser.h"
#include "NppDarkMode.h"
+#include "NppConstants.h"
using namespace std;
diff --git a/PowerEditor/src/NppCommands.cpp b/PowerEditor/src/NppCommands.cpp
index 73c0f9fee..61a7620db 100644
--- a/PowerEditor/src/NppCommands.cpp
+++ b/PowerEditor/src/NppCommands.cpp
@@ -41,6 +41,8 @@
#include "SortLocale.h"
#include "dpiManagerV2.h"
+#include "NppConstants.h"
+
using namespace std;
std::mutex command_mutex;
diff --git a/PowerEditor/src/NppIO.cpp b/PowerEditor/src/NppIO.cpp
index caef7ed00..cb2ceeebc 100644
--- a/PowerEditor/src/NppIO.cpp
+++ b/PowerEditor/src/NppIO.cpp
@@ -15,12 +15,11 @@
// along with this program. If not, see .
-#include
+#include
#include
#include
#include "Notepad_plus_Window.h"
#include "CustomFileDialog.h"
-#include "EncodingMapper.h"
#include "VerticalFileSwitcher.h"
#include "functionListPanel.h"
#include "ReadDirectoryChanges.h"
@@ -28,6 +27,7 @@
#include "fileBrowser.h"
#include
#include "Common.h"
+#include "NppConstants.h"
using namespace std;
diff --git a/PowerEditor/src/Parameters.cpp b/PowerEditor/src/Parameters.cpp
index 98ae46ce4..84abda9cf 100644
--- a/PowerEditor/src/Parameters.cpp
+++ b/PowerEditor/src/Parameters.cpp
@@ -14,7 +14,7 @@
// You should have received a copy of the GNU General Public License
// along with this program. If not, see .
-#include
+#include
#include
#include "Parameters.h"
@@ -23,8 +23,8 @@
#include "localization.h"
#include "localizationString.h"
#include "UserDefineDialog.h"
-#include "WindowsDlgRc.h"
#include "Notepad_plus_Window.h"
+#include "NppConstants.h"
#ifdef _MSC_VER
#pragma warning(disable : 4996) // for GetVersionEx()
diff --git a/PowerEditor/src/Parameters.h b/PowerEditor/src/Parameters.h
index 5748e7342..fe9a43b03 100644
--- a/PowerEditor/src/Parameters.h
+++ b/PowerEditor/src/Parameters.h
@@ -19,7 +19,6 @@
#include "tinyxmlA.h"
#include "tinyxml.h"
#include "Scintilla.h"
-#include "ScintillaRef.h"
#include "ToolBar.h"
#include "UserDefineLangReference.h"
#include "colors.h"
@@ -34,6 +33,8 @@
#include "Lexilla.h"
#include "DockingCont.h"
+#include "NppConstants.h"
+
#ifdef _WIN64
#ifdef _M_ARM64
diff --git a/PowerEditor/src/ScintillaComponent/ScintillaEditView.cpp b/PowerEditor/src/ScintillaComponent/ScintillaEditView.cpp
index dc489a4bf..d36e8d9ec 100644
--- a/PowerEditor/src/ScintillaComponent/ScintillaEditView.cpp
+++ b/PowerEditor/src/ScintillaComponent/ScintillaEditView.cpp
@@ -15,21 +15,30 @@
// along with this program. If not, see .
#include
-#include
#include
#include
#include "ScintillaEditView.h"
#include "Parameters.h"
#include "localization.h"
#include "Sorters.h"
-
-#include "dpiManagerV2.h"
-
#include "ILexer.h"
#include "Lexilla.h"
+#include
+
+#include
+
+#include
+
+#include "NppConstants.h"
+#include "dpiManagerV2.h"
+#include "rgba_icons.h"
+
using namespace std;
+static constexpr int MAX_FOLD_COLLAPSE_LEVEL = 8;
+static constexpr int MAX_FOLD_LINES_MORE_THAN = 99;
+
// initialize the static variable
bool ScintillaEditView::_SciInit = false;
int ScintillaEditView::_refCount = 0;
@@ -170,6 +179,130 @@ LanguageNameInfo ScintillaEditView::_langNameInfoArray[L_EXTERNAL + 1] = {
{L"ext", L"External", L"External", L_EXTERNAL, "null"}
};
+static constexpr char g_ZWSP[] = "\xE2\x80\x8B";
+
+static constexpr std::array, 64> g_ccUniEolChars{ {
+ // C0
+ {"\x00", "NUL", "U+0000"}, // U+0000 : Null
+ {"\x01", "SOH", "U+0001"}, // U+0001 : Start of Heading
+ {"\x02", "STX", "U+0002"}, // U+0002 : Start of Text
+ {"\x03", "ETX", "U+0003"}, // U+0003 : End of Text
+ {"\x04", "EOT", "U+0004"}, // U+0004 : End of Transmission
+ {"\x05", "ENQ", "U+0005"}, // U+0005 : Enquiry
+ {"\x06", "ACK", "U+0006"}, // U+0006 : Acknowledge
+ {"\a", "BEL", "U+0007"}, // U+0007 : Bell
+ {"\b", "BS", "U+0008"}, // U+0008 : Backspace
+ {"\v", "VT", "U+000B"}, // U+000B : Line Tabulation
+ {"\f", "FF", "U+000C"}, // U+000C : Form Feed
+ {"\x0E", "SO", "U+000E"}, // U+000E : Shift Out
+ {"\x0F", "SI", "U+000F"}, // U+000F : Shift In
+ {"\x10", "DLE", "U+0010"}, // U+0010 : Data Link Escape
+ {"\x11", "DC1", "U+0011"}, // U+0011 : Device Control One
+ {"\x12", "DC2", "U+0012"}, // U+0012 : Device Control Two
+ {"\x13", "DC3", "U+0013"}, // U+0013 : Device Control Three
+ {"\x14", "DC4", "U+0014"}, // U+0014 : Device Control Four
+ {"\x15", "NAK", "U+0015"}, // U+0015 : Negative Acknowledge
+ {"\x16", "SYN", "U+0016"}, // U+0016 : Synchronous Idle
+ {"\x17", "ETB", "U+0017"}, // U+0017 : End of Transmission Block
+ {"\x18", "CAN", "U+0018"}, // U+0018 : Cancel
+ {"\x19", "EM", "U+0019"}, // U+0019 : End of Medium
+ {"\x1A", "SUB", "U+001A"}, // U+001A : Substitute
+ {"\x1B", "ESC", "U+001B"}, // U+001B : Escape
+ {"\x1C", "FS", "U+001C"}, // U+001C : Information Separator Four
+ {"\x1D", "GS", "U+001D"}, // U+001D : Information Separator Three
+ {"\x1E", "RS", "U+001E"}, // U+001E : Information Separator Two
+ {"\x1F", "US", "U+001F"}, // U+001F : Information Separator One
+ {"\x7F", "DEL", "U+007F"}, // U+007F : Delete
+ // C1
+ {"\xC2\x80", "PAD", "U+0080"}, // U+0080 : Padding Character
+ {"\xC2\x81", "HOP", "U+0081"}, // U+0081 : High Octet Preset
+ {"\xC2\x82", "BPH", "U+0082"}, // U+0082 : Break Permitted Here
+ {"\xC2\x83", "NBH", "U+0083"}, // U+0083 : No Break Here
+ {"\xC2\x84", "IND", "U+0084"}, // U+0084 : Index
+ //{"\xC2\x85", "NEL", "U+0085"}, // U+0085 : Next Line
+ {"\xC2\x86", "SSA", "U+0086"}, // U+0086 : Start of Selected Area
+ {"\xC2\x87", "ESA", "U+0087"}, // U+0087 : End of Selected Area
+ {"\xC2\x88", "HTS", "U+0088"}, // U+0088 : Character (Horizontal) Tabulation Set
+ {"\xC2\x89", "HTJ", "U+0089"}, // U+0089 : Character (Horizontal) Tabulation With Justification
+ {"\xC2\x8A", "VTS", "U+008A"}, // U+008A : Vertical (Line) Tabulation Set
+ {"\xC2\x8B", "PLD", "U+008B"}, // U+008B : Partial Line Forward (Down)
+ {"\xC2\x8C", "PLU", "U+008C"}, // U+008C : Partial Line Backward (Up)
+ {"\xC2\x8D", "RI", "U+008D"}, // U+008D : Reverse Line Feed (Index)
+ {"\xC2\x8E", "SS2", "U+008E"}, // U+008E : Single-Shift Two
+ {"\xC2\x8F", "SS3", "U+008F"}, // U+008F : Single-Shift Three
+ {"\xC2\x90", "DCS", "U+0090"}, // U+0090 : Device Control String
+ {"\xC2\x91", "PU1", "U+0091"}, // U+0091 : Private Use One
+ {"\xC2\x92", "PU2", "U+0092"}, // U+0092 : Private Use Two
+ {"\xC2\x93", "STS", "U+0093"}, // U+0093 : Set Transmit State
+ {"\xC2\x94", "CCH", "U+0094"}, // U+0094 : Cancel Character
+ {"\xC2\x95", "MW", "U+0095"}, // U+0095 : Message Waiting
+ {"\xC2\x96", "SPA", "U+0096"}, // U+0096 : Start of Protected Area
+ {"\xC2\x97", "EPA", "U+0097"}, // U+0097 : End of Protected Area
+ {"\xC2\x98", "SOS", "U+0098"}, // U+0098 : Start of String
+ {"\xC2\x99", "SGCI", "U+0099"}, // U+0099 : Single Graphic Character Introducer
+ {"\xC2\x9A", "SCI", "U+009A"}, // U+009A : Single Character Introducer
+ {"\xC2\x9B", "CSI", "U+009B"}, // U+009B : Control Sequence Introducer
+ {"\xC2\x9C", "ST", "U+009C"}, // U+009C : String Terminator
+ {"\xC2\x9D", "OSC", "U+009D"}, // U+009D : Operating System Command
+ {"\xC2\x9E", "PM", "U+009E"}, // U+009E : Private Message
+ {"\xC2\x9F", "APC", "U+009F"}, // U+009F : Application Program Command
+ // Unicode EOL
+ {"\xC2\x85", "NEL", "U+0085"}, // U+0085 : Next Line
+ {"\xE2\x80\xA8", "LS", "U+2028"}, // U+2028 : Line Separator
+ {"\xE2\x80\xA9", "PS", "U+2029"} // U+2029 : Paragraph Separator
+} };
+
+static constexpr std::array, 49> g_nonPrintingChars{ {
+ {"\xC2\xA0", "NBSP", "U+00A0"}, // U+00A0 : no-break space
+ {"\xC2\xAD", "SHY", "U+00AD"}, // U+00AD : soft hyphen
+ {"\xD8\x9C", "ALM", "U+061C"}, // U+061C : arabic letter mark
+ {"\xDC\x8F", "SAM", "U+070F"}, // U+070F : syriac abbreviation mark
+ {"\xE1\x9A\x80", "OSPM", "U+1680"}, // U+1680 : ogham space mark
+ {"\xE1\xA0\x8E", "MVS", "U+180E"}, // U+180E : mongolian vowel separator
+ {"\xE2\x80\x80", "NQSP", "U+2000"}, // U+2000 : en quad
+ {"\xE2\x80\x81", "MQSP", "U+2001"}, // U+2001 : em quad
+ {"\xE2\x80\x82", "ENSP", "U+2002"}, // U+2002 : en space
+ {"\xE2\x80\x83", "EMSP", "U+2003"}, // U+2003 : em space
+ {"\xE2\x80\x84", "3/MSP", "U+2004"}, // U+2004 : three-per-em space
+ {"\xE2\x80\x85", "4/MSP", "U+2005"}, // U+2005 : four-per-em space
+ {"\xE2\x80\x86", "6/MSP", "U+2006"}, // U+2006 : six-per-em space
+ {"\xE2\x80\x87", "FSP", "U+2007"}, // U+2007 : figure space
+ {"\xE2\x80\x88", "PSP", "U+2008"}, // U+2008 : punctuation space
+ {"\xE2\x80\x89", "THSP", "U+2009"}, // U+2009 : thin space
+ {"\xE2\x80\x8A", "HSP", "U+200A"}, // U+200A : hair space
+ {"\xE2\x80\x8B", "ZWSP", "U+200B"}, // U+200B : zero-width space
+ {"\xE2\x80\x8C", "ZWNJ", "U+200C"}, // U+200C : zero-width non-joiner
+ {"\xE2\x80\x8D", "ZWJ", "U+200D"}, // U+200D : zero-width joiner
+ {"\xE2\x80\x8E", "LRM", "U+200E"}, // U+200E : left-to-right mark
+ {"\xE2\x80\x8F", "RLM", "U+200F"}, // U+200F : right-to-left mark
+ {"\xE2\x80\xAA", "LRE", "U+202A"}, // U+202A : left-to-right embedding
+ {"\xE2\x80\xAB", "RLE", "U+202B"}, // U+202B : right-to-left embedding
+ {"\xE2\x80\xAC", "PDF", "U+202C"}, // U+202C : pop directional formatting
+ {"\xE2\x80\xAD", "LRO", "U+202D"}, // U+202D : left-to-right override
+ {"\xE2\x80\xAE", "RLO", "U+202E"}, // U+202E : right-to-left override
+ {"\xE2\x80\xAF", "NNBSP", "U+202F"}, // U+202F : narrow no-break space
+ {"\xE2\x81\x9F", "MMSP", "U+205F"}, // U+205F : medium mathematical space
+ {"\xE2\x81\xA0", "WJ", "U+2060"}, // U+2060 : word joiner
+ {"\xE2\x81\xA1", "(FA)", "U+2061"}, // U+2061 : function application
+ {"\xE2\x81\xA2", "(IT)", "U+2062"}, // U+2062 : invisible times
+ {"\xE2\x81\xA3", "(IS)", "U+2063"}, // U+2063 : invisible separator
+ {"\xE2\x81\xA4", "(IP)", "U+2064"}, // U+2064 : invisible plus
+ {"\xE2\x81\xA6", "LRI", "U+2066"}, // U+2066 : left-to-right isolate
+ {"\xE2\x81\xA7", "RLI", "U+2067"}, // U+2067 : right-to-left isolate
+ {"\xE2\x81\xA8", "FSI", "U+2068"}, // U+2068 : first strong isolate
+ {"\xE2\x81\xA9", "PDI", "U+2069"}, // U+2069 : pop directional isolate
+ {"\xE2\x81\xAA", "ISS", "U+206A"}, // U+206A : inhibit symmetric swapping
+ {"\xE2\x81\xAB", "ASS", "U+206B"}, // U+206B : activate symmetric swapping
+ {"\xE2\x81\xAC", "IAFS", "U+206C"}, // U+206C : inhibit arabic form shaping
+ {"\xE2\x81\xAD", "AAFS", "U+206D"}, // U+206D : activate arabic form shaping
+ {"\xE2\x81\xAE", "NADS", "U+206E"}, // U+206E : national digit shapes
+ {"\xE2\x81\xAF", "NODS", "U+206F"}, // U+206F : nominal digit shapes
+ {"\xE3\x80\x80", "IDSP", "U+3000"}, // U+3000 : ideographic space
+ {"\xEF\xBB\xBF", "ZWNBSP", "U+FEFF"}, // U+FEFF : zero-width no-break space
+ {"\xEF\xBF\xB9", "IAA", "U+FFF9"}, // U+FFF9 : interlinear annotation anchor
+ {"\xEF\xBF\xBA", "IAS", "U+FFFA"}, // U+FFFA : interlinear annotation separator
+ {"\xEF\xBF\xBB", "IAT", "U+FFFB"} // U+FFFB : interlinear annotation terminator
+} };
size_t getNbDigits(size_t aNum, size_t base)
{
@@ -3575,8 +3708,8 @@ void ScintillaEditView::setMultiSelections(const ColumnModeInfos & cmi)
{
if (cmi[i].isValid())
{
- intptr_t selStart = cmi[i]._direction == L2R?cmi[i]._selLpos:cmi[i]._selRpos;
- intptr_t selEnd = cmi[i]._direction == L2R?cmi[i]._selRpos:cmi[i]._selLpos;
+ const intptr_t selStart = cmi[i]._isDirectionL2R ? cmi[i]._selLpos : cmi[i]._selRpos;
+ const intptr_t selEnd = cmi[i]._isDirectionL2R ? cmi[i]._selRpos : cmi[i]._selLpos;
execute(SCI_SETSELECTIONNSTART, i, selStart);
execute(SCI_SETSELECTIONNEND, i, selEnd);
}
@@ -3874,13 +4007,13 @@ ColumnModeInfos ScintillaEditView::getColumnModeSelectInfo()
if (absPosSelStartPerLine == absPosSelEndPerLine && execute(SCI_SELECTIONISRECTANGLE))
{
- bool dir = nbVirtualAnchorSpc absPosSelEndPerLine)
- columnModeInfos.push_back(ColumnModeInfo(absPosSelEndPerLine, absPosSelStartPerLine, i, R2L, nbVirtualAnchorSpc, nbVirtualCaretSpc));
+ else if (absPosSelStartPerLine > absPosSelEndPerLine) // is R2L
+ columnModeInfos.push_back(ColumnModeInfo(absPosSelEndPerLine, absPosSelStartPerLine, i, false, nbVirtualAnchorSpc, nbVirtualCaretSpc));
else
- columnModeInfos.push_back(ColumnModeInfo(absPosSelStartPerLine, absPosSelEndPerLine, i, L2R, nbVirtualAnchorSpc, nbVirtualCaretSpc));
+ columnModeInfos.push_back(ColumnModeInfo(absPosSelStartPerLine, absPosSelEndPerLine, i, true, nbVirtualAnchorSpc, nbVirtualCaretSpc));
}
}
return columnModeInfos;
diff --git a/PowerEditor/src/ScintillaComponent/ScintillaEditView.h b/PowerEditor/src/ScintillaComponent/ScintillaEditView.h
index c53b42612..80297a04b 100644
--- a/PowerEditor/src/ScintillaComponent/ScintillaEditView.h
+++ b/PowerEditor/src/ScintillaComponent/ScintillaEditView.h
@@ -19,35 +19,14 @@
#include "Scintilla.h"
-#include "ScintillaRef.h"
#include "SciLexer.h"
#include "Buffer.h"
#include "colors.h"
#include "UserDefineDialog.h"
-#include "rgba_icons.h"
-
-
-#ifndef WM_MOUSEWHEEL
-#define WM_MOUSEWHEEL 0x020A
-#endif //WM_MOUSEWHEEL
-
-#ifndef WM_MOUSEHWHEEL
-#define WM_MOUSEHWHEEL 0x020E
-#endif //WM_MOUSEHWHEEL
-
-#ifndef WM_APPCOMMAND
-#define WM_APPCOMMAND 0x0319
-#define APPCOMMAND_BROWSER_BACKWARD 1
-#define APPCOMMAND_BROWSER_FORWARD 2
-#define FAPPCOMMAND_MASK 0xF000
-#define GET_APPCOMMAND_LPARAM(lParam) ((short)(HIWORD(lParam) & ~FAPPCOMMAND_MASK))
-#endif //WM_APPCOMMAND
+#include "NppConstants.h"
class NppParameters;
-#define NB_WORD_LIST 4
-#define WORD_LIST_LEN 256
-
typedef sptr_t(*SCINTILLA_FUNC) (void *, unsigned int, uptr_t, sptr_t);
typedef void * SCINTILLA_PTR;
@@ -69,11 +48,11 @@ typedef void * SCINTILLA_PTR;
#define WM_REPLACEINPROJECTS (SCINTILLA_USER + 16)
// Codepage
-const int CP_CHINESE_TRADITIONAL = 950;
-const int CP_CHINESE_SIMPLIFIED = 936;
-const int CP_JAPANESE = 932;
-const int CP_KOREAN = 949;
-const int CP_GREEK = 1253;
+inline constexpr int CP_CHINESE_TRADITIONAL = 950;
+inline constexpr int CP_CHINESE_SIMPLIFIED = 936;
+inline constexpr int CP_JAPANESE = 932;
+inline constexpr int CP_KOREAN = 949;
+inline constexpr int CP_GREEK = 1253;
//wordList
#define LIST_NONE 0
@@ -87,163 +66,14 @@ const int CP_GREEK = 1253;
#define LIST_7 128
#define LIST_8 256
+inline constexpr int NB_FOLDER_STATE = 7;
-const bool fold_expand = true;
-const bool fold_collapse = false;
-
-const int NB_FOLDER_STATE = 7;
-#define MAX_FOLD_COLLAPSE_LEVEL 8
-#define MAX_FOLD_LINES_MORE_THAN 99
-
-#define MODEVENTMASK_OFF 0
-
-enum TextCase : UCHAR
-{
- UPPERCASE,
- LOWERCASE,
- PROPERCASE_FORCE,
- PROPERCASE_BLEND,
- SENTENCECASE_FORCE,
- SENTENCECASE_BLEND,
- INVERTCASE,
- RANDOMCASE
-};
-
-enum : UCHAR { BASE_10 = 0, BASE_16 = 1, BASE_08 = 2, BASE_02 = 3, BASE_16_UPPERCASE = 4 };
-
-const int MARK_BOOKMARK = 20;
-const int MARK_HIDELINESBEGIN = 19;
-const int MARK_HIDELINESEND = 18;
+inline constexpr int MARK_BOOKMARK = 20;
+inline constexpr int MARK_HIDELINESBEGIN = 19;
+inline constexpr int MARK_HIDELINESEND = 18;
// 20 - 18 reserved for Notepad++ internal used
// 17 - 0 are free to use for plugins
-constexpr char g_ZWSP[] = "\xE2\x80\x8B";
-
-const std::vector> g_ccUniEolChars =
-{
- // C0
- {"\x00", "NUL", "U+0000"}, // U+0000 : Null
- {"\x01", "SOH", "U+0001"}, // U+0001 : Start of Heading
- {"\x02", "STX", "U+0002"}, // U+0002 : Start of Text
- {"\x03", "ETX", "U+0003"}, // U+0003 : End of Text
- {"\x04", "EOT", "U+0004"}, // U+0004 : End of Transmission
- {"\x05", "ENQ", "U+0005"}, // U+0005 : Enquiry
- {"\x06", "ACK", "U+0006"}, // U+0006 : Acknowledge
- {"\a", "BEL", "U+0007"}, // U+0007 : Bell
- {"\b", "BS", "U+0008"}, // U+0008 : Backspace
- {"\v", "VT", "U+000B"}, // U+000B : Line Tabulation
- {"\f", "FF", "U+000C"}, // U+000C : Form Feed
- {"\x0E", "SO", "U+000E"}, // U+000E : Shift Out
- {"\x0F", "SI", "U+000F"}, // U+000F : Shift In
- {"\x10", "DLE", "U+0010"}, // U+0010 : Data Link Escape
- {"\x11", "DC1", "U+0011"}, // U+0011 : Device Control One
- {"\x12", "DC2", "U+0012"}, // U+0012 : Device Control Two
- {"\x13", "DC3", "U+0013"}, // U+0013 : Device Control Three
- {"\x14", "DC4", "U+0014"}, // U+0014 : Device Control Four
- {"\x15", "NAK", "U+0015"}, // U+0015 : Negative Acknowledge
- {"\x16", "SYN", "U+0016"}, // U+0016 : Synchronous Idle
- {"\x17", "ETB", "U+0017"}, // U+0017 : End of Transmission Block
- {"\x18", "CAN", "U+0018"}, // U+0018 : Cancel
- {"\x19", "EM", "U+0019"}, // U+0019 : End of Medium
- {"\x1A", "SUB", "U+001A"}, // U+001A : Substitute
- {"\x1B", "ESC", "U+001B"}, // U+001B : Escape
- {"\x1C", "FS", "U+001C"}, // U+001C : Information Separator Four
- {"\x1D", "GS", "U+001D"}, // U+001D : Information Separator Three
- {"\x1E", "RS", "U+001E"}, // U+001E : Information Separator Two
- {"\x1F", "US", "U+001F"}, // U+001F : Information Separator One
- {"\x7F", "DEL", "U+007F"}, // U+007F : Delete
- // C1
- {"\xC2\x80", "PAD", "U+0080"}, // U+0080 : Padding Character
- {"\xC2\x81", "HOP", "U+0081"}, // U+0081 : High Octet Preset
- {"\xC2\x82", "BPH", "U+0082"}, // U+0082 : Break Permitted Here
- {"\xC2\x83", "NBH", "U+0083"}, // U+0083 : No Break Here
- {"\xC2\x84", "IND", "U+0084"}, // U+0084 : Index
- //{"\xC2\x85", "NEL", "U+0085"}, // U+0085 : Next Line
- {"\xC2\x86", "SSA", "U+0086"}, // U+0086 : Start of Selected Area
- {"\xC2\x87", "ESA", "U+0087"}, // U+0087 : End of Selected Area
- {"\xC2\x88", "HTS", "U+0088"}, // U+0088 : Character (Horizontal) Tabulation Set
- {"\xC2\x89", "HTJ", "U+0089"}, // U+0089 : Character (Horizontal) Tabulation With Justification
- {"\xC2\x8A", "VTS", "U+008A"}, // U+008A : Vertical (Line) Tabulation Set
- {"\xC2\x8B", "PLD", "U+008B"}, // U+008B : Partial Line Forward (Down)
- {"\xC2\x8C", "PLU", "U+008C"}, // U+008C : Partial Line Backward (Up)
- {"\xC2\x8D", "RI", "U+008D"}, // U+008D : Reverse Line Feed (Index)
- {"\xC2\x8E", "SS2", "U+008E"}, // U+008E : Single-Shift Two
- {"\xC2\x8F", "SS3", "U+008F"}, // U+008F : Single-Shift Three
- {"\xC2\x90", "DCS", "U+0090"}, // U+0090 : Device Control String
- {"\xC2\x91", "PU1", "U+0091"}, // U+0091 : Private Use One
- {"\xC2\x92", "PU2", "U+0092"}, // U+0092 : Private Use Two
- {"\xC2\x93", "STS", "U+0093"}, // U+0093 : Set Transmit State
- {"\xC2\x94", "CCH", "U+0094"}, // U+0094 : Cancel Character
- {"\xC2\x95", "MW", "U+0095"}, // U+0095 : Message Waiting
- {"\xC2\x96", "SPA", "U+0096"}, // U+0096 : Start of Protected Area
- {"\xC2\x97", "EPA", "U+0097"}, // U+0097 : End of Protected Area
- {"\xC2\x98", "SOS", "U+0098"}, // U+0098 : Start of String
- {"\xC2\x99", "SGCI", "U+0099"}, // U+0099 : Single Graphic Character Introducer
- {"\xC2\x9A", "SCI", "U+009A"}, // U+009A : Single Character Introducer
- {"\xC2\x9B", "CSI", "U+009B"}, // U+009B : Control Sequence Introducer
- {"\xC2\x9C", "ST", "U+009C"}, // U+009C : String Terminator
- {"\xC2\x9D", "OSC", "U+009D"}, // U+009D : Operating System Command
- {"\xC2\x9E", "PM", "U+009E"}, // U+009E : Private Message
- {"\xC2\x9F", "APC", "U+009F"}, // U+009F : Application Program Command
- // Unicode EOL
- {"\xC2\x85", "NEL", "U+0085"}, // U+0085 : Next Line
- {"\xE2\x80\xA8", "LS", "U+2028"}, // U+2028 : Line Separator
- {"\xE2\x80\xA9", "PS", "U+2029"} // U+2029 : Paragraph Separator
-};
-
-const std::vector> g_nonPrintingChars =
-{
- {"\xC2\xA0", "NBSP", "U+00A0"}, // U+00A0 : no-break space
- {"\xC2\xAD", "SHY", "U+00AD"}, // U+00AD : soft hyphen
- {"\xD8\x9C", "ALM", "U+061C"}, // U+061C : arabic letter mark
- {"\xDC\x8F", "SAM", "U+070F"}, // U+070F : syriac abbreviation mark
- {"\xE1\x9A\x80", "OSPM", "U+1680"}, // U+1680 : ogham space mark
- {"\xE1\xA0\x8E", "MVS", "U+180E"}, // U+180E : mongolian vowel separator
- {"\xE2\x80\x80", "NQSP", "U+2000"}, // U+2000 : en quad
- {"\xE2\x80\x81", "MQSP", "U+2001"}, // U+2001 : em quad
- {"\xE2\x80\x82", "ENSP", "U+2002"}, // U+2002 : en space
- {"\xE2\x80\x83", "EMSP", "U+2003"}, // U+2003 : em space
- {"\xE2\x80\x84", "3/MSP", "U+2004"}, // U+2004 : three-per-em space
- {"\xE2\x80\x85", "4/MSP", "U+2005"}, // U+2005 : four-per-em space
- {"\xE2\x80\x86", "6/MSP", "U+2006"}, // U+2006 : six-per-em space
- {"\xE2\x80\x87", "FSP", "U+2007"}, // U+2007 : figure space
- {"\xE2\x80\x88", "PSP", "U+2008"}, // U+2008 : punctuation space
- {"\xE2\x80\x89", "THSP", "U+2009"}, // U+2009 : thin space
- {"\xE2\x80\x8A", "HSP", "U+200A"}, // U+200A : hair space
- {"\xE2\x80\x8B", "ZWSP", "U+200B"}, // U+200B : zero-width space
- {"\xE2\x80\x8C", "ZWNJ", "U+200C"}, // U+200C : zero-width non-joiner
- {"\xE2\x80\x8D", "ZWJ", "U+200D"}, // U+200D : zero-width joiner
- {"\xE2\x80\x8E", "LRM", "U+200E"}, // U+200E : left-to-right mark
- {"\xE2\x80\x8F", "RLM", "U+200F"}, // U+200F : right-to-left mark
- {"\xE2\x80\xAA", "LRE", "U+202A"}, // U+202A : left-to-right embedding
- {"\xE2\x80\xAB", "RLE", "U+202B"}, // U+202B : right-to-left embedding
- {"\xE2\x80\xAC", "PDF", "U+202C"}, // U+202C : pop directional formatting
- {"\xE2\x80\xAD", "LRO", "U+202D"}, // U+202D : left-to-right override
- {"\xE2\x80\xAE", "RLO", "U+202E"}, // U+202E : right-to-left override
- {"\xE2\x80\xAF", "NNBSP", "U+202F"}, // U+202F : narrow no-break space
- {"\xE2\x81\x9F", "MMSP", "U+205F"}, // U+205F : medium mathematical space
- {"\xE2\x81\xA0", "WJ", "U+2060"}, // U+2060 : word joiner
- {"\xE2\x81\xA1", "(FA)", "U+2061"}, // U+2061 : function application
- {"\xE2\x81\xA2", "(IT)", "U+2062"}, // U+2062 : invisible times
- {"\xE2\x81\xA3", "(IS)", "U+2063"}, // U+2063 : invisible separator
- {"\xE2\x81\xA4", "(IP)", "U+2064"}, // U+2064 : invisible plus
- {"\xE2\x81\xA6", "LRI", "U+2066"}, // U+2066 : left-to-right isolate
- {"\xE2\x81\xA7", "RLI", "U+2067"}, // U+2067 : right-to-left isolate
- {"\xE2\x81\xA8", "FSI", "U+2068"}, // U+2068 : first strong isolate
- {"\xE2\x81\xA9", "PDI", "U+2069"}, // U+2069 : pop directional isolate
- {"\xE2\x81\xAA", "ISS", "U+206A"}, // U+206A : inhibit symmetric swapping
- {"\xE2\x81\xAB", "ASS", "U+206B"}, // U+206B : activate symmetric swapping
- {"\xE2\x81\xAC", "IAFS", "U+206C"}, // U+206C : inhibit arabic form shaping
- {"\xE2\x81\xAD", "AAFS", "U+206D"}, // U+206D : activate arabic form shaping
- {"\xE2\x81\xAE", "NADS", "U+206E"}, // U+206E : national digit shapes
- {"\xE2\x81\xAF", "NODS", "U+206F"}, // U+206F : nominal digit shapes
- {"\xE3\x80\x80", "IDSP", "U+3000"}, // U+3000 : ideographic space
- {"\xEF\xBB\xBF", "ZWNBSP", "U+FEFF"}, // U+FEFF : zero-width no-break space
- {"\xEF\xBF\xB9", "IAA", "U+FFF9"}, // U+FFF9 : interlinear annotation anchor
- {"\xEF\xBF\xBA", "IAS", "U+FFFA"}, // U+FFFA : interlinear annotation separator
- {"\xEF\xBF\xBB", "IAT", "U+FFFB"} // U+FFFB : interlinear annotation terminator
-};
-
size_t getNbDigits(size_t aNum, size_t base);
template
@@ -349,19 +179,17 @@ T* variedFormatNumber2String(T* str, size_t strLen, size_t number, size_t base,
typedef LRESULT (WINAPI *CallWindowProcFunc) (WNDPROC,HWND,UINT,WPARAM,LPARAM);
-const bool L2R = true;
-const bool R2L = false;
-
struct ColumnModeInfo {
intptr_t _selLpos = 0;
intptr_t _selRpos = 0;
intptr_t _order = -1; // 0 based index
- bool _direction = L2R; // L2R or R2L
+ bool _isDirectionL2R = true;
intptr_t _nbVirtualAnchorSpc = 0;
intptr_t _nbVirtualCaretSpc = 0;
- ColumnModeInfo(intptr_t lPos, intptr_t rPos, intptr_t order, bool dir = L2R, intptr_t vAnchorNbSpc = 0, intptr_t vCaretNbSpc = 0)
- : _selLpos(lPos), _selRpos(rPos), _order(order), _direction(dir), _nbVirtualAnchorSpc(vAnchorNbSpc), _nbVirtualCaretSpc(vCaretNbSpc) {}
+ ColumnModeInfo(intptr_t lPos, intptr_t rPos, intptr_t order, bool isL2R = true, intptr_t vAnchorNbSpc = 0, intptr_t vCaretNbSpc = 0)
+ : _selLpos(lPos), _selRpos(rPos), _order(order), _isDirectionL2R(isL2R), _nbVirtualAnchorSpc(vAnchorNbSpc), _nbVirtualCaretSpc(vCaretNbSpc)
+ {}
bool isValid() const {
return (_order >= 0 && _selLpos >= 0 && _selRpos >= 0 && _selLpos <= _selRpos);
diff --git a/PowerEditor/src/ScintillaComponent/ScintillaRef.h b/PowerEditor/src/ScintillaComponent/ScintillaRef.h
deleted file mode 100644
index 98b94ea4f..000000000
--- a/PowerEditor/src/ScintillaComponent/ScintillaRef.h
+++ /dev/null
@@ -1,23 +0,0 @@
-// This file is part of Notepad++ project
-// Copyright (C)2021 Don HO
-
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// at your option any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program. If not, see .
-
-
-#pragma once
-
-enum changeHistoryState { disable = 0, margin = 1, indicator = 2, marginIndicator = 3 };
-enum folderStyle {FOLDER_TYPE, FOLDER_STYLE_SIMPLE, FOLDER_STYLE_ARROW, FOLDER_STYLE_CIRCLE, FOLDER_STYLE_BOX, FOLDER_STYLE_NONE};
-enum lineWrapMethod {LINEWRAP_DEFAULT, LINEWRAP_ALIGNED, LINEWRAP_INDENT};
-enum lineHiliteMode {LINEHILITE_NONE, LINEHILITE_HILITE, LINEHILITE_FRAME};
diff --git a/PowerEditor/src/ScintillaComponent/columnEditor.cpp b/PowerEditor/src/ScintillaComponent/columnEditor.cpp
index fb1408b87..30682ed6c 100644
--- a/PowerEditor/src/ScintillaComponent/columnEditor.cpp
+++ b/PowerEditor/src/ScintillaComponent/columnEditor.cpp
@@ -19,6 +19,7 @@
//#include
#include "columnEditor.h"
#include "ScintillaEditView.h"
+#include "NppConstants.h"
using namespace std;
diff --git a/PowerEditor/visual.net/notepadPlus.vcxproj b/PowerEditor/visual.net/notepadPlus.vcxproj
index 4790f1f73..e8c6471be 100755
--- a/PowerEditor/visual.net/notepadPlus.vcxproj
+++ b/PowerEditor/visual.net/notepadPlus.vcxproj
@@ -261,7 +261,6 @@
-