Improves:
- the reported time accuracy (from seconds to milliseconds, now e.g. different N++ settings benchmarking is possible)
- the ability to analyze various problems (now it is possible to distinguish the time taken by the app/plugin code-init from the possible file loading time)
Fix#14472, close#14473
In order to disable the hard-coded shortcut "Shift-DEL" ability (new feature introduced in v8.6) which delete current line while no selection, users must add an empty file named "disableHardCodedShiftDelete.xml", in "%APPDATA%\Notepad++\" directory (or in the Notepad++ installed directory in portable mode) to prevent this behaviour.
Fix#14470, close#14481
The bug has been fixed in v8.5.7 by PR #14003.
However the fix causes a regression #14164, the concerning commit is reverted.
Hence this fix.
Fix#10266, fix#10365
This commit adds the ability of RTL/LTR per document (tab), and memorizes RTL setting of each file in the session.xml.
It also adds an attribute "editZoneRTL" in localization XML file. if "RTL" attribute is present and its value is "yes", then user can add "editZoneRTL" attribute beside, and set the value of the attribute in question to "no", so Notepad++ GUI will be RTL, but Scintilla zone will be LTR by opening files. Of course, user can set any direction they want afterward, and what they have set on document will be remembered across the sessions.
Fix#9665, fix#9950, fix#14385, close#14431
This PR removes Shift-DEL Ctrl-INS & Shift-INS shortcut from Scintilla.
Ref: https://github.com/notepad-plus-plus/notepad-plus-plus/issues/14401#issuecomment-1830302635
Now for Copy/Cut/Paste commands and their shortcut are coherent. ie. if user remaps the shortcuts of these 3 commands, both single/multiple selection operation with the commands in question will follow the changed shortcuts.
It also fixes 2 bugs:
1. visual glitch problem of read-only while multi-pasting.
2. the shortcut **Ctrl-C** in Search results works now.
Fix#14410, close#14423
Before the implementation of e9c50ed967,
Copy & Cut command were disabled when there were no selection, which makes sense because there was nothing to be copied & cut.
Now users can copy/cut current line without selection.
Fix#14401, close#14415
Update translation texts for these commits:
* [xml] Remove the redundant entry (faba181)
* Prevent Direct Write being set if user uses RTL (9bc790b)
Close#14386
The German translation is completely missing the word "case" (meant is "upper/lower case"). The literally translation of "Nur Übereinstimmung" would be "Match only", which doesn't capture the essence of the phrase.
Also it's "Mehrfachauswahl", not "Mehrfach-Auswahl".
Close#14361
Add translation texts for these commits:
* Make session inaccessible files remembered (part 2/2) (0879451)
* Force to enable multi-select feature in Scintilla (89278e1)
* Enhance Multi-select feature (cecd161)
* Enhance Find Dialog: display extra info in the status bar (05f339b)
Close#14275
The TabBar.h getTabIndexAt(int x, int y) could fail to find the tab-index (the underlying TCM_HITTEST WM returns -1, when there is no tab at the current mouse position).
Fix#14328, close#14329
* Shift-Delete: without selected text, it will delete the whole line.
* Ctrl-C: without selected text, it will copy the whole line.
* Ctrl-X: without selected text, it will cut the whole line.
Fix#14296, close#14298
- add first version of GH CI build
- fix merge issue for lexilla.mak
- fix clang compiler issue:
..\lexers\LexObjC.cxx(50,20): warning : unused function 'IsADigit' [-Wunused-function] [D:\a\notepad-plus-plus\notepad-plus-plus\lexilla\src\Lexilla.vcxproj]
- fix functionlist unittest run for github
- make functionList unittest compatible with newer powershell 7
Fix#12177, close#14291
Add "Multi-select All" & "Multi-select Next" for 4 modes to multi-select the occurrences respectively:
1. Match Case Only
2. Match Whole Word Only
3. Match Case & Whole Word
4. Ignore Case & Whole Word
Add also 2 commands "Undo the Latest Added Multi-Select" & "Skip Current && Go to Next Multi-select" for undoing latest added slection & skipping current selection and do the next one.
Users can asign the shortcuts to these 10 commands so multi-occurrence can be easily selected via shortcuts and be modified silmutanously.
This feature is inspired by: https://github.com/notepad-plus-plus/notepad-plus-plus/issues/8203#issuecomment-623712205Fix#8203, close#14295
To solve this issue, lambda removeMarker can be set to only remove just begin or end marker. By doing so, the process of merging adjacent hidden sections is limited and as a result, lines that shouldn't be hidden remain visible.
Fix#14166, close#14167
When Notepad++ installer with the '/S' optional param is used while a previously installed Notepad++ instance is running, it does not update the locked main 'notepad++.exe' binary, but the installer still reports success (exit code == 0, regkeys actualized according to the installer version used...).
Moreover - because the installation/upgrade then looks like it is done, some automatic update services like winget cannot be used until a next N++ version is released (winget erroneously reports that the current version is already installed...).
The fix consist to set error code and quit installer, when installer in silent mode, and there's an instance of Notepad++ open.
Fix#10189, fix#10277, fix#22514, fix#14236, fix partially #8514, close#14251
Fix incoherent behaviour of "Duplicate Current Line" menu command with its keyboard shortcut Ctrl-D, which duplicates also the selection.
Fix#5298, close#14255
New specs of NPPM_GETNBSESSIONFILES (which is retro-compatible):
======================
NPPM_GETNBSESSIONFILES
Retrieves the number of files to load in the session sessionFileName. sessionFileName should be a full path name of an xml file.
Parameters:
wParam [out]
BOOL* isValidXML, if this pointer is null, then this parameter will be ignored. TRUE if XML is valid, otherwise FALSE.
lParam [in]
const TCHAR * sessionFileName
Return value:
Returns 0 if sessionFileName is an empty string/NULL, or XML session file is corrupted/invalid, else the number of files.
======================
Other minor improvements:
- checking also for a possible ShellExecute errors
- removing the isAllSuccessful boolean, as it is no longer needed.
Fix#14228, close#14232
Following the commit: 4248c2ae22
If the user enables the option "Remember inaccessible files from past session" (disabled by default), and an opened session (the default session "session.xml" or a user session) contains one or several inaccessible files, a message dialog will appear, giving the user the choice to open or not open the placeholders. If the user chooses to open them, empty and read-only documents will be opened as placeholders for these inaccessible files.
Fix#12079, fix#12744, fix#13696, close#14252
Add the ability of "placrholders" (the empty document) for the inaccessible files of past session.
The inaccessible files from the current (default) session (i.e., session.xml) will not be lost in the next startup of Notepad++.
Furthermore, if file status detection is enabled in Notepad++ (default setting: ON), and the previously inaccessible files become accessible again (e.g., USB drive is inserted or network drive is remounted), the resurrected files can be reloaded on-the-fly without restarting Notepad++. The user will be prompted to reload if the placeholder is switched in.
Fix#12079, fix#12744, fix#13696, close#14168
Add translation texts for these commits:
* Fix data loss issue due to no room on disk for saving (e30ee85)
* Fix Wrong Categories in Shortcuts Mapper (39001d7)
* Make auto-checking of Find InSelection configurable (OFF or resizable) (591b00e)
* Dark mode tweaks and unicode size support for InSelection configurable size (b3179b5)
Close#14147
Set value to 0 to disable auto-checking "In Selection" checkbox in Find dialog.
Set any value to define the length of selected characters to auto-check "In Selection" checkbox in Find dialog.
The default and maximum value is 1024.
Fix#14108, fix#13677, fix#12639, close#14175
- update `stylers.model.xml` to have the 41 styles supported by LexPerl
- update `themes\DarkModeDefault.xml` to have the 41 styles supported by LexPerl
Fix #14192, close#14193
- update `autoCompletion\perl.xml` to auto-complete on the new keywords/built-in-functions/pragmas
- update `langs.model.xml` to syntax-highlight on the new keywords/built-in-functions/pragmas
Close#14191
Update scintilla with https://www.scintilla.org/scintilla537.zip
Release 5.3.7
Released 22 September 2023.
For GTK on macOS, fix popup window behaviour by setting type hints. Bug #2401.
For GTK, fix assertion failure on some systems when an INDIC_SQUIGGLEPIXMAP drawn for a zero-width character.
For Qt, allow parent window to handle context menu events by setting as ignored. Bug #2395.
For Qt, fix potential crash when using IME with large amount of text selected.
For Windows, fix building with non-English environment. Bug #2400.
and lexilla https://www.scintilla.org/lexilla527.zip
Release 5.2.7
Released 22 September 2023.
Fix building on Windows with non-English environment. Pull request #200.
Bash: fix line continuation for comments and when multiple backslashes at line end. Issue #195.
Bash: treat += as operator and, inside arithmetic expressions, treat ++ and -- as operators. Issue #197.
Bash: improve backslash handling inside backquoted command substitution and fix $ at end of backtick expression. Issue #194.
Bash: treat words that are similar to numbers but invalid wholly as identifiers. Issue #199.
Bash: consistently handle '-' options at line start and after '|' as identifiers. Issue #202.
Bash: handle '-' options differently in [ single ] and [[ double ]] bracket constructs. Issue #203.
F#: improve speed of folding long lines. Issue #198.
HTML: fix invalid entity at line end and terminate invalid entity before invalid character. Issue #192.
Fix#13991, fix#14062, close#14173
It will allow for the Notepad++ to be a "restartable app", like some other SW can do today (eg Google Chrome, Mozilla Firefox or all the Microsoft UWP apps).
This is to create a seamless experience wherein, if you have to reboot your PC, you can now pick back up from where you left off and resume being productive.
The OS app-restart feature needs at least Windows 10 (20H1) and the user has to switch on the "Restart apps" in the system Settings (subsection Accounts > Sign-in options).
Implemented as per previous discussion: https://github.com/notepad-plus-plus/notepad-plus-plus/issues/12541#issuecomment-1332662024
To disable this feature, add "noRestartAutomatically.xml" into "%APPDATA%\Notepad++\" or Notepad++ installation directory.
Fix#9722, fix#11721, fix#11934, close#14074