• 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
    698 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
    271 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
    246 Views
    No one has replied
  • Display markdown outline view through Functionlist

    15
    2 Votes
    15 Posts
    5k 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
    735 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
    264 Views
    No one has replied
  • New polls have arrived, hurry, only while stocks last.

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

    45
    8 Votes
    45 Posts
    44k 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
    595 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
    917 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
    379 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
    2k 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
    314 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
    1k 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
    862 Views
    Bas de ReuverB

    Nice, thanks for fixing the issue 👍

  • AndroidLogger version 1.4.2.7: added search action!

    6
    0 Votes
    6 Posts
    852 Views
    glandonG

    截屏2025-05-06 07.10.16.png

  • 0 Votes
    13 Posts
    2k 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
    1k 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
    10k 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.