+ chg: enclosing selection with HTML-Tag - remember last pattern (session)

+ add: repeat selection enclosing (HTML-Tag) n-times control
This commit is contained in:
Rainer Kottenhoff 2019-08-30 18:06:04 +02:00
parent 5ddfbc08ee
commit ea7a6c8468
26 changed files with 92 additions and 36 deletions

View File

@ -1 +1 @@
2609
2610

View File

@ -537,6 +537,8 @@ BEGIN
EDITTEXT 100,7,18,98,14,ES_AUTOHSCROLL
LTEXT "&Sluitings tag (can be edited):",IDC_STATIC,7,37,90,8
EDITTEXT 101,7,48,98,14,ES_AUTOHSCROLL
EDITTEXT 102,125,48,20,14,ES_AUTOHSCROLL
LTEXT "X Times",IDC_STATIC,148,50,24,8
DEFPUSHBUTTON "OK",IDOK,125,7,50,14
PUSHBUTTON "Kanselleer",IDCANCEL,125,24,50,14
END

View File

@ -537,6 +537,8 @@ BEGIN
EDITTEXT 100,7,18,126,14,ES_AUTOHSCROLL
LTEXT "&Çà÷ûíÿëüíû òýã (ìîæíà ðýäàãàâàöü):",IDC_STATIC,7,37,134,8
EDITTEXT 101,7,48,126,14,ES_AUTOHSCROLL
EDITTEXT 102,125,48,20,14,ES_AUTOHSCROLL
LTEXT "X Times",IDC_STATIC,148,50,24,8
DEFPUSHBUTTON "OK",IDOK,153,7,50,14
PUSHBUTTON "Ñêàñàâàöü",IDCANCEL,153,24,50,14
END

View File

@ -537,6 +537,8 @@ BEGIN
EDITTEXT 100,7,18,98,14,ES_AUTOHSCROLL
LTEXT "&Schließender Tag (veränderbar):",IDC_STATIC,7,37,100,8
EDITTEXT 101,7,48,98,14,ES_AUTOHSCROLL
EDITTEXT 102,125,48,20,14,ES_AUTOHSCROLL
LTEXT "X Wdh.",IDC_STATIC,148,50,24,8
DEFPUSHBUTTON "OK",IDOK,125,7,50,14
PUSHBUTTON "Abbrechen",IDCANCEL,125,24,50,14
END

View File

@ -537,6 +537,8 @@ BEGIN
EDITTEXT 100,7,18,98,14,ES_AUTOHSCROLL
LTEXT "&Closing tag (can be edited):",IDC_STATIC,7,37,90,8
EDITTEXT 101,7,48,98,14,ES_AUTOHSCROLL
EDITTEXT 102,125,48,20,14,ES_AUTOHSCROLL
LTEXT "X Times",IDC_STATIC,148,50,24,8
DEFPUSHBUTTON "OK",IDOK,125,7,50,14
PUSHBUTTON "Cancel",IDCANCEL,125,24,50,14
END

View File

@ -537,6 +537,8 @@ BEGIN
EDITTEXT 100,7,18,98,14,ES_AUTOHSCROLL
LTEXT "&Closing tag (can be edited):",IDC_STATIC,7,37,90,8
EDITTEXT 101,7,48,98,14,ES_AUTOHSCROLL
EDITTEXT 102,125,48,20,14,ES_AUTOHSCROLL
LTEXT "X Times",IDC_STATIC,148,50,24,8
DEFPUSHBUTTON "OK",IDOK,125,7,50,14
PUSHBUTTON "Cancel",IDCANCEL,125,24,50,14
END

View File

@ -537,6 +537,8 @@ BEGIN
EDITTEXT 100,7,18,98,14,ES_AUTOHSCROLL
LTEXT "&Cierre tag (puede ser editado):",IDC_STATIC,7,37,120,8
EDITTEXT 101,7,48,98,14,ES_AUTOHSCROLL
EDITTEXT 102,125,48,20,14,ES_AUTOHSCROLL
LTEXT "X Times",IDC_STATIC,148,50,24,8
DEFPUSHBUTTON "OK",IDOK,125,7,50,14
PUSHBUTTON "Cancelar",IDCANCEL,125,24,50,14
END

View File

