diff --git a/Build/Changes.txt b/Build/Changes.txt index 450f20c49..acdf799d7 100644 --- a/Build/Changes.txt +++ b/Build/Changes.txt @@ -34,7 +34,7 @@ UCD - (UCD)ARDET is an Encoding Detector Library ======================================================== -Current BETA/RC Version 5.22.1227.(build_#) (2022-12-27) +Current BETA/RC Version 5.22.1228.(build_#) (2022-12-28) ======================================================== -------------------------------------------------------- @@ -63,6 +63,8 @@ NEW: CHANGES: -------------------------------------------------------- [.###.#]- . +[1228.1]- JSON lexer: Same style for SCE_JSON_COMPACTIRI and SCE_JSON_PROPERTYNAME (LEX). +[1228.1]- Status-bar double-click line-break mode: Cycle only between CR+LF <-> LF modes. [1220.1]- Update Lexer "AutoIt3 Script" to Autoit v3.3.16.1. [1220.1]- Adjust All dialogboxes for all Languages to fit at display scale of 125%. [1216.1]- Replacing SCI_REPLACETARGET calls by SCI_REPLACETARGETMINIMAL calls where appropriate. @@ -109,6 +111,7 @@ CHANGES Versions in Tools or Libraries: FIXES: -------------------------------------------------------- [.###.#]- . +[1228.1]- Speedup search&replace in large text files. [1227.1]- Use alternate path, if Path_GetKnownFolder() failed. [1215.1]- Set alpha (80) for "highlight current line" translucency, if not given. [1212.1]- "Notepad3 Replacement" after Win11 22H2 update (SUP). diff --git a/Versions/day.txt b/Versions/day.txt index 4f7203748..fe1b06087 100644 --- a/Versions/day.txt +++ b/Versions/day.txt @@ -1 +1 @@ -1227 +1228 diff --git a/language/common_res.h b/language/common_res.h index 049fa066e..06c5d67b2 100644 --- a/language/common_res.h +++ b/language/common_res.h @@ -182,6 +182,7 @@ #define IDS_MUI_SELRECTORMULTI 14021 #define IDS_MUI_INIFILE_READONLY 14022 #define IDS_MUI_DOCUMENT_READONLY 14023 +#define IDS_MUI_ASK_CLEAR_UNDO 14024 #define IDS_MUI_ASK_SAVE 15000 #define IDS_MUI_ASK_REVERT 15001 @@ -1286,6 +1287,7 @@ #define IDS_LEX_2ND_CH_REV_TO_ORG 63395 #define IDS_LEX_2ND_CH_REV_TO_MOD 63396 #define IDS_LEX_STR_63397 63397 +#define IDS_LEX_STR_63398 63398 #define IDS_LEX_CSV_COL_0 63490 diff --git a/language/np3_af_za/strings_af_za.rc b/language/np3_af_za/strings_af_za.rc index 7cb011353..5ee3adfe6 100644 --- a/language/np3_af_za/strings_af_za.rc +++ b/language/np3_af_za/strings_af_za.rc @@ -316,7 +316,7 @@ Opsies:\r\n\ /n\tMaak altyd 'n nuwe venster oop (/ns enkele lêer instansie).\r\n\ /r\tHergebruik venster (/rs enkele lêer instansie).\r\n\ /p\tStel venster posisie en grootte (/p0, /ps, /pf,l,t,r,b,m)\r\n\ -\tor /p ,,,, [alle heelgetalle].\r\n\ +\tor /p ,,,[,,] [alle heelgetalle].\r\n\ /t\tStel venster titel.\r\n\ /i\tBegin as tray ikoon.\r\n\ /o\tHou venster bo-op.\r\n\ diff --git a/language/np3_be_by/strings_be_by.rc b/language/np3_be_by/strings_be_by.rc index ba6a83087..a4f271288 100644 --- a/language/np3_be_by/strings_be_by.rc +++ b/language/np3_be_by/strings_be_by.rc @@ -316,7 +316,7 @@ Notepad3 [/?] [...[Кадоўка]] [...[Канчаткі радкоў]] [/e] [/ /n\tЗаўсёды адкрываць новае акно (/ns адзін экзэмпляр файла).\r\n\ /r\tВыкарыстаць былое акно (/rs адзін экзэмпляр файла).\r\n\ /p\tЗадаць пазіцыю і памер акна (/p0, /ps, /pf,l,t,r,b,m)\r\n\ -\tці /p ,,,, [цэлыя лікі].\r\n\ +\tці /p ,,,[,,] [цэлыя лікі].\r\n\ /t\tЗадаць назву акна.\r\n\ /i\tЗапусціць значком на паліцы задач.\r\n\ /o\tЗверху іншых вокнаў.\r\n\ diff --git a/language/np3_de_de/lexer_de_de.rc b/language/np3_de_de/lexer_de_de.rc index b7cd092b8..5b3f5d89d 100644 --- a/language/np3_de_de/lexer_de_de.rc +++ b/language/np3_de_de/lexer_de_de.rc @@ -496,6 +496,7 @@ BEGIN IDS_LEX_STR_63387 "Symbol Operator" IDS_LEX_STR_63388 "String EOL" IDS_LEX_STR_63397 "Backticks" + IDS_LEX_STR_63398 "GUID String" END STRINGTABLE diff --git a/language/np3_de_de/strings_de_de.rc b/language/np3_de_de/strings_de_de.rc index 1aa5241e6..e9fb66d9d 100644 --- a/language/np3_de_de/strings_de_de.rc +++ b/language/np3_de_de/strings_de_de.rc @@ -172,8 +172,9 @@ BEGIN IDS_MUI_FIND_WRAPRE "Der Anfang des Dokumentes wurde erreicht, Rückwärtssuche vom Ende her weiter führen." IDS_MUI_NOTFOUND "Der gegebene Suchbegriff führte zu keiner passenden Textstelle." IDS_MUI_REPLCOUNT "%s Fundstelle(n) des gegebenen Suchbegriffs wurde(n) ersetzt." - IDS_MUI_ASK_ENCODING "Der Wechsel zwischen verschiedenen Codierungen kann die Ersetzung nicht unterstützter Zeichen mit voreingestellten Zeichen zur folge haben, wobei die Historie gelöscht wird. Weiter machen?" - IDS_MUI_ASK_ENCODING2 "Du bist dabei die Codierung eines leeren Dokumentes zu ändern. Beachte bitte, daß dabei die Historie gelöscht wird, da diese nicht mit der neuen Codierung synchronisiert werden kann. Weiter machen?" + IDS_MUI_ASK_ENCODING "Der Wechsel zwischen verschiedenen Codierungen kann die Ersetzung nicht unterstützter Zeichen mit voreingestellten Zeichen zur folge haben, wobei die Undo-Historie gelöscht wird. Weiter machen?" + IDS_MUI_ASK_ENCODING2 "Du bist dabei die Codierung eines leeren Dokumentes zu ändern. Beachte bitte, daß dabei die Undo-Historie gelöscht wird, da diese nicht mit der neuen Codierung synchronisiert werden kann. Weiter machen?" + IDS_MUI_ASK_CLEAR_UNDO "Diese Operation wird die Undo-History löschen. Weiter machen?" IDS_MUI_READONLY_SAVE """%s"" ist schreibgeschützt. Dokument unter einem anderen Dateipfad speichern?" IDS_MUI_FILECHANGENOTIFY "Die geladene Datei wurde durch ein anderes Programm auf dem Datenträger verändert. Neu laden?" @@ -316,7 +317,7 @@ Optionen:\r\n\ /n\tÖffne immer ein neues Fenster (/ns single file instance).\r\n\ /r\tBenutze geöffnetes Fenster erneut (/rs single file instance).\r\n\ /p\tSetze Fenster: Position und Größe (/p0, /ps, /pf,l,t,r,b,m)\r\n\ -\toder /p ,,,, [ganzzahlig].\r\n\ +\toder /p ,,,[,,] [ganzzahlig].\r\n\ /t\tSetze Fenster-Titel.\r\n\ /i\tStarte als 'Tray-Icon'.\r\n\ /o\tHalte Fenster immer auf oberster Ebene.\r\n\ diff --git a/language/np3_el_gr/strings_el_gr.rc b/language/np3_el_gr/strings_el_gr.rc index 063180dab..f5e06acab 100644 --- a/language/np3_el_gr/strings_el_gr.rc +++ b/language/np3_el_gr/strings_el_gr.rc @@ -316,7 +316,7 @@ Notepad3 [/?] [...[Κωδικοποίηση]] [...[Λειτουργία κατά /n\tΆνοιγμα πάντα νέου παραθύρου (/ns παρουσία ενός μόνο αρχείου).\r\n\ /r\tΕπαναχρησιμοποίηση παραθύρου (/rs παρουσία ενός μόνο\r\n\tαρχείου).\r\n\ /p\tΟρισμός θέσης και μεγέθους παραθύρου (/p0, /ps, /pf,l,t,r,b,m)\r\n\ -\tή /p <αριστερά>,<πάνω>,<πλάτος>,<ύψος>,<μέγ.> [όλοι\r\n\tακέραιοι].\r\n\ +\tή /p <αριστερά>,<πάνω>,<πλάτος>,<ύψος>[,,<μέγ.>] [όλοι\r\n\tακέραιοι].\r\n\ /t\tΟρισμός τίτλου παραθύρου.\r\n\ /i\tΈναρξη ως ελαχιστοποιημένο στην περιοχή ειδοποιήσεων.\r\n\ /o\tΠάντα στην κορυφή το παράθυρο.\r\n\ diff --git a/language/np3_en_gb/strings_en_gb.rc b/language/np3_en_gb/strings_en_gb.rc index 52a35247f..a5513da3a 100644 --- a/language/np3_en_gb/strings_en_gb.rc +++ b/language/np3_en_gb/strings_en_gb.rc @@ -316,7 +316,7 @@ Options:\r\n\ /n\tAlways open a new window (/ns single file instance).\r\n\ /r\tReuse window (/rs single file instance).\r\n\ /p\tSet window position and size (/p0, /ps, /pf,l,t,r,b,m)\r\n\ -\tor /p ,,,, [all integers].\r\n\ +\tor /p ,,,[,,] [all integers].\r\n\ /t\tSet window title.\r\n\ /i\tStart as tray icon.\r\n\ /o\tKeep window on top.\r\n\ diff --git a/language/np3_en_us/lexer_en_us.rc b/language/np3_en_us/lexer_en_us.rc index e220b3016..8b1078b02 100644 --- a/language/np3_en_us/lexer_en_us.rc +++ b/language/np3_en_us/lexer_en_us.rc @@ -496,6 +496,7 @@ BEGIN IDS_LEX_STR_63387 "Symbol Operator" IDS_LEX_STR_63388 "String EOL" IDS_LEX_STR_63397 "Backticks" + IDS_LEX_STR_63398 "GUID String" END STRINGTABLE diff --git a/language/np3_en_us/strings_en_us.rc b/language/np3_en_us/strings_en_us.rc index 6236f8c22..b83367750 100644 --- a/language/np3_en_us/strings_en_us.rc +++ b/language/np3_en_us/strings_en_us.rc @@ -174,6 +174,7 @@ BEGIN IDS_MUI_REPLCOUNT "%s occurrence(s) of specified search pattern replaced." IDS_MUI_ASK_ENCODING "Switching the file encoding from one encoding to another may replace unsupported text with default characters, and the undo history will be cleared. Continue?" IDS_MUI_ASK_ENCODING2 "You are about to change the encoding of an empty file. Note that this will clear the undo history, as it can't be synchronized with the new encoding. Continue?" + IDS_MUI_ASK_CLEAR_UNDO "This operation will clear the undo history. Continue?" IDS_MUI_READONLY_SAVE """%s"" is read only. Save to a different file?" IDS_MUI_FILECHANGENOTIFY "The current file has been modified by an external program. Reload?" @@ -316,7 +317,7 @@ Options:\r\n\ /n\tAlways open a new window (/ns single file instance).\r\n\ /r\tReuse window (/rs single file instance).\r\n\ /p\tSet window position and size (/p0, /ps, /pf,l,t,r,b,m)\r\n\ -\tor /p ,,,, [all integers].\r\n\ +\tor /p ,,,[,,] [all integers].\r\n\ /t\tSet window title.\r\n\ /i\tStart as tray icon.\r\n\ /o\tKeep window on top.\r\n\ diff --git a/language/np3_es_es/strings_es_es.rc b/language/np3_es_es/strings_es_es.rc index 7bff60abd..a762fe271 100644 --- a/language/np3_es_es/strings_es_es.rc +++ b/language/np3_es_es/strings_es_es.rc @@ -316,7 +316,7 @@ Opciones:\r\n\ /n\tSiempre abre una nueva ventana (/ns instancia de archivo único).\r\n\ /r\tReutilizar la ventana (/rs instancia de archivo único).\r\n\ /p\tEstablecer el tamaño y la posición de la ventana (/p0, /ps, /pf,l,t,r,b,m)\r\n\ -\to /p ,,,, [todos\r\n\tenteros].\r\n\ +\to /p ,,,[,,] [todos\r\n\tenteros].\r\n\ /t\tEstablecer el título de la ventana.\r\n\ /i\tComenzar como un icono de la barra de tareas.\r\n\ /o\tVentana siempre visible.\r\n\ diff --git a/language/np3_es_mx/strings_es_mx.rc b/language/np3_es_mx/strings_es_mx.rc index 481f53fd2..dbd4de1a4 100644 --- a/language/np3_es_mx/strings_es_mx.rc +++ b/language/np3_es_mx/strings_es_mx.rc @@ -316,7 +316,7 @@ Opciones:\r\n\ /n\tSiempre abre una nueva ventana (/ns instancia de archivo único).\r\n\ /r\tReutilizar la ventana (/rs instancia de archivo único).\r\n\ /p\tEstablecer el tamaño y la posición de la ventana (/p0, /ps, /pf,l,t,r,b,m)\r\n\ -\to /p ,,,, [todos\r\n\tenteros].\r\n\ +\to /p ,,,[,,] [todos\r\n\tenteros].\r\n\ /t\tEstablecer el título de la ventana.\r\n\ /i\tComenzar como un icono de la barra de tareas.\r\n\ /o\tVentana siempre visible.\r\n\ diff --git a/language/np3_fr_fr/strings_fr_fr.rc b/language/np3_fr_fr/strings_fr_fr.rc index ca3dc8f81..1dd6673b3 100644 --- a/language/np3_fr_fr/strings_fr_fr.rc +++ b/language/np3_fr_fr/strings_fr_fr.rc @@ -316,7 +316,7 @@ Options :\r\n\ /n\tOuvre toujours une nouvelle fenêtre (/ns instance\r\n\tde fichier unique).\r\n\ /r\tRéutilise la fenêtre (/rs instance de fichier unique).\r\n\ /p\tDéfinit la position et la taille de la fenêtre (/p0, /ps, /pf,l,t,r,b,m)\r\n\ -\tou /p ,,,, [tous entiers].\r\n\ +\tou /p ,,,[,,] [tous entiers].\r\n\ /t\tDéfinit un titre de fenêtre.\r\n\ /i\tDémarre en icône dans la zone de notifications.\r\n\ /o\tGarde la fenêtre toujours visible.\r\n\ diff --git a/language/np3_hi_in/strings_hi_in.rc b/language/np3_hi_in/strings_hi_in.rc index 14b763b3f..41f9d4856 100644 --- a/language/np3_hi_in/strings_hi_in.rc +++ b/language/np3_hi_in/strings_hi_in.rc @@ -316,7 +316,7 @@ Notepad3 [/?] [...[एन्कोडिंग]] [...[रेखा समाप /n\tसदैव एक नई विंडो खोलें (/ns एकल फ़ाइल अवस्था).\r\n\ /r\tविंडो पुनः इस्तमएआल करें (/rs एकल फ़ाइल अवस्था).\r\n\ /p\tविंडो स्तिथि और आकार तय करें (/p0, /ps, /pf,l,t,r,b,m)\r\n\ -\tया /p <बाएं>,<शीर्ष>,<चोड़ाई>,<ऊंचाई>,<अत्यधिक> [समस्त पूर्णांक].\r\n\ +\tया /p <बाएं>,<शीर्ष>,<चोड़ाई>,<ऊंचाई>[,,<अत्यधिक>] [समस्त पूर्णांक].\r\n\ /t\tविंडो शीर्षक तय करें.\r\n\ /i\tट्रे आइकान के रूप में शुरू करें.\r\n\ /o\tविंडो ऊपर रखें.\r\n\ diff --git a/language/np3_hu_hu/strings_hu_hu.rc b/language/np3_hu_hu/strings_hu_hu.rc index 577d80d3c..aa8299e18 100644 --- a/language/np3_hu_hu/strings_hu_hu.rc +++ b/language/np3_hu_hu/strings_hu_hu.rc @@ -316,7 +316,7 @@ Opciók:\r\n\ /n\tMindig nyisson új ablakot (/ns egyetlen fájl példány).\r\n\ /r\tAblak újrahasznosítása (/rs egyetlen fájl példány).\r\n\ /p\tAblak pozíció és méret beállítása (/p0, /ps, /pf,l,t,r,b,m)\r\n\ -\tor /p ,,,, [mindegyik\r\n\tegész szám].\r\n\ +\tor /p ,,,[,,] [mindegyik\r\n\tegész szám].\r\n\ /t\tCímsor szövegének beállítása.\r\n\ /i\tIndítás óra melé kicsinyítve.\r\n\ /o\tAblak mindig felül.\r\n\ diff --git a/language/np3_id_id/strings_id_id.rc b/language/np3_id_id/strings_id_id.rc index e4386386d..418635b46 100644 --- a/language/np3_id_id/strings_id_id.rc +++ b/language/np3_id_id/strings_id_id.rc @@ -316,7 +316,7 @@ Options:\r\n\ /n\tAlways open a new window (/ns single file instance).\r\n\ /r\tReuse window (/rs single file instance).\r\n\ /p\tSet window position and size (/p0, /ps, /pf,l,t,r,b,m)\r\n\ -\tor /p ,,,, [all integers].\r\n\ +\tor /p ,,,[,,] [all integers].\r\n\ /t\tSet window title.\r\n\ /i\tStart as tray icon.\r\n\ /o\tKeep window on top.\r\n\ diff --git a/language/np3_it_it/strings_it_it.rc b/language/np3_it_it/strings_it_it.rc index 5cbd35ebb..cb3e3ce18 100644 --- a/language/np3_it_it/strings_it_it.rc +++ b/language/np3_it_it/strings_it_it.rc @@ -316,7 +316,7 @@ Opzioni:\r\n\ /n\tApri sempre una nuova finestra (/ns istanza singola).\r\n\ /r\tRiutilizza finestra (/rs istanza singola).\r\n\ /p\tImposta posizione e dimensione della finestra (/p0, /ps, /pf,l,t,r,b,m)\r\n\ -\tor /p ,,,, [numeri interi].\r\n\ +\to /p ,,,[,,] [numeri interi].\r\n\ /t\tImposta titolo della finestra.\r\n\ /i\tAvvia come icona nell'area di notifica'.\r\n\ /o\tMantieni finestra in primo piano.\r\n\ diff --git a/language/np3_ja_jp/strings_ja_jp.rc b/language/np3_ja_jp/strings_ja_jp.rc index 65427f03e..e12f25921 100644 --- a/language/np3_ja_jp/strings_ja_jp.rc +++ b/language/np3_ja_jp/strings_ja_jp.rc @@ -316,7 +316,7 @@ Notepad3 [/?] [...[文字コード]] [...[改行コード]] [/e] [/g] [/m] [/l]\ /n\t新規ウィンドウで開く (/ns ファイルは単一のインスタンス)\r\n\ /r\tウインドウを再利用 (/rs 同じく単一のインスタンス\r\n\ /p\tウィンドウの位置とサイズを指定 [/p x,y,sizex,y[,max]] (/p0, /ps, /pf,\r\n\ -\tl,t,r,b,m) or /p ,,,, [すべて整数]\r\n\ +\tl,t,r,b,m) or /p ,,,[,,] [すべて整数]\r\n\ /t\tタイトルバーの文字列を指定 [/t text]\r\n\ /i\tシステムトレイ内に起動\r\n\ /o\t常に手前に表示\r\n\ diff --git a/language/np3_ko_kr/strings_ko_kr.rc b/language/np3_ko_kr/strings_ko_kr.rc index 01dd7dcbf..5d30aa555 100644 --- a/language/np3_ko_kr/strings_ko_kr.rc +++ b/language/np3_ko_kr/strings_ko_kr.rc @@ -316,7 +316,7 @@ Notepad3 [/?] [...[인코딩]] [...[줄 끝 모드]] [/e] [/g] [/m] [/l]\r\n\ /n\t항상 새 창을 엽니다 (/ns 단일 파일 인스턴스).\r\n\ /r\t창을 재사용합니다 (/rs 단일 파일 인스턴스).\r\n\ /p\t창 위치와 크기 지정 (/p0, /ps, /pf,l,t,r,b,m)\r\n\ -\t또는 /p <왼쪽>,<상단>,<너비>,<높이>,<최대> [모두 정수].\r\n\ +\t또는 /p <왼쪽>,<상단>,<너비>,<높이>[,,<최대>] [모두 정수].\r\n\ /t\t창 제목을 설정합니다.\r\n\ /i\t트레이 아이콘으로 시작합니다.\r\n\ /o\t창을 맨 위에 둡니다.\r\n\ diff --git a/language/np3_nl_nl/strings_nl_nl.rc b/language/np3_nl_nl/strings_nl_nl.rc index 34048fb1f..8b13f1f56 100644 --- a/language/np3_nl_nl/strings_nl_nl.rc +++ b/language/np3_nl_nl/strings_nl_nl.rc @@ -316,7 +316,7 @@ Opties:\r\n\ /n\tOpen altijd een nieuw venster (/ns één bestand instantie).\r\n\ /r\tHergebruik venster (/rs één bestand instantie).\r\n\ /p\tVensterpositie en -grootte instellen (/p0, /ps, /pf,l,t,r,b,m)\r\n\ -\tof /p ,,,, [gehele getallen].\r\n\ +\tof /p ,,,[,,] [gehele getallen].\r\n\ /t\tVenstertitel instellen.\r\n\ /i\tStart als systeemvakpictogram.\r\n\ /o\tVenster bovenop houden.\r\n\ diff --git a/language/np3_pl_pl/strings_pl_pl.rc b/language/np3_pl_pl/strings_pl_pl.rc index 560c6bbc3..4d6e8edd8 100644 --- a/language/np3_pl_pl/strings_pl_pl.rc +++ b/language/np3_pl_pl/strings_pl_pl.rc @@ -316,7 +316,7 @@ Opcje:\r\n\ /n\tAlways open a new window (/ns single file instance).\r\n\ /r\tReuse window (/rs single file instance).\r\n\ /p\tSet window position and size (/p0, /ps, /pf,l,t,r,b,m)\r\n\ -\tor /p ,,,, [wszystkie liczby].\r\n\ +\tor /p ,,,[,,] [wszystkie liczby].\r\n\ /t\tSet window title.\r\n\ /i\tStart as tray icon.\r\n\ /o\tKeep window on top.\r\n\ diff --git a/language/np3_pt_br/strings_pt_br.rc b/language/np3_pt_br/strings_pt_br.rc index 4845d42e4..f9531c9a0 100644 --- a/language/np3_pt_br/strings_pt_br.rc +++ b/language/np3_pt_br/strings_pt_br.rc @@ -316,7 +316,7 @@ Opções:\r\n\ /n\tSempre abre uma nova janela (/ns instância de único arquivo).\r\n\ /r\tReusa a janela (/rs instância de único arquivo).\r\n\ /p\tDefine a posição e o tamanho da janela (/p0, /ps, /pf,l,t,r,b,m)\r\n\ -\tou /p ,,,, [all integers].\r\n\ +\tou /p ,,,[,,] [all integers].\r\n\ /t\tDefine o título da janela.\r\n\ /i\tInicia como ícone na área de notificação.\r\n\ /o\tMantém a janela sobre as outras.\r\n\ diff --git a/language/np3_pt_pt/strings_pt_pt.rc b/language/np3_pt_pt/strings_pt_pt.rc index 9b359e628..ada54f2ac 100644 --- a/language/np3_pt_pt/strings_pt_pt.rc +++ b/language/np3_pt_pt/strings_pt_pt.rc @@ -316,7 +316,7 @@ Opções:\r\n\ /n\tAbre sempre uma nova janela (/ns instância de único ficheiro).\r\n\ /r\tReutiliza a janela (/rs instância de único ficheiro).\r\n\ /p\tDefine tamanho e posição da janela (/p0, /ps, /pf,l,t,r,b,m) ou /p\r\n\ -\t,,,, [todos inteiros].\r\n\ +\t,,,[,,] [todos inteiros].\r\n\ /t\tDefine título da janela.\r\n\ /i\tInicia como ícone na área de notificação.\r\n\ /o\tMantém a janela sempre visível.\r\n\ diff --git a/language/np3_ru_ru/strings_ru_ru.rc b/language/np3_ru_ru/strings_ru_ru.rc index c20957a9f..181954924 100644 --- a/language/np3_ru_ru/strings_ru_ru.rc +++ b/language/np3_ru_ru/strings_ru_ru.rc @@ -316,7 +316,7 @@ Notepad3 [/?] [...[Кодировка]] [...[Окончания строк]] [/e /n\tВсегда открывать новое окно (/ns один экземпляр файла).\r\n\ /r\tПереиспользовать окно (/rs один экземпляр файла).\r\n\ /p\tЗадать положение и размер окна (/p0, /ps, /pf,l,t,r,b,m)\r\n\ -\tили /p ,,,, [целые числа].\r\n\ +\tили /p ,,,[,,] [целые числа].\r\n\ /t\tЗадать заголовок окна.\r\n\ /i\tЗапустить иконкой в области уведомлений.\r\n\ /o\tПоверх других окон.\r\n\ diff --git a/language/np3_sk_sk/strings_sk_sk.rc b/language/np3_sk_sk/strings_sk_sk.rc index 0c94aabb6..db419f38c 100644 --- a/language/np3_sk_sk/strings_sk_sk.rc +++ b/language/np3_sk_sk/strings_sk_sk.rc @@ -316,7 +316,7 @@ Možnosti:\r\n\ /n\tVždy otvoriť nové okno (/ns inštancia jedného súboru).\r\n\ /r\tOpätovné použitie okna (/rs inštancia jedného súboru).\r\n\ /p\tNastavenie polohy a veľkosti okna (/p0, /ps, /pf,l,t,r,b,m)\r\n\ -\talebo /p ,,<šírka>,, [všetky čísla celé].\r\n\ +\talebo /p ,,<šírka>,[,,] [všetky čísla celé].\r\n\ /t\tNastavenie titulku okna.\r\n\ /i\tZačať ako ikona na paneli úloh.\r\n\ /o\tPonechanie okna vždy na vrchu.\r\n\ diff --git a/language/np3_sv_se/strings_sv_se.rc b/language/np3_sv_se/strings_sv_se.rc index 8b222256c..d9ebcfcac 100644 --- a/language/np3_sv_se/strings_sv_se.rc +++ b/language/np3_sv_se/strings_sv_se.rc @@ -316,7 +316,7 @@ Tillval:\r\n\ /n\tÖppna alltid nytt fönster (/ns enkel filinstans).\r\n\ /r\tÅteranvänd fönster (/rs enkel filinstans).\r\n\ /p\tAnge fönsterposition och storlek (/p0, /ps, /pf,l,t,r,b,m)\r\n\ -\teller /p ,,,, [alla heltal].\r\n\ +\teller /p ,,,[,,] [alla heltal].\r\n\ /t\tAnge fönstertitel.\r\n\ /i\tStarta som ikon i verktygsfältet.\r\n\ /o\tVisa alltid fönstret överst.\r\n\ diff --git a/language/np3_tr_tr/strings_tr_tr.rc b/language/np3_tr_tr/strings_tr_tr.rc index 042b2ca37..ea7da5f00 100644 --- a/language/np3_tr_tr/strings_tr_tr.rc +++ b/language/np3_tr_tr/strings_tr_tr.rc @@ -316,7 +316,7 @@ Seçenekler:\r\n\ /n\tHer zaman yeni pencerede açar (/ns tek dosya kopyası).\r\n\ /r\tPencereyi yeniden kullanır (/rs tek dosya kopyası).\r\n\ /p\tPencere konumunu ve boyutunu ayarlar (/p0, /ps, /pf,l,t,r,b,m)\r\n\ -\tor /p ,,,, [tümü tam sayı].\r\n\ +\tor /p ,,,[,,] [tümü tam sayı].\r\n\ /t\tPencere başlığını ayarlar.\r\n\ /i\tSistem tepsisinde başlatır.\r\n\ /o\tPencereyi üste sabitler.\r\n\ diff --git a/language/np3_vi_vn/strings_vi_vn.rc b/language/np3_vi_vn/strings_vi_vn.rc index a4b6dc768..13825b094 100644 --- a/language/np3_vi_vn/strings_vi_vn.rc +++ b/language/np3_vi_vn/strings_vi_vn.rc @@ -316,7 +316,7 @@ Options:\r\n\ /n\tAlways open a new window (/ns single file instance).\r\n\ /r\tReuse window (/rs single file instance).\r\n\ /p\tSet window position and size (/p0, /ps, /pf,l,t,r,b,m)\r\n\ -\tor /p ,,,, [all integers].\r\n\ +\tor /p ,,,[,,] [all integers].\r\n\ /t\tSet window title.\r\n\ /i\tStart as tray icon.\r\n\ /o\tKeep window on top.\r\n\ diff --git a/language/np3_zh_cn/strings_zh_cn.rc b/language/np3_zh_cn/strings_zh_cn.rc index 18722bb07..e230b91da 100644 --- a/language/np3_zh_cn/strings_zh_cn.rc +++ b/language/np3_zh_cn/strings_zh_cn.rc @@ -316,7 +316,7 @@ Notepad3 [/?] [...[编码]] [...[换行符模式]] [/e] [/g] [/m] [/l]\r\n\ /n\t总是打开新窗口(/ns 对于每个文件只允许打开一个实例)。\r\n\ /r\t重用已存在的窗口(/rs 对于每个文件只允许打开一个实例)。\r\n\ /p\t设置窗口位置和大小(/p0, /ps, /pf,左,上,宽,高,最大化)\r\n\ -\t或 /p <左>,<上>,<宽>,<高>,<最大化> [均为整数]。\r\n\ +\t或 /p <左>,<上>,<宽>,<高>[,,<最大化>] [均为整数]。\r\n\ /t\t设置窗口标题。\r\n\ /i\t以托盘图标状态启动。\r\n\ /o\t窗口置顶。\r\n\ diff --git a/language/np3_zh_tw/strings_zh_tw.rc b/language/np3_zh_tw/strings_zh_tw.rc index deb4aa730..1558a9d1e 100644 --- a/language/np3_zh_tw/strings_zh_tw.rc +++ b/language/np3_zh_tw/strings_zh_tw.rc @@ -316,7 +316,7 @@ Notepad3 [/?] [...[編碼]] [...[分行符號模式]] [/e] [/g] [/m] [/l]\r\n\ /n\t總是開啟新視窗(/ns 對於每個檔案只允許開啟一個實例)。\r\n\ /r\t重新使用已存在的視窗(/rs 對於每個檔案只允許開啟一個實例)。\r\n\ /p\t設定視窗位置和大小(/p0, /ps, /pf,左,上,寬,高,最大化)\r\n\ -\t或 /p <左>,<上>,<寬>,<高>,<最大化> [均為整數]。\r\n\ +\t或 /p <左>,<上>,<寬>,<高>[,,<最大化>] [均為整數]。\r\n\ /t\t設定視窗標題。\r\n\ /i\t以系統匣圖示狀態啟動。\r\n\ /o\t視窗置頂。\r\n\ diff --git a/res/Notepad3.exe.conf.manifest b/res/Notepad3.exe.conf.manifest index 5f20531c0..f9711b600 100644 --- a/res/Notepad3.exe.conf.manifest +++ b/res/Notepad3.exe.conf.manifest @@ -3,7 +3,7 @@ diff --git a/res/StdDarkModeScheme.ini b/res/StdDarkModeScheme.ini index e398509e0..f1ebb8877 100644 --- a/res/StdDarkModeScheme.ini +++ b/res/StdDarkModeScheme.ini @@ -505,12 +505,13 @@ Function Name=fore:#F988F9 Class Name=fore:#F988F9 [Registry Files] Comment=fore:#70F76D -String=fore:#62F760 +String=fore:#99004D Value Type=bold; fore:#B0D1F7 Hex=fore:#EF7478 Added Key=bold; fore:#DEDEDE; back:#B8430A; eolfilled Deleted Key=fore:#F20C0D Escaped=bold; fore:#A4B4B4 +GUID String=fore:#C58D25 GUID in Key Path=fore:#E6C07B Parameter=fore:#79EDDB Operator=bold diff --git a/src/Config/Config.cpp b/src/Config/Config.cpp index 4ca0cd5a3..98e0b9cef 100644 --- a/src/Config/Config.cpp +++ b/src/Config/Config.cpp @@ -1526,8 +1526,7 @@ void LoadSettings() GET_BOOL_VALUE_FROM_INISECTION(AutoCloseTags, false); GET_BOOL_VALUE_FROM_INISECTION(AutoCloseBrackets, false); GET_INT_VALUE_FROM_INISECTION(HighlightCurrentLine, 1, 0, 2); - GET_INT_VALUE_FROM_INISECTION(ChangeHistoryMode, ChgHist_ON | ChgHist_MARGIN, ChgHist_NONE, ChgHist_ALL); - GET_BOOL_VALUE_FROM_INISECTION(ChangeHistoryMargin, true); + GET_INT_VALUE_FROM_INISECTION(ChangeHistoryMode, SC_CHANGE_HISTORY_ENABLED | SC_CHANGE_HISTORY_MARKERS, 0, 7); GET_BOOL_VALUE_FROM_INISECTION(HyperlinkHotspot, true); GET_BOOL_VALUE_FROM_INISECTION(ShowHypLnkToolTip, false); GET_INT_VALUE_FROM_INISECTION(ColorDefHotspot, 2, 0, 3); @@ -1733,7 +1732,7 @@ void LoadSettings() // startup window (ignore window position if /p was specified) // -------------------------------------------------------------- - IniSectionGetString(IniSecSettings2, L"DefaultWindowPosition", L"", + IniSectionGetString(IniSecSettings2, Constants.DefaultWindowPosition, L"", Settings2.DefaultWindowPosition, COUNTOF(Settings2.DefaultWindowPosition)); bool const bExplicitDefaultWinPos = StrIsNotEmpty(Settings2.DefaultWindowPosition); @@ -1744,11 +1743,20 @@ void LoadSettings() if (bExplicitDefaultWinPos) { int bMaxi = 0; - int const itok = swscanf_s(Settings2.DefaultWindowPosition, L"%i,%i,%i,%i,%i", - &g_DefWinInfo.x, &g_DefWinInfo.y, &g_DefWinInfo.cx, &g_DefWinInfo.cy, &bMaxi); - if (itok == 4 || itok == 5) { // scan successful + int const itok = swscanf_s(Settings2.DefaultWindowPosition, WINDOWPOS_STRGFORMAT, + &g_DefWinInfo.x, &g_DefWinInfo.y, &g_DefWinInfo.cx, &g_DefWinInfo.cy, &g_DefWinInfo.dpi, &bMaxi); + if (itok == 4 || itok == 5 || itok == 6) { // scan successful if (itok == 4) { + g_DefWinInfo.dpi = USER_DEFAULT_SCREEN_DPI; g_DefWinInfo.max = false; + } else if (itok == 5) { // maybe DPI or Maxi (old) + if (g_DefWinInfo.dpi < (USER_DEFAULT_SCREEN_DPI >> 2)) { + g_DefWinInfo.max = g_DefWinInfo.dpi ? true : false; + g_DefWinInfo.dpi = USER_DEFAULT_SCREEN_DPI; + } + else { + g_DefWinInfo.max = false; + } } else { g_DefWinInfo.max = bMaxi ? true : false; } @@ -1756,8 +1764,8 @@ void LoadSettings() g_DefWinInfo = GetFactoryDefaultWndPos(2); // overwrite bad defined default position StringCchPrintf(Settings2.DefaultWindowPosition, COUNTOF(Settings2.DefaultWindowPosition), - L"%i,%i,%i,%i,%i", g_DefWinInfo.x, g_DefWinInfo.y, g_DefWinInfo.cx, g_DefWinInfo.cy, g_DefWinInfo.max); - IniSectionSetString(IniSecSettings2, L"DefaultWindowPosition", Settings2.DefaultWindowPosition); + WINDOWPOS_STRGFORMAT, g_DefWinInfo.x, g_DefWinInfo.y, g_DefWinInfo.cx, g_DefWinInfo.cy, g_DefWinInfo.dpi, g_DefWinInfo.max); + IniSectionSetString(IniSecSettings2, Constants.DefaultWindowPosition, Settings2.DefaultWindowPosition); bDirtyFlag = true; } } diff --git a/src/Dialogs.c b/src/Dialogs.c index dd4c7035e..535bd3a95 100644 --- a/src/Dialogs.c +++ b/src/Dialogs.c @@ -4668,7 +4668,7 @@ void DialogNewWindow(HWND hwnd, bool bSaveOnRunTools, const HPATHL hFilePath, WI WININFO const _wi = (Flags.bStickyWindowPosition ? g_IniWinInfo : (wi ? *wi : GetMyWindowPlacement(hwnd, NULL, Settings2.LaunchInstanceWndPosOffset))); - StringCchPrintf(wch, COUNTOF(wch), L" -pos %i,%i,%i,%i,%i ", _wi.x, _wi.y, _wi.cx, _wi.cy, (int)_wi.max); + StringCchPrintf(wch, COUNTOF(wch), L" -pos " WINDOWPOS_STRGFORMAT, _wi.x, _wi.y, _wi.cx, _wi.cy, _wi.dpi, (int)_wi.max); StrgCat(hparam_str, wch); if (Path_IsNotEmpty(hFilePath)) { diff --git a/src/Edit.c b/src/Edit.c index 326cea1ba..6a003599c 100644 --- a/src/Edit.c +++ b/src/Edit.c @@ -5883,7 +5883,7 @@ static char* _GetReplaceString(HWND hwnd, CLPCEDITFINDREPLACE lpefr, int* iRepla if (Settings.ReplaceByClipboardTag && (StringCchCompareXW(StrgGet(lpefr->chReplaceTemplate), L"^c")) == 0) { - *iReplaceMsg = SCI_REPLACETARGET; + *iReplaceMsg = SciCall_GetChangeHistory() ? SCI_REPLACETARGETMINIMAL : SCI_REPLACETARGET; pszReplace = EditGetClipboardText(hwnd, true, NULL, NULL); } else { @@ -7329,7 +7329,7 @@ void EditSelectionMultiSelectAllEx(HWND hwnd, CLPCEDITFINDREPLACE edFndRpl) // bool EditReplace(HWND hwnd, LPEDITFINDREPLACE lpefr) { - int iReplaceMsg = SCI_REPLACETARGET; + int iReplaceMsg = SciCall_GetChangeHistory() ? SCI_REPLACETARGETMINIMAL : SCI_REPLACETARGET; DocPos const selBeg = SciCall_GetSelectionStart(); DocPos const selEnd = SciCall_GetSelectionEnd(); @@ -7413,11 +7413,13 @@ int EditReplaceAllInRange(HWND hwnd, LPEDITFINDREPLACE lpefr, DocPos iStartPos, bool const bRegexStartOfLine = bIsRegExpr && (wchFind[0] == L'^'); // SCI_REPLACETARGET or SCI_REPLACETARGETRE - int iReplaceMsg = SCI_REPLACETARGET; + int iReplaceMsg = SciCall_GetChangeHistory() ? SCI_REPLACETARGETMINIMAL : SCI_REPLACETARGET; char* const pszReplace = _GetReplaceString(hwnd, lpefr, &iReplaceMsg); if (!pszReplace) { return -1; // recoding of clipboard canceled } + bool const bMinRepl = (SCI_REPLACETARGETMINIMAL == iReplaceMsg); + DocPos const pszReplaceLen = strlen(pszReplace); DocPos const _saveTargetBeg_ = SciCall_GetTargetStart(); DocPos const _saveTargetEnd_ = SciCall_GetTargetEnd(); @@ -7444,7 +7446,7 @@ int EditReplaceAllInRange(HWND hwnd, LPEDITFINDREPLACE lpefr, DocPos iStartPos, if (bRegexStartOfLine && (Sci_GetLineStartPosition(iStartPos) == iStartPos) && (SciCall_GetLineCount() == lnCnt)) { iStartPos = SciCall_PositionAfter(iStartPos); } - iEndPos += replLen - (end - iPos); + iEndPos += (bMinRepl ? pszReplaceLen : replLen) - (end - iPos); start = iStartPos; end = iEndPos; iPos = (start <= end) ? _FindInTarget(wchFind, sFlags, &start, &end, true, FRMOD_NORM) : -1LL; diff --git a/src/Helpers.c b/src/Helpers.c index 345126497..4c4c89496 100644 --- a/src/Helpers.c +++ b/src/Helpers.c @@ -1632,7 +1632,7 @@ static int _CheckRegExReplTargetA(LPSTR pszInput) ++pszInput; } } - return SCI_REPLACETARGET; + return SciCall_GetChangeHistory() ? SCI_REPLACETARGETMINIMAL : SCI_REPLACETARGET; } static int _CheckRegExReplTargetW(LPWSTR pszInput) @@ -1652,7 +1652,7 @@ static int _CheckRegExReplTargetW(LPWSTR pszInput) ++pszInput; } } - return SCI_REPLACETARGET; + return SciCall_GetChangeHistory() ? SCI_REPLACETARGETMINIMAL : SCI_REPLACETARGET; } @@ -1663,12 +1663,11 @@ void TransformBackslashesA(LPSTR pszInput, bool bRegEx, UINT cpEdit, int* iRepla UnSlashLowOctalA(pszInput); *iReplaceMsg = _CheckRegExReplTargetA(pszInput); } else { - *iReplaceMsg = SCI_REPLACETARGET; // uses SCI std replacement + *iReplaceMsg = SciCall_GetChangeHistory() ? SCI_REPLACETARGETMINIMAL : SCI_REPLACETARGET; } } - bool const bStdReplace = (iReplaceMsg && (SCI_REPLACETARGET == *iReplaceMsg)); - // regex handles backslashes itself + bool const bStdReplace = (iReplaceMsg && (SCI_REPLACETARGETRE != *iReplaceMsg)); if (!bRegEx || bStdReplace) { UnSlashA(pszInput, cpEdit); } @@ -1681,12 +1680,11 @@ void TransformBackslashesW(LPWSTR pszInput, bool bRegEx, UINT cpEdit, int* iRepl UnSlashLowOctalW(pszInput); *iReplaceMsg = _CheckRegExReplTargetW(pszInput); } else { - *iReplaceMsg = SCI_REPLACETARGET; // uses SCI std replacement + *iReplaceMsg = SciCall_GetChangeHistory() ? SCI_REPLACETARGETMINIMAL : SCI_REPLACETARGET; } } - bool const bStdReplace = (iReplaceMsg && (SCI_REPLACETARGET == *iReplaceMsg)); - // regex handles backslashes itself + bool const bStdReplace = (iReplaceMsg && (SCI_REPLACETARGETRE != *iReplaceMsg)); if (!bRegEx || bStdReplace) { UnSlashW(pszInput, cpEdit); } diff --git a/src/Notepad3.c b/src/Notepad3.c index 6ab6610cd..28f3c8f1b 100644 --- a/src/Notepad3.c +++ b/src/Notepad3.c @@ -80,7 +80,7 @@ LPCWSTR WordBookMarks[MARKER_NP3_BOOKMARK] = { #define RELAUNCH_ELEVATED_BUF_ARG L"tmpfbuf=" CONSTANTS_T const Constants = { - 2 // StdDefaultLexerID + 2 // StdDefaultLexerID , L"minipath.exe" // FileBrowserMiniPath , L"grepWinNP3.exe" // FileSearchGrepWin , L"Settings" // Inifile Section "Settings" @@ -88,8 +88,10 @@ CONSTANTS_T const Constants = { , L"Window" // Inifile Section "Window" , L"Styles" // Inifile Section "Styles" , L"Suppressed Messages" // Inifile Section "SuppressedMessages" + , L"DefaultWindowPosition" // Strg DefaultWindowPosition }; + FLAGS_T Flags; FLAGS_T DefaultFlags; @@ -4254,10 +4256,11 @@ LRESULT MsgInitMenu(HWND hwnd, WPARAM wParam, LPARAM lParam) CheckCmd(hmenu, IDM_VIEW_HYPERLINKHOTSPOTS, Settings.HyperlinkHotspot); - int const chState = Settings.ChangeHistoryMode; + int const chState = SciCall_GetChangeHistory(); + assert(chState == Settings.ChangeHistoryMode); i = IDM_VIEW_CHGHIST_NONE; - i += ((chState & ChgHist_ON) && (chState & ChgHist_MARGIN)) ? 1 : 0; - i += ((chState & ChgHist_ON) && (chState & ChgHist_DOCTXT)) ? 2 : 0; + i += (chState & SC_CHANGE_HISTORY_MARKERS) ? 1 : 0; + i += (chState & SC_CHANGE_HISTORY_INDICATORS) ? 2 : 0; CheckMenuRadioItem(hmenu, IDM_VIEW_CHGHIST_NONE, IDM_VIEW_CHGHIST_ALL, i, MF_BYCOMMAND); CheckCmdPos(GetSubMenu(GetMenu(Globals.hwndMain), 2), 8, (i != IDM_VIEW_CHGHIST_NONE)); @@ -4439,6 +4442,31 @@ LRESULT MsgKeyDown(HWND hwnd, WPARAM wParam, LPARAM lParam) #endif +//============================================================================= +// +// _ApplyChangeHistoryMode() - Handles Change-History Settings +// +static void _ApplyChangeHistoryMode() +{ + int const iChgHist = SciCall_GetChangeHistory(); + if (iChgHist == Settings.ChangeHistoryMode) { return; } + if ((!iChgHist && Settings.ChangeHistoryMode) || !Settings.ChangeHistoryMode) { + if (IsYesOkay(InfoBoxLng(MB_YESNO | MB_ICONWARNING, L"AllowClearUndoHistory", IDS_MUI_ASK_CLEAR_UNDO))) { + UndoRedoReset(); + } + else { + Settings.ChangeHistoryMode = iChgHist; + return; + } + } + else { + SciCall_SetChangeHistory(Settings.ChangeHistoryMode); + } + Style_UpdateChangeHistoryMargin(Globals.hwndEdit); + UpdateMargins(true); +} + + //============================================================================= // // MsgCommand() - Handles WM_COMMAND @@ -6043,33 +6071,38 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam) case IDM_VIEW_CHGHIST_DOCTXT: case IDM_VIEW_CHGHIST_ALL: { int const set = iLoWParam - IDM_VIEW_CHGHIST_NONE; - int const chgHistState = SciCall_GetChangeHistory() & ChgHist_ON; switch (set) { case 0: - Settings.ChangeHistoryMode = chgHistState & ~(ChgHist_MARGIN | ChgHist_DOCTXT); + Settings.ChangeHistoryMode = SC_CHANGE_HISTORY_DISABLED; break; - case 1: - Settings.ChangeHistoryMode = (chgHistState | ChgHist_MARGIN) & ~ChgHist_DOCTXT; + case 1: + Settings.ChangeHistoryMode = SC_CHANGE_HISTORY_ENABLED | SC_CHANGE_HISTORY_MARKERS; break; case 2: - Settings.ChangeHistoryMode = (chgHistState | ChgHist_DOCTXT) & ~ChgHist_MARGIN; + Settings.ChangeHistoryMode = SC_CHANGE_HISTORY_ENABLED | SC_CHANGE_HISTORY_INDICATORS; break; case 3: - Settings.ChangeHistoryMode = chgHistState | (ChgHist_MARGIN | ChgHist_DOCTXT); + Settings.ChangeHistoryMode = SC_CHANGE_HISTORY_ENABLED | SC_CHANGE_HISTORY_INDICATORS | SC_CHANGE_HISTORY_MARKERS; break; default: break; } - SciCall_SetChangeHistory(Settings.ChangeHistoryMode); - Style_UpdateChangeHistoryMargin(Globals.hwndEdit); - UpdateMargins(true); + _ApplyChangeHistoryMode(); break; } break; case IDM_VIEW_CHGHIST_TOGGLE_MARGIN: - Settings.ChangeHistoryMargin = !Settings.ChangeHistoryMargin; - UpdateMargins(true); + if (Settings.ChangeHistoryMode & SC_CHANGE_HISTORY_MARKERS) { + Settings.ChangeHistoryMode &= ~SC_CHANGE_HISTORY_MARKERS; + if (!(Settings.ChangeHistoryMode & SC_CHANGE_HISTORY_INDICATORS)) { + Settings.ChangeHistoryMode = SC_CHANGE_HISTORY_DISABLED; + } + } + else { + Settings.ChangeHistoryMode |= (SC_CHANGE_HISTORY_ENABLED | SC_CHANGE_HISTORY_MARKERS); + } + _ApplyChangeHistoryMode(); break; case IDM_VIEW_HYPERLINKHOTSPOTS: @@ -6990,7 +7023,7 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam) case CMD_COPYWINPOS: { WININFO wi = GetMyWindowPlacement(Globals.hwndMain, NULL, 0); WCHAR wchBuf[128] = { L'\0' }; - StringCchPrintf(wchBuf, COUNTOF(wchBuf), L"/pos %i,%i,%i,%i,%i", wi.x, wi.y, wi.cx, wi.cy, wi.max); + StringCchPrintf(wchBuf, COUNTOF(wchBuf), L"/pos " WINDOWPOS_STRGFORMAT, wi.x, wi.y, wi.cx, wi.cy, wi.dpi, (int)wi.max); SetClipboardText(hwnd, wchBuf, StringCchLen(wchBuf, 0)); } break; @@ -7013,9 +7046,9 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam) case CMD_SAVEASDEFWINPOS: { WININFO const wi = GetMyWindowPlacement(Globals.hwndMain, NULL, 0); WCHAR tchDefWinPos[80]; - StringCchPrintf(tchDefWinPos, COUNTOF(tchDefWinPos), L"%i,%i,%i,%i,%i", wi.x, wi.y, wi.cx, wi.cy, wi.max); + StringCchPrintf(tchDefWinPos, COUNTOF(tchDefWinPos), WINDOWPOS_STRGFORMAT, wi.x, wi.y, wi.cx, wi.cy, wi.dpi, (int)wi.max); if (Globals.bCanSaveIniFile) { - IniFileSetString(Paths.IniFile, Constants.Settings2_Section, L"DefaultWindowPosition", tchDefWinPos); + IniFileSetString(Paths.IniFile, Constants.Settings2_Section, Constants.DefaultWindowPosition, tchDefWinPos); } g_DefWinInfo = wi; //GetWinInfoByFlag(-1); // use current win pos as new default } @@ -7023,7 +7056,7 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam) case CMD_CLEARSAVEDWINPOS: g_DefWinInfo = GetFactoryDefaultWndPos(2); - IniFileDelete(Paths.IniFile, Constants.Settings2_Section, L"DefaultWindowPosition", false); + IniFileDelete(Paths.IniFile, Constants.Settings2_Section, Constants.DefaultWindowPosition, false); break; case CMD_OPENINIFILE: @@ -9133,17 +9166,25 @@ void ParseCommandLine() } } else if (ExtractFirstArgument(lp2, lp1, lp2, (int)len)) { WININFO wi = INIT_WININFO; - int bMaximize = 0; - int itok = swscanf_s(lp1, L"%i,%i,%i,%i,%i", &wi.x, &wi.y, &wi.cx, &wi.cy, &bMaximize); - if (itok == 4 || itok == 5) { // scan successful + int iMaximize = 0; + int const itok = swscanf_s(lp1, WINDOWPOS_STRGFORMAT, &wi.x, &wi.y, &wi.cx, &wi.cy, &wi.dpi, &iMaximize); + if (itok == 4 || itok == 5 || itok == 6) { // scan successful Globals.CmdLnFlag_PosParam = true; Globals.CmdLnFlag_WindowPos = 0; - if (bMaximize) { - wi.max = true; - } if (itok == 4) { - wi.max = false; + wi.dpi = USER_DEFAULT_SCREEN_DPI; + iMaximize = 0; } + else if (itok == 5) { // maybe DPI or Maxi (old) + if (wi.dpi < (USER_DEFAULT_SCREEN_DPI >> 2)) { + iMaximize = wi.dpi; + wi.dpi = USER_DEFAULT_SCREEN_DPI; + } + else { + iMaximize = 0; + } + } + wi.max = !!iMaximize; g_IniWinInfo = wi; // set window placement } } @@ -10336,7 +10377,7 @@ static void _UndoRedoRecordingStart() SciCall_SetUndoCollection(true); SciCall_EmptyUndoBuffer(); SciCall_SetSavePoint(); - SciCall_SetChangeHistory(SC_CHANGE_HISTORY_ENABLED | Settings.ChangeHistoryMode); + SciCall_SetChangeHistory(Settings.ChangeHistoryMode); UpdateMargins(true); } @@ -11382,8 +11423,8 @@ bool DoElevatedRelaunch(EditFileIOStatus* pFioStatus, bool bAutoSaveOnRelaunch) WININFO const wi = GetMyWindowPlacement(Globals.hwndMain, NULL, 0); HSTRINGW hstr_args = StrgCreate(NULL); - StrgFormat(hstr_args, L"%s/pos %i,%i,%i,%i,%i /g %i,%i %s", - wchFlags, wi.x, wi.y, wi.cx, wi.cy, wi.max, iCurLn, iCurCol, lpArgs); + StrgFormat(hstr_args, L"%s/pos " WINDOWPOS_STRGFORMAT L" /g %i,%i %s", + wchFlags, wi.x, wi.y, wi.cx, wi.cy, wi.dpi, (int)wi.max, iCurLn, iCurCol, lpArgs); WCHAR wchTempFileName[MAX_PATH_EXPLICIT + 1] = { L'\0' }; WCHAR wchTempPathBuffer[MAX_PATH_EXPLICIT + 1] = { L'\0' }; @@ -11399,8 +11440,8 @@ bool DoElevatedRelaunch(EditFileIOStatus* pFioStatus, bool bAutoSaveOnRelaunch) WCHAR wchEncoding[80] = { L'\0' }; Encoding_GetNameW(Encoding_GetCurrent(), wchEncoding, COUNTOF(wchEncoding)); - StrgFormat(hstr_args, L"%s/%s /pos %i,%i,%i,%i,%i /g %i,%i /%s\"%s\" %s", - wchFlags, wchEncoding, wi.x, wi.y, wi.cx, wi.cy, wi.max, iCurLn, iCurCol, RELAUNCH_ELEVATED_BUF_ARG, Path_Get(htmp_pth), lpArgs); + StrgFormat(hstr_args, L"%s/%s /pos " WINDOWPOS_STRGFORMAT L" /g %i,%i /%s\"%s\" %s", + wchFlags, wchEncoding, wi.x, wi.y, wi.cx, wi.cy, wi.dpi, (int)wi.max, iCurLn, iCurCol, RELAUNCH_ELEVATED_BUF_ARG, Path_Get(htmp_pth), lpArgs); if (!StrStrI(StrgGet(hstr_args), Path_FindFileName(Paths.CurrentFile))) { if (Path_IsNotEmpty(Paths.CurrentFile)) { @@ -11894,7 +11935,7 @@ bool LaunchNewInstance(HWND hwnd, LPCWSTR lpszParameter, LPCWSTR lpszFilePath) int const instCnt = CountRunningInstances(); WININFO wi = GetMyWindowPlacement(hwnd, NULL, offset * instCnt); WCHAR wchPos[80] = { L'\0' }; - StringCchPrintf(wchPos, COUNTOF(wchPos), L"-pos %i,%i,%i,%i,%i", wi.x, wi.y, wi.cx, wi.cy, (int)wi.max); + StringCchPrintf(wchPos, COUNTOF(wchPos), L"-pos " WINDOWPOS_STRGFORMAT, wi.x, wi.y, wi.cx, wi.cy, wi.dpi, (int)wi.max); StringCchPrintf(params_buf, StrgGetAllocLength(hstrParams), L"%s %s \"%s\"", lpszParameter, wchPos, lpszFilePath); @@ -11958,7 +11999,7 @@ bool RelaunchMultiInst() wi.y += (i * offset); WCHAR wchPos[80] = { L'\0' }; if (!Globals.CmdLnFlag_PosParam) { - StringCchPrintf(wchPos, COUNTOF(wchPos), L" -pos %i,%i,%i,%i,%i", wi.x, wi.y, wi.cx, wi.cy, (int)wi.max); + StringCchPrintf(wchPos, COUNTOF(wchPos), L" -pos " WINDOWPOS_STRGFORMAT, wi.x, wi.y, wi.cx, wi.cy, wi.dpi, (int)wi.max); } size_t const pl = StringCchLen(wchPos, 80) + 1; @@ -12100,13 +12141,13 @@ void SnapToWinInfoPos(HWND hwnd, const WININFO winInfo, SCREEN_MODE mode) if (GetDoAnimateMinimize()) { DrawAnimatedRects(hWindow, IDANI_CAPTION, &rcCurrent, &wndpl.rcNormalPosition); } + SetWindowPlacement(hWindow, &wndpl); // 1st set correct screen (DPI Aware) if (hwnd) { UINT const dpi = Scintilla_GetWindowDPI(hwnd); if (dpi != winInfo.dpi) { RelAdjustRectForDPI(&wndpl.rcNormalPosition, winInfo.dpi, dpi); } } - SetWindowPlacement(hWindow, &wndpl); // 1st set correct screen (DPI Aware) SetWindowPlacement(hWindow, &wndpl); // 2nd resize position to correct DPI settings } if (hwnd) { diff --git a/src/SciCall.h b/src/SciCall.h index 780ade1ba..0438d089f 100644 --- a/src/SciCall.h +++ b/src/SciCall.h @@ -915,13 +915,15 @@ inline DocPos Sci_GetSelectionEndEx() inline DocPos Sci_ReplaceTarget(const int mode, const DocPos length, const char* text) { - if (mode == SCI_REPLACETARGETRE) { + switch (mode) { + case SCI_REPLACETARGETRE: return SciCall_ReplaceTargetRe(length, text); - } - if (SciCall_GetChangeHistory() == SC_CHANGE_HISTORY_DISABLED) { + case SCI_REPLACETARGETMINIMAL: + return SciCall_ReplaceTargetMinimal(length, text); + case SCI_REPLACETARGET: + default: return SciCall_ReplaceTarget(length, text); } - return SciCall_ReplaceTargetMinimal(length, text); } // ---------------------------------------------------------------------------- diff --git a/src/StyleLexers/styleLexRegistry.c b/src/StyleLexers/styleLexRegistry.c index 2127b2600..fb7f6b470 100644 --- a/src/StyleLexers/styleLexRegistry.c +++ b/src/StyleLexers/styleLexRegistry.c @@ -12,15 +12,17 @@ EDITLEXER lexRegistry = //{ {SCE_REG_DEFAULT}, IDS_LEX_STR_63126, L"Default", L"", L"" }, { {SCE_REG_COMMENT}, IDS_LEX_STR_63127, L"Comment", L"fore:#008800", L"" }, { {SCE_REG_VALUENAME}, IDS_LEX_STR_63285, L"Value Name", L"", L"" }, - { {MULTI_STYLE(SCE_REG_STRING,SCE_REG_STRING_GUID,0,0)}, IDS_LEX_STR_63131, L"String", L"fore:#008000", L"" }, + { {SCE_REG_STRING}, IDS_LEX_STR_63131, L"String", L"fore:#99004D", L"" }, { {SCE_REG_VALUETYPE}, IDS_LEX_STR_63286, L"Value Type", L"bold; fore:#00007F", L"" }, { {SCE_REG_HEXDIGIT}, IDS_LEX_STR_63287, L"Hex", L"fore:#7F0B0C", L"" }, { {SCE_REG_ADDEDKEY}, IDS_LEX_STR_63288, L"Added Key", L"bold; fore:#000000; back:#FF8040; eolfilled", L"" }, //fore:#530155 { {SCE_REG_DELETEDKEY}, IDS_LEX_STR_63289, L"Deleted Key", L"fore:#FF0000", L"" }, { {SCE_REG_ESCAPED}, IDS_LEX_STR_63290, L"Escaped", L"bold; fore:#7D8187", L"" }, - { {SCE_REG_KEYPATH_GUID}, IDS_LEX_STR_63291, L"GUID in Key Path", L"fore:#7B5F15", L"" }, + { {SCE_REG_STRING_GUID}, IDS_LEX_STR_63398, L"GUID String", L"fore:#C58D25", L"" }, + { {SCE_REG_KEYPATH_GUID}, IDS_LEX_STR_63291, L"GUID in Key Path", L"fore:#009F9F", L"" }, { {SCE_REG_PARAMETER}, IDS_LEX_STR_63281, L"Parameter", L"fore:#0B6561", L"" }, { {SCE_REG_OPERATOR}, IDS_LEX_STR_63132, L"Operator", L"bold", L"" }, EDITLEXER_SENTINEL } }; + diff --git a/src/Styles.c b/src/Styles.c index 873bb6a20..abbdbc9f8 100644 --- a/src/Styles.c +++ b/src/Styles.c @@ -2053,7 +2053,7 @@ void Style_UpdateBookmarkMargin(HWND hwnd) // void Style_UpdateChangeHistoryMargin(HWND hwnd) { - bool const bShowMargin = Settings.ChangeHistoryMargin && ((Settings.ChangeHistoryMode & ChgHist_ON) && (Settings.ChangeHistoryMode & ChgHist_MARGIN)); + bool const bShowMargin = (Settings.ChangeHistoryMode & SC_CHANGE_HISTORY_MARKERS); SciCall_SetMarginWidthN(MARGIN_SCI_CHGHIST, (bShowMargin ? _GetMarkerMarginWidth(hwnd, 0.7f) : 0)); } diff --git a/src/TypeDefs.h b/src/TypeDefs.h index e89721564..48112d03b 100644 --- a/src/TypeDefs.h +++ b/src/TypeDefs.h @@ -440,19 +440,6 @@ typedef enum AutoSaveBackupOptions { //============================================================================= -typedef enum ChangeHistory { - - ChgHist_NONE = SC_CHANGE_HISTORY_DISABLED, - ChgHist_ON = SC_CHANGE_HISTORY_ENABLED, - ChgHist_MARGIN = SC_CHANGE_HISTORY_MARKERS, - ChgHist_DOCTXT = SC_CHANGE_HISTORY_INDICATORS, - - ChgHist_ALL = ChgHist_ON | ChgHist_MARGIN | ChgHist_DOCTXT - -} ChangeHistory; - -//============================================================================= - typedef struct CONSTANTS_T { int const StdDefaultLexerID; // Pure Text Files @@ -463,11 +450,14 @@ typedef struct CONSTANTS_T { const WCHAR* const Window_Section; const WCHAR* const Styles_Section; const WCHAR* const SectionSuppressedMessages; + const WCHAR* const DefaultWindowPosition; } CONSTANTS_T, *PCONSTANTS_T; extern CONSTANTS_T const Constants; +#define WINDOWPOS_STRGFORMAT L"%i,%i,%i,%i,%i,%i" + // ------------------------------------ typedef struct GLOBALS_T { @@ -584,7 +574,6 @@ typedef struct SETTINGS_T { bool AutoCloseBrackets; int HighlightCurrentLine; int ChangeHistoryMode; - bool ChangeHistoryMargin; bool HyperlinkHotspot; int ColorDefHotspot; bool ScrollPastEOF; diff --git a/src/VersionEx.h b/src/VersionEx.h index 4ee181328..5cb34511c 100644 --- a/src/VersionEx.h +++ b/src/VersionEx.h @@ -8,7 +8,7 @@ #define SAPPNAME "Notepad3" #define VERSION_MAJOR 5 #define VERSION_MINOR 22 -#define VERSION_REV 1227 +#define VERSION_REV 1228 #define VERSION_BUILD 1 #define SCINTILLA_VER 532 #define LEXILLA_VER 521