mirror of
https://github.com/rizonesoft/Notepad3.git
synced 2026-06-14 21:09:05 +08:00
Merge pull request #1556 from RaiKoHoff/DevNewFeatures
New options to split undo typing sequence collection
This commit is contained in:
commit
7bf66333af
@ -43,6 +43,7 @@ SettingsVersion=4
|
||||
;UpdateDelayMarkAllOccurrences=50
|
||||
;CurrentLineHorizontalSlop=40
|
||||
;CurrentLineVerticalSlop=5
|
||||
;UndoRedoSplitTimeout=0
|
||||
;AdministrationTool.exe=
|
||||
;DevDebugMode=0
|
||||
;AnalyzeReliableConfidenceLevel=67
|
||||
|
||||
@ -1 +1 @@
|
||||
2597
|
||||
2598
|
||||
|
||||
@ -616,6 +616,7 @@
|
||||
#define IDM_VIEW_TOGGLETB 40468
|
||||
#define IDM_VIEW_MUTE_MESSAGEBEEP 40469
|
||||
#define IDM_VIEW_SHOW_HYPLNK_CALLTIP 40470
|
||||
#define IDM_VIEW_SPLIT_UNDOTYPSEQ_LNBRK 40471
|
||||
|
||||
#define IDM_SET_RENDER_TECH_DEFAULT 40500
|
||||
#define IDM_SET_RENDER_TECH_D2D 40501
|
||||
|
||||
@ -267,6 +267,8 @@ BEGIN
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Selektiere &Wort oder Zeile\tCtrl+Spc", IDM_EDIT_SELECTWORD
|
||||
MENUITEM "Multiselektion &aller Fundstellen\tCtrl+Shift+Spc", IDM_EDIT_SELECTALLMATCHES
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Neue Undo &Tippsequenz bei Zeilenumbruch", IDM_VIEW_SPLIT_UNDOTYPSEQ_LNBRK
|
||||
END
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "Lesezeichen"
|
||||
|
||||
@ -259,14 +259,16 @@ BEGIN
|
||||
MENUITEM "Increase Number\tCtrl+Alt+NK+", CMD_INCREASENUM
|
||||
MENUITEM "Decrease Number\tCtrl+Alt+NK-", CMD_DECREASENUM
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Find Matching Brace\tCtrl+B", IDM_EDIT_FINDMATCHINGBRACE
|
||||
MENUITEM "Select To &Matching Brace\tCtrl+Shift+B", IDM_EDIT_SELTOMATCHINGBRACE
|
||||
MENUITEM "&Find Matching Brace\tCtrl+B", IDM_EDIT_FINDMATCHINGBRACE
|
||||
MENUITEM "Select To &Matching Brace\tCtrl+Shift+B", IDM_EDIT_SELTOMATCHINGBRACE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Select To &Next\tCtrl+Alt+F2", IDM_EDIT_SELTONEXT
|
||||
MENUITEM "Select To &Previous\tCtrl+Alt+Shift+F2", IDM_EDIT_SELTOPREV
|
||||
MENUITEM "Select To &Next\tCtrl+Alt+F2", IDM_EDIT_SELTONEXT
|
||||
MENUITEM "Select To &Previous\tCtrl+Alt+Shift+F2", IDM_EDIT_SELTOPREV
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Select &Word or Lines\tCtrl+Spc", IDM_EDIT_SELECTWORD
|
||||
MENUITEM "Multi-Select &All Matches\tCtrl+Shift+Spc", IDM_EDIT_SELECTALLMATCHES
|
||||
MENUITEM "Select &Word or Lines\tCtrl+Spc", IDM_EDIT_SELECTWORD
|
||||
MENUITEM "Multi-Select &All Matches\tCtrl+Shift+Spc", IDM_EDIT_SELECTALLMATCHES
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Split Undo &Typing Sequence on Line Breaks", IDM_VIEW_SPLIT_UNDOTYPSEQ_LNBRK
|
||||
END
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "Boo&kmarks"
|
||||
|
||||
@ -259,14 +259,16 @@ BEGIN
|
||||
MENUITEM "Increase Number\tCtrl+Alt+NK+", CMD_INCREASENUM
|
||||
MENUITEM "Decrease Number\tCtrl+Alt+NK-", CMD_DECREASENUM
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Find Matching Brace\tCtrl+B", IDM_EDIT_FINDMATCHINGBRACE
|
||||
MENUITEM "Select To &Matching Brace\tCtrl+Shift+B", IDM_EDIT_SELTOMATCHINGBRACE
|
||||
MENUITEM "&Find Matching Brace\tCtrl+B", IDM_EDIT_FINDMATCHINGBRACE
|
||||
MENUITEM "Select To &Matching Brace\tCtrl+Shift+B", IDM_EDIT_SELTOMATCHINGBRACE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Select To &Next\tCtrl+Alt+F2", IDM_EDIT_SELTONEXT
|
||||
MENUITEM "Select To &Previous\tCtrl+Alt+Shift+F2", IDM_EDIT_SELTOPREV
|
||||
MENUITEM "Select To &Next\tCtrl+Alt+F2", IDM_EDIT_SELTONEXT
|
||||
MENUITEM "Select To &Previous\tCtrl+Alt+Shift+F2", IDM_EDIT_SELTOPREV
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Select &Word or Lines\tCtrl+Spc", IDM_EDIT_SELECTWORD
|
||||
MENUITEM "Multi-Select &All Matches\tCtrl+Shift+Spc", IDM_EDIT_SELECTALLMATCHES
|
||||
MENUITEM "Select &Word or Lines\tCtrl+Spc", IDM_EDIT_SELECTWORD
|
||||
MENUITEM "Multi-Select &All Matches\tCtrl+Shift+Spc", IDM_EDIT_SELECTALLMATCHES
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Split Undo &Typing Sequence on Line Breaks", IDM_VIEW_SPLIT_UNDOTYPSEQ_LNBRK
|
||||
END
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "Boo&kmarks"
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
<assemblyIdentity
|
||||
name="Notepad3"
|
||||
processorArchitecture="*"
|
||||
version="5.19.825.2597"
|
||||
version="5.19.827.2598"
|
||||
type="win32"
|
||||
/>
|
||||
<description>Notepad3 BETA</description>
|
||||
|
||||
@ -630,6 +630,12 @@ void LoadSettings()
|
||||
Defaults2.AutoReloadTimeout), 250UL, 300000UL);
|
||||
FileWatching.AutoReloadTimeout = Settings2.AutoReloadTimeout;
|
||||
|
||||
Defaults2.UndoRedoSplitTimeout = 0UL;
|
||||
Settings2.UndoRedoSplitTimeout = IniSectionGetInt(Settings2_Section, L"UndoRedoSplitTimeout", Defaults2.UndoRedoSplitTimeout);
|
||||
if (Settings2.UndoRedoSplitTimeout != 0) {
|
||||
Settings2.UndoRedoSplitTimeout = clampul(Settings2.UndoRedoSplitTimeout, 100UL, 86400000UL); // max: 24h
|
||||
}
|
||||
|
||||
// deprecated
|
||||
Defaults.RenderingTechnology = IniSectionGetInt(Settings2_Section, L"SciDirectWriteTech", -111);
|
||||
if ((Defaults.RenderingTechnology != -111) && Settings.SaveSettings) {
|
||||
@ -906,6 +912,7 @@ void LoadSettings()
|
||||
GET_INT_VALUE_FROM_INISECTION(RenderingTechnology, Defaults.RenderingTechnology, 0, 3); // set before
|
||||
GET_INT_VALUE_FROM_INISECTION(Bidirectional, Defaults.Bidirectional, 0, 2); // set before
|
||||
GET_BOOL_VALUE_FROM_INISECTION(MuteMessageBeep, false);
|
||||
GET_BOOL_VALUE_FROM_INISECTION(SplitUndoTypingSeqOnLnBreak, false);
|
||||
|
||||
///~Settings2.IMEInteraction = clampi(IniSectionGetInt(Settings_Section, L"IMEInteraction", Settings2.IMEInteraction), SC_IME_WINDOWED, SC_IME_INLINE);
|
||||
|
||||
@ -1375,6 +1382,7 @@ bool SaveSettings(bool bSaveSettingsNow)
|
||||
SAVE_VALUE_IF_NOT_EQ_DEFAULT(Int, RenderingTechnology);
|
||||
SAVE_VALUE_IF_NOT_EQ_DEFAULT(Int, Bidirectional);
|
||||
SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, MuteMessageBeep);
|
||||
SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, SplitUndoTypingSeqOnLnBreak);
|
||||
|
||||
///~IniSectionSetInt(Settings_Section, L"IMEInteraction", Settings2.IMEInteraction);
|
||||
|
||||
|
||||
@ -390,6 +390,7 @@ static int _UndoRedoActionMap(int token, UndoRedoSelection_t** selection);
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
static void _DelayClearZoomCallTip(int delay);
|
||||
static void _DelayUndoRedoTypingSequenceSplit(int delay);
|
||||
|
||||
#ifdef _EXTRA_DRAG_N_DROP_HANDLER_
|
||||
static CLIPFORMAT cfDrpF = CF_HDROP;
|
||||
@ -3326,6 +3327,7 @@ LRESULT MsgInitMenu(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
EnableCmd(hmenu, IDM_SET_BIDIRECTIONAL_R2L, (Settings.RenderingTechnology > 0));
|
||||
|
||||
CheckCmd(hmenu, IDM_VIEW_MUTE_MESSAGEBEEP, Settings.MuteMessageBeep);
|
||||
CheckCmd(hmenu, IDM_VIEW_SPLIT_UNDOTYPSEQ_LNBRK, Settings.SplitUndoTypingSeqOnLnBreak);
|
||||
|
||||
CheckCmd(hmenu,IDM_VIEW_NOSAVERECENT, Settings.SaveRecentFiles);
|
||||
CheckCmd(hmenu,IDM_VIEW_NOPRESERVECARET, Settings.PreserveCaretPos);
|
||||
@ -3478,6 +3480,11 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam)
|
||||
CancelCallTip();
|
||||
break;
|
||||
|
||||
case IDT_TIMER_UNDO_REDO_SPLIT:
|
||||
SciCall_BeginUndoAction();
|
||||
SciCall_EndUndoAction();
|
||||
break;
|
||||
|
||||
|
||||
case IDM_FILE_NEW:
|
||||
FileLoad(false,true,false,Settings.SkipUnicodeDetection,Settings.SkipANSICodePageDetection, false, L"");
|
||||
@ -5526,6 +5533,10 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam)
|
||||
Settings.MuteMessageBeep = !Settings.MuteMessageBeep;
|
||||
break;
|
||||
|
||||
case IDM_VIEW_SPLIT_UNDOTYPSEQ_LNBRK:
|
||||
Settings.SplitUndoTypingSeqOnLnBreak = !Settings.SplitUndoTypingSeqOnLnBreak;
|
||||
break;
|
||||
|
||||
//case IDM_SET_INLINE_IME:
|
||||
// Settings2.IMEInteraction = (Settings2.IMEInteraction == SC_IME_WINDOWED) ? SC_IME_INLINE : SC_IME_WINDOWED;
|
||||
// SciCall_SetIMEInteraction(Settings2.IMEInteraction);
|
||||
@ -6955,10 +6966,13 @@ inline static LRESULT _MsgNotifyLean(const LPNMHDR pnmh, const SCNotification* c
|
||||
int const iModType = scn->modificationType;
|
||||
if ((iModType & SC_MOD_BEFOREINSERT) || ((iModType & SC_MOD_BEFOREDELETE))) {
|
||||
if (!((iModType & SC_PERFORMED_UNDO) || (iModType & SC_PERFORMED_REDO))) {
|
||||
if (!_InUndoRedoTransaction()) {
|
||||
if ((!_InUndoRedoTransaction() && !SciCall_IsSelectionEmpty()) || Sci_IsMultiOrRectangleSelection()) {
|
||||
_SaveRedoSelection(_SaveUndoSelection());
|
||||
}
|
||||
}
|
||||
if (Settings2.UndoRedoSplitTimeout != 0) {
|
||||
_DelayUndoRedoTypingSequenceSplit(Settings2.UndoRedoSplitTimeout);
|
||||
}
|
||||
bModified = false; // not yet
|
||||
}
|
||||
// check for ADDUNDOACTION step
|
||||
@ -7043,6 +7057,9 @@ static LRESULT _MsgNotifyFromEdit(HWND hwnd, const LPNMHDR pnmh, const SCNotific
|
||||
_SaveRedoSelection(_SaveUndoSelection());
|
||||
}
|
||||
}
|
||||
if (Settings2.UndoRedoSplitTimeout != 0) {
|
||||
_DelayUndoRedoTypingSequenceSplit(Settings2.UndoRedoSplitTimeout);
|
||||
}
|
||||
bModified = false; // not yet
|
||||
}
|
||||
if (iModType & SC_MOD_CONTAINER) {
|
||||
@ -7189,6 +7206,7 @@ static LRESULT _MsgNotifyFromEdit(HWND hwnd, const LPNMHDR pnmh, const SCNotific
|
||||
switch (ich) {
|
||||
case '\r':
|
||||
case '\n':
|
||||
if (Settings.SplitUndoTypingSeqOnLnBreak) { SciCall_BeginUndoAction(); SciCall_EndUndoAction(); }
|
||||
if (Settings.AutoIndent) { _HandleAutoIndent(ich); }
|
||||
break;
|
||||
case '>':
|
||||
@ -8001,6 +8019,20 @@ static void _DelayClearZoomCallTip(int delay)
|
||||
}
|
||||
|
||||
|
||||
//=============================================================================
|
||||
//
|
||||
// _DelayClearZoomCallTip()
|
||||
//
|
||||
//
|
||||
static void _DelayUndoRedoTypingSequenceSplit(int delay)
|
||||
{
|
||||
static CmdMessageQueue_t mqc = MQ_WM_CMD_INIT(IDT_TIMER_UNDO_REDO_SPLIT, 0);
|
||||
mqc.hwnd = Globals.hwndMain;
|
||||
//mqc.lparam = (LPARAM)bForceRedraw;
|
||||
_MQ_AppendCmd(&mqc, (UINT)(delay <= 0 ? 0 : _MQ_ms(delay)));
|
||||
}
|
||||
|
||||
|
||||
//=============================================================================
|
||||
//
|
||||
// MarkAllOccurrences()
|
||||
@ -9178,19 +9210,20 @@ bool RestoreAction(int token, DoAction doAct)
|
||||
PostMessage(hwndedit, SCI_SETRECTANGULARSELECTIONANCHORVIRTUALSPACE, (WPARAM)(*pPosAnchorVS), 0);
|
||||
PostMessage(hwndedit, SCI_SETRECTANGULARSELECTIONCARETVIRTUALSPACE, (WPARAM)(*pPosCurVS), 0);
|
||||
}
|
||||
PostMessage(hwndedit, SCI_CANCEL, 0, 0); // (!) else shift-key selection behavior is kept
|
||||
break;
|
||||
|
||||
case SC_SEL_LINES:
|
||||
case SC_SEL_STREAM:
|
||||
default:
|
||||
PostMessage(hwndedit, SCI_SETSELECTION, (WPARAM)(*pPosCur), (LPARAM)(*pPosAnchor));
|
||||
PostMessage(hwndedit, SCI_CANCEL, 0, 0); // (!) else shift-key selection behavior is kept
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
PostMessage(hwndedit, SCI_SCROLLCARET, 0, 0);
|
||||
PostMessage(hwndedit, SCI_CHOOSECARETX, 0, 0);
|
||||
//~PostMessage(hwndedit, SCI_CANCEL, 0, 0);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -430,6 +430,7 @@ typedef struct _settings_t
|
||||
int CustomSchemesDlgPosX;
|
||||
int CustomSchemesDlgPosY;
|
||||
bool MuteMessageBeep;
|
||||
bool SplitUndoTypingSeqOnLnBreak;
|
||||
|
||||
RECT PrintMargin;
|
||||
EDITFINDREPLACE EFR_Data;
|
||||
@ -482,6 +483,7 @@ typedef struct _settings2_t
|
||||
int FindReplaceOpacityLevel;
|
||||
DWORD FileCheckInverval;
|
||||
DWORD AutoReloadTimeout;
|
||||
DWORD UndoRedoSplitTimeout;
|
||||
int IMEInteraction;
|
||||
int SciFontQuality;
|
||||
|
||||
|
||||
@ -7,8 +7,8 @@
|
||||
#define SAPPNAME "Notepad3"
|
||||
#define VERSION_MAJOR 5
|
||||
#define VERSION_MINOR 19
|
||||
#define VERSION_REV 825
|
||||
#define VERSION_BUILD 2597
|
||||
#define VERSION_REV 827
|
||||
#define VERSION_BUILD 2598
|
||||
#define SCINTILLA_VER 420
|
||||
#define ONIGURUMA_REGEX_VER 6.9.3
|
||||
#define UCHARDET_VER 2018.09.27
|
||||
|
||||
@ -31,6 +31,7 @@
|
||||
#define IDT_TIMER_UPDATE_STATUSBAR 236
|
||||
#define IDT_TIMER_UPDATE_TOOLBAR 237
|
||||
#define IDT_TIMER_CLEAR_CALLTIP 238
|
||||
#define IDT_TIMER_UNDO_REDO_SPLIT 239
|
||||
|
||||
#define IDACC_FIND 302
|
||||
#define IDACC_REPLACE 303
|
||||
|
||||
Loading…
Reference in New Issue
Block a user