• Read This First

    Pinned Locked
    1
    5 Votes
    1 Posts
    2k Views
    No one has replied
  • New API to fix eventual regression regarding SCN_MODIFIED for some plugins

    Pinned
    32
    2 Votes
    32 Posts
    14k Views
    ThosRTannerT

    Just a quick question - when will the plugintemplate repo be updated to include the new message?

    Thanks

  • Auto-Completion Popup is unexpectedly shown when handling SCN_CHARADDED

    8
    1 Votes
    8 Posts
    93 Views
    Vitalii DovganV

    @Ekopalypse

    Thank you, SC_MOD_INSERTCHECK is an interesting way indeed.
    In this case, how can I understand whether SC_MOD_INSERTCHECK is the result of a character being typed or the result of pasting from the clipboard?

  • POLL / Discussion: taking over a plugin

    7
    3 Votes
    7 Posts
    146 Views
    ThosRTannerT

    I’m not entirely sure how to vote on this because - if with the permission of the original author, I don’t think a new name would be required. However, any other option should have a new name

  • Handling Ctrl+C in a c++ plugin dialog

    3
    0 Votes
    3 Posts
    68 Views
    PeterJonesP

    @Thomas-Knoefel ,

    Well, that got me farther. With some keystrokes, like a normal letter, or a key-combo that’s not assigned to anything in Notepad++ (like Shift+Ctrl+C), it will call that subclass function and see the uMsg==WM_CHAR. But Ctrl+C doesn’t trigger it; and if I try a shortcut that does something obviousl in N++, like Alt+C (for the Column Editor).

    But that reminded me of the recent conversation about shortcut mappings, and so I tried sending the appropriate NPPM_MODELESSDIALOG arguments during my plugin’s init & destroy, and now it can capture Ctrl+C (or any other shortcut).

    Thank you

  • [New Plugin] MultiReplace

    70
    3 Votes
    70 Posts
    32k Views
    Thomas KnoefelT

    MultiReplace now also supports Replace in Files. This is another step toward a powerful feature when combined with the list entries. This feature supports all variables used in Use Variables, like FNAME and FPATH, as well as the CSV Scope option, so it is fully integrated.

    This is a Release Candidate available for testing – if it works for you, feel free to leave a like. If you run into any issues, please report them here.

    Download link

    Download the ZIP file matching your system. Copy its contents into C:\Program Files\Notepad++\plugins\MultiReplace. Done!

    e8fa1053-4311-4396-a11e-965d6c071700-image.png

    Happy replacing!

  • How to create a C# plugin?

    38
    0 Votes
    38 Posts
    8k Views
    EkopalypseE

    @PeterJones

    I haven’t checked the Scintilla source code, but I’d be surprised if the code didn’t just ignore the alpha value.
    A quick test seems to confirm this.

    81a75ca8-8b44-4ca7-90cf-a0e31b288f38-{D5638942-D3BC-41B4-83BB-90B7C809D881}.png

  • 3 Votes
    1 Posts
    64 Views
    No one has replied
  • [New Plugin] CSV Lint

    83
    6 Votes
    83 Posts
    98k Views
    A

    I had sent a comment before this one which is not yet visible to me.

    Just wanted to let you know it seems solved. Other plugins struggled as well so I completely uninstalled npp and started from scratch. Now it works for me as a normal user.

  • Hi and I'm working on a WPF fork of NppCSharpPluginPack

    18
    1 Votes
    18 Posts
    2k Views
    Jonathan JohansenJ

    I figure I’d better document the solution(s) for others that may tread this path. A summary of some of the steps needed (of course built on top of Mark’s work!):

    Ensure you register your modeless dialog with NPP (NPPM_MODELESSDIALOG, in Main.cs we call NppFormHelper.RegisterFormIfModeless(Form, bool)) The WPF System.Windows.Controls.UserControl should be in an System.Windows.Forms.Integration.ElementHost, which is in a System.Windows.Forms.Form. I’ve subclassed the ElementHost to handle WM_SHOWWINDOW to update the Visible property, and to trigger a (slightly delayed) refresh of the visuals when we get a WM_SIZE. There I invalidate the visuals and update layouts. There may be a way to skip this, but it’s working, so I’m not trying to fix it. In the WPF UserControl, when it’s Loaded, we have to get the presentation source (as a HwndSource) and add a hook to respond to the WM_GETDLGCODE and tell the source that we DLGC_WANTCHARS and DLGC_WANTARROWS, and maybe we also need DLGC_HASSETSEL.

    I’ve pulled most of it into a method called MakeModelessDialog. And now for a short recording of it working!

    2025-06-28 Typing in Notepad++ modeless WPF dialog works.gif

  • 0 Votes
    4 Posts
    395 Views
    FraF

    @PeterJones Thanks for the input.

    Surprisingly, just dragging and dropping all the files at once onto Notepad++ opens all the files in about 5 seconds for 1000 files.

    Then the XML Tools takes about 10 seconds to prettify all opened files.

    Then just go to File > Close All so to not have to close each file manually.

    Will do it that way.

    Would be great to update the XML tools plugin if someone’s able and it is not to much work.

    Or just adding the Pretty Print feature directly to the Find In Files feature as extra function for the next Notepad++ update.

  • Suggestion about Right Click Context Menu

    3
    0 Votes
    3 Posts
    256 Views
    Maciej ZetM

    @pbarney BIG thanks as this is was I looking for.
    Just for the record - just checked and 2 entries is also fine:

    Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\SystemFileAssociations\.ps1\Shell\Edit with Notepad++ from line 450\Command] @="\"C:\\Program Files\\Notepad++\\notepad++.exe\" \"%1\" -n450 %*" [HKEY_CLASSES_ROOT\SystemFileAssociations\.ps1\Shell\Edit with Notepad++ from line 450] "Icon"="C:\\Program Files\\Notepad++\\notepad++.exe"

    and perfect icon appear :)

  • C++ DarkMode dialogs -- not all controls inherit the mode

    10
    0 Votes
    10 Posts
    849 Views
    PeterJonesP

    For those who weren’t watching:

    ozone10 made a better fix for the tab-control: PR #16673 has been accepted ozone10 also fixed my “secondarily” report about the listbox scrollbar from above, which I reported in issue #16674, fixed in PR #16676 (accepted) progressbars also don’t go to darkmode, and ozone10 has proposed PR#16687, which hasn’t been accepted yet, but hopefully will be.

    So at least 2 of those 3 (and hopefully the third) will be in v8.8.2

    Meanwhile, CollectionInterface v1.1 has been released – the new version will be in PluginsAdmin for v8.8.2, or you can install it from the assets in the release at https://github.com/pryrt/NppPlugin-CollectionInterface/releases/tag/v1.1.0 :

    Adds DarkMode support (with N++ v8.5.4 or newer; in earlier versions, dialog will be LightMode still) [I do my own subclassing on the TabControl for v8.5.4-v8.8.1; it will use the builtin starting in v8.8.2] Allow selecting multiple files for bulk download (#6) Add label to progress bar so “100% [DONE]” is more clear (#9) Fix crash if firewall blocks download (#13) and make error handling better in other edge cases as well
  • NppExec v0.8.9 has been released!

    1
    4 Votes
    1 Posts
    113 Views
    No one has replied
  • 0 Votes
    4 Posts
    256 Views
    wonkawillyW

    After reading the answers, it seems that the proposal for improvement of this OP is not a real good Idea.

    Thank you all for the clarifying answers.

  • NppMenuSearch version 0.9.7 available

    13
    3 Votes
    13 Posts
    927 Views
    Vitalii DovganV

    Here is a funny scenario:

    type “menu” in the Search textbox; select Plugins -> NppMenuSearch -> Menu Search… press Enter.
    As the result, the Search textbox does not have a focus!

    Well, I know this is a strange use-case: call itself, but anyway :)

  • 3 Votes
    15 Posts
    2k Views
    CoisesC

    @Vitalii-Dovgan said in Announcement: NPPM_GETOPENFILENAMES and related are being deprecated in v8.8.2:

    My last question was rather related to NPPM_GETFULLCURRENTPATH, NPPM_GETCURRENTDIRECTORY and the other messages from the same family. These messages:

    are internally limited by MAX_PATH; do not provide ability to request/retrieve the length required for the returned path/name.

    See the first part of this comment and the first part of the reply by the maintainer of Notepad++.

    The MAX_PATH limitation is present in the file handling routines of Notepad++, not just the interface for these messages. As I read that reply, Don has rejected (for now, at least) consideration that the MAX_PATH constraint might someday be removed. If you know MAX_PATH is enough, there’s no need to request the actual length ahead of time.

    I agree that there is some inconsistency in what is considered appropriate for deprecation, but I return to the observation that it will always be possible to screw up calling a C interface, and there were and are compelling reasons to keep the plugin interface as a pure C interface. (If we could pass a std::wstring or a std::vector<std::wstring> the whole problem would go away.) It’s a judgement call what is “too error-prone.” Not worth all that much debate.

  • Script To Fix ASCII->Hex Byte Limit

    5
    0 Votes
    5 Posts
    685 Views
    Mark OlsonM

    It occurs to me that I could implement a feature in HugeFiles that would load a chunk of a file, run a plugin command on that chunk, append it to a new file, and repeat for each chunk.

    Such a feature would AFAICT eliminate the need for scripts like the one posted above.

    If this post gets at least 4 upvotes, I will consider implementing this feature. I expect it would be a lot of work but potentially useful.

  • Hash errors installing Analyse plugin

    2
    0 Votes
    2 Posts
    264 Views
    mkupperM

    @D-V, please post your Notepad++ debug info. I tested installing the Analyse plugin and it installed without any errors on Notepad++ v8.8.1 (64-bit) and also Notepad++ v8.8.1 (32-bit).

    You get the debug info from Notepad++'s ? / Debug Info ... menu.

    To post your debug info here in the community forums use </> on the forum’s menu bar and then replace the code_text that </> generates with the debug info.

  • 2 Votes
    1 Posts
    234 Views
    No one has replied