Merge pull request #1556 from RaiKoHoff/DevNewFeatures

New options to split undo typing sequence collection
This commit is contained in:
Rainer Kottenhoff 2019-08-27 09:47:09 +02:00 committed by GitHub
commit 7bf66333af
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 70 additions and 18 deletions

View File

@ -43,6 +43,7 @@ SettingsVersion=4
;UpdateDelayMarkAllOccurrences=50
;CurrentLineHorizontalSlop=40
;CurrentLineVerticalSlop=5
;UndoRedoSplitTimeout=0
;AdministrationTool.exe=
;DevDebugMode=0
;AnalyzeReliableConfidenceLevel=67

View File

@ -1 +1 @@
2597
2598

View File

@ -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

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -3,7 +3,7 @@
<assemblyIdentity
name="Notepad3"
processorArchitecture="*"
version="5.19.825.2597"
version="5.19.827.2598"
type="win32"
/>
<description>Notepad3 BETA</description>

View File

@ -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);

View File

@ -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;
}

View File

@ -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;

View File

@ -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

View File

@ -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