365 Commits

Author SHA1 Message Date
xomx
abbe60e74c Allow using the Scintilla DirectWrite in non-Core Windows Server
Fix #15916, close #15921
2025-02-09 12:28:06 +01:00
Don Ho
6fd3830b42 Add NPPM_ADDSCNMODIFIEDFLAGS to fix regression for Plugins
Add **NPPM_ADDSCNMODIFIEDFLAGS** message for plugins which need the SCN_MODIFIED notification of other events.

BOOL NPPM_ADDSCNMODIFIEDFLAGS(0, unsigned long scnMotifiedFlags2Add)
Add needed SCN_MODIFIED flags so your plugin will recieve the notification SCN_MODIFIED of these events for your specific treatments.
By default, Notepad++ only forwards SCN_MODIFIED with the following 5 flags/events SC_MOD_DELETETEXT | SC_MOD_INSERTTEXT | SC_PERFORMED_UNDO | SC_PERFORMED_REDO | SC_MOD_CHANGEINDICATOR to plugins.
If your plugin need to process other events of SCN_MODIFIED, you should add the flags you need by sending this message to Notepad++, just after recieving NPPN_READY.
wParam: 0 (not used)
lParam[in]: scnMotifiedFlags2Add- Scintilla SCN_MODIFIED flags to add.
Return TRUE

Ref: https://community.notepad-plus-plus.org/topic/26588/notepad-v8-7-6-released/2?_=1738167940554

Fix #16121, close #16120
2025-01-31 18:25:04 +01:00
Don Ho
8fde4bd8aa Make "Show close/pin button on each inactive tab" optional
Fix #15912, fix #16035, close #16059
2025-01-14 12:33:37 +01:00
Alan Kilborn
6453379ac8 Enhance "Follow current doc." GUI action/option in Find in files
Fix #15908, close #15938
2024-12-17 14:02:07 +01:00
Don Ho
467182602a Fix selected pathnames in search results localization issue
Bug introduced by commit: b8224808bd (diff-a6ac7ceba70d88bf1547fd1defd760bd55052dcdb78c44f9d46d99ef1f450472L1722)

Fix by https://github.com/notepad-plus-plus/notepad-plus-plus/issues/15741#issuecomment-2480350071

Close #15813
2024-11-17 16:54:07 +01:00
pawelzwronek
eeb4753044 Add "Minimize / Close to" option for System tray
Fix #15771, close #15785
2024-11-14 16:56:02 +01:00
Don Ho
ce58b424bd Add Pin tab feature
Fix #5786, close #15750
2024-11-09 03:59:20 +01:00
Don Ho
cd45afc020 Improve GUI for commands for the system tray in Preferences 2024-10-11 04:28:19 +02:00
p@pawel-pc
035ef19b17 Add "Close to system tray" in MISC preference
Fix #4075, fix #11627, close #15617
2024-10-11 04:21:21 +02:00
Don Ho
f884a39dd4 Fix opened network files hanging issue while the network disconnected
The issue is due to WinAPI's GetFileAttributes function can take a huge amount of time in various situations, like when the target server being offline (usalally).
The current solution is to wait at least 3 seconds for each GetFileAttributes function, then return the default value in case of the problem (or the returned value of the function, in case of normal situation - if it has been executed completely during the 3 seconds).
So there'll still be the hanging time (3 or 6 seconds) while the problem of network connection, but the hanging time (it could be 30 seconds more) is reduced considerablly.

"Wow64EnableWow64FsRedirection" call is also removed from x64 build (in which this call is unnecessary) in this commit to reduce the IO calls.

Fix #4306, fix #6178, fix #8055, fix #11388, fix #12553, fix #15540, close #15658
2024-10-02 04:52:15 +02:00
Don Ho
a866900c8d Make find dlg status msgs color customizable via Style Configurator
Fix #5087, close #15597
2024-09-02 18:51:59 +02:00
PeterCJ
9e4290094d Add user-defined keyword ability for some supported programming languages
Add new SubStyles and their available keyword lists to specific languages:
- Enable 8 Scintilla's SubStyles (each), which allow for new keyword lists and styles for the languages with SubStyles available: ActionScript, ASP, Bash, C, C++, C#, GDScript, Go, HTML, Java, JavaScript (standalone and embedded), JSP, Lua, PHP, Python, Resource (RC), Swift, TypeScript, and XML.
- The new SubStyles have been added to `langs.model.xml`, `stylers.model.xml`, and the themes, which means users can just use the StyleConfigurator for the SubStyles, just like they do for the original Styles.

Fix #15520, close #15537
2024-08-14 20:01:36 +02:00
Don Ho
a16261caaa Add customizable option for individual tab color
Fix #12156, close #15509
2024-08-03 00:12:23 +02:00
Don Ho
6b97e68cbb Refactoring - make tab color code on its correct place 2024-07-28 12:34:30 +02:00
Don Ho
439bbb04d2 Make C-Like indent deactivatable
Add one more option for auto-indent so user can choose among "none", "basic" & "advance".
Also add the indentation section in Preferences dialog.

