• Read This First

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

    Pinned
    32
    2 Votes
    32 Posts
    46k Views
    ThosRTannerT
    Just a quick question - when will the plugintemplate repo be updated to include the new message? Thanks
  • Search++: A work in progress

    113
    5 Votes
    113 Posts
    33k Views
    CoisesC
    @guy038 said: I understood the small differences which occur in the MultiReplace search ( 27,112 - 25 ) matches in ( 833 + 2 ) files. But, I prefer, first, to study more closely the MultiReplace plugin, which is very powerful too and reply later to @thomas-knoefel. It concerns the encoding of 4 files which is not recognized properly and which occurs only when the Find in Files command is used. The Find All and Find in Docs commands, themselves, give correct results for these 4 files !? As best I can make out, like Search++, MultiReplace processes searches against documents open in Notepad++ using the copy of the document that Notepad++ has loaded into Scintilla. (I can’t really think of another way it could be done.) That means that for existing files, Notepad++ has already determined the encoding and either loaded it as ANSI or UTF-8, or translated it to UTF-8. (Notepad++ never sets Scintilla to use any encoding other than UTF-8 or the system default code page; anything else is translated to UTF-8 and translated back on writing.) So it’s no surprise that we’re both using the same encoding as Notepad++ for Find All and Find in Open Documents, because we’re just using the work Notepad++ has already done. I think MultiReplace uses an invisible Scintilla to process searches in files. It could be that it hasn’t entirely replicated the labyrinthine logic Notepad++ uses to determine the encoding of a file (including the effect of Preferences | MISC. | Autodetect character encoding). Search++ does not duplicate that logic either, but it approaches the problem in a different way. Rather than using an invisible Scintilla control, Search++ uses its customized version of Boost::regex directly on the data in the file buffer. So I never translate the file encoding to anything else. I do have to determine the encoding, though, as the choice of iterator for Boost::regex depends on that. There are limitations, not yet formally documented, to the way Search++ handles encodings for Search in Files: UTF-16 files without a byte order mark are not recognized as such. (They’ll be misread as something else.) UTF-8 files without a byte order mark that contain any invalid UTF-8 sequences will be processed using the system default (ANSI) code page. Pure ASCII files are processed as UTF-8. (This doesn’t matter for Find, but I will have to review it when I implement Replace, since someone might include non-ASCII characters in the replacement text. I think there will have to be a user control to determine whether to promote ASCII to ANSI or to UTF-8.) Files without a byte order mark that are not pure ASCII and contain any invalid UTF-8 characters are processed using the system default code page. No attempt is made to detect whether a different legacy code page is more likely to be correct, or is explicitly declared within the file. The sad fact about file encoding is that in most cases there is no algorithmic way to be absolutely certain about what it is. (The exceptions are pure ASCII — but then, if any non-ASCII characters are introduced, there is no way to know how those should be encoded — and some file types, like HTML and XML, that can include a declaration of their own encoding, the declaration itself being in plain ASCII. Byte order marks are, in practice, another exception: they could occur in a legacy encoding, but they would be so uncommon at the start of a file that it’s safe to assume they are definitive, or the file has been purposely engineered to cause mis-detection.) I will probably improve handling of file encodings as Search++ evolves. I doubt that I will attempt to duplicate exactly what Notepad++ does.
  • Awesome Notepad++ Configs, settings and syntax highlighting

    7
    3
    0 Votes
    7 Posts
    2k Views
    PeterJonesP
    @rafaello , IANAL, and I don’t own the trademark, but with your clarifications and updates, I believe you’re probably not violating the trademark (IMO). It’s good to see someone who is willing to accept such feedback (rather than digging in your heels for a while, like happened with the aforementioned fork).
  • 1 Votes
    3 Posts
    1k Views
    R
    @rdipardo thank you for pointing that out. I will check and do the needful.
  • Modern text file icon

    1
    1
    0 Votes
    1 Posts
    720 Views
    No one has replied
  • Translate plugin

    22
    0 Votes
    22 Posts
    46k Views
    J
    Thank you again for your help.
  • Parser/Lexer Plugin for FIX protocol logs

    2
    0 Votes
    2 Posts
    2k Views
    PeterJonesP
    @chtaylo3 , You only need to post in the “Support for Plugins Admin & NppPluginList” topic if there’s a feature or bug with the Plugins Admin and the list DLL itself. If there are issues with your PR to add it to NppPluginList, those will be discussed in the PR itself – and it looks like yours has been accepted already. If you want to just announce your new plugin, you can just create a new Topic in the Plugin Category to tell us about it. Hence, I am moving your post to its own Topic. And congrats on creating a lexer plugin!
  • NppExec v0.8.11 has been released!

    3
    5 Votes
    3 Posts
    2k Views
    Vitalii DovganV
    NppExec v0.8.12.1 has been released! Glory to Ukraine! Glory to the heroes! improved: now WarningAnalyzer automatically removes “” around a file path/name fixed: the Console Output Filters dialog did not clear WarningAnalyzer’s cache improved: now Highlight’s [I], [B], [U] have Italic, Bold and Underline style Get it here: https://github.com/d0vgan/nppexec/releases/tag/NppExec_v08121
  • nppGitClone (14-16ko)

    5
    0 Votes
    5 Posts
    2k Views
    gcyrillusG
    @Michael-Vincent Thanks for the feedback ;) fixed with : https://github.com/gcyrillus/nppGitClone/releases/tag/V1.0.1
  • NppVim 1.14.0.0 Release : Added nppvim.rc support

    1
    1 Votes
    1 Posts
    698 Views
    No one has replied
  • [new plugin] AssistantIA alpha 0.0.0.1 looking for feedback

    5
    0 Votes
    5 Posts
    2k Views
    gcyrillusG
    @Michael-Vincent and anyone reading :) Besides the jokes, i’d like some real feedback about the plugin, the code and mainly about the fact that gemini assisted me … Be critical without trolling, do not be afraid to point out all of the funny code, nonsense and incoherence that a light IA can bring within your code unless there is some goods in it . Good jokes are also welcome ;)
  • Announcing Perl-based automation of Notepad++

    perl automation
    17
    6 Votes
    17 Posts
    12k Views
    PeterJonesP
    v0.012 released to CPAN Update for Notpead++ v8.5.4 - v8.9.6.4 Update Editor messages and enumerations (hashes) Update Notepad++ menu commands and messages Remove notepad->prompt() and the Win32::GUI dependency [#91] Please comment on Issue #92 if this call is important to you <https://github.com/pryrt/Win32-Mechanize-NotepadPlusPlus/issues/92> Improve test suite Get it working through Perl v5.42 Don’t test as many old versions (too much compute overhead) See CHANGES file for full history, including interveninng v0.009, v0.010, and v0.011 I don’t always post about new versions here (mostly because I get distracted and forget to). But I thought it was important on this one, because notepad->prompt() has been disabled in this version: if notepad->prompt() is important to you, please comment on https://github.com/pryrt/Win32-Mechanize-NotepadPlusPlus/issues/92 and stick with v0.011, which (until further notice) is the most recent version to include the notepad->prompt()
  • Npp Plugin - failing when "string" type is used

    5
    0 Votes
    5 Posts
    2k Views
    rdipardoR
    @medvidec It’s impossible to know for sure without seeing your code, but I doubt the issue has anything to do with Notepad++. If this “global variable” is supposed to be shared between multiple C++ source files, you have to do the following: declare the variable in a header file as extern, e.g.: // your_header.h #include <string> extern const std::string configFile; include “your_header.h” in every source file that uses configFile . provide a definition (at global scope) of configFile in one (and only one) of the source files that includes “your_header.h”: // source_file.cpp #include "your_header.h" // ... const std::string configFile = "/plugins/config/verilogConfig.txt"; // ... You can read about storage class specifiers to learn more.
  • [New Plugin] MultiReplace

    78
    3 Votes
    78 Posts
    81k Views
    Thomas KnoefelT
    MultiReplace 6.0 is out and will land in Plugin Admin with the next Notepad++ release. The focus of this release is a second formula engine: ExprTk now sits alongside Lua for math, string and conditional replacements, joined by multi-list tabs, tandem mode, and a series of UI and workflow improvements. Several new options live under Plugins > MultiReplace > Settings. Download: Latest build Key Features & Improvements New Formula Engine (ExprTk): A second engine alongside Lua for math, string and conditional replacements. Its standout is the built-in output formatter - a single declarative spec that turns any result into fixed decimals, hex/binary, padded and aligned fields, time durations or formatted dates, applied right where the value is produced. Switch per tab via the (L) / (E) indicator next to Formula Support. The ExprTk integration - the (?=...) marker and the formula functions for reading captures and earlier results - follows the approach pioneered by @Coises in Columns++. Full syntax and examples are in the ExprTk formula reference. List Tabs: Keep different replacement sets available across tabs. State is fully separate per tab. Tandem Mode: MR panel snaps to the Notepad++ window edge and follows it around. Toggle via the plugin menu. Reopen on Startup: Reopens MR automatically if it was open when you closed Notepad++. Opt-in via the plugin menu. Compact Toolbar: New top toolbar layout - more horizontal space for the list. Always Visible List: Keeps the list visible instead of collapsing when you toggle it off. Requires “Keep list always visible” enabled in Settings. Bookmark Matches: Sets a Notepad++ bookmark on every match line. Toggle via the new checkbox next to Mark Matches. Column Reorder & Lock: Drag column headers to rearrange. Right-click for “Lock column width” or “Reset Column Order”. Modified Timestamp Column: Optional column tracking the last edit per entry. A dirty-flag stripe on the left edge marks unsaved changes. Excel-Compatible CSV: Lists save in the standard CSV dialect used by spreadsheets - opens cleanly in Excel, edit there, load back without conversion. Keyboard Shortcuts Ctrl+Up/Down: Move selected rows up or down (auto-repeat) Ctrl+L: Toggle list visibility from anywhere in the panel Alt+Up/Down: Round-trip between input fields and a selected row Ctrl+Shift + button click: Run from the input fields while the list stays open Ctrl+Shift+H: Pull selected editor text into Find what (optionally auto-escaped for Regex/Extended mode) [image: 1780756837071-multireplace6.png] Issues or suggestions: GitHub. Happy replacing!
  • [New Plugin] AI Chat — chat with LLMs directly inside Notepad++

    Moved
    1
    1 Votes
    1 Posts
    956 Views
    No one has replied
  • Where should I add license and copyrght information?

    8
    1 Votes
    8 Posts
    3k Views
    shouldersS
    I randomly found this new meta SPDX-License-Identifier: where you can add one line. // Copyright (c) 2026 Jane Smith // SPDX-License-Identifier: MIT https://spdx.org/licenses/ https://spdx.dev/learn/handling-license-info/ https://github.com/david-a-wheeler/spdx-tutorial Thought I might mention this as I have never heard of this standard. I assume it is still legal but, IANAL.
  • DAP client plugin

    16
    3 Votes
    16 Posts
    7k Views
    EkopalypseE
    @PeterJones It all sounded so logical to me when I wrote it, but now that I’m reading it again, I have to agree with you— that wasn’t my best explanation of how this is supposed to work. Thanks for clarifying, and yes, Prefer installed Python libraries and a local Python installation are necessary in this scenario. Regarding sys.path, yes, that makes sense. I should have tested all of this in a sandbox; then I would have noticed how my own setup differs from a standard installation. And yes, the procedure, which is ONLY necessary to debug PythonScript scripts, is that you have one Npp instance, in which the script is debugged—let’s call it instance A—and another, let’s call this instance B, in which the script to be debugged actually runs. So, Instance A starts the debugging session via Plugins->NppDebugger->Start. This results in a new Npp instance B being launched. Now, in Instance B, the script that configures debugpy must be started. This causes debugpy to launch another Python process pydevd which is the real python debugger. This means that NppDebugger, from Npp instance A, waits for debugpy in Npp instance B to start the Python debugger pydevd AND for debugpy to start a TCP server to which NppDebugger can then connect. NppDebugger(tcp client) <-> debugy(tcp server) <-intern-> debugy(tcp client) <-> pydevd(tcp server) As soon as NppDebugger establishes a connection, it begins communicating with debugpy via DAP messages. Is the long-term plan … Yes, ultimately, the plugin should be designed to minimize the need for manual configuration editing. For debuggers that work with compiled source code, such as gdb, delve, lldb, etc., this is usually a project-specific setting and something that a user must set at least once per project. I don’t see how the plugin could figure this out on its own. For PythonScript debugging, a simple variable substitution, as you mentioned, seems sufficient. @Lycan-Thrope said: They have a Trial Version If I find the time, I’ll give it a try… but that might take a while… :) @Lycan-Thrope said: What the heck, … :D - thank you :D
  • What if I made Notepad++ available for mobile?

    notepad starter android
    3
    0 Votes
    3 Posts
    2k Views
    Pull_it_allP
    @Em776102 not sure what your use is, for example in termux on android you can use nano. For most quick edits it’s enough I guess… Need something more advanced, use: Acode - code editor | OSS Surely it’s not our beloved notepad++, but quick search may reveal even more alternatives.
  • 1 Votes
    3 Posts
    2k Views
    Pull_it_allP
    @Abdellah-Hss Hello thanks for this input, I thought I had to provide all system versions in order to be accepted to admin plugin list. Today I’ve added ARM64 version and will fork the admin list to update it asap. Thanks for the feedback I actually didn’t know the way to publish it via official channel. Hopefully once I get through with this process it will make the list and be easier accesible. Edit I’ve just added the plugin to official list on x86, x64 and ARM64. Till the next update you can only install it via dll or bat installer I provided on github.