All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Add more UI tests for ScintillaGateway.cs and NotepadPPGateway.cs methods to make sure they work.
- In ToolsForMaintainersOfTheProjectTemplate, I need to add auto-generation of calls to
GetNullStrippedStringFromMessageThatReturnsLength(SciMsg msg, IntPtr wParam=default)instead of the old fixed-size 10000-byte buffers
- Add better documentation for plugin menu commands
- Closing HTML/XML tags works inconsistently in Notepad++ v7.3.3.
- Holding down
Enterin a multiline textbox does not add multiple new lines; it only adds one newline on keyup. - Plugin menu command descriptions are not always retranslated when the Notepad++ native language preference is changed. The translation is always correct at startup.
- Make it much easier to include third-party dependencies in your plugin.
- Added the ability to translate the plugin into other languages.
- Made it so all forms subclass a base class, making it easier to implement recommended methods.
Npp.TryGetLengthAsIntandNpp.TryGetTextmethods, which gracefully handle files that are too large to put all their text in a string.NotepadPPGateway.GetVisibleViewsmethod to quickly determine whether Notepad++ is in split-window mode and, if not, which view is currently visible.- When building plugin, automatically create
plugins/yourPluginNamefolder in your Notepad++ installation, rather than defaulting toCSharpPluginPackas the name for the plugin folder. Fix issue #13. - When building plugin, automatically sync
plugins/yourPluginName/testfilesfolder in your Notepad++ installation with thetestfilesfolder in this repo. Fix issue #12. - Toggle highlighting of
close HTML/XML tagtoolbar icon based on whether the setting is true. - Toolbar icon hover text is now translated to other languages. Fix issue #14.
- Added support for ANSI-encoded documents containing non-ASCII text. Previously, if a document was ANSI encoded, and the plugin asked for some text from the document, Notepad++ would send ANSI-encoded text and the plugin would attempt to decode it as UTF-8.
- Fixed issue where clicking buttons on floating docking dialogs could sometimes cause Notepad++ to hang forever (see CsvLint issue 83 for a detailed explanation).
- Fix
SCNotificationbyte alignment issue in 64-bit Notepad++ by makingannotationLinesAddedfield anIntPtr, which has been the correct type for that field since between Notepad++ 7.6.6 and 7.7. Note that this is a potentially breaking change for 64-bit Notepad++ 7.6.6 or older, but there's a ton of other bit rot for such old Notepad++ anyway. - Fix error due to assuming that "." (the current directory according to the filesystem) will always point to the path to the Notepad++ executable; this is almost always true, but can be broken due to at least one known weird interaction (the one molsonkiko is familiar with concerns the
New scriptfunctionality of the PythonScript plugin). - Fix bug where, if a setting in the config file had an invalid value (for example, a numeric setting having a value of
blah), there might be an uncaught exception that would cause Notepad++ to crash. This bug appears to be most likely to occur when the localization is not set toen-us. - Fix bug (related to fixed bug 4 above) where all settings with non-integer floating-point values would cause Notepad++ to crash on start-up if the localization used
,as the decimal separator. - Fix bug with makerelease.bat where it did not properly copy the dependency DLLs into the zip files.
- Fix bug when too-large integers are entered in the selection-remembering form.
- Fix potential crash when running
Get File Names DemoandGet Session File Names Demoplugin commands, by doubling size of buffer in CLikeStringArray (need 2 bytes/char) - Fix bug where
NotepadPPGateway.GetOpenFileNameswould list anew 1file for an invisible view if only one view is open (i.e., if Notepad++ does not have a split window) - Fix potential bug by using a null-terminated string in some
ScintillaGatewaymethods (currently justInsertTextandSetText) where previously I was just using the raw UTF8 bytes.
- Removed the
IScintillaGatewayinterface, because it is pointless to have an interface that will only be implemented in one class, and the need to update bothIScintillaGatewayandScintillaGatewaywhenever the interface changed was annoying busywork. - Removed the
INotepadPPGatewayinterface for the same reasons that I removedIScintillaGateway
- Added new
Allocate indicators demo, demonstrating how to allocate and use indicators to style text. - Demo on the
SCN_MODIFIEDandNPPN_GLOBALMODIFIEDnotifications, which are used to track when a document is modified.
- Update method of building a DLL to remove a dependency on .NET Framework 3.5.
- This also allows the user the specify whatever Notepad++ directory they wish, using the
NppPath32(to specify 32-bit Notepad++ directory) andNppPath64(to specify 64-bit directory) variables from the command line like so:msbuild /p:NppPath32="D:\portable\npp\x86";NppPath64="somewhere\else\x64" ...
- This also allows the user the specify whatever Notepad++ directory they wish, using the
- Greatly reduced unnecessary calls to
NPPM_GETCURRENTLANGTYPEinDoInsertHtmlCloseTagby caching the lexer language whenever the lexer language changes or a buffer is opened. - Bug where hitting
Enterin a multiline textbox would not add a new line.
- Ported over (from kbilsted's old template) the ToolsForMaintainersOfTheProjectTemplate folder for updating some of the PluginInfrastructure files to stay up to date with Notepad++.
- Added new PopupDialog form, which demonstrates how to configure a pop-up dialog that has select-able fields like textboxes or buttons.
- Remove references and links to JsonTools (they now go to this project's GitHub repo).
- TestRunner.cs now restores clipboard text after tests.
- Link label text and background now correctly switches back to defaults when going from a dark theme to default styles.
- Fix bug where running tests multiple times in a single Notepad++ session causes the user interface tests to fail.
- Fix bug introduced in Notepad++ 8.6.1 where
Ctrl+CandCtrl+Xwould not work in the text fields of forms.