• For plugins which use "NPPM_MENUCOMMAND"...

    Pinned
    1
    3 Votes
    1 Posts
    208 Views
    No one has replied
  • Read This First

    Pinned Locked
    1
    5 Votes
    1 Posts
    2k Views
    No one has replied
  • 3 new themes

    3
    5 Votes
    3 Posts
    42 Views
    B

    @PeterJones I’ll certainly upload the themes to the repo. It requires some groundwork, but I’ll get there pretty soon.

  • Rust Syntax Highlighting

    8
    1 Votes
    8 Posts
    87 Views
    PeterJonesP

    Moderator Note: this was taking over the LSP discussion, which would make it harder for people in the future to use the LSP Topic for LSP-focused discussion. I moved this portion of the discussion to a separate Topic, so that it can stay focused on syntax highlighting.

    The first two posts needed to be merged into one, because somehow the original fork swapped the order of the two posts, which made this topic confusing.

  • Delphi/Lazarus plugin template - update info about probs with Lazarus

    10
    2 Votes
    10 Posts
    410 Views
    K

    Not many more topics came up meanwhile. Two little things:

    “TPopupMenu” won’t be drawn well in dark mode (thick light border; separators unnicely drawn). I’d assume this belongs to the amount of gui elements not yet individually handled by the code as mentioned above, right?
    For the separator a quick hack could be to set it’s caption to spaces, and to disable the item. Looks better.
    Did i miss something about the TPopupMenu? How does it behave in Delphi?

    I have a sub-dialog (sub form) invoked from the docking form (via tool button here) and noticed it stayed light. I learnt it has to be exposed in the app-plugin as exposed func for to be subjected by the NPP theme layer. Then i call this sub-dialog via invocaton of the plugin func. Did so, and it worked fine.
    But now iz’s callable from the plugin’s menu too - what might not be wanted always. Sometimes the exposure of functionality depends on a config setting though.
    In short: is it possible, and how, to disable items from the plugin’s menu conditionally?

  • 1 Votes
    5 Posts
    120 Views
    K

    Yep. works perfectly … NPPN_READY gave the solution …

  • Display markdown outline view through Functionlist

    14
    2 Votes
    14 Posts
    3k Views
    PeterJonesP

    @Dan-Ignat-0 ,

    For non-programming langauges, like Markdown, there’s probably less concensus among users as whether “headers” or something else is the most likely “function” to include, which is probably why the developer hasn’t included such. But asking the developer (follow our Feature Request / Bug FAQ) to include the FunctionList would be reasonable at this stage (though someone would likely have to create the unitTest for him as well, otherwise he might not include it on his own).

  • Dictionary plugins

    8
    0 Votes
    8 Posts
    548 Views
    PeterJonesP

    @Peter-Oates said in Dictionary plugins:

    However, it does not tell you what to do if the app cannot/will not create the folders it requires.

    I must also admit that I find Windows folder / file permissions an almost impregnable forest

    The latter causes the former issue.

    Assuming that the user knows how to deal with Windows OS permissions is not an unreasonable assumption, since you have to deal with them to do a normal Notepad++ installation. For the vast majority of users, whatever process they take that allows the Notepad++ installation will be sufficient to allow the plugin to work correctly – in all the complaints about DSpellCheck, this is the first time that I remember seeing permissions issues be the cause of the problem.

    Every once in a while, a Notepad++ user will find that, because of their non-standard, personal customizations of the OS and/or UAC settings and/or Notepad++ and/or the combination, something weird happens with permissions in the user’s AppData (which is what I’m guessing happened to you). But given how infrequent the reports are here, I don’t think it’s a highly common situation.

    I suppose the plugin author could put a note in his README and/or Online Manual to explain that “if you follow all the steps for installing a Hunspell dictionary, and it doesn’t show up, you should chcek the permissions on your %AppData%\Notepad++\Plugins\Config\ hierarchy” or similar – you could even put in a request for the author to do that – but I wouldn’t have necessarily expected a plugin author to have realized that such a comment would be necessary, since AppData permissions issues are reasonable rare.

    And even if the author had already documented that, you have admitted that you wouldn’t’ve seen the note on your own or even gone looking for it when you had a problem. So is it really worth the effort for a plugin developer to note that edge case – even if they know about it – when the people who run across that edge case are not likely to try to look up the documentation for it anyway?

    For the documentation that I work on, including Notepad++'s manual itself and FAQs for this forum, I most likely would, once it was pointed out to me, because I like to pretend that at some point, people will figure out how to look for documentation; but I don’t know that I expect other people to waste their time in the same ways I waste my own time.

    update: Rereading my post, I guess I could say, since it’s a permission issue, I would have expected the plugin to have received an error from the OS when it tried to write the dictionary to the right folder, and they could have popped up a dialog informing you… I’m actually surprised there wasn’t one. So either the OS was silently erroring out (in which case the plugin cannot do much if the OS doesn’t admit to the failure), or the plugin author was trying to shield you from error messages or something. But it would be a good idea for somebody (you) to put in a request for the plugin to check the status of the dictionary download/install, and if they cannot write it, to let you know about the problem.

  • 3 Votes
    11 Posts
    291 Views
    M

    So it turns out that my plugin was at fault, as noted here. I was allocating MAX_PATH bytes for a buffer that could contain MAX_PATH wide chars, so any filename with length MAX_PATH / 2 or greater would cause a bug.

  • Some plugins' icons disappear when going from light to dark mode

    13
    3 Votes
    13 Posts
    333 Views
    rdipardoR

    I said in Some plugins' icons disappear when going from light to dark mode:

    BMP icons are statically sized; the ICOs are “fluent”, i.e., can be scaled up […]

    This is mostly correct, but I should have mentioned that toolbar BMPs actually can simulate a kind of “DPI awareness”, provided your plugin interface can access the GDI device capabilities API. See, for example, how ComparePlus goes about sizing its icons. There’s also a .NET example in my experimental template project.

    If that’s too much trouble, just re-dimension your bitmaps to make sure they can scale up without blurring, then load them at 24x24 pixels, since that’s what the graphics device will normally choose for conventional screens using 96 DPI.

  • [New Plugin] MultiReplace

    67
    3 Votes
    67 Posts
    12k Views
    Thomas KnoefelT

    Version 4.1.1.21 has been released and will be included in the next Notepad++ update. Below are the key changes and improvements:

    Header Column Menu: Right-click on the header to toggle columns like Find count, Replace count, Comments, and Delete.

    Comments Column: Add custom comments to entries via the new optional Comments column. Existing list files remain fully compatible.

    Column Locking: Lock the width of columns (Find, Replace, Comments) with a double-click on the header divider. A lock icon shows the status.

    New Variables: Two new variables have been added for “Use Variables” option: FNAME: Represents the filename or window title for new, unsaved files. FPATH: Represents the full path including the filename, or is empty for new, unsaved files. Multilanguage Support: The plugin now supports Danish. Configuration Options: Manage settings via the INI file located at
    C:\Users\<Username>\AppData\Roaming\Notepad++\plugins\Config\MultiReplace.ini: DoubleClickEdits: To disable direct editing on double-click, set DoubleClickEdits=0 (default: enabled). Tooltips: To disable tooltips, set Tooltips=0 (default: enabled). AlertNotFound: To disable notifications for unsuccessful searches, set AlertNotFound=0 (default: enabled).

    Here is a visual take on the changes:
    fe07924a-0201-4e47-b3c8-46b815cd081b-image.png

  • C# Dockable dialog undocked freezes Notepad++

    11
    1 Votes
    11 Posts
    655 Views
    M

    @Guido-Thelen

    This file in JsonTools contains a lot of the helper code you would need to make your forms compatible with NPP’s more recent releases.

    As you may notice from reading the file, making your forms compliant with NPP’s expectations introduces a lot of frustrating issues, but IMO this is just the cost of maintaining a C# plugin.

  • 0 Votes
    2 Posts
    99 Views
    rdipardoR

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

    The referenced module was not found.

    The sandboxed version of Windows seems to have fewer core libraries than the “full” version, The operating system is saying that your plugin wants to call a function in a core library which is not installed.

    Try setting the Windows API level in the Visual C++ project file by defining the _WIN32_WINNT and the NTDDI_VERSION macros to a Windows release that predates Win10: https://learn.microsoft.com/windows/win32/winprog/using-the-windows-headers

    See, for example, how Notepad++ defines both to target Windows 7 (the oldest version it supports).

    Worst case, you may have to to seek out the exact version of Visual Studio the XMLTool author was using.

  • C# Plugin - Characters missing in message box

    7
    0 Votes
    7 Posts
    185 Views
    S

    @Alan-Kilborn
    Yes! Now its a beauty…

  • JsonTools v5.5. is live!

    14
    7 Votes
    14 Posts
    5k Views
    M

    I’ve just commited the unreleased JsonTools v8.2.0.3 that hopefully fixes the issue described in my previous comment. Did my commit fix it? I have no idea, 🤷!

    Same deal as in my previous comment: please upvote this comment if and only if you notice that JsonTools v8.2.0.3 reformats 11.11 as 11.109999999999999. Don’t upvote this comment for any other reason; that way, I’ll know that this is still an issue if I get upvotes.

  • GraphQL schema syntax highlighting plug-in needed...

    3
    0 Votes
    3 Posts
    132 Views
    Lycan ThropeL

    @Eric-Schetselaar ,
    Like @Mark-Olson says, at least for Syntax Highlighting, the UDL is about your best bet if any, and that probably means you’d have to create your own. (fun!!) Not sure what prompting means in this usage.

    Unlike @Mark-Olson , I hadn’t heard about this language, but the quick view I had, looks like the UDL could handle it. It’s got essentially a Class/Function style that is similar to most OOP language implementations.

    If by prompting, you mean Autocompletion or FunctionList capability, that’s even more work, but doable, since the language looks like most others, it just needs to be structured into a Notepad++ UDL structure system…but as @Mark-Olson suggests, there might already be capable editors for that specialization already, since it’s under the Meta banner, they could provide it. If you’re simply looking for an alternative, then roll up your sleeves and get to work. :-)

  • New cross-platform plugin template for Delphi developers

    Locked
    24
    4 Votes
    24 Posts
    3k Views
    rdipardoR

    @PeterJones: the wiki is now up, so this thread can be locked 🔒, please and thank you.

  • List box hover text for Style Configurator?

    5
    5 Votes
    5 Posts
    191 Views
    mpheathM

    @PeterJones keeping the 2 Listboxes might be OK as well since I have mocked it recently.

    NppListToCombo2.png

    Left side and center same as my previous post. The right side displays 2 listboxes with 8 items per list being visible. Either of the 2 alternatives appear wider as can be seen in the image.

    Here is the AutoIt3 sources if anyone wants to play with them. Just need the AutoIt3 interpreter which can get from downloading the Zip file and extract AutoIt3.exe or AutoIt3_x64.exe.

    ; about: With 1 ComboBox and 1 Listbox. Global Const $CBS_DROPDOWNLIST = 0x3 Global Const $GUI_EVENT_CLOSE = -3 Global Const $WS_VSCROLL = 0x00200000 Global Const $WS_CAPTION = 0x00C00000 GUICreate('Style Configurator', 750, 405, -1, -1, $WS_CAPTION) GUICtrlCreateLabel('Select theme:', 67, 15) GUICtrlCreateCombo('Default (stylers.xml)', 142, 15, 160, Default, $CBS_DROPDOWNLIST) GUICtrlCreateGroup('', 10, 45, 250, 345) GUICtrlCreateLabel('Language:', 20, 60) GUICtrlCreateCombo('Global Styles', 20, 85, 230, Default, $CBS_DROPDOWNLIST) GUICtrlSetData(Default, 'ActionScript|ADA|ASN.1|ASP') GUICtrlCreateLabel('Style:', 20, 120) GUICtrlCreateList('Default Style', 20, 145, 230, 180, $WS_VSCROLL) GUICtrlSetData(Default, 'Indent guideline style|Brace highlight style|Bad brace colour' & _ '|Current line background|Selected text colour|Multi-selected text color' & _ '|Caret colour|Multi-edit carets color|Edge colour|Line number margin' & _ '|Bookmark margin|Change History margin|Change History modified' & _ '|Change History revert modified|Change History revert origin' & _ '|Change History saved|Fold|Fold active' & _ '|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20') $idExit = GUICtrlCreateButton('Exit', 650, 365, 80) GUISetState() While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE, $idExit Exit EndSwitch WEnd ; about: With 2 Listboxes Global Const $CBS_DROPDOWNLIST = 0x3 Global Const $GUI_EVENT_CLOSE = -3 Global Const $WS_VSCROLL = 0x00200000 Global Const $WS_CAPTION = 0x00C00000 GUICreate('Style Configurator', 750, 405, -1, -1, $WS_CAPTION) GUICtrlCreateLabel('Select theme:', 67, 15) GUICtrlCreateCombo('Default (stylers.xml)', 142, 15, 160, Default, $CBS_DROPDOWNLIST) GUICtrlCreateGroup('', 10, 45, 250, 345) GUICtrlCreateLabel('Language:', 20, 60) GUICtrlCreateList('Global Styles', 20, 80, 230, 120, $WS_VSCROLL) GUICtrlSetData(Default, 'ActionScript|ADA|ASN.1|ASP|Assembly|AutoIt|AviSynth' & _ '|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20') GUICtrlCreateLabel('Style:', 20, 195) GUICtrlCreateList('Default Style', 20, 215, 230, 120, $WS_VSCROLL) GUICtrlSetData(Default, 'Indent guideline style|Brace highlight style|Bad brace colour' & _ '|Current line background|Selected text colour|Multi-selected text color' & _ '|Caret colour|Multi-edit carets color|Edge colour|Line number margin' & _ '|Bookmark margin|Change History margin|Change History modified' & _ '|Change History revert modified|Change History revert origin' & _ '|Change History saved|Fold|Fold active' & _ '|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20') $idExit = GUICtrlCreateButton('Exit', 650, 365, 80) GUISetState() While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE, $idExit Exit EndSwitch WEnd

    I didn’t type the full list of items as it is just mocking the Style Configurator Dialog for display purposes.

  • ftp profiles gone a lot

    3
    0 Votes
    3 Posts
    123 Views
    Afik GilboaA

    @PeterJones

    option 1 is most likely, but one time it happened when i restarted notepad++ himself
    i will backup the file you told me

  • [New plugin] CNC Gcode backplot/simulation plugin

    12
    6 Votes
    12 Posts
    4k Views
    S

    Hi NCalu,

    i like your plugin and have it on my watchlist. Want to try it out, but didn’t had the time yet.

    Personaly i work only with Sinumerik Controllers. Looking at your G-Code, it looks more like Fanuc or Mitsubishi Style G-Code programing. However the preview is a really nice feature.

    Can the plugin handle unexpected commands, which are possible only on certain controllers e.g. Sinumerik G-Codes, Functions, Cycles e.g like Cycle61(,…,) for face milling and so on?