Community
    • Login

    Search++: A work in progress

    Scheduled Pinned Locked Moved Notepad++ & Plugin Development
    95 Posts 7 Posters 11.3k Views 2 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • CoisesC Offline
      Coises @guy038
      last edited by

      @guy038 said in Search++: A work in progress:

      I won’t dare ask you about specific topics like this one, again

      There is no reason you shouldn’t ask. I am sorry if I sounded defensive or otherwise implied that the question was troublesome. I realize I probably gave a more exhaustive (or exhausting) reply than you really needed… I kind of got caught up “explaining it to myself.”

      It’s never really possible for someone who isn’t doing the programming to know whether something will be easy, difficult or anywhere in between. Some things seem like they should be easy… and they are! Others have complications that don’t turn up until you’ve already put in a bunch of time and effort, then you discover one little detail that you can’t change that blocks your entire approach. So for me, too, it’s only a guess how much work it would be, though I have more information from which to make my guess.

      Please don’t hesitate to ask questions and make suggestions. It’s possible that I have a good reason for doing or not doing any given thing; it’s equally possible that I just never thought about it. I don’t expect people who aren’t working with the code to know the difference, and neither should they expect that of themselves. Though I have to prioritize, and some things don’t make the “first cut,” all feedback helps; what doesn’t get done for one release will still be waiting to be considered in another. Even if I outright say, “No, I’m just not going to do that,” it still tells me there’s a need adjacent to what I’m building that I haven’t addressed, and I should think about how to make it better when I can.

      Thank you, @guy038, for all the work you’ve done so far to test and explore this project.

      1 Reply Last reply Reply Quote 3
      • CoisesC Offline
        Coises
        last edited by

        Just a few small fixes in Search++ version 0.5.5:

        • Fix Replace All with ICU search engine should give “Command not implemented” message.
        • Copy current line indicator and caret settings from active document to Find and Replace box and search results list.
        • Use a more distinct symbol for “in selection” scope on command buttons.
        • Make messages for Mark and Show commands more accurate when there are null matches.

        All observations, criticisms, experiences and suggestions are welcome!

        1 Reply Last reply Reply Quote 2
        • guy038G Offline
          guy038
          last edited by guy038

          Hello, @coises and All,

          Thanks for that new release ! Briefly :

          • I quickly test the Replace All button, while in ICU mode as well as the new icon for the Selection scope on command buttons => I onfirm the expecting results !

          • Thanks for including the Current Line Indicator and Caret settings within Search++. It’s worth to point out that if you modify these N++ settings during a N++ session, you’ll need to close and restart Notepad++ in order that these new parameters are taken in account by the Search++ plugin !

          • Finally the message, regarding the null matches when using a Mark or Show command, is, indeed, much more explicit !


          Now, I stumbled upon a weird bug : while within a N++ session :

          • If Search++ panel is already opened, click on the cross, on the far right to close the Search++ dialog

          Now, re-open Search++ with the Plugins > Search++ > Search... option ( Note that I use the Docking mode )

          • Click on the current tab ( not within the text window ! )

          • Click on the Search++ windows title

          • Sometimes, you’ll need to repeat these last two actions twice, in order to trigger that bug

          • Now, try to close the Search++ panel by clicking on the cross, on the far right => Nothing happens !?

          • Generally, after some clicks, the dialog finally closes !

          Note that I mapped the Ctrl + Shift + N shortcut to the Plugins > Search++ > Search... option. So, if I use this shortcut, I’m able to actually close the Search++ dialog in that specific case and also in all the other cases !

          I would consider that it’s a minor bug and I’m not 100 % certain about the steps to reproduce it : not quite obvious !

          Best Regards,

          guy038

          CoisesC 1 Reply Last reply Reply Quote 2
          • CoisesC Offline
            Coises @guy038
            last edited by

            @guy038 said in Search++: A work in progress:

            • Thanks for including the Current Line Indicator and Caret settings within Search++. It’s worth to point out that if you modify these N++ settings during a N++ session, you’ll need to close and restart Notepad++ in order that these new parameters are taken in account by the Search++ plugin !

            Another way is to change between light and dark mode; that causes Search++ to reset all the appearance information it copies from the active tab. That’s because plugins get a notification when light/dark mode changes, but I don’t think there is anything that would notify Search++ when current line or caret settings change.

            A good point, though: I should either document this behavior, or reset appearance every time a Search++ window gains focus.

            Now, I stumbled upon a weird bug : while within a N++ session :

            • If Search++ panel is already opened, click on the cross, on the far right to close the Search++ dialog

            Now, re-open Search++ with the Plugins > Search++ > Search... option ( Note that I use the Docking mode )

            • Click on the current tab ( not within the text window ! )

            • Click on the Search++ windows title

            • Sometimes, you’ll need to repeat these last two actions twice, in order to trigger that bug

            • Now, try to close the Search++ panel by clicking on the cross, on the far right => Nothing happens !?

            • Generally, after some clicks, the dialog finally closes !

            Note that I mapped the Ctrl + Shift + N shortcut to the Plugins > Search++ > Search... option. So, if I use this shortcut, I’m able to actually close the Search++ dialog in that specific case and also in all the other cases !

            I would consider that it’s a minor bug and I’m not 100 % certain about the steps to reproduce it : not quite obvious !

            I haven’t yet been able to get this to happen on my system. Thank you for reporting it. If I can reproduce it, I’ll attempt to figure out why it happens. What’s strange is that Notepad++ manages the close button for docking dialogs. Even if I completely remove all my close (actually hide) dialog code, clicking that X still closes the docking panel and hides the search dialog. So either you have stumbled on a Notepad++ bug, or something I am doing in Search++ is interfering with normal Notepad++ behavior.

            Have you ever seen this behavior with any other docking window?

            1 Reply Last reply Reply Quote 2
            • guy038G Offline
              guy038
              last edited by guy038

              Hi, @coises,

              I re-tested the supposed bug and I simplified the procedure which is necessary to trigger that bug !

              • If opened, close the Search++ plugin by clicking on the cross, at the far right

              • A Re-open Search++ with the Plugins > Search++ > Search... option

              • B Try to close the Search++ panel by clicking on the cross, at the far right => Nothing happens !?

              • C After some trys, if you move slightly the mouse, you should be able to close the Search++ panel

              Sometimes, you’ll need to repeat the actions A ato C, up to 5 times consecutively, to trigger that bug. but this event may also occur at the first try !

              I also noted that, when the bug occurs, any subsequent left click on the cross does nothing until I move very slightly the mouse, without any clicking, that is enough, then, to close the search++ panel by clicking againg onto the cross icon. Very strange, indeed !?


              As I suspected that the problem could be an hardware issue with my bluethooth mouse, I disabled it and installed a classical USB mouse, instead. But, unfortunately, results were identical as well as the uncertainty regarding the manifestation of the bug !

              I have different portable versions of Notepad++, but the one which is concerned is the v8.9 release where I installed, both, your Columns++ and Search++ plugins

              Here is my Debug info :

              Notepad++ v8.9   (64-bit)
              Build time: Jan 10 2026 - 02:25:19
              Scintilla/Lexilla included: 5.5.8/5.4.6
              Boost Regex included: 1_90
              pugixml included: 1.15
              nlohmann JSON included: 3.12.0
              Path: D:\890_x64\Notepad++.exe
              Command Line: 
              Admin mode: OFF
              Local Conf mode: ON
              Cloud Config: OFF
              Periodic Backup: OFF
              Placeholders: OFF
              Scintilla Rendering Mode: SC_TECHNOLOGY_DIRECTWRITE (1)
              Multi-instance Mode: monoInst
              asNotepad: OFF
              File Status Auto-Detection: cdEnabledNew (for current file/tab only)
              Dark Mode: OFF
              Display Info:
                  primary monitor: 1920x1080, scaling 125%
                  visible monitors count: 1
                  installed Display Class adapters: 
                      0001: Description - Intel(R) Iris(R) Xe Graphics
                      0001: DriverVersion - 32.0.101.7084
              OS Name: Windows 11 Pro (64-bit)
              OS Version: 25H2
              OS Build: 26200.7462
              Current ANSI codepage: 1252
              Plugins: 
                  mimeTools (3.1)
                  NppConverter (4.7)
                  NppExport (0.4)
                  ComparePlus (2.2)
                  ColumnsPlusPlus (1.3.1)
                  NppUISpy (1.2)
                  MultiReplace (4.6.0.33)
                  Marginalize (1)
                  Search++ (0.5.5)
              

              Finally, note that this portable version of N++ is installed on an USB drive

              Best Regards,

              guy038

              1 Reply Last reply Reply Quote 0
              • CoisesC Coises referenced this topic on
              • LachlanmaxL Offline
                Lachlanmax @guy038
                last edited by

                @guy038, @coises and all,

                I use the dark mode display for almost all apps and I really like it, so I think we are in agreement :)

                You know what they say - join the dark mode, we have cookies… 🍪

                On another note, I would like to hear your thoughts as veterans on this forum. I’m working on an AI chat plugin to streamline the use of prompting an LLM into the workflow with N++. I wonder - has anyone done it before? What would be important features to implement?

                I would appreciate hearing your thoughts.

                Thank you!

                1 Reply Last reply Reply Quote 0
                • guy038G Offline
                  guy038
                  last edited by

                  Hello, @lachlanmax and All,

                  Well, presently I’m not a modern C++ developer and I rather use the old Microsoft Qbasic or sometimes the GAWK software and, more rarely, the N++ PythonScript, in addition to N++ and its plugins, of course !

                  However, I’ve got some documentation on C/C++. So, I’ll probably learn a lot from scratch but I’m not sure yet if I’ll be able to make improvements to our beloved editor !


                  So, to my mind, you should get in touch with @Richárd-stockinger and @jw which already developed AI tools for N++. They will surely provide you with valuable advice for your project ! Refer to :

                  https://github.com/krazal/nppopenai

                  https://github.com/Qdthon/Notepad-AIPlugin

                  Best Regards,

                  guy038

                  P.S. :

                  Although you might assume that some of my regex solutions seem to have been created with the help from an IA engine, I can assure you that it’s only my modest brain that’s at shake when it comes to these resolutions !

                  LachlanmaxL 1 Reply Last reply Reply Quote 0
                  • LachlanmaxL Offline
                    Lachlanmax @guy038
                    last edited by

                    @guy038
                    I wasn’t familiar with these projects. Thank you for the tip-off, I have a lot to learn from these. Glad I asked your advice.

                    We don’t know each other too well yet, but from your replies I get the feeling you have been coding for a while now… as a relative n00b I think it’s good to learn coding the nuts-and-bolt way, not just “vibe coding” like everyone is nowadays. (Even though I’m developing an AI plugin, so a bit of a contradiction. But I like to develop plugins that I would use personally, and I don’t use it to “vibe code”. Granted though that some might.)

                    tl;dr Hard work pays off!

                    1 Reply Last reply Reply Quote 1
                    • guy038G Offline
                      guy038
                      last edited by guy038

                      Hi, @lachlanmax and All,

                      I forgot to give you the Community threads of, both, @Richárd-stockinger and @jw :

                      https://community.notepad-plus-plus.org/topic/24444/new-plugin-nppopenai

                      https://community.notepad-plus-plus.org/topic/27361/ai-plugin

                      BR

                      guy038

                      1 Reply Last reply Reply Quote 0
                      • guy038G Offline
                        guy038
                        last edited by guy038

                        Hello, @coises and All,

                        How are you, @coises ? Pretty good, I guess ! I just uploaded a new version of the ICU.txt file which simply corrects a few typos.

                        https://drive.google.com/file/d/1_TwEV1oorsoWUUjL97BmptcR4fpNQ98_/view?usp=sharing


                        First, regarding the bug I mentioned in my two previous posts, I also detect it with native N++ and, for example, the Find Results panel :

                        • Open the Find dialog

                        • Do any kind of search

                        • Click on the Find All in Current Document button

                        => A Search results panel opens and displays all the occurrences of the searched string

                        Now :

                        • (1) First, click once, anywhere on the blue Search results title

                        • (2) Then, moving your mouse horizontally up to the cross, at the far right, try to close the panel => Nothing happens !

                        • (3) Just, move down the mouse within the Search results panel then re-click on the cross => This time, the Search results panel should close, as expected.

                        • Re-open the Search results panel, using the F7 key

                        • Repeat the actions, 1, 2 and 3 to trigger again that bug. Sometimes, some tries are necessary to get into the problem !

                        Remark :

                        • If, you accidentally double click on the Search results title bar, this panel will become a floating window. To restore its initial postion, simply double-click again on the Search results title bar

                        Note that, in the end, this bug does not really matter because I mapped the Ctrl + Shift + N shorctut to the Search... option of your plugin. So, hitting this shortcut twice does close the plugin, anyway !


                        I thought of an enhancement of your Search++ plugin :

                        Let’s suppose that I want to mark all lines which satisfy the regex below, against the latest change.log file ( release 8.9.6 ). So :

                        • We open or select the change.log file / tab

                        • We open the Mark dialog ( Ctrl + M )

                        • We check the Bookmark line, Purge for each search and Wrap around options, ONLY

                        • MARK (?i-s)(?:\G|Q).*?T

                        • We select the Regular expression mode

                        • Finally, we click on the Mark All button

                        Two lines only are bookmarked : the very first one and the point #8 of v8.9.4. However, the total number of occurrences is 8

                        Notepad++ v8.9.6 vulnerability fix, regression fixes & bug-fixes:
                         8. Fix quote escaping causing incorrect JSON syntax highlighting (Lexilla update related).
                        

                        As you can see :

                        • For the first line, as we are at the very begining of file, the \G alternative finds two occurrences

                        • For the second line, the Q alternative finds the first occurrence and the \G alternative finds the five remaining occurrences

                        So, I was wondering if you could alternate the colors, between the present mark color and an other one, in order to easily distinguish these occurrences ?


                        Now, near the end of your initial Search++ post, you said :

                        I plan to add a Save function that will let you save searches you might want to use again. Of course, once it is possible to save, it has to be possible to delete and rename and edit and organize… I haven’t designed a user interface for any of that yet.

                        I do support this future enhancement !

                        Best Regards,

                        guy038

                        1 Reply Last reply Reply Quote 0

                        Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                        Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                        With your input, this post could be even better 💗

                        Register Login
                        • First post
                          Last post
                        The Community of users of the Notepad++ text editor.
                        Powered by NodeBB | Contributors