mirror of
https://github.com/notepad-plus-plus/notepad-plus-plus.git
synced 2025-07-28 08:14:18 +02:00
Code enhancement: remove unnecessary hidden lines separator marker
Let Scintilla manage hidden lines separator and free marker 17 for plugins use. Fix #12109, close #13223
This commit is contained in:
parent
399a8f3020
commit
5251d8477a
@ -227,7 +227,7 @@ void ScintillaEditView::init(HINSTANCE hInst, HWND hPere)
|
|||||||
execute(SCI_SETMARGINMASKN, _SC_MARGE_FOLDER, SC_MASK_FOLDERS);
|
execute(SCI_SETMARGINMASKN, _SC_MARGE_FOLDER, SC_MASK_FOLDERS);
|
||||||
showMargin(_SC_MARGE_FOLDER, true);
|
showMargin(_SC_MARGE_FOLDER, true);
|
||||||
|
|
||||||
execute(SCI_SETMARGINMASKN, _SC_MARGE_SYMBOL, (1 << MARK_BOOKMARK) | (1 << MARK_HIDELINESBEGIN) | (1 << MARK_HIDELINESEND) | (1 << MARK_HIDELINESUNDERLINE));
|
execute(SCI_SETMARGINMASKN, _SC_MARGE_SYMBOL, (1 << MARK_BOOKMARK) | (1 << MARK_HIDELINESBEGIN) | (1 << MARK_HIDELINESEND));
|
||||||
|
|
||||||
execute(SCI_SETMARGINMASKN, _SC_MARGE_CHANGEHISTORY, (1 << SC_MARKNUM_HISTORY_REVERTED_TO_ORIGIN) | (1 << SC_MARKNUM_HISTORY_SAVED) | (1 << SC_MARKNUM_HISTORY_MODIFIED) | (1 << SC_MARKNUM_HISTORY_REVERTED_TO_MODIFIED));
|
execute(SCI_SETMARGINMASKN, _SC_MARGE_CHANGEHISTORY, (1 << SC_MARKNUM_HISTORY_REVERTED_TO_ORIGIN) | (1 << SC_MARKNUM_HISTORY_SAVED) | (1 << SC_MARKNUM_HISTORY_MODIFIED) | (1 << SC_MARKNUM_HISTORY_REVERTED_TO_MODIFIED));
|
||||||
COLORREF modifiedColor = RGB(255, 128, 0);
|
COLORREF modifiedColor = RGB(255, 128, 0);
|
||||||
@ -241,8 +241,9 @@ void ScintillaEditView::init(HINSTANCE hInst, HWND hPere)
|
|||||||
|
|
||||||
execute(SCI_MARKERSETALPHA, MARK_BOOKMARK, 70);
|
execute(SCI_MARKERSETALPHA, MARK_BOOKMARK, 70);
|
||||||
|
|
||||||
execute(SCI_MARKERDEFINE, MARK_HIDELINESUNDERLINE, SC_MARK_UNDERLINE);
|
const COLORREF hiddenLinesGreen = RGB(0x77, 0xCC, 0x77);
|
||||||
execute(SCI_MARKERSETBACK, MARK_HIDELINESUNDERLINE, 0x77CC77);
|
long hiddenLinesGreenWithAlpha = hiddenLinesGreen | 0xFF000000;
|
||||||
|
execute(SCI_SETELEMENTCOLOUR, SC_ELEMENT_HIDDEN_LINE, hiddenLinesGreenWithAlpha);
|
||||||
|
|
||||||
if (NppParameters::getInstance()._dpiManager.scaleX(100) >= 150)
|
if (NppParameters::getInstance()._dpiManager.scaleX(100) >= 150)
|
||||||
{
|
{
|
||||||
@ -3521,8 +3522,8 @@ void ScintillaEditView::hideLines()
|
|||||||
auto removeMarker = [this, &scope, &recentMarkerWasOpen](size_t line)
|
auto removeMarker = [this, &scope, &recentMarkerWasOpen](size_t line)
|
||||||
{
|
{
|
||||||
auto state = execute(SCI_MARKERGET, line);
|
auto state = execute(SCI_MARKERGET, line);
|
||||||
bool closePresent = ((state & (1 << MARK_HIDELINESEND)) != 0);
|
bool closePresent = (state & (1 << MARK_HIDELINESEND)) != 0;
|
||||||
bool openPresent = ((state & (1 << MARK_HIDELINESBEGIN | 1 << MARK_HIDELINESUNDERLINE)) != 0);
|
bool openPresent = (state & (1 << MARK_HIDELINESBEGIN)) != 0;
|
||||||
|
|
||||||
if (closePresent)
|
if (closePresent)
|
||||||
{
|
{
|
||||||
@ -3534,7 +3535,6 @@ void ScintillaEditView::hideLines()
|
|||||||
if (openPresent)
|
if (openPresent)
|
||||||
{
|
{
|
||||||
execute(SCI_MARKERDELETE, line, MARK_HIDELINESBEGIN);
|
execute(SCI_MARKERDELETE, line, MARK_HIDELINESBEGIN);
|
||||||
execute(SCI_MARKERDELETE, line, MARK_HIDELINESUNDERLINE);
|
|
||||||
recentMarkerWasOpen = true;
|
recentMarkerWasOpen = true;
|
||||||
++scope;
|
++scope;
|
||||||
}
|
}
|
||||||
@ -3574,7 +3574,6 @@ void ScintillaEditView::hideLines()
|
|||||||
}
|
}
|
||||||
|
|
||||||
execute(SCI_MARKERADD, startMarker, MARK_HIDELINESBEGIN);
|
execute(SCI_MARKERADD, startMarker, MARK_HIDELINESBEGIN);
|
||||||
execute(SCI_MARKERADD, startMarker, MARK_HIDELINESUNDERLINE);
|
|
||||||
execute(SCI_MARKERADD, endMarker, MARK_HIDELINESEND);
|
execute(SCI_MARKERADD, endMarker, MARK_HIDELINESEND);
|
||||||
|
|
||||||
_currentBuffer->setHideLineChanged(true, startMarker);
|
_currentBuffer->setHideLineChanged(true, startMarker);
|
||||||
@ -3583,8 +3582,8 @@ void ScintillaEditView::hideLines()
|
|||||||
bool ScintillaEditView::markerMarginClick(intptr_t lineNumber)
|
bool ScintillaEditView::markerMarginClick(intptr_t lineNumber)
|
||||||
{
|
{
|
||||||
auto state = execute(SCI_MARKERGET, lineNumber);
|
auto state = execute(SCI_MARKERGET, lineNumber);
|
||||||
bool openPresent = ((state & (1 << MARK_HIDELINESBEGIN | 1 << MARK_HIDELINESUNDERLINE)) != 0);
|
bool openPresent = (state & (1 << MARK_HIDELINESBEGIN)) != 0;
|
||||||
bool closePresent = ((state & (1 << MARK_HIDELINESEND)) != 0);
|
bool closePresent = (state & (1 << MARK_HIDELINESEND)) != 0;
|
||||||
|
|
||||||
if (!openPresent && !closePresent)
|
if (!openPresent && !closePresent)
|
||||||
return false;
|
return false;
|
||||||
@ -3601,7 +3600,7 @@ bool ScintillaEditView::markerMarginClick(intptr_t lineNumber)
|
|||||||
for (lineNumber--; lineNumber >= 0 && !openPresent; lineNumber--)
|
for (lineNumber--; lineNumber >= 0 && !openPresent; lineNumber--)
|
||||||
{
|
{
|
||||||
state = execute(SCI_MARKERGET, lineNumber);
|
state = execute(SCI_MARKERGET, lineNumber);
|
||||||
openPresent = ((state & (1 << MARK_HIDELINESBEGIN | 1 << MARK_HIDELINESUNDERLINE)) != 0);
|
openPresent = (state & (1 << MARK_HIDELINESBEGIN)) != 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (openPresent)
|
if (openPresent)
|
||||||
@ -3670,7 +3669,7 @@ void ScintillaEditView::runMarkers(bool doHide, size_t searchStart, bool endOfDo
|
|||||||
}
|
}
|
||||||
isInSection = false;
|
isInSection = false;
|
||||||
}
|
}
|
||||||
if ( ((state & (1 << MARK_HIDELINESBEGIN | 1 << MARK_HIDELINESUNDERLINE)) != 0) )
|
if ((state & (1 << MARK_HIDELINESBEGIN)) != 0)
|
||||||
{
|
{
|
||||||
isInSection = true;
|
isInSection = true;
|
||||||
startHiding = i+1;
|
startHiding = i+1;
|
||||||
@ -3716,12 +3715,11 @@ void ScintillaEditView::runMarkers(bool doHide, size_t searchStart, bool endOfDo
|
|||||||
isInSection = false;
|
isInSection = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ( ((state & (1 << MARK_HIDELINESBEGIN | 1 << MARK_HIDELINESUNDERLINE)) != 0) )
|
if ((state & (1 << MARK_HIDELINESBEGIN)) != 0)
|
||||||
{
|
{
|
||||||
if (doDelete)
|
if (doDelete)
|
||||||
{
|
{
|
||||||
execute(SCI_MARKERDELETE, i, MARK_HIDELINESBEGIN);
|
execute(SCI_MARKERDELETE, i, MARK_HIDELINESBEGIN);
|
||||||
execute(SCI_MARKERDELETE, i, MARK_HIDELINESUNDERLINE);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -116,9 +116,8 @@ const UCHAR BASE_02 = 0x03; // Bin
|
|||||||
const int MARK_BOOKMARK = 20;
|
const int MARK_BOOKMARK = 20;
|
||||||
const int MARK_HIDELINESBEGIN = 19;
|
const int MARK_HIDELINESBEGIN = 19;
|
||||||
const int MARK_HIDELINESEND = 18;
|
const int MARK_HIDELINESEND = 18;
|
||||||
const int MARK_HIDELINESUNDERLINE = 17;
|
// 20 - 18 reserved for Notepad++ internal used
|
||||||
// 20 - 17 reserved for Notepad++ internal used
|
// 17 - 0 are free to use for plugins
|
||||||
// 16 - 0 are free to use for plugins
|
|
||||||
|
|
||||||
const std::vector<std::vector<const char*>> g_nonPrintingChars =
|
const std::vector<std::vector<const char*>> g_nonPrintingChars =
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user