Plugin development help

  • Hi,

    So i have decided that i want to make a plugin for NP++.

    I’m using (or trying to!) NP++ Plugin.NET, but i am having trouble understanding which commands to use.

    What i want to do is make a plugin that brings up call-tips if you type “(” or “{”.
    Can someone help?


    P.S: I don’t really know where to put this, in Plugin Development or Help wanted, so sorry if it is in the wrong place :)

  • You could look at the sources of Lite/
    It’s in C++, but I believe it’s enough to catch the idea of what to do in C#.
    Search for SCN_CHARADDED in the source code.

  • @Vitaliy-Dovgan


    Well i found it and i know what i’m looking for (sort of?). I think i need some help. Again :)

    And your right about C being easy to understand

    I did what you said and found no trace of SCN_CHARADDED. Thought i did search the plugin template and that had it.
    By the way, what would i do with SCN_CHARADDED, what i mean is: what is it’s use?

        if NppData.SCN_CHARADDED         /*Would somthing like that work?*/

    I think this code is maybe what i’m looking for (it’s from XBrackets.h):

        enum TFileType {
            tftNone = 0,
        enum TBracketType {
            tbtNone = 0,
            tbtBracket,  //  (
            tbtSquare,   //  [
            tbtBrace,    //  {
            tbtDblQuote, //  "
            tbtSglQuote, //  '
            tbtTag,      //  <
        enum eConsts {
            MAX_ESCAPED_PREFIX  = 20
        static const TCHAR* PLUGIN_NAME;
        static const char*  strBrackets[tbtCount - 1];
        // plugin menu
        CXBracketsMenu m_PluginMenu;
        // internal vars
        INT_PTR m_nAutoRightBracketPos;
        int     m_nFileType;
        bool    m_bSupportedFileType;
        virtual ~CXBrackets();
        // standard n++ plugin functions
        virtual void         nppBeNotified(SCNotification* pscn);
        virtual FuncItem*    nppGetFuncsArray(int* pnbFuncItems);
        virtual const TCHAR* nppGetName();

    Is it what i’m looking for?


  • @Finn-McCarthy said:

    would i do with SCN_CHARADDED, what i mean is: what is it’s use?

    I think the implication here is when you see that, you could check if what was added was ( or { (from your spec)…and do whatever actions you want your plugin to do when that occurs.

  • Source file XBrackets\src\XBrackets.cpp,

    void XBrackets::nppBeNotified(SCNotification* pscn)
      switch ( pscn->nmhdr.code )
        case SCN_CHARADDED:

    Basically, what needs to be done now is:

    1. implement own method Plugin.nppBeNotified to be called from the standard void beNotified(SCNotification* pscn);
    2. implement own Plugin.OnSciCharAdded (looking at the one in XBrackets as an example)

  • See scintilla docu: Scintilla is the framework N++ is based on.

  • @Victor-Dronov


    I found out the proper name of what i’m trying to do: Call-Tips. (custom Call-Tips).

    Ok. I have had a look…And i still don’t understand. I probably should mention that have never, ever coded in C, C++,C# or VB (well 3 years ago, anyway and i cannot remember practically anything). So yeah…(This next bit will probably sound lame…sorry)

    What I am trying to say is: I basically need someone to write the plugin for me, and i can learn from their source code. That’s how i normally learn…


    P.S: Sorry, (I know i probably sound whiny)

  • EDIT: I found a way, yippee!!

    jN Notepad++ Plugin

Log in to reply