• 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

  • XBrackets Lite v1.4.0 has been released!

    5
    2 Votes
    5 Posts
    115 Views
    Michael VincentM

    @Vitalii-Dovgan said in XBrackets Lite v1.4.0 has been released!:

    The uniqueness of XBrackets is in its external simplicity and internal complexity.

    Thank you. I get 3) from the SurroundSelection plugin. Notepad++ has “Go To Matching Brace” in Search menu, but I think it only includes { [ ( ) ] }, not quotes.

    Cheers.

  • 0 Votes
    4 Posts
    51 Views
    Alan KilbornA

    @Alan-Kilborn said:

    I think it should be an absolute requirement that the title bar always starts with Notepad++ -

    Hmm, this is what I get for posting when I don’t have Notepad++ right in front of me (i.e., I get it wrong). :-(

    Now that I have it in front of me, the Notepad++ title bar shows pathname - Notepad++ or filename - Notepad++.

    My point was mainly about Notepad++ remaining somewhere in the titlebar, because this bit of consistency aids in other programs in locating the N++ main window, via the FindWindow Win32 API call. I do this a fair amount, and thus I’m projecting that I’m not alone and that others do this as well.

    Here’s a bad example; some PythonScript code:

    notepad.hwnd = user32.FindWindowW(u'Notepad++', None)

    (It’s “bad” because it isn’t necessary any longer, because newer versions of PythonScript have the notepad.hwnd variable predetermined for you – but for a long time this was not the case)

    But, if Notepad++ weren’t in the title bar text, it would not be as “easy” to locate the window, for those that need to.

    Note that the OP made no suggestion to drop Notepad++ from the title bar text; I was just thinking if the original idea was extended (as tends to happen), I’m sure someone would come up with that idea. And @Coises did call the text redundant, so that could be construed as a first step at “removal” – in quotes because of course all of these suggestions would be for optional things.

  • Ask Scintilla about the text scope such as enclosing brackets or quotes?

    8
    0 Votes
    8 Posts
    252 Views
    Vitalii DovganV

    @Coises

    SCI_BRACEMATCH is pretty useful as well, when dealing with (), [], {} and <>.

    As for “” and ‘’ (as well as other possible situations when SCI_BRACEMATCH returns -1), the internal functions findLeftBracket and findRightBracket in XBrackets Lite do pretty good job there.

    The exported functions GoToMatchingBracket and SelToMatchingBracket already work, though may need some tuning. The source code is here:
    https://github.com/d0vgan/npp-XBracketsLite/commits/feature/GoToNearestBr/

  • Improving programming speed and performance in Notepad

    2
    0 Votes
    2 Posts
    75 Views
    PeterJonesP

    @Silva-Yunus ,

    The CustomizeToolbar plugin allows you to add menu commands (including saved macros) to the main toolbar, so it’s almost what you are asking for.

    Otherwise, we have a FAQ on Feature Requests

  • Auto-Completion Popup is unexpectedly shown when handling SCN_CHARADDED

    11
    1 Votes
    11 Posts
    222 Views
    Vitalii DovganV

    Eventually, it seems the best solution is to subclass Scintilla’s WndProc (for both Main and Secondary Scintilla window) and to handle WM_CHAR there.
    The benefits:

    no need to bother with Scintilla’s native notifications and their nuances; full control and clarity of what happens and when it happens: within own WM_CHAR handler, we are able to process a character before it goes to Scintilla and after it goes to Scintilla; simplified code because all the logic is controlled by you and there is no need to conform to Scintilla’s way of processing the events.
  • POLL / Discussion: taking over a plugin

    7
    3 Votes
    7 Posts
    189 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
    94 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
    89 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
    414 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
    272 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
    873 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
    127 Views
    No one has replied
  • 0 Votes
    4 Posts
    276 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
    951 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 :)