241 Commits

Author SHA1 Message Date
xomx
6000f3bb21 Fix session.xml emptying by forced Windows update restart
This fixes both the long standing problem with the emptying of the session.xml file by forced Windows Update restart/shutdown and some potential Notepad++ crashes caused by possible main Notepad++ window blocking at exit.

Two main changes to the original design:
- WM_QUERYENDSESSION is not used anymore for the tidy-up ops and it always quickly returns TRUE/FALSE to the system as it should.
- there is now a safe-guard flag for the session.xml saving at N++ exit, which prevents otherwise possible incorrect overwriting in case of multiple "endsession" messages.

Fix #9850, fix #12389, close #12388
2022-10-30 14:06:33 +01:00
Don Ho
50a50cce3c Remember Column Editor settings through the sessions
Close #12386
2022-10-25 00:20:54 +02:00
Don Ho
8ff003412a Make large file limit (for styling) configurable
Background: because styling large file can cause the performance issue, 200 MB (and bigger) file is not applied to its language (if any) while loading.
This PR makes large file restriction for styling and for other features (smart highlighting, brace match, etc...) configurable via the section Performance of Preferences dialog.

Fix #11389, fix #12260, fix #11670, close #12310
2022-10-15 18:18:06 +02:00
xomx
23fc940a27 Enhance N++ EndSession logging
To be able to distinguish:
- different types of Windows system restart/shutdown
- WM_CLOSE messages after previous WM_QUERYENDSESSION

Close #12257
2022-10-04 17:36:49 +02:00
Don Ho
4d50692809 Add new API for getting bookmark ID
ref: https://community.notepad-plus-plus.org/topic/23541/notepad-v8-4-6-release/22?_=1664842498334
2022-10-04 03:31:09 +02:00
ozone10
b29a9ce142 Code enhancement - removing gcc warning
Fix conversion-null, nonnull-compare, dangling-else, address warnings, add initializers.

Fix #12198, close #12199
2022-09-20 16:19:58 +02:00
ozone10
1ac1b1150d Code enhancement
Fix some conversion-null, nonnull-compare, unknown-pragmas, switch warnings, add initializers.

Fix #12179, close #12180
2022-09-19 01:38:26 +02:00
Don Ho
fc32fbdcce Add Change History markers for saved/unsaved/undone modification
Implement Change History by using the new abilities of Scintilla v5.3.0.

Fix  #12164, close #12165
2022-09-18 23:57:36 +02:00
blu3mania
84b8c64944 Fix NPPN_DARKMODECHANGED wrong return value to plugins
Send NPPN_DARKMODECHANGED notification with hwndNpp as hwndFrom, so the documented API info on https://npp-user-manual.org/docs/plugin-communication/#nppn-darkmodechanged is correct. Previously it sends 0 which is of no use to plugin authors.

Fix #12144, close #12160
2022-09-13 02:10:07 +02:00
doug1234
9809e2fc2c Add option to turn off selecting text when Field dialog is invoked
Fix #11988, close #11989
2022-08-29 05:26:54 +02:00
Don Ho
70660eb608 Add carret block after option
Fix #11944
2022-07-30 16:28:31 +02:00
Don Ho
67ab4d5527 Add some shortcuts in Styler Configurator to preferences dialog
Shortcuts to Preferences dialog are added only for the following styles (Global Styles):

1.  "Current line background colour"
2.  "Caret colour"
3.  "Edge colour"
4.  "Line number margin"
5.  "Bookmark margin"
6.  "Fold"
7.  "Fold active"
8.  "Fold margin"
9.  "Smart Highlighting"
10. "Tags match highlighting"
11. "Tags attribute"
12. "Mark Style 1"
13. "Mark Style 2"
14. "Mark Style 3"
15. "Mark Style 4"
16. "Mark Style 5"
17. "URL hovered"
18. "EOL custom color"

Fix #11890, close #11904
2022-07-12 18:57:20 +02:00
Don Ho
de75f56676 Processing WM_CLOSE with the right return value
Ref:
https://docs.microsoft.com/en-us/windows/win32/winmsg/wm-close
2022-07-04 04:52:06 +02:00
dail8859
f1ed4de78d Add NPPM_CREATELEXER message for plugins to instantiate lexers
Fix #11789, close #11790
2022-06-14 22:55:27 +02:00
Don Ho
79e766755d Make EOL (CRLF) display customizable
Fix #11413, close #11773
2022-06-12 19:41:09 +02:00
ozone10
d65967deab Use edge colors in dark mode for listbox border
1. use edge colors in darkmode for edit control border.
2. tweaks to properly drawn listbox scrollbar, when using custom border.
3. disabled edge color to dark mode preference dialog.
4. use disabled edge color for disabled combobox.

