Skip to content
This repository has been archived by the owner on Jan 13, 2024. It is now read-only.

Notepad++ plugin pack for C# v0.90

Compare
Choose a tag to compare
@kbilsted kbilsted released this 24 May 09:21
· 137 commits to master since this release

Writing plugins for Notepad++ using C#/.Net has never been easier with this new plugin pack.

Highlights

  • Based on UFO's dated plugin pack
  • Upgraded with more than 5000 lines of code - making interaction with Notepad++ and Scintilla less low-level.
  • Interfaces have been introduced so you can not unit test your plugins.
  • Future upgrades of the package is ensured to be simple

The main contribution in this release is the introduction of the classes NotepadPlusPlusGateway and ScintillaGateWay. These gateways provide a much nicer interaction with Notepad++ for the plugin writer.

The old architecture of plugins were something similar to the below picture:

       +-----------+ +-----------+
       | scintilla | | Notepad++ |
       +-----------+ +-----------+
            ^             ^
            |             |
            +-------------+                   
                    |              
               +-----------+ 
               | Win32     |
               +-----------+ 
                    ^
                    |
               +-----------+ 
               | plugin    |
               +-----------+ 

Plugins would interact with a "Win32" lowlevel api to do calls.

The new architecture:
The new one

               +-----------+ +-----------+
               | scintilla | | Notepad++ |
               +-----------+ +-----------+
                    ^             ^
                    |             |
           +---------------------+-------------+                   
           |                 |                 |
 +------------------+ +----------------+ +-----------+ 
 | scintillaGateway | | NotepadGateway | | Win32     |
 +------------------+ +----------------+ +-----------+ 
      ^                     ^                ^        
      |                     |                |        
      +-----------------+--------------------+                   
                        |              
                   +-----------+ 
                   | plugin    |
                   +-----------+ 

So as you can see, you still have access to the low-level stuff as you are used to, while at the same time being able to use the nice gateway classes.