Commit Graph

2987 Commits (3fcad98883bd719b6be63f234648f5712018548f)

Author SHA1 Message Date
Don Ho 059bca3315 Fix 1 entry per line in Search result UTF8 marked wronly issue
Fix CJK, Hebrew, Arabic and other Languages in UTF8 marked wronly issue in in Search result while "1 entry per line" option enabled.
The option in question can be enabled in RTL mode now with this commit.
2022-06-30 17:29:39 +02:00
Don Ho 980cbcccc6 Fix search results are wrongly positioned in CJK languages
Fix  #11855
2022-06-30 03:10:07 +02:00
Christian Grasser ed4bb1a93e Update lexilla to 5.1.7 & Scintilla to 5.2.3
Use new interfaces SCI_FORMATRANGEFULL, SCI_GETTEXTRANGEFULL, SCI_FINDTEXTFULL from scintilla 5.2.3

Close #11734
2022-06-28 16:19:19 +02:00
xomx 7917d0d974 Fix "CMD Here" command open Explorer issue
Better specify the cmdline interpreter:
This solves a possible confusion in between the cmdline interpreter and the possible folder named "cmd"' for the ShellExecute WINAPI.

Fix #11818, close #11833
2022-06-27 17:22:09 +02:00
xomx 9d69db9b15 Fix a crash issue due to opening an empty .NFO file
There was an infinite recursion for such empty files, when the default setting for new files was UTF8.

Fixes #11820, close #11824
2022-06-27 06:01:33 +02:00
Don Ho 08128ee36a Add an option allows to show only 1 entry per found line in search result
Also mark several found occurrences in the same entry - user can click on the marked occurrence to jump among found result in the found line.
This option is enabled by default. It can be disabled in "Searching" section of Preferences dialog.

It's an alternative implementation of #11705

Fix #2481, fix #1499, fix #5547, fix #2987, fix #4525, fix #3224, close #11808
2022-06-26 18:41:05 +02:00
Don Ho 3b04793097 Fix Find in files performance regression since updating Scintilla 5
It's due to the folding the previous result before the begin of search.
For the unknown reason there's performance issue if folding action is at this place for Scintilla 5.

Fix #11814
2022-06-18 18:10:04 +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 f69a9093f9 Fix x64 build error 2022-06-14 15:39:10 +02:00
Don Ho d0b2a9ff9d Skip save all warning dialg if only current editing file is dirty
Here is the behaviour of this commit:
1. If there's only one file dirty, and it's current editing one, then SaveAll dialog won't display.
2. If there's only one file dirty, and it's NOT current editing one, then SaveAll dialog WILL display.
3. If there's 1 editing file which is dirty, and its clone (dirty also) is on the other view, then SaveAll dialog WILL display.

