• 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
    5k Views
    ThosRTannerT

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

    Thanks

  • Announcement: NPPM_GETOPENFILENAMES and related are being deprecated in v8.8.2

    Pinned until 6/30/25, 3:12 PM
    8
    3 Votes
    8 Posts
    217 Views
    rdipardoR

    @PeterJones said in Announcement: NPPM_GETOPENFILENAMES and related are being deprecated in v8.8.2:

    Correct me if I’m wrong, but the “canonical C++ example” would be able to use TinyXML2 even if N++ itself is still using TinyXML, since the two are independent codebases. Right?

    Not much difference between them, except that version 2 is Unicode-aware. In fact HTML Tag is built with TinyXML2 in order to provide menu localization for pre-8.7 Notepad++ versions. It was even compatible with Windows XP, before I had to drop support for it in the 1.5.2 release.

  • 2 Votes
    1 Posts
    46 Views
    No one has replied
  • Display markdown outline view through Functionlist

    15
    2 Votes
    15 Posts
    3k Views
    A

    @MAPJe71 I like your solution. Unfortunately I get all comment lines from my (python) code fences into the function list. I tried some things without success, it seems that my skills in regex are limited.

  • 0 Votes
    4 Posts
    257 Views
    rdipardoR

    @martin-honnen said in Any idea why self compiled plugin works on "normal" Windows 11 but doesn't in Windows Sandbox?:

    [T]he used software needs the Visual C++ runtime …

    Runtime DLLs are not needed if you link them statically, i.e., use the /MT linker option or put the
    <RuntimeLibrary>MultiThreaded</RuntimeLibrary> property under <ClCompile> in the *.vcxproj file.

    See https://learn.microsoft.com/cpp/build/reference/md-mt-ld-use-run-time-library

  • XMLTools with XSLT 3.0 support

    1
    3 Votes
    1 Posts
    38 Views
    No one has replied
  • New polls have arrived, hurry, only while stocks last.

    1
    2 Votes
    1 Posts
    55 Views
    No one has replied
  • [New Plugin] NppOpenAI

    45
    8 Votes
    45 Posts
    30k Views
    Richárd StockingerR

    Hi everyone,

    @andrea-tomassi’s PR was really helpful, and it was accepted of course, moreover this gave the project a great shake-up! Of course, the update has also been added to the nppPluginList repository and was recently accepted.

    If someone doesn’t want to wait, manual installation is available as usual with the v0.5 release (unzip the appropriate ZIP file to the plugins/NppOpenAI folder):
    https://github.com/Krazal/nppopenai/releases/tag/v0.5.0

    The last few months have been very stressful for me (there was a nationwide update in the Hungarian .HU domain name registry, which also affected our developments too), but now things are starting to calm down and I hope to have more time for the plugin. ✨

    Once again, thank you to those of you who are trying out the plugin, and I am very grateful for all the contributions!

  • Opened files fully expanded

    3
    0 Votes
    3 Posts
    101 Views
    mpheathM

    @Christian-Hoffmann

    Tested v8.8.1 being quite a new and clean portable and reopens new 1 folded

    Set as Python language folded at if on line 1. Programmatically regarded as line 0.

    new 1:

    if a: b

    session.xml:

    <?xml version="1.0" encoding="UTF-8" ?> <NotepadPlus> <Session activeView="0"> <mainView activeIndex="0"> <File firstVisibleLine="0" xOffset="0" scrollWidth="39" ... snipped ...> <Fold line="0" /> </File> </mainView> <subView activeIndex="0" /> </Session> </NotepadPlus>

    See the xml tag Fold. Folding is saved and restored.

    More details might be needed to solve your issue, like version being used … as ? -> Debug info... shows.

  • AndroidLogger.v1.4.3.1 added super features welcome your tests!

    6
    0 Votes
    6 Posts
    266 Views
    Alan KilbornA

    @glandon said:

    i try to get users clear

    This six-word thing is by far the most important thing you could do.

  • Workspace with Monospaced Fonts

    2
    0 Votes
    2 Posts
    118 Views
    EkopalypseE

    @ptrstack

    How difficult is it to make the folder tree …

    depends on how complex you want your solution to be.
    I would probably just change the font in the resource file and use the WM_SETFONT call in WM_INITDIALOG after initializing the treeview component. Depending on the size, you may also need to call TVM_SETITEMHEIGHT. So this would be 3 lines of code, I guess.

  • Plugin; irregularities with inplace editors closure

    13
    0 Votes
    13 Posts
    312 Views
    K

    @PeterJones Peter, oh sorry - i hadn’t realized it this morning in the hurry, my bad!

  • Feature Request: Insert Current Date and Time Like Excel

    2
    0 Votes
    2 Posts
    72 Views
    PeterJonesP

    @أحمد-حمدي-حمدين said in Feature Request: Insert Current Date and Time Like Excel:

    Hi Notepad++ Team,

    I’d like to request a simple yet useful feature:

    Feature already exists. No request needed. (If a request were needed, this isn’t the right place, as our FAQ makes clear)

    Currently, Notepad++ does not appear to have a built-in shortcut or menu option for this (the old “Edit → Time & Date (F5)” seems to be missing in newer versions).

    Edit > Insert > Date/Time (…) exists. It doesn’t default to any keystroke, but Shortcut Mapper can remedy that.

    User Manual:

    https://npp-user-manual.org/docs/editing/#edit-menu https://npp-user-manual.org/docs/preferences/#multi-instance-and-date

    By the way, you claimed,

    the old “Edit → Time & Date (F5)”

    That never existed in Notepad++. MS notepad.exe used that menu name and hotkey, but never Notepad++. Don’t believe everything that hallucinating AI tells you

  • Shortcut mappings are transferred to a plugin's activity

    10
    0 Votes
    10 Posts
    233 Views
    K

    @Coises : My thoughts about the topics:

    “IsDialogMessage” (“standard Windows way of separating messages that are directed to a non-modal dialog or any of its child controls from the normal flow through the message loop”) and “WM_GETDLGCODE” (“If keyboard focus is in a control, that control will decide which keys it wants and which keys should be processed as container navigation”):

    Basically the Lazarus component library (LCL) acts as a fully qualified message loop system that is able to react on nearly each message and notification within a windows message loop, nearly all WM_, eg. WM_KEY(down,press;up;…) can be detected and processed (*).
    Normally it’s hard to detect any lacks here imo. However i initially looked into that hierarchy, as here, like everywhere else in the programming world, some business rules might have been come into play for to negate a message (like eg. an app can do when it nulls out an Enter Key for to suppress a beep; Key := #0).

    (*) At least in the win32 “widgetset” as one within all those platforms: all-interfaces win32-interface
    It depends a bit on whether someone compiles “cross-platform” or for an OS-specific build, ie. “win32”):

    But - right, maybe that is it what matches your pointing! - there is no explicit call of “IsDialogMessage” itself within the LCL hierarchy (i grepped here)!
    But it is a function that is known and predefined in the free pascal compiler system (FPC) though. And, so, there really low-level based apps can be written (and do exist) without the LCL, using basic TranslateMessage, DispatchMessage etc. which are calling “IsDialogMessage” explicitely.
    “Matches your point” in so far as it makes understandable why without NPPM_MODELESSDIALOG (which calls “IsDialogMessage”) “most shortcut keys will be intercepted by Notepad++” - with other words, let NPP act as a gate-keeper for messages here.

    In sum, with your explanations it’s much more understandable now for me what’s going on (hope so).
    And why “RegisterForm” (-> the NPPM_MODELESSDIALOG-Send) in the docking formcreate now lets work again F2 (and Ctrl-c, Ctrl-v & co.) by the plugin. Otherwise the NPP gate-keeper would decide itself and won’t pass messages to the plugin that it claims for own usage, e.g as defined in the shortcut mapper.

    I hope I’m somehow on the right track here :-)
    I’d use this solution, it does indeed remove the issue :-)
    (i have to sort out a few subsequent flaws now, but those are assumingly outside the current thread)

  • 0 Votes
    6 Posts
    230 Views
    Bas de ReuverB

    Nice, thanks for fixing the issue 👍

  • AndroidLogger version 1.4.2.7: added search action!

    6
    0 Votes
    6 Posts
    241 Views
    glandonG

    截屏2025-05-06 07.10.16.png

  • 0 Votes
    13 Posts
    314 Views
    rdipardoR

    @ThosRTanner said in When is there going to be a release of NPP plugintemplate with a definition of NPPM_ADDSCNMODIFIEDFLAGS:

    @rdipardo Wouldn’t a better place to put the action be in the notepad++ repo so when a new version was released it’d do the updates to the template repo automatically?

    You make a good point.

    The workflow steps would essentially be the same, but in the opposite direction (clone the template repo, update the file tree, validate the build and push if successful). The main difference would be the trigger; ideally you would want to watch for tagged Notepad++ releases, e.g.,

    on: push: tags: - 'v*'

    This way new template versions can be explicitly tied to a Notepad++ release, e.g.,

    # 'refs/tags/vX.Y.Z' -> 'vX.Y.Z' echo "NPP_RELEASE=${env:GITHUB_REF}.Split('/')[2]" >> $env:GITHUB_ENV # ... git tag -a "${{ env.NPP_RELEASE }}" '@' -m "plugintemplate-for-Npp-${{ env.NPP_RELEASE}}" git push --tags --repo=https://github.com/npp-plugins/plugintemplate

    But it would be a problem if incompatible changes were made to the template. A failed build would cause a red X to appear beside the tagged Notepad++ commit, giving the false impression the release was a botch.

    I think the separation of concerns principle is best observed if the template project looks after its own updates. A little extra churn won’t be a great inconvenience. The majority of plugin authors are still copy-pasting the template files into their source tree, as shown by how many have “C” as their detected primary language, since the template files contain no unique C++ syntax or standard headers, which GitHub relies on to classify header files, unless you manually override the heuristics.

  • Slight issue with plugin's toolbar bitmap when switching light/dark mode

    8
    1 Votes
    8 Posts
    322 Views
    K

    And now - whilst i was a bit irritated why i should not have seen during my tests that indeed ‘LR_LOADMAP3DCOLORS or LR_LOADTRANSPARENT’ would remove the ‘looks like focusing’ effect too, i repeated the steps for a check. And what do i see? Hello again, the ‘focusing effect’ is back:
    marked_active.jpg

    Crazy & curious … and not severe, indeed. But not understandable neither …
    as i only became aware of this because this did NOT happen with other plugins, eg. the explorer plugin.
    But meanwhile i think it’s ‘normal’ for an active (loaded) plugin to show up with a kind of ‘active’ marker.
    Is it as such, and i simply was misleaded by, eg., the explorers bitmap rendering?
    At least others like JSONViewer or the HelloWorldPlugin itself use the active indicator too:
    HelloWorld_active.jpg
    So, maybe a simple misunderstanding … but is the marker done from the NPP core itself, or by a statement from a plugin?

    Btw: yes, NPPM_SETMENUITEMCHECK had been called indeed (in the plugin’s “FormDock” procedure).
    But it doesn’t make a difference if i either omit this call, or use ‘false’ for the “doCheck” parameter:

    SafeSendMessage(self.Npp.NppData.NppHandle, NPPM_SETMENUITEMCHECK, self.CmdID, 0);
  • JsonTools v5.5. is live!

    15
    7 Votes
    15 Posts
    8k Views
    Mark OlsonM

    JsonTools v8.4, which adds translation to several more languages and a few minor bugfixes, is live.

    It has been tested and appears to work well for versions of Notepad++ ranging from 7.3.3 to 8.8.1, both 32-bit and 64-bit.