Thanks for your interest in contributing!
This document explains the areas of project development where help is most needed.
Feel free to start a discussion if you're interested in something not listed below.
Plugins using the Npp.DotNet.Plugin package have access to hundreds of methods that directly interact with Notepad++ and the Scintilla editing component.
At the moment, the API surface receives only minimal testing. A stable version of the package depends largely on improving test coverage.
.NET Framework versions of the template were not fully compatible with 64-bit applications and suffered from memory safety issues. The modern .NET version fixes many of these problems, but some old bugs (as well as new ones) probably remain.
If you would like to fix a memory safety bug affecting 64-bit Notepad++ (ARM or x64), use the current unit tests as a guide to validating your changes.
Note
32-bit x86 is a supported native target in .NET 9 and later. However, cross-compiling for a legacy architecture is not a goal of this project.
♾️ Integration testing, or "E2E"
There are many, many untested Scintilla1 and Notepad++2 gateway methods in the template library. A real-world plugin project using every method at least once is needed to make sure the API is fully functional.
Each line of code executed during a test run should be tracked in order to measure the progress of our testing efforts. If you know a good coverage tool for C#, please open a pull request to have it integrated with the build workflow.
Microsoft releases a new major version of the .NET SDK every year. They also publish preview versions of the forthcoming release at regular intervals. Building the template library with a preview SDK can help identify potential improvements or breakages ahead of time.
If you encountered problems installing, building, or using the template, consider writing a tutorial for the documentation website, explaining the issue and (if applicable) how you worked around it. Write your docs in Markdown and add them to the table of contents by updating the documentation workflow. Learn about DocFX if you're not familiar with it.
Found an open source project using the template? Suggest adding it to the README.
If you'd like to help maintain a repository in the Npp.NET GitHub organization, ask to become a member.