Fix #10995
2022-06-14 02:52:52 +02:00
Don Ho 2d7b2093a1 Fix font definition for languages regression in Style Configurator
Defining font for languages is no more possible in Style Configurator.
This regression is due to commit 1567847 (PR #10483).

Fix #11786, close #11787
2022-06-13 18:41:17 +02:00
Don Ho 79e766755d Make EOL (CRLF) display customizable
Fix #11413, close #11773
2022-06-12 19:41:09 +02:00
ozone10 f517c6c053 Enhance dark mode support for plugins
- Add support for 3 state checkbox buttons.
- Add support for plugin custom draw for listview subitems.
_ Apply correct colors on listbox.

Enhancement to #11711.
Based on information from https://community.notepad-plus-plus.org/topic/23080/impact-analysis-of-generic-darkmode-rendering-of-plugin-dock-panels-from-pr-11711.

Close #11767
2022-06-08 02:29:46 +02:00
Don Ho 82b78ff7b8 Fix error from commit b6efff4 2022-06-07 01:23:32 +02:00
Don Ho b6efff4157 Fix Selected text changes color issue when editor window loses focus
Fix #11743
2022-06-07 01:08:20 +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
ozone10 2c0134ef5a Add plus and arrow (drop down list of opened files) buttons on menu bar
1. Add plus and arrow buttons on menu bar beside of 'X' button:
   - plus button: for adding a new document
   - arrow button: display a drop down list for all opened files to offer users quick access of switching file
2. Enhance the most recent opened file list: Increase maximun file number to 30.

Fix #11229, close #11757
2022-06-05 15:44:05 +02:00
Don Ho 33ab652395 Make dark mode support for plugin by default
And remove the GUI option to disable this feature.
(based on d3b026bfeb)
2022-06-05 03:51:34 +02:00
ozone10 d3b026bfeb Add dark mode support for plugins
Support dark mode for plugins with docking GUI.

Fix #11710, close #11711
2022-06-05 03:39:28 +02:00
Shridhar Kumar b204be9012 Fix a small regression in DebugInfo dialog
Remove "$COMMAND_LINE_PLACEHOLDER$ from the copied DebugInfo text.

Fix #11752, close #11753
2022-06-04 18:14:57 +02:00
Don Ho a02a254ea1 Notepad++ 8.4.2 release 2022-06-03 18:28:42 +02:00
Don Ho 2d47c8d340 Fix an order error in toolbarIcons.xml 2022-06-03 04:27:45 +02:00
Don Ho b5479bb9b0 Fix Plugin Admin not showing on menu due to certificate checking problem
* Fix certificate checking problem: the old certificate has been expired. In v8.4.2 Notepad++ & its components are signed by the new certificate. The certificate is checked before launching WinGUp (updater) to compare with the certificate key value stored in Notepad++. Updating certificate key value fixes the problem of WinUp validation, so Plugin Admin can be shown on the menu.
* Fix a typo.

Fix #11742
2022-05-29 17:23:31 +02:00
Don Ho fa3ba7e389 Fix customizing toolbar icon messed with dark mode
Ref:
d85b9a7464 (commitcomment-74498214)
2022-05-27 04:06:11 +02:00
Mathias Berchtold 4487171c3f Add gui4cli keywords and fix style IDs in stylers.model.xml
Close #11712
2022-05-26 03:15:26 +02:00
Edoardo Lolletti 3b208743bd Display the accurate OS version in DebugInfo (for Windows build 21H1 and greater)
Query for DisplayVersion as well instead of using only ReleaseId.

Windows deprecated the ReleaseID registry entry (now it is no longer updated and on newer Windows 10/11 builds will remain the same) and moved to use DisplayVersion.
Attempt now to first query DisplayVersion and in case that is missing, fall back to ReleaseID for older Windows 10 builds.

Close #11714
2022-05-26 02:29:53 +02:00
Don Ho ddbb75f0f7 Make Plugin Admin exception message more clear 2022-05-25 19:27:18 +02:00
Robert Di Pardo d6595ad836 Make Plugins Admin work with MinGW in debug mode binary
Convert path to nppPluginList.json with ::wstring2string().

Unlike MSVC [1], MinGW GCC doesn't provide file stream constructors
for wchar_t* paths [2].

 ---
 [1] https://stackoverflow.com/a/822032
 [2] https://sourceforge.net/p/mingw-w64/mailman/message/34249829

Fixes #11687, close #11701
2022-05-25 18:37:21 +02:00
Don Ho e8817eacd0 Update localization files 2022-05-25 03:57:32 +02:00
Don Ho 96590a6f94 Fix win32 build due to the previous commit 2022-05-24 19:00:52 +02:00
Don Ho d85b9a7464 Make toolbar icons customizale
This is the enhancement of a long time forgotten feature.

To override the current toolbar icons, we needs 2 things: "toolbarIcons.xml" file and one icons set.
Here are the instructions to customize toolbar icons:

1. Put the file "toolbarIcons.xml" (Note 1) in the same folder of "config.xml" file (Note 2).
2. Create a new folder "toolbarIcons" in the folder where you put "toolbarIcons.xml" file.
3. Edit the file "toolbarIcons.xml": put the icon set name you want in "icoFolderName" attribute (Note 3).
   for example: `<ToolBarIcons icoFolderName="myAwesomeIcons" />`
4. Go into "toolbarIcons" folder and create a new folder with the exact name of the icon set name you provided in "icoFolderName".
5. Put all your customized icons into "[toolbarIcons.xml's folder]\toolbarIcons\myAwesomeIcons\".
6. Now it's the magic moment: Relaunch Notepad++ and you'll see your icon set instead of the default icons.

Note:
1. The content of "toolbarIcons.xml" is following:
```xml
<?xml version="1.0" encoding="UTF-8" ?>
<NotepadPlus>
    <ToolBarIcons icoFolderName="nppLagacyIcons" />
</NotepadPlus>
```
2. If you find the file "doLocalConf.xml" in the Notepad++ installed directory, you will find the "config.xml" in Notepad++ installed directory. Otherwise it should be in "%APPDATA%\Notepad++\" directory.
3. if "icoFolderName" value is an emptty string, the path of icons will be in "[toolbarIcons.xml's folder]\toolbarIcons\default\" folder.

Each replacing icon (45 icons) has the fixed and specific name:

| index |  Normal icon             |  Disabled icon                  |
|-------|--------------------------|---------------------------------|
|1      |  new.ico                 |                                 |
|2      |  open.ico                |                                 |
|3      |  save.ico                |  save_disabled.ico              |
|4      |  save-all.ico            |  save-all_disabled.ico          |
|5      |  close.ico               |                                 |
|6      |  close-all.ico           |                                 |
|7      |  print.ico               |                                 |
|8      |  cut.ico                 |  cut_disabled.ico               |
|9      |  copy.ico                |  copy_disabled.ico              |
|10     |  paste.ico               |  paste_disabled.ico             |
|11     |  undo.ico                |  undo_disabled.ico              |
|12     |  redo.ico                |  redo_disabled.ico              |
|13     |  find.ico                |                                 |
|14     |  replace.ico             |                                 |
|15     |  zoom-in.ico             |                                 |
|16     |  zoom-out.ico            |                                 |
|17     |  sync-vertical.ico       |                                 |
|18     |  sync-horizontal.ico     |                                 |
|19     |  word-wrap.ico           |                                 |
|20     |  all-chars.ico           |                                 |
|21     |  indent-guide.ico        |                                 |
|22     |  udl-dlg.ico             |                                 |
|23     |  doc-map.ico             |                                 |
|24     |  doc-list.ico            |                                 |
|25     |  function-list.ico       |                                 |
|26     |  folder-as-workspace.ico |                                 |
|27     |  monitoring.ico          |  monitoring_disabled.ico        |
|28     |  record.ico              |  record_disabled.ico            |
|29     |  stop-record.ico         |  stop-record_disabled.ico       |
|30     |  playback.ico            |  playback_disabled.ico          |
|31     |  playback-multiple.ico   |  playback-multiple_disabled.ico |
|32     |  save-macro.ico          |  save-macro_disabled.ico        |

It's not necessary to have all complete set (45 icons). The absent icons won't just be substituted.

Fix #9913
2022-05-24 17:57:38 +02:00
Don Ho 05dae4a720 Make fold/unfold current line commads togglable
Add an option "Make current line folding/unfolding commands togglable" in Editing section of Preference dialog to make both Collapse/Uncollapse Current level commands togglable.

Fix #11529, fix #9196, close 11699
2022-05-21 02:23:03 +02:00
Don Ho e701c208a6 Fix regression in Alt icons settings
The regression is Caused by 6729739.

Fix #11703
2022-05-20 16:20:59 +02:00
Don Ho 3750cf8fa3 Fix horizontal scrolling with scroll wheel on Logitech MX issue
Fix #10490, close #11700
2022-05-20 15:05:13 +02:00
Shridhar Kumar b3a9ec5dfe Fix a small regression of DebugInfo
Select the entire DebugInfo text, with the command line params inserted.

This is a minor fix for an issue resulting from the last-minute changes in commit 0f8d572 (Add command line argument for plugin, a related notification and an API).

Close #11697
2022-05-20 02:24:18 +02:00
Don Ho 10f48e36ad Fix typos 2022-05-19 19:32:35 +02:00
ozone10 a577564699 Make dark mode groupbox edge to use edge color
Make also combobox border round on Windows 11 to match style, and fix visual glitch with transparency groupbox in Find dialog.

Fix #11693, close #11694
2022-05-18 20:12:19 +02:00
Don Ho c9b177bb9e Fix a memory leak in "Copy Binary Content" comment
Ref: https://github.com/notepad-plus-plus/notepad-plus-plus/issues/11671#issuecomment-1128975960
2022-05-17 18:08:40 +02:00
Don Ho 8a37bed448 Make file description shorter to suit the context menu
Fix #11688
2022-05-17 17:52:08 +02:00
Shridhar Kumar df438ea944 Fix crash on "Copy Binary Content" command without selection on edit zone
Fix also an issue that the word where the cursor is on in the edit zone is selected after running ABOUT box, that makes all the occurence of same word highlighted in the edit zone.

Fix #11639, fix 11671, close #11673
2022-05-17 17:09:29 +02:00
ozone10 def3aba4e6 Fix dark mode tab left-right control for floating docking containers
Fix #11683, close #11684
2022-05-17 14:51:58 +02:00
ozone10 c72dac69c5 Add dark mode support on shortcut mapper entirely
Fix #11530, close #11682
2022-05-17 04:44:43 +02:00
Shridhar Kumar 2aa85006d2 Fix crashes by re-invoking with command line argument "-udl"
Fix crashes when re-invoked with -udl command line parameter with more than 7 characters as its value:
Serialize _udlName from generic_string to wchar_t _udlName[MAX_PATH].

Fix #11633, close #11681
2022-05-17 04:29:35 +02:00
ozone10 a630b63c9a Add encoding context menu via right/double click on encoding display zone of status bar
Fix #9998, fix #400, fix #756, close #11678
2022-05-16 14:40:40 +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
ozone10 67297397d4 Make Alternate Icons behaviour in dark mode consistent
The usage of alternate icons in dark mode can be remember now though the sessions.

Fix #10159, close #11674
2022-05-16 01:48:04 +02:00
Robert Di Pardo 77a53ebd2f Show installed plugin versions in Debug Info dialog
Fix #11284, close #11662
2022-05-16 01:19:46 +02:00
ozone10 ad8b1791b4 Add edge highlight color in customized dark colors of Preferences dialog
Fix #11642, close #11641
2022-05-14 17:52:28 +02:00
Don Ho 62e916edec Notepad++ v8.4.1 release
Disclaimer: these binaries were compiled at 13,500 metres altitude!
2022-05-11 14:41:08 +02:00
Don Ho 6e83e6810a Restore auto-completion & calltip default fg/bg colors (no theme)
Fix #11637
2022-05-08 15:20:21 +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
mere-human ccbf08dc98 CustomFileDialog: Focus the file name when file already exists
Fix #11630, close 11631
2022-05-05 01:20:07 +02:00
ozone10 ef9e836903 Add border to dark mode tabs
Minor tweaks to autocomplete, to make top white rectangle dark on resize.

Fix #11622, close #11623
2022-05-02 14:24:19 +02:00
Shridhar Kumar 664d46084b Override "current line indicator" style in "Search results"
Fix #11596, close #11598
2022-05-02 01:45:04 +02:00
Shridhar Kumar b57254aece Minor cosmetic touchups to Preferences & Style Configurator UIs
Preferences Dialog - MultiInstance UI:
1. Increased the height of the 1st groupbox by 3 units.
2. Shifted the controls inside it by 4 units.
3. Reduced the height of the 2nd groupbox by 3 units.
4. Shifted the groupbox top and the checkbox only down by 3 units.

Style Configurator Dialog:
5. Added 'BS_CENTER' modifier to "Font Style" & "Colour Style" groupboxes.

Fix #11590, close #11591
2022-04-30 01:01:41 +02:00
Don Ho 9cc01de97c Fix "Reload from disk" loosing syntax highlighting regression
In Scintilla4 reloaded document keeps its syntax highlighting without re-applying the lexer for its syntax highlighting.
It seems the behaviour has been changed in Scintilla5. Hence this workaround to force to apply syntax highlighting after reloading.

Fix #11606, close #11610
2022-04-29 19:44:54 +02:00
Rajendra Singh 77fcedbd19 Fix "Find progress bar" UI clipping
Close #11572
2022-04-29 16:25:48 +02:00
ozone10 dfc9fb6f3b Highlight dark mode combobox border on focus
Fix #11574, close #11575
2022-04-29 13:50:27 +02:00
Robert Di Pardo 2fbac354ed Fix HTML syntax highlighting in PHP files regression
Restore HTML syntax highlighting in PHP files.

Fix #11585, fix #11602, close #11588
2022-04-29 04:08:13 +02:00
Don Ho 3b0d5242ac Fix unfocused selected text background color changed problem
Ref: https://github.com/notepad-plus-plus/notepad-plus-plus/pull/11419#issuecomment-1094362796

Fix #11595, close #11601
2022-04-28 02:39:11 +02:00
mere-human c94d50842e Fix file name field highlighted while focus is on type combobox in Save As dialog
Fix #11517, close #11540
2022-04-28 01:40:47 +02:00
ozone10 87f4249d6b Add support for dark tab updown control
Fix #10054, close #11554
2022-04-26 19:30:52 +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
Ibrahim Kosgi 1dffb05e0a Add file monitoring command line argument [-monitor]
Fix #10562, close #11539
2022-04-26 19:17:25 +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
CennoxX 0505bda865 Sort "Search result" to the bottom in language list of Style Configurator
Exclude "Search Results" from the sort and placing it at the bottom as it was before:
2474cbeafd

Fix #11337, close #11557
2022-04-26 15:38:18 +02:00
Don Ho f6ade2c915 Notepad++ 8.4 release: Keep Standing up for Ukraine 2022-04-26 00:46:56 +02:00
ozone10 4f002c86b8 Fix cropped text in Shortcut mapper's status area issue
Adjust padding to fix ShortcutMapper visual glitch.

Fix #10358, close #11536
2022-04-20 02:23:01 +02:00
Don Ho 5d5d2025af Fix HTML document syntax highlighting not working regression
Fix https://community.notepad-plus-plus.org/topic/22855/notepad-v8-4-release-candidate/5?_=1650282276299
2022-04-19 16:24:42 +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 3f1a582a36
Fix x64 build error, remove unnecessary codes and add enhancement for the previous commit 3f1a582a36
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
Ben Rudiak-Gould 4ffd1e9858 Fix lossing characters issue after case-conversion (UPPER/lower)
Fix case-conversion code to handle changing string lengths:
Fixes an issue where, e.g., upper-casing U+2C65 adds garbage to the
document because its capital form U+023A has a shorter UTF-8 encoding.
Incidentally fixes another bug: rows would be truncated at the first
NUL when changing case in column mode.

Fix #11463, close #11464
2022-04-12 21:14:27 +02:00
Shridhar Kumar e094e99697 Fix "Enable current line highlighting" not working correctly
This is a regression of upgrading Scintilla from 4.x to 5.x due to concerning Scintilla APIs having changed their behaviour.
This PR follows the new instructions of Scintilla documentation to make it work again.

Fix #11433, close #11433
2022-04-11 23:11:33 +02:00
ozone10 3afbf0ca14 Fix light mode disabled text color using dark mode customized color
Light mode disabled static text was using customized dark mode disabled static text color, this PR fixes the problem.

Fix #11514, close #11515
2022-04-11 16:25:39 +02:00
wiseyestudio00 721f994df8 Fix "Sort Lines as Integer" not considering negative number
The current implementation is a variant of Natural Sort, which takes in account of negative numbers.

Fix #11023, fix #2025, close #11481
2022-04-10 19:44:49 +02:00
Karlo-F 6d929e1871 Shorter Croatian name in localization menu
Shorter "Hrvatski" (Croatian) instead of "Hrvatski jezik" (Croatian language).

Close #11510
2022-04-09 22:41:50 +02:00
Don Ho 2474cbeafd Sort languages alphabetically in Style Configurator
Fix #11337, close #11508
2022-04-09 21:17:59 +02:00
Shridhar Kumar ad39c68611 Fix dark mode square edges around buttons for Windows 10
Close #11506
2022-04-09 21:01:14 +02:00
ozone10 b88e2fe57f Apply darkmode on missing preference dialog items
- Edit control in Date Time for Custom format
- Tooltip in Delimiter for Word character list
- Fix blurry text in Link for Clickable Link Settings

Fix #11497, close #11498
2022-04-09 19:59:52 +02:00
komurugov 7fa6fb083b Scrolling Document List automatically to make the selected tab item visible
Scrolling "Document List" to make the selected item visible after:
- selecting
- opening a file or files
- the program startup
- adding/removing columns

This commit doesn't cover the case of the selected item becoming invisible after resizing of the window.

Fix #11204, close #11471
2022-04-07 18:35:23 +02:00
wiseyestudio00 b4a58429c3 Make Find in Files Search Result line number aligned
Fix #11119, close #11479
2022-04-07 03:01:21 +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
Daniel Fuchs 64bfa72bd0 Add default sorting ability in Function list
* Add new preference setting to allow function list to be sorted lexicographically by default.
* Fix sorting for mixed mode function list parsers on new file open.
* Add new translations to english.xml and german.xml.

Fix #11446, close #11447
2022-04-06 14:59:02 +02:00
Don Ho 04e17b7375 Fix JSON, JavaScript and BaanC syntax highlighting not working regressions
Thanks to:
2113e782fb (r70489851)
2022-04-05 17:37:42 +02:00
sssousa b3296a1fd9 Update Inno Setup keyword list
Close #11432
2022-04-05 04:08:18 +02:00
Anders 4426f43cfd Update NSIS keywords file and autocompletion file
Close #11442
2022-04-05 03:11:13 +02:00
mpheath ee28051a71 Fix flashing box (autocompletion empty list) whilst Typing issue
Fix #9433, close #11460
2022-04-05 02:10:57 +02:00
Don Ho 48ee390cdd Fix doc being wronly marked as saved bug after converting its encoding
Fix #11436, close #11440
2022-04-04 21:58:20 +02:00
Don Ho 2113e782fb Use string lexer ID instead of numeric ID for Scintilla 5
Plus some factoring.

Close #11472
2022-04-04 18:01:51 +02:00
Don Ho 121a396bf0 Make external language library work again after upgrading to Scintilla5
Make external lexer library work again after upgrading to Scintilla5.
Old external lexer libraries needs to add CreateLexer export function which returns ILexer5 instance (Lexilla protocol interface of Scintilla5).

Tested with papyrus lexer plugin, this external lexer plugin is compatible with Notepad++ next release:
https://github.com/blu3mania/npp-papyrus

Close #11468
2022-04-03 18:23:03 +02:00
Don Ho 252468c29b Revert "Remove the external lexer support"
This reverts commit 41a5bf0245.
2022-04-01 19:17:18 +02:00
Don Ho 2871ee519b Revert "Fix syntax highlighting regression with cmdline argument"
This reverts commit 7a2f809e68.
2022-04-01 19:16:41 +02:00
Don Ho 7a2f809e68 Fix syntax highlighting regression with cmdline argument
41a5bf0245 (commitcomment-69921228)
2022-03-31 03:04:10 +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
Christian Grasser a61b03ea88 Update Scintilla from v4.4.6 to v5.2.1 and add Lexilla v5.1.5
Update with https://www.scintilla.org/scintilla521.zip
            https://www.scintilla.org/lexilla515.zip

- fix setting to bring Scintilla::PositionCR from ScintillaStructures.h inline with Sci_Position.h Sci_PositionCR
- add workaround to enable lexer for searchResult
commented out SCI_SETILEXER call on searchResult to get one result which is correctly handled by the lexer,
added comment about the current problem with property @MarkingsStruct which seems to disappear after call to SCI_SETILEXER or CreateLexer
- corrected usage of ObjC lexer
- removed unnecessary filter stuff
- use own sections for scintilla and lexilla build targets and allow parallel builds
- as libscilex is no longer existing, changed to libscintilla
- adapt makefiles and cmake
- use VS2019
- started simple changes for createlexer adaptations, nullpointercheck missing on return of lexer name from deprecated LexerNameFromID -> undefined behaviour
- movement from id -> lexer name, mostly done via LexerNameFromID + switching off corresponding compiler warning
- changed to SCI_SETILEXER from SCI_SETLEXER, SCI_SETLEXERLANGUAGE needs to be corrected, see Scintilla5Migration.html
- just commented out: SCI_LOADLEXERLIBRARY

Fix #10504, close #11419
2022-03-27 17:12:53 +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
Ashfaaq18 6086e819fd Fix dark mode disabled static text color in Column Editor and Style configurator
Fix #11407, close #11409
2022-03-22 18:38:50 +01:00
Don Ho d9c5688635 Fix file saving critical bug under Symantec encryption desktop
Fix #11339, close #11403
2022-03-18 14:32:25 +01:00
Daniel Fuchs dddffcf0fd Layout improvement in FindReplaceDlg
* move labels to resemble v8.2 positioning
* resize IDD_FINDINFILES_DIR_COMBO to make it end with the other comboboxes
* resize IDD_FINDINFILES_BROWSE_BUTTON to match combobox height
* make IDD_FINDREPLACE_SWAP_BUTTON in line with IDD_FINDINFILES_BROWSE_BUTTON
* expand GroupBox to allow for a wider IDREDOTMATCHNL
* expand IDREDOTMATCHNL
* improve scaling algorithm for those ComboBoxes

Fix #11318, close #11386
2022-03-17 15:26:40 +01:00
Don Ho 9465925cd1 easterEggs++; 2022-03-17 13:35:09 +01:00
Don HO a29cfa8d25 Notepad++ release v8.3.3 2022-03-15 00:17:40 +01:00
Ashfaaq18 4e97469d8f Fix a small regression due to c3daf4448d
Close #11378
2022-03-13 02:23:09 +01:00
VinsWorldcom d6b736aac0 Add warnings keyword for Perl
Fix #11369, close #11370
2022-03-12 02:38:46 +01:00
VinsWorldcom 9a1a999bef Add new AutoComplete icon for distinguishing functions from normal keywords
Fix #11311, close #11314
2022-03-10 20:39:09 +01:00
Don Ho a84cbe8f69 Add new ability for filtering incompatible plugins
In commit f9118dd13c **"npp-compatible-versions"** has been added in plugin list for helping not only Plugin Admin, but also Plugin Manager (Plugin Loader) to check the compatibility with the latest version of plugin (if the version of installed plugin is the latest one).
However, if the version of installed plugin is the previous one, there's no info to know if this plugin with old version is compatible with running Notepad++. In order to filter better old version plugins, **"old-versions-compatibility"** is added in plugin list, so Plugin Manager can use it to check the compatibility to decide load it or not.

The value of "old-versions-compatibility" is a string made by 2 interval versions as following:
`"old-versions-compatibility": "[,2.6][,8.2.1]"`

The first interval versions are for old plugin versions: [,2.6] means from all the versions to v2.6 included.
The second interval versions are for Notepad++ versions: [,8.2.1] means from all the versions to v8.2.1 included.
Both interval versions together means: the plugin in question from the 1st version to v2.6 is compatible with Notepad++ v8.2.1 and all Notepad++ previous versions.

Here is the sample:
```json
{
	"folder-name": "mimeTools",
	"display-name": "Mime tools",
	"version": "2.7",
	"npp-compatible-versions": "[8.3,]",
	"old-versions-compatibility": "[,2.6][,8.2.1]",
	"id": "b65fbfaa15b443131eb69188069cacbff04eca66e0cb84130631303a1d3895f8",
	"repository": "https://github.com/npp-plugins/mimetools/releases/download/v2.7/mimetools.v2.7.zip",
	"description": "Implements several main functionalities defined in MIME.",
	"author": "Don HO",
	"homepage": "https://github.com/npp-plugins/mimetools"
},
```
Considering these 2 scenarios:
1. The current distributed plugin version is v2.7 (the latest one normally), and it is compatible with all Notepad++ version from v8.3. If installed MineTools plugin is v2.7 and running Notepad++ is v8.3.3 then it's OK, and MineTools v2.7 will be loaded.

2. If installed MineTools plugin is v2.6 and running Notepad++ is v8.3.3 then Plugin Manager learns it's a previous version (v2.6 < v2.7), so it will check "old-versions-compatibility" - it will find v2.6 is in the 1st interval [,2.6] - it's matched, then Plugin Manager keep checking the running Notepad++'s compatibility: v8.3.3 is not in the 2nd interval [,8.2.1] - it's not compatible, then MineTools plugin v2.6 won't be loaded.

Here are the test instructions for this PR:
1.  download x64 debug binary here:
https://ci.appveyor.com/api/buildjobs/5ba501ecu21k28i7/artifacts/Notepad%2B%2B.x64.Debug.exe
2. Create an empty file "nppPluginList.json" in your `npp\plugins\Config\`
and copy the following content
5e23fce868/src/pl.x64.json
and paste into `npp\plugins\Config\nppPluginList.json`
You have to copy "updater" folder (which contains GUP.exe) to enable plugin list.
3. Download DSpellCheck plugin v1.4.22 which is not compatible with Notepad++ from v8.3 and later version here:
https://github.com/Predelnik/DSpellCheck/releases/download/v1.4.22/DSpellCheck_x64.zip
Install it into plugin folder manually.
4. Now launch Notepad++ x64 debug binary and watch it crash.
5. Edit "nppPluginList.json" by adding `"old-versions-compatibility": "[,1.4.22][,8.2.1]",` into DSpellCheck section.
6. Startup Notepad++. Notepad++ doesn't crash. and now you can check DSpellCheck plugin is not loaded on the startup.

Fix  #11358, fix #11349, close  #11356
2022-03-09 19:26:01 +01:00
mere-human 53cbe1c227 Fix append extension when saving with Return (win 7)
For some reason, the file name ComboBox isn't present when enumerating windows in OnFolderChange().
Because of that, we can't call onPreFileOk() in keyboard hook procedure.
Fix that by retrying window search in OnSelectionChange() if we didn't find them previously.

Fix #11305, fix #11355
2022-03-09 03:57:00 +01:00
xomx 4593293b4d Fix Plugin Admin close issue after typing ENTER
Prevent closing the PA-dlg by ENTER in search editctrl.

Ref:
https://support.microsoft.com/en-us/topic/how-to-use-the-enter-key-from-edit-controls-in-a-dialog-box-a520c533-1a62-f51c-af93-c7f978bc1080

Fixes: #11348, close #11351
2022-03-09 03:44:03 +01:00
Ashfaaq18 f6ea35d521 Fix RTL alignment bug in preferences dialog when dark mode enabled
Fixed "Dark Mode->Customize tone" color pickers RTL alignment

Fix #11343, close #11354
2022-03-09 02:25:54 +01:00
Ashfaaq18 c3daf4448d Fixed blurry disabled static texts of Preferences in Dark mode
Set static text colour in both light/dark mode directly for disable/enable action instead of EnableWindow().

Fix #10823, fix #11331, close #11342
2022-03-09 02:14:53 +01:00
Don Ho f9118dd13c Use plugin list's plugin compatibility info for loading plugins
A new ability for checking plugins' compatibility with running Notepad++ has been added in Plugin List & Plugin Admin (a06b404708).
This PR extends this ability by using Plugin Admin's plugin list to filter plugins to load - if any plugin to load with **the same folder name**, **the same version** (as in the plugin list) and it's **not compatible** with the running Notepad++ version found while loading plugins, it will be skipped for being loaded.

Fix #11353, close #11350
2022-03-07 15:33:36 +01:00
Mr-Update f285c5983a Update stylers.model.xml
Close #11296
2022-03-05 02:03:08 +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
Don Ho a06b404708 Add Notepad++ compatible versions in plugin list
Implement: https://github.com/notepad-plus-plus/nppPluginList/issues/416

While PluginAdmin loading nppPluginList.dll, it will check an attribute "npp-compatible-versions" (optional),
in order to determinate if plugin is compatible to the current version of Notepad++. If plugin is not compatible,
then this plugin will be ignored, therefore it won't be shown on the PluginAdmin's plugin list.
Note that it's only about pluginsAdmin's plugin list:
it prevent from Notepad++ install/update a plugin non-compatible to current version of Notepad++,
but it still allows Notepad++ load this plugin in question, if it's already installed.

Here is the attribite "npp-compatible-versions" looks like in plugin list json file:
```
{
	"name": "npp-pluginList",
	"version": "1.4.7",
	"arch": "32",
	"npp-plugins": [
		{
			"folder-name": "demoPluginA",
			"display-name": "Demo Plugin A",
			"version": "1.8.7",
			"npp-compatible-versions": "[4.2,6.6.6]",
			"id": "9c566a9083ef66a0ce93a3ce5f55977faea559b5b0993e37a1461b87f4aeb6f0",
			...
		},
		{
			"folder-name": "demoPluginB",
			"display-name": "Demo Plugin B",
			"version": "1.1.8.7",
			"id": "8a6b9dadbf2ec37d5c60a12a5445f0eec2ef00e6eaa80452925789fd73950193",
			...
		},
		...
	}
}
```
It's optional. In the case of its absence, it's considered compatible to all versions of Notepad++.
The format of value for "npp-compatible-versions" is following (no white space is allowed):

"6.9"          : exact version 6.9
"[4.2,6.6.6]"  : from version 4.2 to 6.6.6 inclusive
"[8.3,]"       : any version from 8.3 to the latest one
"[,8.2.1]"     : 8.2.1 and any previous version

Fix #11338, close #11334
2022-03-04 17:36:57 +01:00
Daniel Fuchs 0affe35bc6 Re-enable possibility to center the FindReplaceDlg on Notepad++ main window
* add goToCenter to hotkey check in IDM_SEARCH_(FIND|REPLACE|FINDINFILES|MARK)

Before commit aa69711d it was possible to center the dialog on Notepad++ using a second CTRL+F but was lost during the implementation of #10019, #10177.

This will re-add the function:
* When the hotkey used is not associated with the current tab, it will switch to the new tab (as before).
* If the hotkey used is associated with the current tab, it will center the FindReplaceDlg on Notepad++.

Fix #9201, close #11323
2022-03-04 17:19:50 +01:00
xomx a419b41ed5 Fix crash regression due to ca8c302805
Crash regression has been inserted by #11258.

The 2GB+ adaptation has forced change in integers saving via TinyXML (now saved indirectly as strings). While the MapPosition part has been already fortified against possible missing session-file items, the Position part not. So implemented likewise the MapPosition way.

Fix #11325, close #11327
2022-03-04 13:37:06 +01:00
Don Ho 4b9aa66aee Add extension "aspx" for ASP 2022-03-02 02:35:58 +01:00
Daniel Fuchs c869357c0f Include C# 9.0 nint/nuint
Fix #11303, close #11307
2022-03-02 01:35:44 +01:00
xomx ebabed554b Fix deleting the folded line makes folded (hidden) content disapeared
Applying the Scintilla flag SC_AUTOMATICFOLD_CHANGE, ref:
https://www.scintilla.org/ScintillaDoc.html#Folding

"SC_AUTOMATICFOLD_CHANGE (0x4) Show lines as needed when fold structure is changed. The SCN_MODIFIED notification is still sent unless it is disabled by the container."

Fix #11246, close #11280
2022-03-02 00:46:23 +01:00
Don Ho c435625d32 Add a new Easter Egg 2022-03-01 15:01:47 +01:00
Don HO 30b6b18d1e Notepad++ 8.3.2 release - Declare variables, not war 2022-02-27 16:15:06 +01:00
xomx 3482ed97ea Fix UDL comment config input fields broken regression
Which caused by commit 94154b0f0e.

Fix #11239, close #11292
2022-02-26 15:58:22 +01:00
Don Ho bfbad49cf4 Fix incoherence about supporting 2GB+ files 2022-02-24 01:48:28 +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 ca8c302805 Support better 2GB+ file (cmdline & session file adaptation)
Some members (_line2go, _column2go and _pos2go) from the CmdLineParams & CmdLineParamsDTO structs need 'int' to 'intptr_t' change to support 2GB+ files.
Saving & loading of the 'session.xml' needs a 2GB+ adaptation too. The underlying TinyXML (older v1) does not have a native support for the 64-bit integers, so loading/writing there has been changed to strings instead of integers. This way is fully compatible with a possible future update to TinyXML-2 (which has already built-in support for the 64-bit integers).

Fix #11213, close #11258
2022-02-22 14:32:28 +01:00
xomx e839b81e85 Refine autosaving session on exit behaviour
Refine autosaving session on exit behaviour on only "Open session in a new instance" or "always in multi-Instance".
If the "Default (mono-instance)" is chosen and the session is launched via command line with flag "-multiInst", the modified session won't be saved automatically.

Fixes #11249, close #11255
2022-02-22 02:00:37 +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 58e404650b Remove not used codes 2022-02-22 00:54:10 +01:00
Don Ho 456fdaa680 Simplify the localization in codes
and fix the bug that menu "Window" not translated:
5917fdefb0 (commitcomment-67151276)
2022-02-21 17:59:25 +01:00
exd0tpy fc064d3254 Fix UDL dialog crash issue on over 30 created UDL
Add index check when add User Defined Language
If user create User Defined Language over 30 (NB_MAX_USER_LANG) times app is crash.

Fix #11257, close #11251
2022-02-21 15:48:56 +01:00
VinsWorldcom 80ba58773d Fix auto-completion sort order problem due to fx icon
Fix #11233, close #11234
2022-02-21 03:42:09 +01:00
Don Ho 5917fdefb0 Fix translation problem for "Sort By"
Make "Plugins" & "Window" menu static to simplify the code.
2022-02-21 00:57:15 +01:00
deebash 1c8b867395 Add "Sort By" commands under Window Menu
Add commands by name, path, type and by size for sorting under Window Menu.

Fix #10393, close #11190
2022-02-20 18:52:07 +01:00
mpheath 726ad7f580 Fix autocomplete case insensitive not working issue
Fix #11187, close #11191
2022-02-20 18:13:41 +01:00
xomx b233c0c3e0 Fix saving problem (regression) with "Sysnative" alias in x86 binary
Removing the 'case sensitive' default flag FILE_FLAG_POSIX_SEMANTICS fixes the CreateFile ERROR_PATH_NOT_FOUND, when working with files like "C:\Windows\Sysnative\drivers\etc\hosts".

Without the FILE_FLAG_POSIX_SEMANTICS the WIN32 IO (CreateFile/WriteFile) way will be equivalent with the previously used POSIX IO (fopen/fwrite) way.

More info about this "Sysnative" alias: https://docs.microsoft.com/en-us/windows/win32/winprog64/file-system-redirector

Fix #11196, close #11225
2022-02-18 16:48:34 +01:00
Don Ho 2321e648ae Fix regression: file can't be saved if it's set to other charset before
Fix #11238
2022-02-18 14:49:21 +01:00
Don Ho 637f470b6e Add more Easter Eggs for the coming Easter Sunday 2022-02-17 15:20:07 +01:00
Don Ho 2df765e189 Code enhancement: prevent from signed integer overflow
Ref:
94154b0f0e (commitcomment-66609009)
2022-02-16 19:13:35 +01:00
Don Ho 51b1c9377c Fix incorrect message on double click on search result regression
This regression was inserted by commit c0be50494c (PR #11107).

Fix #11215, Fix #11106
2022-02-16 18:22:47 +01:00
Don HO 5c02505998 Notepad++ v8.3.1 release
Boycotting Beijing 2022 continues in this release
2022-02-15 16:32:03 +01:00
Don Ho 94154b0f0e Code enhancement: Fix comparison of different signs integers 2022-02-09 20:06:59 +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 2e9342ae24 Code enhancement: Initialize member variables 2022-02-09 04:40:16 +01:00
Daniel Fuchs dee3bad29d Make variable list combobox translatable in printing preferences
The list of variables defined under Preferences > Print can be translated using the following method:

https://github.com/notepad-plus-plus/notepad-plus-plus/pull/11093/files#diff-a6ac7ceba70d88bf1547fd1defd760bd55052dcdb78c44f9d46d99ef1f450472R999-R1007

However as pointed out by others this will break the "Add" button, so translation is currently not possible. The result is, that nothing is added to the current field.

This commit makes translation possible without breaking "Add" feature.

Fix #11114, close #11115
2022-02-08 19:40:23 +01:00
Don Ho f815b7057f Revert "Enable backup on save (simple) feature by default"
This reverts commit 40fbae1f76.
https://github.com/notepad-plus-plus/notepad-plus-plus/issues/10725#issuecomment-1032106977
2022-02-08 02:10:23 +01:00
xomx 85e7207eef Enhance error handling while opening file
In FileManager::loadFileData method:
1. Fix unnecessary GCC crashes when opening larger files in 32-bit Notepad++ binary.
2. Take into account and report correctly also other possible Scintilla error states there (than the previously handled SC_STATUS_BADALLOC).
3. Catch and report correctly also exceptions not handled by the Scintilla exception handler.
4. Catch and report correctly also Notepad++ code exceptions there.

Fix #11103, close #11112
2022-02-07 23:34:54 +01:00
Don Ho 9baaef786b Fix Path Completion not working regression
Fix #11147
2022-02-07 23:17:07 +01:00
Don Ho 6c345e907b Optimize setting image call in auto-completion
In PR #11088 the calling scinitilla is not optimized:
SCI_REGISTERIMAGE & SCI_AUTOCSETTYPESEPARATOR need to be called only once.
2022-02-07 20:12:45 +01:00
VinsWorldcom c394a890aa Add icons on function items of auto-completion to distiguish from word items
Fix #11087, close #11088
2022-02-07 19:01:47 +01:00
mere-human b5a5baf13b Fix file dialog "Append extension" checkbox not working in empty dir
Use hooks for keyboard and window procedure instead of subclassing controls.
Use a handle map for transferring instance data to the hook procedure.
This approach should be more reliable than the previous one.

Fix #10436, close #11050
2022-02-07 15:38:21 +01:00