mirror of
https://github.com/rizonesoft/Notepad3.git
synced 2026-06-14 21:09:05 +08:00
+ enh: CallTip in case of possible "Zero-Length Match" on regular expression search
This commit is contained in:
parent
8fa1d8a955
commit
842a889ab3
@ -125,6 +125,7 @@
|
||||
#define IDS_MUI_TRANSL_AUTHOR 15031
|
||||
#define IDS_MUI_ASSOCIATED_EXT 15032
|
||||
#define IDS_MUI_EXAMPLE_TEXT 15033
|
||||
#define IDS_MUI_ZERO_LEN_MATCH 15034
|
||||
|
||||
#define IDR_MAINWND 16000
|
||||
#define IDR_MAINWND48 16001
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -66,6 +66,7 @@ set FILEVER=
|
||||
call :GETFILEVER "%NP3_WIN32_DIR%\Notepad3.exe"
|
||||
if defined FILEVER set VERSION=%FILEVER%
|
||||
|
||||
|
||||
::echo.VERSION=%VERSION%
|
||||
::pause
|
||||
::goto :END
|
||||
@ -110,16 +111,11 @@ copy /B "%NP3_X64_DIR%\ced.exe" /B "%NP3_PORTAPP_DIR%\App\Notepad3\x64\" /Y /V
|
||||
|
||||
call :REPLACE "xxxVERSIONxxx" "%NP3_PORTAPP_INFO%_template.ini" "%VERSION%" "%NP3_PORTAPP_INFO%_tmp.ini"
|
||||
|
||||
:: DEVNAME need some mor PortableApps preparation, so set empty for now
|
||||
set DEVNAME=
|
||||
|
||||
if defined DEVNAME (
|
||||
call :REPLACE "xxxDEVNAMExxx" "%NP3_PORTAPP_INFO%_tmp.ini" "_%DEVNAME%" "%NP3_PORTAPP_INFO%.ini"
|
||||
call :REPLACE "xxxDEVNAMExxx" "%NP3_PORTAPP_INSTALL%_template.ini" "_%DEVNAME%" "%NP3_PORTAPP_INSTALL%.ini"
|
||||
) else (
|
||||
call :REPLACE "xxxDEVNAMExxx" "%NP3_PORTAPP_INFO%_tmp.ini" "" "%NP3_PORTAPP_INFO%.ini"
|
||||
call :REPLACE "xxxDEVNAMExxx" "%NP3_PORTAPP_INSTALL%_template.ini" "" "%NP3_PORTAPP_INSTALL%.ini"
|
||||
)
|
||||
:: DEVNAME need some more PortableApps preparation
|
||||
::~ call :REPLACE "xxxDEVNAMExxx" "%NP3_PORTAPP_INFO%_tmp.ini" "_%DEVNAME%" "%NP3_PORTAPP_INFO%.ini"
|
||||
::~ call :REPLACE "xxxDEVNAMExxx" "%NP3_PORTAPP_INSTALL%_template.ini" "_%DEVNAME%" "%NP3_PORTAPP_INSTALL%.ini"
|
||||
call :REPLACE "xxxDEVNAMExxx" "%NP3_PORTAPP_INFO%_tmp.ini" "" "%NP3_PORTAPP_INFO%.ini"
|
||||
call :REPLACE "xxxDEVNAMExxx" "%NP3_PORTAPP_INSTALL%_template.ini" "" "%NP3_PORTAPP_INSTALL%.ini"
|
||||
|
||||
del /F "%NP3_PORTAPP_INFO%_tmp.ini"
|
||||
|
||||
@ -136,8 +132,8 @@ del /F "%NP3_PORTAPP_INFO%_tmp.ini"
|
||||
:: - build Installer -
|
||||
"%PORTAPP_INSTALLER_CREATOR%" "%NP3_PORTAPP_DIR%"
|
||||
|
||||
|
||||
|
||||
:: rename
|
||||
rename "%SCRIPT_DIR%Notepad3Portable_%VERSION%_English.paf.exe" "Notepad3Portable_%DEVNAME%_%VERSION%_English.paf.exe"
|
||||
|
||||
:: ====================================================================================================================
|
||||
goto :END
|
||||
@ -181,7 +177,6 @@ for /F "tokens=2 delims==" %%a in ('
|
||||
goto:EOF
|
||||
:: --------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
:GETBUILD
|
||||
set /p nxbuild=<%NP3_BUILD_VER%
|
||||
set /a BUILD = %nxbuild% - 1
|
||||
|
||||
23
src/Edit.c
23
src/Edit.c
@ -5936,6 +5936,8 @@ bool EditFindNext(HWND hwnd, LPCEDITFINDREPLACE lpefr, bool bExtendSelection, bo
|
||||
bSuppressNotFound = true;
|
||||
}
|
||||
|
||||
SciCall_CallTipCancel();
|
||||
|
||||
DocPos iPos = _FindInTarget(hwnd, szFind, slen, (int)(lpefr->fuFlags), &start, &end, true, FRMOD_NORM);
|
||||
|
||||
if ((iPos < -1) && (lpefr->fuFlags & SCFIND_REGEXP)) {
|
||||
@ -5975,6 +5977,10 @@ bool EditFindNext(HWND hwnd, LPCEDITFINDREPLACE lpefr, bool bExtendSelection, bo
|
||||
else {
|
||||
EditSelectEx(hwnd, start, end, -1, -1);
|
||||
}
|
||||
|
||||
if (start == end) {
|
||||
EditShowZeroLengthCallTip(hwnd, start);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -8320,6 +8326,23 @@ void EditShowZoomCallTip(HWND hwnd)
|
||||
}
|
||||
|
||||
|
||||
//=============================================================================
|
||||
//
|
||||
// EditShowZoomCallTip()
|
||||
//
|
||||
static char s_chZeroLenCT[80] = { '\0' };
|
||||
|
||||
void EditShowZeroLengthCallTip(HWND hwnd, DocPos iPosition)
|
||||
{
|
||||
UNUSED(hwnd);
|
||||
if (s_chZeroLenCT[0] == '\0') {
|
||||
GetLngStringW2MB(IDS_MUI_ZERO_LEN_MATCH, s_chZeroLenCT, COUNTOF(s_chZeroLenCT));
|
||||
}
|
||||
SciCall_CallTipShow(iPosition, s_chZeroLenCT);
|
||||
g_CallTipType = CT_ZEROLEN_MATCH;
|
||||
}
|
||||
|
||||
|
||||
|
||||
//=============================================================================
|
||||
//
|
||||
|
||||
@ -170,6 +170,7 @@ void EditFoldClick(DocLn, int);
|
||||
void EditFoldAltArrow(FOLD_MOVE, FOLD_ACTION);
|
||||
|
||||
void EditShowZoomCallTip(HWND hwnd);
|
||||
void EditShowZeroLengthCallTip(HWND hwnd, DocPos iPosition);
|
||||
|
||||
#define NP3_BRACES_TO_MATCH "()[]{}"
|
||||
|
||||
|
||||
@ -716,7 +716,6 @@ bool IsCmdEnabled(HWND hwnd,UINT uId)
|
||||
|
||||
}
|
||||
|
||||
|
||||
//=============================================================================
|
||||
//
|
||||
// LoadLngStringW()
|
||||
@ -727,6 +726,19 @@ int LoadLngStringW(UINT uID, LPWSTR lpBuffer, int nBufferMax)
|
||||
return (nLen != 0) ? nLen : LoadStringW(g_hInstance, uID, lpBuffer, nBufferMax);
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
//
|
||||
// LoadLngStringW2MB()
|
||||
//
|
||||
static WCHAR s_tmpStringBuffer[512];
|
||||
|
||||
int LoadLngStringW2MB(UINT uID, LPSTR lpBuffer, int nBufferMax)
|
||||
{
|
||||
const int nLen = LoadStringW(g_hLngResContainer, uID, s_tmpStringBuffer, COUNTOF(s_tmpStringBuffer));
|
||||
if (nLen == 0) { LoadStringW(g_hInstance, uID, s_tmpStringBuffer, COUNTOF(s_tmpStringBuffer)); }
|
||||
return WideCharToMultiByte(CP_UTF8, 0, s_tmpStringBuffer, -1, lpBuffer, nBufferMax, NULL, NULL);
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
//
|
||||
// LoadLngStringA()
|
||||
|
||||
@ -220,12 +220,16 @@ bool IsCmdEnabled(HWND, UINT);
|
||||
if (GetFocus() == hctrl) { SendMessage((hdlg), WM_NEXTDLGCTL, 0, false); } }; EnableWindow(hctrl, (b)); }
|
||||
|
||||
|
||||
#define GetLngString(id,pb,cb) LoadLngStringW((id),(pb),(cb))
|
||||
#define GetLngStringA(id,pb,cb) LoadLngStringA((id),(pb),(cb))
|
||||
int LoadLngStringW(UINT uID, LPWSTR lpBuffer, int nBufferMax);
|
||||
int LoadLngStringA(UINT uID, LPSTR lpBuffer, int nBufferMax);
|
||||
int FormatLngStringW(LPWSTR, int, UINT, ...);
|
||||
int FormatLngStringA(LPSTR, int, UINT, ...);
|
||||
int LoadLngStringW2MB(UINT uID, LPSTR lpBuffer, int nBufferMax);
|
||||
|
||||
#define GetLngString(id,pb,cb) LoadLngStringW((id),(pb),(cb))
|
||||
#define GetLngStringA(id,pb,cb) LoadLngStringA((id),(pb),(cb))
|
||||
#define GetLngStringW2MB(id,pb,cb) LoadLngStringW2MB((id),(pb),(cb))
|
||||
|
||||
|
||||
|
||||
bool GetKnownFolderPath(REFKNOWNFOLDERID, LPWSTR, size_t);
|
||||
|
||||
@ -6304,8 +6304,8 @@ LRESULT MsgNotify(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
|
||||
case SCN_CHARADDED:
|
||||
{
|
||||
if (g_CallTipType == CT_ZOOM) {
|
||||
SciCall_CallTipCancel();
|
||||
if (g_CallTipType != CT_NONE) {
|
||||
SciCall_CallTipCancel();
|
||||
g_CallTipType = CT_NONE;
|
||||
}
|
||||
|
||||
|
||||
@ -120,7 +120,7 @@ typedef enum {
|
||||
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
typedef enum { CT_NONE = 0, CT_ZOOM } CALLTIPTYPE;
|
||||
typedef enum { CT_NONE = 0, CT_ZOOM, CT_ZEROLEN_MATCH } CALLTIPTYPE;
|
||||
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user