@ -537,6 +537,8 @@ BEGIN
EDITTEXT 100,7,18,98,14,ES_AUTOHSCROLL
LTEXT "&Fermeture tag (peut être édité):",IDC_STATIC,7,37,105,8
EDITTEXT 101,7,48,98,14,ES_AUTOHSCROLL
EDITTEXT 102,125,48,20,14,ES_AUTOHSCROLL
LTEXT "X Times",IDC_STATIC,148,50,24,8
DEFPUSHBUTTON "OK",IDOK,125,7,50,14
PUSHBUTTON "Annuler",IDCANCEL,125,24,50,14
END

View File

@ -537,6 +537,8 @@ BEGIN
EDITTEXT 100,7,18,98,14,ES_AUTOHSCROLL
LTEXT "&Záró elem (szerkeszthetõ):",IDC_STATIC,7,37,90,8
EDITTEXT 101,7,48,98,14,ES_AUTOHSCROLL
EDITTEXT 102,125,48,20,14,ES_AUTOHSCROLL
LTEXT "X Times",IDC_STATIC,148,50,24,8
DEFPUSHBUTTON "OK",IDOK,125,7,50,14
PUSHBUTTON "Mégsem",IDCANCEL,125,24,50,14
END

View File

@ -537,6 +537,8 @@ BEGIN
EDITTEXT 100,7,18,98,14,ES_AUTOHSCROLL
LTEXT "Tag di &chiusura (può essere modificato):",IDC_STATIC,7,37,125,8
EDITTEXT 101,7,48,98,14,ES_AUTOHSCROLL
EDITTEXT 102,125,48,20,14,ES_AUTOHSCROLL
LTEXT "X Times",IDC_STATIC,148,50,24,8
DEFPUSHBUTTON "OK",IDOK,128,7,50,14
PUSHBUTTON "Annulla",IDCANCEL,128,24,50,14
END

View File

@ -537,6 +537,8 @@ BEGIN
EDITTEXT 100,7,18,98,14,ES_AUTOHSCROLL
LTEXT "閉じタグ(編集可)(&C):",IDC_STATIC,7,37,90,8
EDITTEXT 101,7,48,98,14,ES_AUTOHSCROLL
EDITTEXT 102,125,48,20,14,ES_AUTOHSCROLL
LTEXT "X Times",IDC_STATIC,148,50,24,8
DEFPUSHBUTTON "OK",IDOK,125,7,50,14
PUSHBUTTON "キャンセル",IDCANCEL,125,24,50,14
END

View File

@ -537,6 +537,8 @@ BEGIN
EDITTEXT 100,7,18,98,14,ES_AUTOHSCROLL
LTEXT "닫는 태그(변경 가능)(&C):",IDC_STATIC,7,37,90,8
EDITTEXT 101,7,48,98,14,ES_AUTOHSCROLL
EDITTEXT 102,125,48,20,14,ES_AUTOHSCROLL
LTEXT "X Times",IDC_STATIC,148,50,24,8
DEFPUSHBUTTON "확인",IDOK,125,7,50,14
PUSHBUTTON "취소",IDCANCEL,125,24,50,14
END

View File

@ -537,6 +537,8 @@ BEGIN
EDITTEXT 100,7,18,98,14,ES_AUTOHSCROLL
LTEXT "&Tag sluiten (kan worden bewerkt):",IDC_STATIC,7,37,125,8
EDITTEXT 101,7,48,98,14,ES_AUTOHSCROLL
EDITTEXT 102,125,48,20,14,ES_AUTOHSCROLL
LTEXT "X Times",IDC_STATIC,148,50,24,8
DEFPUSHBUTTON "OK",IDOK,125,7,50,14
PUSHBUTTON "Annuleren",IDCANCEL,125,24,50,14
END

View File

@ -537,6 +537,8 @@ BEGIN
EDITTEXT 100,7,18,98,14,ES_AUTOHSCROLL
LTEXT "&Zamykanie znacznika (mo¿liwoœæ edycji):",IDC_STATIC,7,37,90,8
EDITTEXT 101,7,48,98,14,ES_AUTOHSCROLL
EDITTEXT 102,125,48,20,14,ES_AUTOHSCROLL
LTEXT "X Times",IDC_STATIC,148,50,24,8
DEFPUSHBUTTON "OK",IDOK,125,7,50,14
PUSHBUTTON "Anuluj",IDCANCEL,125,24,50,14
END

View File