Fix #15396, close #15414
2024-07-14 21:10:13 +02:00
Don Ho
97279d024f Remove ambiguous symbols (part 4)
Relace TCHAR, generic_string & TEXT("") par wchar_t, wstring & L"" respectively.
Follow up: 94af271
2024-06-30 01:10:36 +02:00
Alan Kilborn
7a6768b029 Add Backspace unident option
Fix #15180, close #15277
2024-06-13 15:12:22 +02:00
xomx
8beda66cb8 Fixed the "lost" panels issue
Implement some size limits for the Notepad++ docked and floating panels, as the users often "lost" its panels (e.g. when they minimized them to zero width or height).

This also fixes the config.xml possible previous "out-of-the-allowed-range" data.

Fix #13084, close #15236
2024-06-08 03:58:43 +02:00
Don Ho
ee3aecb161 Fix a typo 2024-05-10 23:18:55 +02:00
mpheath
8672d95ca4 Fix user defined auto-insert not working issue
Fix #3171, fix #8063, fix #12547, fix #14831, close #15005
2024-04-20 02:38:33 +02:00
ozone10
01a088f994 Use new dpi manager scaled default fonts
ref #14959

Close #14991
2024-04-18 15:15:22 +02:00
Don Ho
903d47b2eb Reduce compiling warning
Close #14924
2024-04-05 03:46:27 +02:00
Don Ho
aa0be9973b Add support for Change History in the text
This commit follows the commit:
fd1f785b89

Close #14838
2024-03-10 05:17:08 +01:00
Don Ho
35deb8a303 Make "Prevent C0 input" feature optional 2024-02-29 17:51:27 +01:00
Don Ho
f2d66170fc Restore multi-editing option on GUI
Make also Column To Multi-editing optional on GUI and cancel the usage of noColumnToMultiSelect.xml file.
For users who have added "noColumnToMultiSelect.xml" for disabling "Column To Multi-editing" feature,
please go to "Editing 2" section of Preferences to disable this feature.

Ref: https://community.notepad-plus-plus.org/topic/25364/notepad-v8-6-2-release/11?_=1707952609907
Ref: https://github.com/notepad-plus-plus/notepad-plus-plus/issues/14611#issuecomment-1937487607

Fix #14645, close #14734
2024-02-15 18:27:48 +01:00
Don Ho
9e7f1e514c Make copy/cut line while no selection optional
With this commit, there's the same issue in both JsonTools & NavigateTo (in C#), described here:
https://community.notepad-plus-plus.org/topic/25315/notepad-v8-6-1-release/2?_=1706795482129 

To reproduce:
1. Uncheck "Enable Copy/Cut Line without selection" checkbox in Editing section of Preferences.
2. Make sure there's no selection in the current editor
3. Launch "Open JSON tree viewer", and try to Cut "@" symbol on the top left text field with Ctrl-X

