mirror of
https://github.com/rizonesoft/Notepad3.git
synced 2026-06-14 21:09:05 +08:00
+ fix: delete marker of (comletely) deleted lines
This commit is contained in:
parent
d042eb284f
commit
85c0fefafe
@ -370,9 +370,9 @@
|
||||
#define CMD_SCROLLDOWN 20004
|
||||
#define CMD_CTRLLEFT 20005
|
||||
#define CMD_CTRLRIGHT 20006
|
||||
//#define CMD_DELETEBACK 20007
|
||||
#define CMD_DELETEBACK 20007
|
||||
#define CMD_CTRLBACK 20008
|
||||
//#define CMD_CLEAR 20009
|
||||
#define CMD_CLEAR 20009
|
||||
#define CMD_CTRLDEL 20010
|
||||
#define CMD_CTRLTAB 20011
|
||||
#define CMD_RECODEDEFAULT 20012
|
||||
|
||||
21
src/Edit.c
21
src/Edit.c
@ -7816,6 +7816,27 @@ void EditBookMarkLineRange(HWND hwnd)
|
||||
}
|
||||
|
||||
|
||||
//=============================================================================
|
||||
//
|
||||
// EditDeleteMarkerInSelection()
|
||||
//
|
||||
void EditDeleteMarkerInSelection()
|
||||
{
|
||||
if (Sci_IsStreamSelection() && !SciCall_IsSelectionEmpty())
|
||||
{
|
||||
DocPos const posSelBeg = SciCall_GetSelectionStart();
|
||||
DocPos const posSelEnd = SciCall_GetSelectionEnd();
|
||||
DocLn const lnBeg = SciCall_LineFromPosition(posSelBeg);
|
||||
DocLn const lnEnd = SciCall_LineFromPosition(posSelEnd);
|
||||
DocLn const lnDelBeg = (posSelBeg <= SciCall_PositionFromLine(lnBeg)) ? lnBeg : lnBeg + 1;
|
||||
DocLn const lnDelEnd = (posSelEnd > SciCall_GetLineEndPosition(lnEnd)) ? lnEnd : lnEnd - 1;
|
||||
for (DocLn ln = lnDelBeg; ln <= lnDelEnd; ++ln) {
|
||||
SciCall_MarkerDelete(ln, -1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//=============================================================================
|
||||
//
|
||||
// _HighlightIfBrace()
|
||||
|
||||
@ -130,6 +130,7 @@ void EditBookmarkToggle(HWND hwnd, const DocLn ln, const int modifiers);
|
||||
void EditMarkAllOccurrences(HWND hwnd, bool bForceClear);
|
||||
void EditFoldMarkedLineRange(HWND hwnd, bool bHideLines);
|
||||
void EditBookMarkLineRange(HWND hwnd);
|
||||
void EditDeleteMarkerInSelection();
|
||||
void EditSelectionMultiSelectAll();
|
||||
void EditSelectionMultiSelectAllEx(EDITFINDREPLACE edFndRpl);
|
||||
|
||||
|
||||
@ -4174,6 +4174,7 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
if (!Settings2.NoCutLineOnEmptySelection) {
|
||||
_BEGIN_UNDO_ACTION_;
|
||||
SciCall_MarkerDelete(Sci_GetCurrentLineNumber(), -1);
|
||||
SciCall_LineCut();
|
||||
_END_UNDO_ACTION_;
|
||||
}
|
||||
@ -4193,6 +4194,7 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam)
|
||||
s_bLastCopyFromMe = true;
|
||||
}
|
||||
_BEGIN_UNDO_ACTION_;
|
||||
SciCall_MarkerDelete(Sci_GetCurrentLineNumber(), -1);
|
||||
SciCall_LineCut();
|
||||
_END_UNDO_ACTION_;
|
||||
}
|
||||
@ -4371,6 +4373,7 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam)
|
||||
case IDM_EDIT_DELETELINE:
|
||||
{
|
||||
_BEGIN_UNDO_ACTION_;
|
||||
SciCall_MarkerDelete(Sci_GetCurrentLineNumber(), -1);
|
||||
SciCall_LineDelete();
|
||||
_END_UNDO_ACTION_;
|
||||
}
|
||||
@ -4429,11 +4432,14 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam)
|
||||
}
|
||||
break;
|
||||
|
||||
//case CMD_DELETEBACK:
|
||||
// ///~_BEGIN_UNDO_ACTION_;
|
||||
// SciCall_DeleteBack();
|
||||
// ///~_END_UNDO_ACTION_;
|
||||
// break;
|
||||
case CMD_DELETEBACK:
|
||||
{
|
||||
///~_BEGIN_UNDO_ACTION_;
|
||||
EditDeleteMarkerInSelection();
|
||||
SciCall_DeleteBack();
|
||||
///~_END_UNDO_ACTION_;
|
||||
}
|
||||
break;
|
||||
|
||||
case CMD_VK_INSERT:
|
||||
SciCall_EditToggleOverType();
|
||||
@ -5863,9 +5869,10 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam)
|
||||
break;
|
||||
|
||||
|
||||
case CMD_CLEAR:
|
||||
case IDM_EDIT_CLEAR:
|
||||
//case CMD_CLEAR:
|
||||
///~_BEGIN_UNDO_ACTION_;
|
||||
EditDeleteMarkerInSelection();
|
||||
SciCall_Clear();
|
||||
///~_END_UNDO_ACTION_;
|
||||
break;
|
||||
@ -5971,10 +5978,12 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam)
|
||||
_END_UNDO_ACTION_;
|
||||
}
|
||||
else {
|
||||
if (iStartPos != iEndPos)
|
||||
if (iStartPos != iEndPos) {
|
||||
SciCall_DelWordRight();
|
||||
else // iStartPos == iEndPos
|
||||
} else { // iStartPos == iEndPos
|
||||
SciCall_MarkerDelete(Sci_GetCurrentLineNumber(), -1);
|
||||
SciCall_LineDelete();
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
@ -7679,11 +7688,11 @@ LRESULT MsgNotify(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
case TBN_QUERYDELETE:
|
||||
case TBN_QUERYINSERT:
|
||||
// (!) must exist and return true
|
||||
GUARD_RETURN(!0);
|
||||
GUARD_RETURN(TRUE);
|
||||
|
||||
case TBN_BEGINADJUST:
|
||||
s_tb_reset_already = false;
|
||||
GUARD_RETURN(0);
|
||||
GUARD_RETURN(FALSE);
|
||||
|
||||
case TBN_GETBUTTONINFO:
|
||||
{
|
||||
@ -7693,10 +7702,10 @@ LRESULT MsgNotify(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
GetLngString(s_tbbMainWnd[((LPTBNOTIFY)lParam)->iItem].idCommand, tch, COUNTOF(tch));
|
||||
StringCchCopyN(((LPTBNOTIFY)lParam)->pszText, ((LPTBNOTIFY)lParam)->cchText, tch, ((LPTBNOTIFY)lParam)->cchText);
|
||||
CopyMemory(&((LPTBNOTIFY)lParam)->tbButton, &s_tbbMainWnd[((LPTBNOTIFY)lParam)->iItem], sizeof(TBBUTTON));
|
||||
GUARD_RETURN(!0);
|
||||
GUARD_RETURN(TRUE);
|
||||
}
|
||||
}
|
||||
GUARD_RETURN(0);
|
||||
GUARD_RETURN(FALSE);
|
||||
|
||||
case TBN_RESET:
|
||||
{
|
||||
@ -7716,14 +7725,14 @@ LRESULT MsgNotify(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
}
|
||||
s_tb_reset_already = !s_tb_reset_already;
|
||||
}
|
||||
GUARD_RETURN(0);
|
||||
GUARD_RETURN(FALSE);
|
||||
|
||||
case TBN_ENDADJUST:
|
||||
UpdateToolbar();
|
||||
GUARD_RETURN(!0);
|
||||
GUARD_RETURN(TRUE);
|
||||
|
||||
default:
|
||||
GUARD_RETURN(0);
|
||||
GUARD_RETURN(FALSE);
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
@ -284,11 +284,11 @@ BEGIN
|
||||
VK_ADD, IDM_VIEW_ZOOMIN, VIRTKEY, CONTROL, NOINVERT
|
||||
//~VK_ADD, CMD_INCLINELIMIT, VIRTKEY, ALT, NOINVERT /// ALT+[+] is used for universal Unicode input
|
||||
VK_ADD, CMD_INCREASENUM, VIRTKEY, CONTROL, ALT, NOINVERT
|
||||
//~VK_BACK, CMD_DELETEBACK, VIRTKEY, NOINVERT
|
||||
VK_BACK, CMD_DELETEBACK, VIRTKEY, NOINVERT
|
||||
VK_BACK, CMD_CTRLBACK, VIRTKEY, CONTROL, NOINVERT
|
||||
VK_BACK, IDM_EDIT_UNDO, VIRTKEY, ALT, NOINVERT
|
||||
VK_BACK, IDM_EDIT_DELETELINELEFT, VIRTKEY, SHIFT, CONTROL, NOINVERT
|
||||
//~VK_DELETE, CMD_CLEAR, VIRTKEY, NOINVERT
|
||||
VK_DELETE, CMD_CLEAR, VIRTKEY, NOINVERT
|
||||
VK_DELETE, CMD_CTRLDEL, VIRTKEY, CONTROL, NOINVERT
|
||||
VK_DELETE, IDM_EDIT_CUT, VIRTKEY, SHIFT, NOINVERT
|
||||
VK_DELETE, IDM_EDIT_DELETELINERIGHT, VIRTKEY, SHIFT, CONTROL, NOINVERT
|
||||
|
||||
@ -233,6 +233,7 @@ DeclareSciCallV0(DelWordRight, DELWORDRIGHT)
|
||||
DeclareSciCallV0(DelLineLeft, DELLINELEFT)
|
||||
DeclareSciCallV0(DelLineRight, DELLINERIGHT)
|
||||
DeclareSciCallV0(LineDelete, LINEDELETE)
|
||||
DeclareSciCallV0(LineCut, LINECUT)
|
||||
DeclareSciCallV1(LinesSplit, LINESSPLIT, int, pix)
|
||||
DeclareSciCallV0(LinesJoin, LINESJOIN)
|
||||
DeclareSciCallV0(EditToggleOverType, EDITTOGGLEOVERTYPE)
|
||||
@ -248,7 +249,6 @@ DeclareSciCallR2(FindText, FINDTEXT, DocPos, int, flags, struct Sci_TextToFind*,
|
||||
|
||||
// Operations
|
||||
DeclareSciCallV0(Cut, CUT)
|
||||
DeclareSciCallV0(LineCut, LINECUT)
|
||||
DeclareSciCallV0(Copy, COPY)
|
||||
DeclareSciCallV0(Paste, PASTE)
|
||||
DeclareSciCallV0(Clear, CLEAR)
|
||||
@ -593,6 +593,7 @@ DeclareSciCallR0(IsSelectionRectangle, SELECTIONISRECTANGLE, bool)
|
||||
#define Sci_IsDocEmpty() (SciCall_GetTextLength() <= 0LL)
|
||||
|
||||
#define Sci_IsThinSelection() (SciCall_GetSelectionMode() == SC_SEL_THIN)
|
||||
#define Sci_IsStreamSelection() (SciCall_GetSelectionMode() == SC_SEL_STREAM)
|
||||
#define Sci_IsMultiSelection() ((SciCall_GetSelections() > 1) && !SciCall_IsSelectionRectangle())
|
||||
#define Sci_IsMultiOrRectangleSelection() ((SciCall_GetSelections() > 1) || SciCall_IsSelectionRectangle())
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user