Fix #11207, fix #11376, close #11756
2022-06-06 20:25:17 +02:00
Don Ho
10f48e36ad Fix typos 2022-05-19 19:32:35 +02:00
Shridhar Kumar
0f8d5724af Add command line argument for plugin, a related notification and an API
1. Add a cmd argument for plugin: -pluginMessage="SPECIFIC_PLUGIN_MESSQGE" where SPECIFIC_PLUGIN_MESSQGE is a string which can contain white space. For example: -pluginMessage="arg1 arg2 arg3".
2. NPPN_CMDLINEPLUGINMSG notification: which will be triggered by -pluginMessage and plugins will get their specific message "arg1 arg2 arg3" via idFrom field:
   //scnNotification->nmhdr.code = NPPN_CMDLINEPLUGINMSG;
   //scnNotification->nmhdr.hwndFrom = hwndNpp;
   //scnNotification->nmhdr.idFrom = pluginMessage; //where pluginMessage is pointer of type wchar_t
3. Add NPPM_GETCURRENTCMDLINE API for getting the latest command line.
4. Update command line dynamically in Debug info dialog.

Fix #11576, close #11589
2022-05-16 04:54:31 +02:00
Don Ho
ef609c896f Add a new format argument/option "ADD_ZERO_PADDING" to NPPM_GETNPPVERSION
Fix #11535
2022-05-08 13:58:45 +02:00
ozone10
dfc9fb6f3b Highlight dark mode combobox border on focus
Fix #11574, close #11575
2022-04-29 13:50:27 +02:00
Leonardo Silva
1eb5b10e41 Add DarkMode usage detection support for plugins
Add APIs: 2 new messages NPPM_ISDARKMODEENABLED & NPPM_GETDARKMODECOLORS, and 1 new notification NPPN_DARKMODECHANGED.

Fixed also a bug in dark mode for PushLike CheckBoxes.

Fix #11546, close #11547
2022-04-26 19:27:35 +02:00
Shridhar Kumar
d3e77c0e6f Add "Framed current line" option beside of "Highlight current line background"
The related GUI in Preferences dialog has been organized in the adapted way for the new option.

Fix #11501, close #11534
2022-04-26 16:59:21 +02:00
ozone10
2dbc25f918 Add initial dark mode support for Shortcut Mapper
- Partially implement #11530.
- Minor tweaks for drawAutocompleteColoursFromTheme to avoid double calling.

Close #11531
2022-04-13 21:11:17 +02:00
Don Ho
0ee65fd826 Fix x64 build error in 3f1a582a36db175a4f86b35dcd47f3aa5bf331fa
Fix x64 build error, remove unnecessary codes and add enhancement for the previous commit 3f1a582a36db175a4f86b35dcd47f3aa5bf331fa
2022-04-13 04:43:08 +02:00
ozone10
3f1a582a36 Add dark mode support for autocomplete list & calltip
Fix fix #11522, close #11523
2022-04-13 03:42:38 +02:00
Manuel Montoto
88ed851478 Add virtual space ability
Added an option in preferences to enable or disable virtual space.

Fix #11443, Fix #11444, close #11452
2022-04-06 15:37:23 +02:00
Don Ho
252468c29b Revert "Remove the external lexer support"
This reverts commit 41a5bf0245b53e74186e49a21adec2c518587b5c.
2022-04-01 19:17:18 +02:00
Don Ho
41a5bf0245 Remove the external lexer support
SCI_LOADLEXERLIBRARY has been removed since Scintilla 5,
and I belive that Scintilla won't support it anymore:
https://sourceforge.net/p/scintilla/bugs/2236/

Close #11451
2022-03-30 18:52:47 +02:00
Ashfaaq18
32580e6a80 Fix Document list not sync with tab order after sorting
Document List now updates itself with respect to the tabs sorted by the windows dialog

Fix #11272, close #11411
2022-03-22 19:23:02 +01:00
LEONARDO SILVA
9cbd03c301 Add more API for custom auto-indentation and current macro status
4 new API are added:
- NPPM_GETEXTERNALLEXERAUTOINDENTMODE
- NPPM_SETEXTERNALLEXERAUTOINDENTMODE
- NPPM_ISAUTOINDENTON
- NPPM_GETCURRENTMACROSTATUS

* Added support for custom auto-indentation for external lexer.
* Also added messages to fetch current Macro status (Idle, Recording, Stopped, Running) -> for this also affects auto-indentation behavior.
* Also added capability to query for the current User Settings of "Use Auto Indentation".

Fix #11253, close #11278
2022-03-05 00:57:43 +01:00
Daniel Fuchs
052b27e3d7 Add API NPPM_GETCURRENTLINESTR & RunDlg's variable $(CURRENT_LINESTR)
Add new API NPPM_GETCURRENTLINESTR and new variable $(CURRENT_LINESTR) for RunDlg to get the whole current line string.

Fix #11216, close #11265
2022-02-22 15:07:30 +01:00
xomx
3de15f5512 Enhance performance on exit with certain settings
Notepad++ is unnecessarily stalled in the situation, when closing a N++ with a large file opened within, but the session.xml file will not be updated at all due to the current Notepad++ settings chosen.