@ -537,6 +537,8 @@ BEGIN
EDITTEXT 100,7,18,98,14,ES_AUTOHSCROLL
LTEXT "&Fechando tag (pode ser editada):",IDC_STATIC,7,37,90,8
EDITTEXT 101,7,48,98,14,ES_AUTOHSCROLL
EDITTEXT 102,125,48,20,14,ES_AUTOHSCROLL
LTEXT "X Times",IDC_STATIC,148,50,24,8
DEFPUSHBUTTON "OK",IDOK,125,7,50,14
PUSHBUTTON "Cancel",IDCANCEL,125,24,50,14
END

View File

@ -537,6 +537,8 @@ BEGIN
EDITTEXT 100,7,18,126,14,ES_AUTOHSCROLL
LTEXT "&Çàêðûâàþùèé òåã (ðåäàêòèðóåìûé):",IDC_STATIC,7,37,128,8
EDITTEXT 101,7,48,126,14,ES_AUTOHSCROLL
EDITTEXT 102,125,48,20,14,ES_AUTOHSCROLL
LTEXT "X Times",IDC_STATIC,148,50,24,8
DEFPUSHBUTTON "OK",IDOK,153,7,50,14
PUSHBUTTON "Îòìåíà",IDCANCEL,153,24,50,14
END

View File

@ -537,6 +537,8 @@ BEGIN
EDITTEXT 100,7,18,98,14,ES_AUTOHSCROLL
LTEXT "&Closing tag (can be edited):",IDC_STATIC,7,37,90,8
EDITTEXT 101,7,48,98,14,ES_AUTOHSCROLL
EDITTEXT 102,125,48,20,14,ES_AUTOHSCROLL
LTEXT "X Times",IDC_STATIC,148,50,24,8
DEFPUSHBUTTON "OK",IDOK,125,7,50,14
PUSHBUTTON "Cancel",IDCANCEL,125,24,50,14
END

View File

@ -537,6 +537,8 @@ BEGIN
EDITTEXT 100,7,18,98,14,ES_AUTOHSCROLL
LTEXT "&Closing tag (can be edited):",IDC_STATIC,7,37,90,8
EDITTEXT 101,7,48,98,14,ES_AUTOHSCROLL
EDITTEXT 102,125,48,20,14,ES_AUTOHSCROLL
LTEXT "X Times",IDC_STATIC,148,50,24,8
DEFPUSHBUTTON "OK",IDOK,125,7,50,14
PUSHBUTTON "Cancel",IDCANCEL,125,24,50,14
END

View File

@ -537,6 +537,8 @@ BEGIN
EDITTEXT 100,7,18,98,14,ES_AUTOHSCROLL
LTEXT "&Closing tag (can be edited):",IDC_STATIC,7,37,90,8
EDITTEXT 101,7,48,98,14,ES_AUTOHSCROLL
EDITTEXT 102,125,48,20,14,ES_AUTOHSCROLL
LTEXT "X Times",IDC_STATIC,148,50,24,8
DEFPUSHBUTTON "OK",IDOK,125,7,50,14
PUSHBUTTON "Cancel",IDCANCEL,125,24,50,14
END

View File

@ -537,6 +537,8 @@ BEGIN
EDITTEXT 100,7,18,98,14,ES_AUTOHSCROLL
LTEXT "关闭标记(&C)",IDC_STATIC,7,37,90,8
EDITTEXT 101,7,48,98,14,ES_AUTOHSCROLL
EDITTEXT 102,125,48,20,14,ES_AUTOHSCROLL
LTEXT "X Times",IDC_STATIC,148,50,24,8
DEFPUSHBUTTON "确定",IDOK,125,7,50,14
PUSHBUTTON "取消",IDCANCEL,125,24,50,14
END

View File

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

View File

@ -2343,10 +2343,8 @@ static INT_PTR CALLBACK LongLineSettingsDlgProc(HWND hwnd, UINT umsg, WPARAM wPa
UINT* piNumber = (UINT*)GetWindowLongPtr(hwnd, DWLP_USER);
*piNumber = iNewNumber;
Settings.LongLineMode = IsButtonChecked(hwnd, 101) ? EDGE_LINE : EDGE_BACKGROUND;
EndDialog(hwnd, IDOK);
}
else {
PostMessage(hwnd, WM_NEXTDLGCTL, (WPARAM)(GetDlgItem(hwnd, 100)), 1);
}

View File

