mirror of
https://github.com/rizonesoft/Notepad3.git
synced 2026-06-11 21:03:05 +08:00
+enh: extend AutoCloseBrackets (by Matteo-Nigro PR #4318) for Selection
This commit is contained in:
parent
bcfb603eb6
commit
e5ec9b9982
@ -469,7 +469,7 @@ BEGIN
|
||||
MENUITEM "&Woord Omslag Instellings...", IDM_SET_WORDWRAPSETTINGS
|
||||
MENUITEM "L&ang Lyn Instellings...", IDM_SET_LONGLINESETTINGS
|
||||
MENUITEM "Outo-In&dent Teks", IDM_SET_AUTOINDENTTEXT
|
||||
///MENUITEM "Auto Close Brackets", IDM_SET_AUTOCLOSEBRACKETS
|
||||
MENUITEM "Auto Close Brackets", IDM_SET_AUTOCLOSEBRACKETS
|
||||
MENUITEM "Outo-Sluit &HTML/XML\tCtrl+Shift+H", IDM_SET_AUTOCLOSETAGS
|
||||
MENUITEM "O&uto-Voltooi Woorde", IDM_SET_AUTOCOMPLETEWORDS
|
||||
MENUITEM "Outo-Voltooi Le&xer-Sleutel-Woorde", IDM_SET_AUTOCLEXKEYWORDS
|
||||
|
||||
@ -469,7 +469,7 @@ BEGIN
|
||||
MENUITEM "Налады перано&са радкоў...", IDM_SET_WORDWRAPSETTINGS
|
||||
MENUITEM "Налады до&ўгіх радкоў...", IDM_SET_LONGLINESETTINGS
|
||||
MENUITEM "Аўта&матычны водступ тэксту", IDM_SET_AUTOINDENTTEXT
|
||||
///MENUITEM "Auto Close Brackets", IDM_SET_AUTOCLOSEBRACKETS
|
||||
MENUITEM "Auto Close Brackets", IDM_SET_AUTOCLOSEBRACKETS
|
||||
MENUITEM "Аўтазакрыццё тэгаў &HTML/XML\tCtrl+Shift+H", IDM_SET_AUTOCLOSETAGS
|
||||
MENUITEM "Cамадавяр&шэнне слоў", IDM_SET_AUTOCOMPLETEWORDS
|
||||
MENUITEM "Cамадавяршэнне на аснове &лексемаў", IDM_SET_AUTOCLEXKEYWORDS
|
||||
|
||||
@ -469,7 +469,7 @@ BEGIN
|
||||
MENUITEM "&Wort Umbruch Einstellungen...", IDM_SET_WORDWRAPSETTINGS
|
||||
MENUITEM "&Lang Zeilen Einstellungen...", IDM_SET_LONGLINESETTINGS
|
||||
MENUITEM "Auto Text &Einrückung", IDM_SET_AUTOINDENTTEXT
|
||||
///MENUITEM "Auto Close Brackets", IDM_SET_AUTOCLOSEBRACKETS
|
||||
MENUITEM "Auto Klammer Schließen", IDM_SET_AUTOCLOSEBRACKETS
|
||||
MENUITEM "Auto Tagabschluss &HTML/XML\tCtrl+Shift+H", IDM_SET_AUTOCLOSETAGS
|
||||
MENUITEM "Auto Wort &Vorschläge", IDM_SET_AUTOCOMPLETEWORDS
|
||||
MENUITEM "Auto &Lexer KeyWord Vorschläge", IDM_SET_AUTOCLEXKEYWORDS
|
||||
|
||||
@ -469,7 +469,7 @@ BEGIN
|
||||
MENUITEM "Ρυθμίσεις αναδίπλωσης &λέξεων...", IDM_SET_WORDWRAPSETTINGS
|
||||
MENUITEM "Ρυθμίσεις &μεγάλης γραμμής...", IDM_SET_LONGLINESETTINGS
|
||||
MENUITEM "Αυτόματη εσ&οχή κειμένου", IDM_SET_AUTOINDENTTEXT
|
||||
///MENUITEM "Auto Close Brackets", IDM_SET_AUTOCLOSEBRACKETS
|
||||
MENUITEM "Auto Close Brackets", IDM_SET_AUTOCLOSEBRACKETS
|
||||
MENUITEM "Αυτόματο κλείσιμο Η&ΤΜL/XML\tCtrl+Shift+H", IDM_SET_AUTOCLOSETAGS
|
||||
MENUITEM "Αυτόματη συμπλήρωση λέ&ξεων", IDM_SET_AUTOCOMPLETEWORDS
|
||||
MENUITEM "Α&υτόμ. συμπλήρωση λέ&ξεων-κλειδιών του Lexer", IDM_SET_AUTOCLEXKEYWORDS
|
||||
|
||||
@ -469,7 +469,7 @@ BEGIN
|
||||
MENUITEM "&Word Wrap Settings...", IDM_SET_WORDWRAPSETTINGS
|
||||
MENUITEM "L&ong Line Settings...", IDM_SET_LONGLINESETTINGS
|
||||
MENUITEM "Auto In&dent Text", IDM_SET_AUTOINDENTTEXT
|
||||
///MENUITEM "Auto Close Brackets", IDM_SET_AUTOCLOSEBRACKETS
|
||||
MENUITEM "Auto Close Brackets", IDM_SET_AUTOCLOSEBRACKETS
|
||||
MENUITEM "Auto Close &HTML/XML\tCtrl+Shift+H", IDM_SET_AUTOCLOSETAGS
|
||||
MENUITEM "A&uto Complete Words", IDM_SET_AUTOCOMPLETEWORDS
|
||||
MENUITEM "Auto Complete Lexer-&Key-Words", IDM_SET_AUTOCLEXKEYWORDS
|
||||
|
||||
@ -469,7 +469,7 @@ BEGIN
|
||||
MENUITEM "&Word Wrap Settings...", IDM_SET_WORDWRAPSETTINGS
|
||||
MENUITEM "L&ong Line Settings...", IDM_SET_LONGLINESETTINGS
|
||||
MENUITEM "Auto In&dent Text", IDM_SET_AUTOINDENTTEXT
|
||||
///MENUITEM "Auto Close Brackets", IDM_SET_AUTOCLOSEBRACKETS
|
||||
MENUITEM "Auto Close Brackets", IDM_SET_AUTOCLOSEBRACKETS
|
||||
MENUITEM "Auto Close &HTML/XML\tCtrl+Shift+H", IDM_SET_AUTOCLOSETAGS
|
||||
MENUITEM "A&uto Complete Words", IDM_SET_AUTOCOMPLETEWORDS
|
||||
MENUITEM "Auto Complete Lexer-&Key-Words", IDM_SET_AUTOCLEXKEYWORDS
|
||||
|
||||
@ -469,7 +469,7 @@ BEGIN
|
||||
MENUITEM "Configuración &ajuste de línea...", IDM_SET_WORDWRAPSETTINGS
|
||||
MENUITEM "Configuración de &larga línea...", IDM_SET_LONGLINESETTINGS
|
||||
MENUITEM "&Sangría texto automático", IDM_SET_AUTOINDENTTEXT
|
||||
///MENUITEM "Auto Close Brackets", IDM_SET_AUTOCLOSEBRACKETS
|
||||
MENUITEM "Auto Close Brackets", IDM_SET_AUTOCLOSEBRACKETS
|
||||
MENUITEM "Auto Cierre &HTML/XML\tCtrl+Shift+H", IDM_SET_AUTOCLOSETAGS
|
||||
MENUITEM "A&uto completar palabras", IDM_SET_AUTOCOMPLETEWORDS
|
||||
MENUITEM "Auto completar palabras clave 'Le&xer'", IDM_SET_AUTOCLEXKEYWORDS
|
||||
|
||||
@ -469,7 +469,7 @@ BEGIN
|
||||
MENUITEM "Configuración &ajuste de línea...", IDM_SET_WORDWRAPSETTINGS
|
||||
MENUITEM "Configuración de &larga línea...", IDM_SET_LONGLINESETTINGS
|
||||
MENUITEM "&Sangría texto automático", IDM_SET_AUTOINDENTTEXT
|
||||
///MENUITEM "Auto Close Brackets", IDM_SET_AUTOCLOSEBRACKETS
|
||||
MENUITEM "Auto Close Brackets", IDM_SET_AUTOCLOSEBRACKETS
|
||||
MENUITEM "Auto Cierre &HTML/XML\tCtrl+Shift+H", IDM_SET_AUTOCLOSETAGS
|
||||
MENUITEM "A&uto completar palabras", IDM_SET_AUTOCOMPLETEWORDS
|
||||
MENUITEM "Auto completar palabras clave 'Le&xer'", IDM_SET_AUTOCLEXKEYWORDS
|
||||
|
||||
@ -469,7 +469,7 @@ BEGIN
|
||||
MENUITEM "&Paramètres de saut de ligne automatique...", IDM_SET_WORDWRAPSETTINGS
|
||||
MENUITEM "Paramètres de ligne l&ongue...", IDM_SET_LONGLINESETTINGS
|
||||
MENUITEM "Retrait automatique &du texte", IDM_SET_AUTOINDENTTEXT
|
||||
///MENUITEM "Auto Close Brackets", IDM_SET_AUTOCLOSEBRACKETS
|
||||
MENUITEM "Auto Close Brackets", IDM_SET_AUTOCLOSEBRACKETS
|
||||
MENUITEM "Auto-fermeture des balises &HTML/XML\tCtrl+Maj+H", IDM_SET_AUTOCLOSETAGS
|
||||
MENUITEM "A&uto-complétion des mots", IDM_SET_AUTOCOMPLETEWORDS
|
||||
MENUITEM "Auto-complétion des &mots-clés Lexer", IDM_SET_AUTOCLEXKEYWORDS
|
||||
|
||||
@ -469,7 +469,7 @@ BEGIN
|
||||
MENUITEM "शब्द लपेटने की सेटिंग (&W)...", IDM_SET_WORDWRAPSETTINGS
|
||||
MENUITEM "लंबी रेखा की सेटिंग (&O)...", IDM_SET_LONGLINESETTINGS
|
||||
MENUITEM "स्वत: टेक्स्ट को इंडेंट करें (&D)", IDM_SET_AUTOINDENTTEXT
|
||||
///MENUITEM "Auto Close Brackets", IDM_SET_AUTOCLOSEBRACKETS
|
||||
MENUITEM "Auto Close Brackets", IDM_SET_AUTOCLOSEBRACKETS
|
||||
MENUITEM "HTML/XML स्वत: बंद करें (&H)\tCtrl+Shift+H", IDM_SET_AUTOCLOSETAGS
|
||||
MENUITEM "शब्द स्वतः पूर्ण करें (&U)", IDM_SET_AUTOCOMPLETEWORDS
|
||||
MENUITEM "Lexer-Key-Words स्वतः पूर्ण करें (&K)", IDM_SET_AUTOCLEXKEYWORDS
|
||||
|
||||
@ -469,7 +469,7 @@ BEGIN
|
||||
MENUITEM "&Sortörés beállítások...", IDM_SET_WORDWRAPSETTINGS
|
||||
MENUITEM "&Hosszú sorok beállításai...", IDM_SET_LONGLINESETTINGS
|
||||
MENUITEM "A&utomatikus behúzás", IDM_SET_AUTOINDENTTEXT
|
||||
///MENUITEM "Auto Close Brackets", IDM_SET_AUTOCLOSEBRACKETS
|
||||
MENUITEM "Auto Close Brackets", IDM_SET_AUTOCLOSEBRACKETS
|
||||
MENUITEM "HTML/&XML aut. lezárás\tCtrl+Shift+H", IDM_SET_AUTOCLOSETAGS
|
||||
MENUITEM "Szó kie&gészítés", IDM_SET_AUTOCOMPLETEWORDS
|
||||
MENUITEM "Lexer kul&csszavak kiegészítése", IDM_SET_AUTOCLEXKEYWORDS
|
||||
|
||||
@ -469,7 +469,7 @@ BEGIN
|
||||
MENUITEM "&Word Wrap Settings...", IDM_SET_WORDWRAPSETTINGS
|
||||
MENUITEM "L&ong Line Settings...", IDM_SET_LONGLINESETTINGS
|
||||
MENUITEM "Auto In&dent Text", IDM_SET_AUTOINDENTTEXT
|
||||
///MENUITEM "Auto Close Brackets", IDM_SET_AUTOCLOSEBRACKETS
|
||||
MENUITEM "Auto Close Brackets", IDM_SET_AUTOCLOSEBRACKETS
|
||||
MENUITEM "Auto Close &HTML/XML\tCtrl+Shift+H", IDM_SET_AUTOCLOSETAGS
|
||||
MENUITEM "A&uto Complete Words", IDM_SET_AUTOCOMPLETEWORDS
|
||||
MENUITEM "Auto Complete Lexer-&Key-Words", IDM_SET_AUTOCLEXKEYWORDS
|
||||
|
||||
@ -469,7 +469,7 @@ BEGIN
|
||||
MENUITEM "折り返し方の設定(&W)...", IDM_SET_WORDWRAPSETTINGS
|
||||
MENUITEM "行の長さガイドの設定(&O)...", IDM_SET_LONGLINESETTINGS
|
||||
MENUITEM "自動インデント(&D)", IDM_SET_AUTOINDENTTEXT
|
||||
///MENUITEM "Auto Close Brackets", IDM_SET_AUTOCLOSEBRACKETS
|
||||
MENUITEM "Auto Close Brackets", IDM_SET_AUTOCLOSEBRACKETS
|
||||
MENUITEM "自動閉じHTML/XMLタグ(&H)\tCtrl+Shift+H", IDM_SET_AUTOCLOSETAGS
|
||||
MENUITEM "単語補完(&U)", IDM_SET_AUTOCOMPLETEWORDS
|
||||
MENUITEM "予約語を自動補完(&K)", IDM_SET_AUTOCLEXKEYWORDS
|
||||
|
||||
@ -469,7 +469,7 @@ BEGIN
|
||||
MENUITEM "줄 바꿈 설정(&W)...", IDM_SET_WORDWRAPSETTINGS
|
||||
MENUITEM "긴 줄 설정(&O)...", IDM_SET_LONGLINESETTINGS
|
||||
MENUITEM "텍스트 자동 들여쓰기(&D)", IDM_SET_AUTOINDENTTEXT
|
||||
///MENUITEM "Auto Close Brackets", IDM_SET_AUTOCLOSEBRACKETS
|
||||
MENUITEM "Auto Close Brackets", IDM_SET_AUTOCLOSEBRACKETS
|
||||
MENUITEM "HTML/XML 자동 닫기(&H)\tCtrl+Shift+H", IDM_SET_AUTOCLOSETAGS
|
||||
MENUITEM "단어 자동 완성(&U)", IDM_SET_AUTOCOMPLETEWORDS
|
||||
MENUITEM "어휘 자동 완성(&K)", IDM_SET_AUTOCLEXKEYWORDS
|
||||
|
||||
@ -469,7 +469,7 @@ BEGIN
|
||||
MENUITEM "&Instellingen voor regelterugloop...", IDM_SET_WORDWRAPSETTINGS
|
||||
MENUITEM "&Lange regelinstellingen...", IDM_SET_LONGLINESETTINGS
|
||||
MENUITEM "Te&kst automatisch inspringen", IDM_SET_AUTOINDENTTEXT
|
||||
///MENUITEM "Auto Close Brackets", IDM_SET_AUTOCLOSEBRACKETS
|
||||
MENUITEM "Auto Close Brackets", IDM_SET_AUTOCLOSEBRACKETS
|
||||
MENUITEM "&HTML/XML tags automatisch sluiten\tCtrl+Shift+H", IDM_SET_AUTOCLOSETAGS
|
||||
MENUITEM "Sleutelwoorden &automatisch aanvullen", IDM_SET_AUTOCOMPLETEWORDS
|
||||
MENUITEM "'Lexer' sleutelwoorden auto&matisch aanvullen", IDM_SET_AUTOCLEXKEYWORDS
|
||||
|
||||
@ -469,7 +469,7 @@ BEGIN
|
||||
MENUITEM "&Ustawienia zawijania wierszy...", IDM_SET_WORDWRAPSETTINGS
|
||||
MENUITEM "&Ustawienia długości wierszy...", IDM_SET_LONGLINESETTINGS
|
||||
MENUITEM "Automatyczne wcięcie", IDM_SET_AUTOINDENTTEXT
|
||||
///MENUITEM "Auto Close Brackets", IDM_SET_AUTOCLOSEBRACKETS
|
||||
MENUITEM "Auto Close Brackets", IDM_SET_AUTOCLOSEBRACKETS
|
||||
MENUITEM "Automatyczne zamykanie &HTML/XML\tCtrl+Shift+H", IDM_SET_AUTOCLOSETAGS
|
||||
MENUITEM "A&utouzupełnianie wyrazów", IDM_SET_AUTOCOMPLETEWORDS
|
||||
MENUITEM "Autouzupełnianie Lekserem", IDM_SET_AUTOCLEXKEYWORDS
|
||||
|
||||
@ -469,7 +469,7 @@ BEGIN
|
||||
MENUITEM "Configurações de Quebra de &Palavra...", IDM_SET_WORDWRAPSETTINGS
|
||||
MENUITEM "Configurações de Linha &Longa...", IDM_SET_LONGLINESETTINGS
|
||||
MENUITEM "In&dentar Texto Automaticamente", IDM_SET_AUTOINDENTTEXT
|
||||
///MENUITEM "Auto Close Brackets", IDM_SET_AUTOCLOSEBRACKETS
|
||||
MENUITEM "Auto Close Brackets", IDM_SET_AUTOCLOSEBRACKETS
|
||||
MENUITEM "Fechar Automaticamente &HTML/XML\tCtrl+Shift+H", IDM_SET_AUTOCLOSETAGS
|
||||
MENUITEM "Completa Palavras A&utomaticamente", IDM_SET_AUTOCOMPLETEWORDS
|
||||
MENUITEM "Completa Automaticamente Palavras-&Chaves-Léxicas", IDM_SET_AUTOCLEXKEYWORDS
|
||||
|
||||
@ -469,7 +469,7 @@ BEGIN
|
||||
MENUITEM "Definições de moldagem de texto...", IDM_SET_WORDWRAPSETTINGS
|
||||
MENUITEM "Definições de linhas &longas...", IDM_SET_LONGLINESETTINGS
|
||||
MENUITEM "In&dentação automática do texto", IDM_SET_AUTOINDENTTEXT
|
||||
///MENUITEM "Auto Close Brackets", IDM_SET_AUTOCLOSEBRACKETS
|
||||
MENUITEM "Auto Close Brackets", IDM_SET_AUTOCLOSEBRACKETS
|
||||
MENUITEM "Fechar automaticamente &HTML/XML\tCtrl+Shift+H", IDM_SET_AUTOCLOSETAGS
|
||||
MENUITEM "Conclusão a&utomática das palavras", IDM_SET_AUTOCOMPLETEWORDS
|
||||
MENUITEM "Conclusão automática palavras chave Lexer", IDM_SET_AUTOCLEXKEYWORDS
|
||||
|
||||
@ -469,7 +469,7 @@ BEGIN
|
||||
MENUITEM "Настройка переноса &строк...", IDM_SET_WORDWRAPSETTINGS
|
||||
MENUITEM "Настро&йка длинных строк...", IDM_SET_LONGLINESETTINGS
|
||||
MENUITEM "Авто&матический отступ текста", IDM_SET_AUTOINDENTTEXT
|
||||
///MENUITEM "Auto Close Brackets", IDM_SET_AUTOCLOSEBRACKETS
|
||||
MENUITEM "Auto Close Brackets", IDM_SET_AUTOCLOSEBRACKETS
|
||||
MENUITEM "Автозакрытие тегов &HTML/XML\tCtrl+Shift+H", IDM_SET_AUTOCLOSETAGS
|
||||
MENUITEM "Авто&завершение слов", IDM_SET_AUTOCOMPLETEWORDS
|
||||
MENUITEM "Автозавершение на основе &лексем", IDM_SET_AUTOCLEXKEYWORDS
|
||||
|
||||
@ -469,7 +469,7 @@ BEGIN
|
||||
MENUITEM "Na&stavenie zalomenia slov...", IDM_SET_WORDWRAPSETTINGS
|
||||
MENUITEM "Nastavenie &dĺžky riadkov...", IDM_SET_LONGLINESETTINGS
|
||||
MENUITEM "Auto&matická identifikácia textu", IDM_SET_AUTOINDENTTEXT
|
||||
///MENUITEM "Auto Close Brackets", IDM_SET_AUTOCLOSEBRACKETS
|
||||
MENUITEM "Auto Close Brackets", IDM_SET_AUTOCLOSEBRACKETS
|
||||
MENUITEM "Auto-zakončovanie &HTML/XML\tCtrl+Shift+H", IDM_SET_AUTOCLOSETAGS
|
||||
MENUITEM "A&utomatické dokončovanie slov", IDM_SET_AUTOCOMPLETEWORDS
|
||||
MENUITEM "Auto-kompletizácia kľúčových slov &Lexer", IDM_SET_AUTOCLEXKEYWORDS
|
||||
|
||||
@ -469,7 +469,7 @@ BEGIN
|
||||
MENUITEM "Automatiskt radbyte...", IDM_SET_WORDWRAPSETTINGS
|
||||
MENUITEM "Långa rader...", IDM_SET_LONGLINESETTINGS
|
||||
MENUITEM "Automatiskt indrag", IDM_SET_AUTOINDENTTEXT
|
||||
///MENUITEM "Auto Close Brackets", IDM_SET_AUTOCLOSEBRACKETS
|
||||
MENUITEM "Auto Close Brackets", IDM_SET_AUTOCLOSEBRACKETS
|
||||
MENUITEM "Stäng HTML/XML automatiskt\tCtrl+Shift+H", IDM_SET_AUTOCLOSETAGS
|
||||
MENUITEM "Kompletera ord automatiskt", IDM_SET_AUTOCOMPLETEWORDS
|
||||
MENUITEM "Komplettera Lexer-&Key-Words automatiskt", IDM_SET_AUTOCLEXKEYWORDS
|
||||
|
||||
@ -469,7 +469,7 @@ BEGIN
|
||||
MENUITEM "Sözcük &kaydırma ayarları...", IDM_SET_WORDWRAPSETTINGS
|
||||
MENUITEM "&Uzun satır ayarları...", IDM_SET_LONGLINESETTINGS
|
||||
MENUITEM "Otomatik girinti kullanılsın", IDM_SET_AUTOINDENTTEXT
|
||||
///MENUITEM "Auto Close Brackets", IDM_SET_AUTOCLOSEBRACKETS
|
||||
MENUITEM "Auto Close Brackets", IDM_SET_AUTOCLOSEBRACKETS
|
||||
MENUITEM "HTML/&XML kod imleri otomatik kapatılsın\tCtrl+Shift+H", IDM_SET_AUTOCLOSETAGS
|
||||
MENUITEM "Sözcükler &otomatik tamamlansın", IDM_SET_AUTOCOMPLETEWORDS
|
||||
MENUITEM "&Lexer-&anahtar sözcükleri otomatik tamamlansın", IDM_SET_AUTOCLEXKEYWORDS
|
||||
|
||||
@ -469,7 +469,7 @@ BEGIN
|
||||
MENUITEM "&Word Wrap Settings...", IDM_SET_WORDWRAPSETTINGS
|
||||
MENUITEM "L&ong Line Settings...", IDM_SET_LONGLINESETTINGS
|
||||
MENUITEM "Auto In&dent Text", IDM_SET_AUTOINDENTTEXT
|
||||
///MENUITEM "Auto Close Brackets", IDM_SET_AUTOCLOSEBRACKETS
|
||||
MENUITEM "Auto Close Brackets", IDM_SET_AUTOCLOSEBRACKETS
|
||||
MENUITEM "Auto Close &HTML/XML\tCtrl+Shift+H", IDM_SET_AUTOCLOSETAGS
|
||||
MENUITEM "A&uto Complete Words", IDM_SET_AUTOCOMPLETEWORDS
|
||||
MENUITEM "Auto Complete Lexer-&Key-Words", IDM_SET_AUTOCLEXKEYWORDS
|
||||
|
||||
@ -469,7 +469,7 @@ BEGIN
|
||||
MENUITEM "自动换行设置(&W)...", IDM_SET_WORDWRAPSETTINGS
|
||||
MENUITEM "长行标记设置(&O)...", IDM_SET_LONGLINESETTINGS
|
||||
MENUITEM "自动缩进(&D)", IDM_SET_AUTOINDENTTEXT
|
||||
///MENUITEM "Auto Close Brackets", IDM_SET_AUTOCLOSEBRACKETS
|
||||
MENUITEM "Auto Close Brackets", IDM_SET_AUTOCLOSEBRACKETS
|
||||
MENUITEM "自动关闭 &HTML/XML 标记\tCtrl+Shift+H", IDM_SET_AUTOCLOSETAGS
|
||||
MENUITEM "自动补全单词(&U)", IDM_SET_AUTOCOMPLETEWORDS
|
||||
MENUITEM "自动补全语法关键字(&K)", IDM_SET_AUTOCLEXKEYWORDS
|
||||
|
||||
@ -469,7 +469,7 @@ BEGIN
|
||||
MENUITEM "自動換行設定(&W)...", IDM_SET_WORDWRAPSETTINGS
|
||||
MENUITEM "長行標記設定(&O)...", IDM_SET_LONGLINESETTINGS
|
||||
MENUITEM "自動縮排(&D)", IDM_SET_AUTOINDENTTEXT
|
||||
///MENUITEM "Auto Close Brackets", IDM_SET_AUTOCLOSEBRACKETS
|
||||
MENUITEM "Auto Close Brackets", IDM_SET_AUTOCLOSEBRACKETS
|
||||
MENUITEM "自動關閉 HTML/XML 標記(&H)\tCtrl+Shift+H", IDM_SET_AUTOCLOSETAGS
|
||||
MENUITEM "自動完成單詞(&U)", IDM_SET_AUTOCOMPLETEWORDS
|
||||
MENUITEM "自動完成語法關鍵字(&K)", IDM_SET_AUTOCLEXKEYWORDS
|
||||
|
||||
@ -56,22 +56,6 @@
|
||||
|
||||
// ============================================================================
|
||||
|
||||
#if (defined(_DEBUG) || defined(DEBUG)) && !defined(NDEBUG)
|
||||
#ifndef _DEBUG
|
||||
#define _DEBUG 1
|
||||
#endif
|
||||
#ifndef DEBUG
|
||||
#define DEBUG 1
|
||||
#endif
|
||||
inline void* reallocz(void* pMem, size_t numBytes) { void* pM = realloc(pMem, numBytes); if (pM) memset(pM, 0, numBytes); return pM; }
|
||||
#define AllocMem(B, F) (((F)&HEAP_ZERO_MEMORY) ? calloc(1, B) : malloc(B))
|
||||
#define ReAllocMem(M, B, F) ((M) ? (((F)&HEAP_ZERO_MEMORY) ? reallocz(M, B) : realloc(M, B)) : AllocMem(B, F))
|
||||
#define ReAllocGrowMem(M, B, F) ((M) ? ((_msize(M) >= (B)) ? (((F)&HEAP_ZERO_MEMORY) ? (memset(M, 0, B), (M)) : (M)) : (((F)&HEAP_ZERO_MEMORY) ? reallocz(M, B) : realloc(M, B))) : AllocMem(B, F))
|
||||
#define FreeMem(M) ((M ? (free(M)) : NOOP), true)
|
||||
#define SizeOfMem(M) ((M) ? _msize(M) : 0)
|
||||
|
||||
#else // RELASE VERSION
|
||||
|
||||
// direct heap allocation
|
||||
#if (defined(_DEBUG) || defined(DEBUG)) && !defined(NDEBUG)
|
||||
#define DEFAULT_ALLOC_FLAGS (HEAP_GENERATE_EXCEPTIONS | HEAP_TAIL_CHECKING_ENABLED | HEAP_FREE_CHECKING_ENABLED | HEAP_CREATE_HARDENED)
|
||||
@ -117,8 +101,6 @@ inline size_t SizeOfMem(LPCVOID lpMem)
|
||||
return (lpMem ? HeapSize(Globals.hndlProcessHeap, 0, lpMem) : 0);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
// ============================================================================
|
||||
|
||||
#if (defined(_DEBUG) || defined(DEBUG)) && !defined(NDEBUG)
|
||||
|
||||
129
src/Notepad3.c
129
src/Notepad3.c
@ -169,6 +169,8 @@ static bool s_bPrevFullScreenFlag = false;
|
||||
static double s_dExpression = 0.0;
|
||||
static te_int_t s_iExprError = -1;
|
||||
|
||||
static char* s_SelectionBuffer = NULL;
|
||||
|
||||
//~static CONST WCHAR *const s_ToolbarWndClassName = L"NP3_TOOLBAR_CLASS";
|
||||
|
||||
static int const INISECTIONBUFCNT = 32; // .ini file load buffer in KB
|
||||
@ -869,6 +871,11 @@ static void _CleanUpResources(const HWND hwnd, bool bIsInitialized)
|
||||
s_hEventFileDeletedExt = INVALID_HANDLE_VALUE;
|
||||
}
|
||||
|
||||
if (s_SelectionBuffer) {
|
||||
FreeMem(s_SelectionBuffer);
|
||||
s_SelectionBuffer = NULL;
|
||||
}
|
||||
|
||||
// ---------------------------------------------
|
||||
// Save Settings should be done elsewhere before
|
||||
// ---------------------------------------------
|
||||
@ -1035,7 +1042,7 @@ int WINAPI wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance,
|
||||
|
||||
_InitGlobals();
|
||||
InitDarkMode();
|
||||
|
||||
|
||||
// Windows Class name
|
||||
StringCchCopy(s_wchWndClass, COUNTOF(s_wchWndClass), _W(SAPPNAME));
|
||||
|
||||
@ -1044,6 +1051,10 @@ int WINAPI wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance,
|
||||
Globals.hPrevInst = hPrevInstance;
|
||||
Globals.hndlProcessHeap = GetProcessHeap();
|
||||
|
||||
// now using AllocMen() methods
|
||||
s_SelectionBuffer = (char*)AllocMem(128, HEAP_ZERO_MEMORY);
|
||||
|
||||
|
||||
Path_GetAppDirectory(Paths.ModuleDirectory);
|
||||
|
||||
if (!Path_GetCurrentDirectory(Paths.WorkingDirectory)) {
|
||||
@ -8101,10 +8112,13 @@ static void _HandleAutoIndent(int const charAdded)
|
||||
//
|
||||
// _HandleAutoCloseTags()
|
||||
//
|
||||
static void _HandleAutoCloseTags()
|
||||
static void _HandleAutoCloseTags()
|
||||
{
|
||||
///int const lexerID = SciCall_GetLexer();
|
||||
///if (lexerID == SCLEX_HTML || lexerID == SCLEX_XML)
|
||||
if (Sci_IsMultiSelection()) {
|
||||
return;
|
||||
}
|
||||
/// int const lexerID = SciCall_GetLexer();
|
||||
/// if (lexerID == SCLEX_HTML || lexerID == SCLEX_XML)
|
||||
DocPos const maxSearchBackward = 8192;
|
||||
DocPos const iCurPos = SciCall_GetCurrentPos();
|
||||
DocPos const iHelper = iCurPos - maxSearchBackward;
|
||||
@ -8153,25 +8167,78 @@ static void _HandleAutoCloseTags()
|
||||
|
||||
//=============================================================================
|
||||
//
|
||||
// _HandleAutoCloseBrackets()
|
||||
// _HandleInsertCheck()
|
||||
//
|
||||
static void _HandleAutoCloseBrackets(int const x)
|
||||
|
||||
static inline void _SaveSelectionToBuffer()
|
||||
{
|
||||
DocPos const iCurPos = SciCall_GetCurrentPos();
|
||||
UndoTransActionBegin();
|
||||
switch(x){
|
||||
case '[':
|
||||
SciCall_AddText(1,"]");
|
||||
break;
|
||||
case '{':
|
||||
SciCall_AddText(1,"}");
|
||||
break;
|
||||
case '(':
|
||||
SciCall_AddText(1,")");
|
||||
break;
|
||||
if (!s_SelectionBuffer) {
|
||||
return;
|
||||
}
|
||||
if (Sci_IsMultiOrRectangleSelection()) {
|
||||
s_SelectionBuffer[0] = '\0';
|
||||
s_SelectionBuffer[1] = 'X';
|
||||
return;
|
||||
}
|
||||
size_t len = SciCall_GetSelText(NULL);
|
||||
if ((len + 3) > SizeOfMem(s_SelectionBuffer)) {
|
||||
s_SelectionBuffer = (char*)ReAllocMem(s_SelectionBuffer, len + 3, HEAP_ZERO_MEMORY);
|
||||
}
|
||||
Sci_GetSelectionTextN(&s_SelectionBuffer[1], SizeOfMem(s_SelectionBuffer) - 2);
|
||||
s_SelectionBuffer[0] = s_SelectionBuffer[1];
|
||||
}
|
||||
|
||||
static inline DocPos _EncloseSelectionBuffer(const char op, const char cl)
|
||||
{
|
||||
if (!s_SelectionBuffer) {
|
||||
return 0;
|
||||
}
|
||||
if (s_SelectionBuffer[0] == '\0' && s_SelectionBuffer[1] == 'X') {
|
||||
// IsMultiOrRectangleSelection:
|
||||
s_SelectionBuffer[0] = op;
|
||||
s_SelectionBuffer[1] = '\0';
|
||||
return 1;
|
||||
}
|
||||
size_t len = s_SelectionBuffer ? strlen(s_SelectionBuffer) : 0;
|
||||
len += (len ? 0 : 1); // empty correction
|
||||
s_SelectionBuffer[0] = op;
|
||||
s_SelectionBuffer[len++] = cl;
|
||||
s_SelectionBuffer[len] = '\0';
|
||||
return len;
|
||||
}
|
||||
|
||||
|
||||
static void _HandleInsertCheck(const SCNotification* const scn)
|
||||
{
|
||||
if (Sci_IsMultiOrRectangleSelection() || !scn || !(scn->text)) {
|
||||
return;
|
||||
}
|
||||
if (Settings.AutoCloseBrackets) {
|
||||
if (scn->length == 1) {
|
||||
bool bInserted = true;
|
||||
DocPos len = 0;
|
||||
switch (scn->text[0]) {
|
||||
case '[':
|
||||
len = _EncloseSelectionBuffer('[', ']');
|
||||
break;
|
||||
case '{':
|
||||
len = _EncloseSelectionBuffer('{', '}');
|
||||
break;
|
||||
case '(':
|
||||
len = _EncloseSelectionBuffer('(', ')');
|
||||
break;
|
||||
default:
|
||||
bInserted = false;
|
||||
break;
|
||||
}
|
||||
if (bInserted) {
|
||||
SciCall_ChangeInsertion(len, s_SelectionBuffer);
|
||||
if (len == 2) {
|
||||
PostMessage(Globals.hwndEdit, SCI_CHARLEFT, 0, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
SciCall_SetSel(iCurPos, iCurPos);
|
||||
EndUndoTransAction();
|
||||
}
|
||||
|
||||
|
||||
@ -8198,6 +8265,7 @@ static bool _IsIMEOpenInNoNativeMode()
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
//=============================================================================
|
||||
//
|
||||
// MsgNotifyLean() - Handles WM_NOTIFY (only absolute neccessary events)
|
||||
@ -8222,18 +8290,24 @@ inline static LRESULT _MsgNotifyLean(const SCNotification *const scn, bool* bMod
|
||||
if ((iModType & SC_MULTISTEPUNDOREDO) && !(iModType & SC_LASTSTEPINUNDOREDO)) {
|
||||
return TRUE; // wait for last step in multi-step-undo/redo
|
||||
}
|
||||
if (iModType & SC_MOD_INSERTCHECK) {
|
||||
if (!(iModType & (SC_PERFORMED_UNDO | SC_PERFORMED_REDO))) {
|
||||
_HandleInsertCheck(scn);
|
||||
}
|
||||
}
|
||||
if (iModType & (SC_MOD_BEFOREINSERT | SC_MOD_BEFOREDELETE)) {
|
||||
//*bModified = false; // not yet
|
||||
*bModified = false; // not yet
|
||||
if (!(iModType & (SC_PERFORMED_UNDO | SC_PERFORMED_REDO))) {
|
||||
if (!_InUndoRedoTransaction() && (_urtoken < URTok_TokenStart)) {
|
||||
bool const bIsSelEmpty = SciCall_IsSelectionEmpty();
|
||||
_SaveSelectionToBuffer();
|
||||
bool const bSelEmpty = SciCall_IsSelectionEmpty();
|
||||
bool const bIsMultiRectSel = Sci_IsMultiOrRectangleSelection();
|
||||
if (!bIsSelEmpty || bIsMultiRectSel) {
|
||||
if (!bSelEmpty || bIsMultiRectSel) {
|
||||
LONG const tok = _SaveUndoSelection();
|
||||
_urtoken = (tok >= URTok_TokenStart ? tok : _urtoken);
|
||||
}
|
||||
// TODO: @@@ Find reason for why this NOP workaround is needed:
|
||||
if (!bIsSelEmpty && bIsMultiRectSel) {
|
||||
if (!bSelEmpty && bIsMultiRectSel) {
|
||||
// need to trigger SCI:InvalidateCaret()
|
||||
bool const bAddSelTyping = SciCall_GetAdditionalSelectionTyping();
|
||||
//~SciCall_SetAdditionalSelectionTyping(!bAddSelTyping); // v5.1.1: no check for change, so:
|
||||
@ -8505,13 +8579,6 @@ static LRESULT _MsgNotifyFromEdit(HWND hwnd, const SCNotification* const scn)
|
||||
_HandleAutoCloseTags();
|
||||
}
|
||||
break;
|
||||
case '[':
|
||||
case '{':
|
||||
case '(':
|
||||
if (Settings.AutoCloseBrackets) {
|
||||
_HandleAutoCloseBrackets(ich);
|
||||
}
|
||||
break;
|
||||
case '?':
|
||||
_EvalTinyExpr(true);
|
||||
break;
|
||||
|
||||
@ -373,6 +373,8 @@ DeclareSciCallV1(SetSearchFlags, SETSEARCHFLAGS, int, flags);
|
||||
DeclareSciCallR2(SearchInTarget, SEARCHINTARGET, DocPos, DocPos, length, const char*, text);
|
||||
DeclareSciCallV2(DeleteRange, DELETERANGE, DocPos, start, DocPos, length);
|
||||
|
||||
DeclareSciCallV2(ChangeInsertion, CHANGEINSERTION, DocPos, length, const char*, text);
|
||||
|
||||
DeclareSciCallV1(SetAnchor, SETANCHOR, DocPos, position);
|
||||
DeclareSciCallV1(SetCurrentPos, SETCURRENTPOS, DocPos, position);
|
||||
|
||||
@ -808,6 +810,14 @@ inline void Sci_RedrawScrollbars()
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
inline void Sci_GetSelectionTextN(char* pBuffer, size_t count)
|
||||
{
|
||||
size_t const selLen = SciCall_GetSelText(NULL);
|
||||
StringCchCopyNA(pBuffer, count, SciCall_GetRangePointer(SciCall_GetSelectionStart(), selLen), selLen);
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
#define Sci_GetEOLLen() ((SciCall_GetEOLMode() == SC_EOL_CRLF) ? 2 : 1)
|
||||
|
||||
inline int Sci_GetCurrentEOL_A(LPCH eol)
|
||||
|
||||
@ -922,6 +922,7 @@ typedef struct THEMEFILES {
|
||||
// SC_MOD_INSERTTEXT, SC_MOD_DELETETEXT, SC_MOD_CHANGESTYLE, SC_MOD_CHANGEFOLD, SC_PERFORMED_USER,
|
||||
// SC_PERFORMED_UNDO, SC_PERFORMED_REDO, SC_MULTISTEPUNDOREDO, SC_LASTSTEPINUNDOREDO, SC_MOD_CHANGEMARKER,
|
||||
// SC_MOD_BEFOREINSERT, SC_MOD_BEFOREDELETE, SC_MULTILINEUNDOREDO, and SC_MODEVENTMASKALL.
|
||||
// SC_MOD_INSERTCHECK
|
||||
//
|
||||
///~ int const evtMask = SC_MODEVENTMASKALL; (!) - don't listen to all events (SC_MOD_CHANGESTYLE) => RECURSION!
|
||||
///~ SciCall_SetModEventMask(evtMask);
|
||||
@ -932,7 +933,7 @@ typedef enum SciEventMask {
|
||||
|
||||
EVM_None = SC_MOD_NONE,
|
||||
EVM_UndoRedo = SC_MOD_CONTAINER | SC_PERFORMED_UNDO | SC_PERFORMED_REDO | SC_MULTILINEUNDOREDO | SC_MULTISTEPUNDOREDO | SC_LASTSTEPINUNDOREDO |
|
||||
SC_MOD_INSERTTEXT | SC_MOD_DELETETEXT | SC_MOD_BEFOREINSERT | SC_MOD_BEFOREDELETE,
|
||||
SC_MOD_INSERTTEXT | SC_MOD_DELETETEXT | SC_MOD_BEFOREINSERT | SC_MOD_BEFOREDELETE | SC_MOD_INSERTCHECK,
|
||||
EVM_Default = EVM_UndoRedo
|
||||
//~EVM_All = SC_MODEVENTMASKALL ~ don't use
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user