• Columns++ missing features / road map

    15
    1 Votes
    15 Posts
    1k Views
    CoisesC

    I´ve published a new release, Columns++ v1.0, which can check GitHub for new releases.

    The user can choose (in the Options dialog) to show a notice for all new releases or only for new “stable” releases, or to turn off automatic checking. The notice is displayed by adding “Update Available” to the text of the “Help/About” item at the bottom of the Columns++ menu. The automatic check occurs when Notepad++ loads Columns++ and is limited to once every twelve hours. The default is to show a notice only for new stable releases, which are releases not marked as a Pre-Release on GitHub.

    It is also possible to check on demand from the Help/About dialog, which shows links to the newest and latest stable releases on GitHub.

    I’ve submitted a pull request to add this to the Plugins Admin list.

    There is still only the Quick Installer or manual copying to install a release that isn’t offered by Plugins Admin. It’s not ideal, but it’s simple and probably works for most people.

  • 1 Votes
    3 Posts
    416 Views
    PeterJonesP

    @Prof-Ezequiel-Soares ,

    adding support for a language widely used in teaching programming: VisuAlg. How can I proceed to send the import file?

    It depends on what you mean.

    If you mean, “I wrote a User Defined Language (UDL) definition for VisuAlg”, then you can submit it to the UDL Collection – it wouldn’t be distributed with Notepad++ (because other than Markdown, UDLs do not get distributed with Notepad++), but that’s the official location to publicly share UDL definitions.

    If you mean, “I wrote a lexer plugin to parse VisuAlg”, then you can submit it to the Notepad++ Plugin List repo, and on the next release of Notepad++, your VisuAlg Lexer Plugin would be listed in Plugins Admin so that people can download it.

    If you mean, “I wrote a Lexilla lexer I want to have included with Notepad++”, then you would submit it to the Lexilla project, and if they decided to included it, then the next time Notepad++ updates its Lexilla instance from the Lexilla project, it would be included.

    If you mean, “How do I develop a UDL, so that I can then share it per the first point above”, then see https://npp-user-manual.org/docs/user-defined-language-system/

    If you mean, “How do I develop a lexer Plugin, so that I can then share it per the second point above”, then see https://npp-user-manual.org/docs/plugins/#building-a-lexer-plugin

    If you mean, “How do I develop a new lexer for Lexilla, so that I can share it per the third point above”, then you’ll have to go to the Lexilla project to find out if they have instructions or FAQs or suggestions for how to do that, because they are a separate, independent project from us.

    If you mean, “I thought that someone else might have already written one, and I just wanted to download it and use it, I wasn’t offering to do all that work”, then I think you’re out of luck, because such a UDL or Lexer hasn’t yet been submitted to any of those locations.

    Good luck.

  • When you print a document you don't see the preview

    6
    1 Votes
    6 Posts
    10k Views
    Alan KilbornA

    @mkupper said in When you print a document you don't see the preview:

    for my printer that a printed page from Notepad++ is 67 lines and that it can have up to 94 characters per line

    Interesting.

    I’d think that if someone used a pdf printer to “preview” a Notepad++ document print, wouldn’t they just then print the pdf (and thus get what they saw in the “preview”)…

  • Cannot install plugins at all

    34
    1 Votes
    34 Posts
    54k Views
    mkupperM

    @Kang-Tri Firewalls rarely get in the way of plugins. Disabling them as a general practice in an attempt to solve a problem that someone can’t articulate well is bad advice.

  • plugin template, docking feature, and c++ core guidelines

    7
    2 Votes
    7 Posts
    522 Views
    R

    The essential point to remember is that the every facet of the API surface is C-compatible, just like the Win32 API, which underlies all of N++'s internal functions. The details of how N++ dispatches plugin messages naturally involves a few C++ semantics, because it’s a C++ application. Plugins can implement their own C++ types, too, but nothing in the API says they have to. If you just want to display a free-floating form, you can use whatever functions your plugin natively supports, from ::CreateDialogParam to System.Windows.Forms.Form.ShowDialog.

    The (poorly documented) purpose of the docking API is to register a form with the Docking Manager. In practice, that means preserving the form’s position and geometry in config.xml, so that N++ can optionally reload it when the application starts. To do that, a plugin sends NPPM_DMMREGASDCKDLG with a pointer to a C-like structure filled with some basic parameters, as shown in the developers’ manual.

    The form’s creation is entirely up to the plugin. N++ simply invokes the function that creates the form by calling through a function pointer. No plugin is required to instantiate a DockingCont or any other object derived from a C++ class. Examples of plugins that do this anyway are special cases, not illustrations of how the docking API works.

  • How to connect Netezza with notepad++

    3
    -2 Votes
    3 Posts
    284 Views
    mkupperM

    @Udhaya-Bharathi-Kumar

    You wrote “How to connect NZ with notepad++.” Notepad++ is normally the client application and would connect with a server. NZ is normally a server that you connect to using clients. You want to do this backwards. Is your desire to control and use Notepad++ using NZ scripts?

    For me, step-by-step starts out with defining what it is that I want to do. I usually start out using pencil on paper to make drawing of a high level overview and then fill the gaps and details. Once I have a general idea of the goal I code up a simple user interface that’s mainly there to run test/debugging of the next phase which is the bottom layer details which I fully write and debug. I usually learn a lot about exceptions and oddities while coding the bottom later that needs to be taken into account when the middle or upper layers get structured.

    See bottom–up and top–down design on Wikipedia. I’m doing both top down and bottom up but with an emphasis on bottom up. I leave the middle layer that glues the top and bottom for last.

  • New Plugin: All Occurrence Selector

    1
    3 Votes
    1 Posts
    381 Views
    No one has replied
  • Save Plugin Button State

    3
    0 Votes
    3 Posts
    379 Views
    R

    I said in Save Plugin Button State:

    If a certain plugin is not using it (or using it wrongly), that’s an issue for the plugin’s maintainer to resolve.

    The bug report is here, finally: https://github.com/nea/MarkdownViewerPlusPlus/issues/159

    In the meantime, just putting .dll after the plugin name will get it working, e.g.,

    <!-- <GUIConfig name="DockingManager" ... > --> <PluginDlg pluginName="MarkdownViewer++.dll" id="0" curr="1" prev="-1" isVisible="yes" /> <!-- </GUIConfig> -->
  • [Plugin update] Npp-Reverse-Text (32bit ported to 64bit)

    1
    2 Votes
    1 Posts
    300 Views
    No one has replied
  • 0 Votes
    4 Posts
    273 Views
    CoisesC

    @Mark-Olson said in determining how many capture groups there are programmatically:

    No, PythonScript uses Boost for editor.{research/rereplace}.

    Ah, I see. I can’t follow everything, but when I see:
    https://github.com/bruderstein/PythonScript/blob/master/PythonScript/src/UTF8Iterator.h
    it’s clear they’re taking a similar approach to what I’m doing… except it looks like they figured out how to define regex_traits for 32-bit Unicode characters without ICU. If I’m seeing what I think I’m seeing, then the PythonScript regular expression code interprets any Unicode code point as a single character, even if it is outside the Basic Multilingual Plane. (In Notepad++ search, non-BMP code points appear as two “characters” to regex, the high surrogate and the low surrogate.) Now I have another job… to see if I can grasp how they did it, and if I can, rewrite my utf8 iterator for about the sixth time…

    In any case, thanks for the thoughts, and sorry it’s been a bumpy road. What I’m doing is in C#, and it’s unclear to me whether that will make this task easier or harder than it’s been for you.

    If folks using your framework don’t care about using precisely the same regular expression language Notepad++ implements, they could probably use C# regular expressions; they’d have to copy the data to be searched to a buffer (translating to wide characters if it’s utf-8). I don’t know C# at all, but I get the impression you can’t template the regex classes like we do in C++, and hence wouldn’t be able to define a custom iterator, so using the Scintilla data “in place” wouldn’t be an option (at least for utf-8, unless C# has a built-in regular expression class for utf-8).

    To use the Boost regex language, I guess you’d have to do whatever is done in C# to call a set of C++ routines that could incorporate Boost regex… or just accept the limitations of using Scintilla commands (including no access to capture groups past 9, and no way to get the replacement string without actually doing a replacement).

  • [Plugin update] An alternative auto completion for notepad++

    16
    5 Votes
    16 Posts
    24k Views
    David-Maisonave 0D

    @jcaillon

    The above download link is to an old version. To keep the link pointing to the latest version you should replace the tag/VerNum with latest. Please edit your first followup post with below link.

    Download Latest Version here:
    https://github.com/jcaillon/3P/releases/latest

  • 0 Votes
    2 Posts
    413 Views
    PeterJonesP

    @Mario-Lemelin ,

    Did you “install” using the “mini-portable” minimalist zip file? If so, then it doesn’t install the Plugins Admin (see Online User Manual > Getting Started > Installing from 7z or Zip, which includes both normal portable and mini-portable descriptions).

    Are you running with -noPlugin command-line argument? If so, then it may have disabled Plugins Admin. (update: my experiments say that -noPlugin does not disable Plugins Admin)

    If that’s not the case, please share your ?-menu’s Debug Info.

  • getting pull request merged?

    3
    2 Votes
    3 Posts
    226 Views
    Michael VincentM

    @Alan-Kilborn said in getting pull request merged?:

    says this should have been done FIRST, but I don’t know if this has any bearing on lack of attention…

    @Geoff-Winkless I see you’ve now created an issue. Update your Pull Request description to include the text “Fix #49”. This will “link” the issue and pull request.

    Cheers.

  • function list: I made an XML for one liner HTML comments

    1
    2 Votes
    1 Posts
    189 Views
    No one has replied
  • Plugin idea for creating list structures with folding!

    Moved
    14
    1 Votes
    14 Posts
    1k Views
    Thomas KnoefelT

    @rdipardo Sorry for sneaking into this discussion, but I just whipped up a quick 5-minute example. While it’s a simple solution and might not cover all nuances, maybe it can serve as a starting point or a simple helper:

    Find what: (\d+)\.(\d+)\.(\d+)
    Replace with: cond(CAP1 > 0 and CAP2 == 0 and CAP3 == 0, MATCH, cond(CAP2 > 0 and CAP3 == 0, " " .. MATCH, " " .. MATCH))list structure.gif

    This example showcases how you can use multiple formatting combinations. Additionally, it’s worth noting that you can also set multiple formatting steps sequentially to achieve more complex patterns.

    Please note that this plugin will be rolled out with the next Notepad++ update. However, you can download it in advance here.
    As mentioned, it’s a quick workaround and might need refinements to handle all possible scenarios.

  • 0 Votes
    3 Posts
    313 Views
    CoisesC

    @PeterJones said in Dumb question time: compatible-versions and old-versions-compatibility — What am I missing?:

    at some indeterminate time in the future

    Thanks, @PeterJones. That pretty much explains why I couldn’t make sense of it: it’s not something that does anything useful now, just a guess at what might be useful in the future. I won’t worry much about it, then — guesses about what might be useful in the future have a high rate of irrelevance when the future arrives, no matter who is doing the guessing.

  • Is XPatherizerNPP Plugin abandonware?

    4
    0 Votes
    4 Posts
    710 Views
    gerdb42G

    @Mark-Olson
    I know XMLTools, I use it in parallel. But I think XPatherizerNPP is more useful with evaluating XPath expressions. XPatherizerNPP has some issues with out of memory exceptions when used with large XML files so I was looking for a x64 version. Maybe I can find some time to make a port of the original Plugin.

  • Need some help getting started.

    3
    0 Votes
    3 Posts
    308 Views
    R

    If you’re referring to NotepadPlusPlusPluginPack.Net, it’s not “out of date”!

    Maybe @Zigy-WasTaken meant the age of the last stable release (0.94.00), from 2018. Even the 2021 “beta” release is now 40 commits behind the trunk, and there is still an unpatched issue affecting the binary compatibility of the ScNotification structure, whereby the Updated field seems to be getting clobbered by an out-of-bounds write.

    All things that capable .NET developers can fix on their own, of course, if they’re not turned off by the “some assembly required” caveat. But what is an absolute beginner supposed to do?

  • NppExec v0.8.7 has been released!

    1
    5 Votes
    1 Posts
    263 Views
    No one has replied
  • First menu item unexpectedly being called on startup

    13
    0 Votes
    13 Posts
    727 Views
    ThosRTannerT

    @rdipardo it’s not so much the ability to break/abuse it, it’s the fact that there is a correlation between the order of entries in your plugin menu and the docking dialogue(s) you can open from your plugin.