To remedy such problem, the plugin should call NPPM_MODELESSDIALOG with MODELESSDIALOGADD on the handle (HWND) of modeless dialog, just after the dialog creation.
(https://github.com/notepad-plus-plus/notepad-plus-plus/blob/master/PowerEditor/src/MISC/PluginsManager/Notepad_plus_msgs.h#L93)
With the registration of dialog handle, Notepad++ will pass all events which belongs to dialog's controls to the registered dialog.

Both source code of JsonTools & NavigateTo have been examinated, NPPM_MODELESSDIALOG which should be used has not been called.
Not sure it's the case of all the plugin in C#, it's not the issue for the C/C++ plugins anyway, because the dockable modeless dialog (inherited from StaticDialog) is registered after its creation:
https://github.com/notepad-plus-plus/notepad-plus-plus/blob/master/PowerEditor/src/WinControls/StaticDialog/StaticDialog.cpp#L257

Fix #14638, close #14660
2024-02-03 01:29:54 +01:00
Don Ho
bb278b26fc Enhance API description in comment
Close #14587
2024-01-28 05:20:22 +01:00
Don Ho
75ae73c173 Fix Copy/Cut/Paste shortcut modification conflict problem
The bug is introduced by:
f7c44b4413

Fix #14585, close #14586
2024-01-14 00:18:58 +01:00
Helge Konetzka
464967e26c Fix clang compilation error
Close #14559
2024-01-10 23:33:03 +01:00
Don Ho
3c4f0f9cb2 Make line copy/cut/delete while no selection optional
By adding disableLineCopyCutDelete.xml in "%APPDATA%\Notepad++\" directory (or in the Notepad++ installed directory in portable mode) to:
1. prevent hard coded Shift-DEL shortcut deletes whole line while no selection.
2. prevent Copy command (Ctrl-C) copies whole line (without selection).
3. prevent Cut command (Ctrl-X) cuts whole line (without selection).
4. add SCI_CUT (Shift-DEL), SCI_COPY (Ctrl-INS) & SCI_PASTE (Shift-INS) shortcuts

Note: the old disableHardCodedShiftDelete.xml (of 53b5055118caa5934b535c5521f04f991c13143b) is canceled, the new disableLineCopyCutDelete.xml is used instead.

Ref: https://github.com/notepad-plus-plus/notepad-plus-plus/issues/14296#issuecomment-1866679990
Ref: https://github.com/notepad-plus-plus/notepad-plus-plus/issues/14401#issuecomment-1833326429

Close #14513
2023-12-23 04:45:09 +01:00
Don Ho
53b5055118 Make hard-coded shortcut "Shift-DEL" be abled to be disabled
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
2023-12-14 16:58:12 +01:00
Don Ho
aef0438180 Make column to multi-select be abled to be disabled
In order to disable the "Column to multi-select" ability (new feature introduced in v8.6), users must add an empty file named "noColumnToMultiSelect.xml", in "%APPDATA%\Notepad++\" directory (or in the Notepad++ installed directory in portable mode) to prevent this behaviour.

ref: https://github.com/notepad-plus-plus/notepad-plus-plus/issues/14296#issuecomment-1848076816

Fix #14464, close #14476
2023-12-13 03:25:33 +01:00
briangood35
bf37d4714f Sort language list in the Preferences dialog
Sort langlist before displaying using custom less than operator.

Fix #14245, close #14443
2023-12-08 19:52:02 +01:00
Don Ho
2724e0ddbb Make RTL per document & remembered across the sessions
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
2023-12-02 17:49:09 +01:00
Don Ho
975d29b30b Enable Direct Write Technology in Scintilla by default
And disable Direct Write under WINE, due to the performance issue.
Ref: https://github.com/notepad-plus-plus/notepad-plus-plus/issues/8510
2023-11-18 19:22:59 +01:00
Don Ho
dc6bfedb90 Fix Incomplete styler.xml crashes Notepad++ issue
And do some refactoring.

Fix #12101
2023-11-06 00:40:38 +01:00
Don Ho
89278e1dc7 Force to enable multi-select feature in Scintilla 2023-10-30 15:40:49 +01:00
xomx
72c5175b33 Fix missing session invalid error for user session & enhance NPPM_GETNBSESSIONFILES
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
2023-10-23 01:09:58 +02:00
Don Ho
08794510be Make session inaccessible files remembered (part 2/2)
Following the commit: 4248c2ae22e07a030c9dd0684de1fd38125e9dfd

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
2023-10-23 00:07:00 +02:00
Alan Kilborn
591b00e538 Make auto-checking of Find InSelection configurable (OFF or resizable)
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
2023-10-06 00:32:28 +02:00
xomx
939b00a61e Removing unused _isRestartedByOS member variable
This amends the previous #14074 PR.

Close #14171
2023-09-22 19:25:54 +02:00
xomx
87efdf5084 Add Win10+ OS Restart-app feature
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
2023-09-21 19:56:53 +02:00
(x*ln(7))⁻¹
cf8ddc18c9 Add supperss 2GB file warning option for x64
Fix #14055, close #14069
2023-08-31 01:16:15 +02:00
Don Ho
2804ac79f0 Fix "Last Used Directory" may not be saved issue
Also change open/save "Last Used Directory" behaviour - on last changed directory changed in open/save dialog dialog instead on pressing OK.

Fix  #13914, close #13918
2023-07-23 10:05:14 +02:00
Don Ho
c8020647dd Fix regression: the small size of Notepad++ on its very first launch
Fix regression is due to a367fc1
2023-07-22 11:39:47 +02:00
Don Ho
a367fc1b79 Code enhancement: use std::wstring instead of generic_string 2023-07-21 12:11:08 +02:00
molsonkiko
ff2179aeca Remember the directory of "Remember last used directory" through sessions
Fix #11326, fix #10901, fix #4961, fix #4119, close #13887
2023-07-21 11:14:01 +02:00
Don Ho
61503a2dcd Add "open new blank document in addition on startup" ability
To enable/disable this feature, go to New Document section of Preferences dialog, and check/uncheck "Always open a new document in addition at startup" checkbox.

Fix #11134, fix #9535, fix #5527, close #13738
2023-06-08 19:16:56 +02:00
Don Ho
dba15cfaf3 Fix document language not remembered through sessions issue
Fix document language not remembered through sessions due to languange being hidden from languages menu.

Fix #13743, close #13744
2023-06-06 02:07:19 +02:00
ozone10
776a3fb945 GUI Enhancement: StylerDlg & URLCtrl
-  prefer SystemParametersInfo fonts over DEFAULT_GUI_FONT
-  optimize dark mode
-  fix override warnings

Fix #13705, close #13706
2023-05-30 18:42:51 +02:00