Fix #11219, close #11259
2022-02-22 01:38:26 +01:00
Don Ho
51b1c9377c Fix incorrect message on double click on search result regression
This regression was inserted by commit c0be50494ceba80bd1c380f64c9c02391f926526 (PR #11107).

Fix #11215, Fix #11106
2022-02-16 18:22:47 +01:00
Don Ho
785453147b Inialize all memebers of struct (instead of its 1st member) to zero
The curly brace initiator in C/C++ is quite confusing (at least to me).
The C style array uses {0} for initializing all the array to 0,
whereas C++ struct uses {0} for initializing only the 1st member's value to 0.
If we want to set all members' value in a struct to 0, we should use {} instread of {0}.

This commit fix the error which initialize only the 1st member's value to 0 in the structures.

Ref:
1. https://docs.microsoft.com/en-us/cpp/cpp/initializing-classes-and-structs-without-constructors-cpp?view=msvc-170
2. https://en.cppreference.com/w/c/language/struct_initialization
2022-02-09 16:41:56 +01:00
Don Ho
961a133a60 Remove 2GB file open restriction for x64 binary
Fix #10921, close #11047
2022-01-25 18:08:05 +01:00
Don Ho
ed40f11515 Fix loaded session being empty on exit
In the following configuration loaded session will be empty on exit
* Remember current session for next launch: OFF
* Open session in a new instance: ON

This commit fix the issue.

Fix #10986, close #11017
2022-01-10 15:05:44 +01:00
Ashfaaq18
4a7a33f010 Fix Document List icons unchanged issue after switching to dark mode
1. Document List icons now support darkmode icons and alternate icons.
2. Fixed memory leak in code and additional code refactoring.

Fix #10740, close #10956
2021-12-28 01:04:38 +01:00
Don Ho
a16930fffe Add auto save loaded session on exit feature
This new feature works only if Multi-instance settings is NOT set to "Default (Mono-instance)".

Fix #1646, fix #3241, fix #3574, fix #4228, close #10935
2021-12-24 17:32:08 +01:00
Don Ho
ac52f406f3 Fix no focus on edit zone regression
Fix no focus on edit zone after switching back to Notepad++.
This regression is introduced by ee884f87bbb66d1431f0d530d0cd25bb7cde6b35 (#10910)

ref:
ee884f87bb (commitcomment-62032223)
2021-12-16 17:37:11 +01:00
Shridhar Kumar
ee884f87bb A comprehensive fix for background clipping of dock panels
The (very detailed) explanation/information of fix:
https://github.com/notepad-plus-plus/notepad-plus-plus/issues/2937#issuecomment-992086848

Fix #2202, fix #2937, fix #5980, fix #8980, fix #9905, fix #10091, close #10910
2021-12-14 02:53:09 +01:00
Don Ho
5d2fc0d8c0 Fix log written under wrong condition 2021-12-06 18:50:36 +01:00
Don Ho
acb8a9db47 Add logs for nul content corruption issue
These logs are written for debugging NUL file-corruption issue (#6133) and session lost issue (#10402) which are still problematic probably.
The writting log info will be triggered only when Windows notifies Notepad++ to end session.
The log file will be in "%APPDATA%\Notepad++\" or in Notepad++ installation folder if doLocalConf.xml is present.
To disable the log, just remove nppLogNulContentCorruptionIssue.xml.

Close #10871
2021-12-04 15:33:32 +01:00
Don Ho
e87342fef6 Fix Notepad++ dockable panels lose bg color issue when swiching it back
It's rather a bug of Windows' API than the bug of Notepad++. The visual glitch comes from TreeView (FunctionList, Folder As WorkSpace, Project Panels etc ...) but ListView (ASCII Insertion Panel & Document List) works fine.
I have done some fixes about this issue. However, it's not perfect when use mouse to do the snapshot.
OTOH, once the click done to show Notepad++, it becomes normal.
This is the best fix I can offer for this bug.

Fix #2202, fix #2937, fix #5980, fix #8980, fix #9905, fix #10091
2021-12-01 02:32:33 +01:00
CennoxX
add1c145ad Fix "Run macro until the end of file" command skipping the last line issue
Fix #10441, close #10638
2021-10-14 14:40:45 +02:00
Don Ho
e5a800722b Make code more sanitary
Fix some vulnerable codes detected by VS's analyzing.

Close #10541
2021-09-12 18:50:30 +02:00
Ashfaaq18
36d0d29cc7 Add path column in Document list panel
Fix #9679, close #10539
2021-09-12 15:18:22 +02:00
Ivan Ustûžanin
156784722a Make number of languages and and styles unlimited and independent
A clean version of #10483 thanks to @ozone10 and @chcg.
The proper fix for #10206 without any compile-time limits.

Fix #10483, fix #10206, close #10491
2021-09-05 16:31:18 +02:00
mere-human
d41b4e1645 Fix current directory not applied bug after changing current directory option
Refresh the working directory when changing Follow current document preference.

Fix #10396, close #10426
2021-08-28 17:55:42 +02:00
ozone10
68d293e711 Allow custom color for Document Map
Fix #10052, close #10422
2021-08-26 01:03:18 +02:00
ozone10
318a566ae7 Apply explorer style on treeview
Enable hottracking for explorer style.
Allow dynamic change based on treeview background.

Fix #10061, close #10304
2021-08-01 16:05:26 +02:00