@ -7769,28 +7769,37 @@ bool EditEncloseSelectionDlg(HWND hwnd,LPWSTR pwszOpen,LPWSTR pwszClose)
//
// Controls: 100 Input
// 101 Input
// 102 Times
//
typedef struct _tagsdata {
LPWSTR pwsz1;
LPWSTR pwsz2;
UINT repeat;
} TAGSDATA, *PTAGSDATA;
static INT_PTR CALLBACK EditInsertTagDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam)
{
static PTAGSDATA pdata;
static WCHAR wchOpenTagStrg[256] = { L'\0' };
static WCHAR wchCloseTagStrg[256] = { L'\0' };
switch(umsg)
{
case WM_INITDIALOG:
{
pdata = (PTAGSDATA)lParam;
if (Globals.hDlgIcon) { SendMessage(hwnd, WM_SETICON, ICON_SMALL, (LPARAM)Globals.hDlgIcon); }
SendDlgItemMessage(hwnd,100,EM_LIMITTEXT,254,0);
SetDlgItemTextW(hwnd,100,L"<tag>");
SendDlgItemMessage(hwnd,101,EM_LIMITTEXT,255,0);
SetDlgItemTextW(hwnd,101,L"</tag>");
if (!wchOpenTagStrg[0]) { StringCchCopy(wchOpenTagStrg, COUNTOF(wchOpenTagStrg), L"<tag>"); }
if (!wchCloseTagStrg[0]) { StringCchCopy(wchCloseTagStrg, COUNTOF(wchCloseTagStrg), L"</tag>"); }
SendDlgItemMessage(hwnd,100,EM_LIMITTEXT, COUNTOF(wchOpenTagStrg)-1,0);
SetDlgItemTextW(hwnd,100, wchOpenTagStrg);
SendDlgItemMessage(hwnd,101,EM_LIMITTEXT, COUNTOF(wchCloseTagStrg)-1,0);
SetDlgItemTextW(hwnd,101, wchCloseTagStrg);
pdata->repeat = 1;
SetDlgItemInt(hwnd, 102, pdata->repeat, FALSE);
SetFocus(GetDlgItem(hwnd,100));
PostMessage(GetDlgItem(hwnd,100),EM_SETSEL,1,4);
PostMessage(GetDlgItem(hwnd,100),EM_SETSEL,1,(int)(StringCchLen(wchOpenTagStrg,0)-1));
CenterDlgInParent(hwnd);
}
return false;
@ -7806,15 +7815,15 @@ static INT_PTR CALLBACK EditInsertTagDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,L
if (HIWORD(wParam) == EN_CHANGE)
{
bool bClear = true;
WCHAR wchBuf[256] = { L'\0' };
GetDlgItemTextW(hwnd,100,wchBuf,256);
if (StringCchLenW(wchBuf,COUNTOF(wchBuf)) >= 3) {
GetDlgItemTextW(hwnd,100,wchOpenTagStrg, COUNTOF(wchOpenTagStrg));
if (StringCchLenW(wchOpenTagStrg,COUNTOF(wchOpenTagStrg)) >= 3) {
if (wchBuf[0] == L'<')
if (wchOpenTagStrg[0] == L'<')
{
WCHAR wchIns[256] = L"</";
WCHAR wchIns[COUNTOF(wchCloseTagStrg)] = { L'\0' };
StringCchCopy(wchIns, COUNTOF(wchIns), L"</");
int cchIns = 2;
const WCHAR* pwCur = &wchBuf[1];
const WCHAR* pwCur = &wchOpenTagStrg[1];
while (
*pwCur &&
*pwCur != L'<' &&
@ -7823,13 +7832,9 @@ static INT_PTR CALLBACK EditInsertTagDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,L
*pwCur != L'\t' &&
(StrChr(L":_-.",*pwCur) || IsCharAlphaNumericW(*pwCur)))
wchIns[cchIns++] = *pwCur++;
wchIns[cchIns++] = *pwCur++;
while (
*pwCur &&
*pwCur != L'>')
pwCur++;
while (*pwCur && *pwCur != L'>') { pwCur++; }
if (*pwCur == L'>' && *(pwCur-1) != L'/') {
wchIns[cchIns++] = L'>';
@ -7844,22 +7849,30 @@ static INT_PTR CALLBACK EditInsertTagDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,L
StringCchCompareXI(wchIns,L"</img>") &&
StringCchCompareXI(wchIns,L"</input>") &&
StringCchCompareXI(wchIns,L"</link>") &&
StringCchCompareXI(wchIns,L"</meta>")) {
SetDlgItemTextW(hwnd,101,wchIns);
StringCchCompareXI(wchIns,L"</meta>"))
{
SetDlgItemTextW(hwnd,101, wchIns);
bClear = false;
}
}
}
}
if (bClear)
SetDlgItemTextW(hwnd,101,L"");
if (bClear) {
SetDlgItemTextW(hwnd, 101, L"");
}
}
}
break;
case IDOK: {
GetDlgItemTextW(hwnd,100,pdata->pwsz1,256);
GetDlgItemTextW(hwnd,101,pdata->pwsz2,256);
GetDlgItemTextW(hwnd, 100, wchOpenTagStrg, COUNTOF(wchOpenTagStrg));
GetDlgItemTextW(hwnd, 101, wchCloseTagStrg, COUNTOF(wchCloseTagStrg));
StringCchCopy(pdata->pwsz1, 256, wchOpenTagStrg);
StringCchCopy(pdata->pwsz2, 256, wchCloseTagStrg);
BOOL fTranslated = FALSE;
UINT const iTimes = GetDlgItemInt(hwnd, 102, &fTranslated, FALSE);
if (fTranslated) {
pdata->repeat = clampu(iTimes, 1, UINT_MAX);
}
EndDialog(hwnd,IDOK);
}
break;
@ -7877,12 +7890,12 @@ static INT_PTR CALLBACK EditInsertTagDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,L
//
// EditInsertTagDlg()
//
bool EditInsertTagDlg(HWND hwnd,LPWSTR pwszOpen,LPWSTR pwszClose)
bool EditInsertTagDlg(HWND hwnd,LPWSTR pwszOpen,LPWSTR pwszClose, UINT* pRepeat)
{
INT_PTR iResult;
TAGSDATA data;
data.pwsz1 = pwszOpen; data.pwsz2 = pwszClose;
data.pwsz1 = pwszOpen; data.pwsz2 = pwszClose; data.repeat = 1;
iResult = ThemedDialogBoxParam(
Globals.hLngResContainer,
@ -7891,8 +7904,11 @@ bool EditInsertTagDlg(HWND hwnd,LPWSTR pwszOpen,LPWSTR pwszClose)
EditInsertTagDlgProc,
(LPARAM)&data);
return (iResult == IDOK) ? true : false;
if (iResult == IDOK) {
*pRepeat = data.repeat;
return true;
}
return false;
}

View File

@ -95,7 +95,7 @@ bool EditReplaceAllInSelection(HWND hwnd,LPCEDITFINDREPLACE lpefr,bool);
bool EditLinenumDlg(HWND hwnd);
bool EditModifyLinesDlg(HWND hwnd,LPWSTR pwsz1,LPWSTR pwsz2);
bool EditEncloseSelectionDlg(HWND hwnd,LPWSTR pwszOpen,LPWSTR pwszClose);
bool EditInsertTagDlg(HWND hwnd,LPWSTR pwszOpen,LPWSTR pwszClose);
bool EditInsertTagDlg(HWND hwnd,LPWSTR pwszOpen,LPWSTR pwszClose,UINT* pRepeat);
bool EditSortDlg(HWND hwnd,int* piSortFlags);
bool EditAlignDlg(HWND hwnd,int* piAlignMode);
bool EditPrint(HWND,LPCWSTR,LPCWSTR);

View File

@ -4332,8 +4332,12 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam)
{
WCHAR wszOpen[256] = { L'\0' };
WCHAR wszClose[256] = { L'\0' };
if (EditInsertTagDlg(hwnd, wszOpen, wszClose)) {
EditEncloseSelection(Globals.hwndEdit, wszOpen, wszClose);
UINT repeat = 1;
if (EditInsertTagDlg(hwnd, wszOpen, wszClose, &repeat)) {
while (repeat > 0) {
EditEncloseSelection(Globals.hwndEdit, wszOpen, wszClose);
--repeat;
}
}
}
break;

View File

@ -8,7 +8,7 @@
#define VERSION_MAJOR 5
#define VERSION_MINOR 19
#define VERSION_REV 830
#define VERSION_BUILD 2609
#define VERSION_BUILD 2610
#define SCINTILLA_VER 420
#define ONIGURUMA_REGEX_VER 6.9.3
#define UCHARDET_VER 2018.09.27