Community
    • Login

    Search++: A work in progress

    Scheduled Pinned Locked Moved Notepad++ & Plugin Development
    97 Posts 7 Posters 11.4k 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
      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 Online
        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 Online
            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 Online
                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 Online
                    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 Online
                      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

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

                        @guy038 said:

                        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 ?

                        I have thought about the possibility of making marks designate individual spans of text rather than running together. It is possible. In fact, you can see it, if you look closely, in the Search++ search results window if you do a Find All with the change log and your regular expression. You might have to zoom to see it, but there are small white spaces between the different matches. The search results window also marks null matches with an upward-pointing chevron below the baseline.

                        Your idea makes sense. I believe I would have to make it an optional feature, because it is not the way marking ordinarily works in Notepad++. I also have to consider how it impacts search in marked text, though I think that would be straightforward: when marked text is separated in this way, each individual span would be searched independently. (In the current way of marking, each contiguous marked block is searched regardless of whether it came from a single match or multiple matches.) It will take some thinking to make sure what happens when marked text is already present and new marks are added which adjoin or overlap existing marks makes sense.

                        I do support this future enhancement

                        As you’ve no doubt noticed, there hasn’t been any progress on Search++ lately. I had hoped that following the point where I made the first public release I would be able to just keep going straight through to a first “stable” release, but my attention has been directed elsewhere for a time. I’ll be back.

                        Find/replace in files and saving searches are the two main features I want to add before I think I can close in on “stable.” These are both things that I think could cause significant changes in the programming (and maybe the user interface), so I don’t want to try to reach “stable” and then immediately destabilize everything. I’m treating their absence as a blocker.

                        I think I want to add a couple more options for manipulating marked text (like remove marks from selected text) to the Tools menu, and I have some known problems (like that the search results window can be painfully slow with a lot of matches in a large file, and I don’t think the routine that is supposed to make finding a match scroll so that the match won’t be hidden behind the dialog when it is non-docking works reliably yet). ICU search should either be hidden or be extended to work with most if not all of the same commands as Regex (Boost).

                        There is still no simple way to access the drop-down menus on the split command buttons by keyboard, and I still don’t have a good idea how to make it both possible and discoverable. I think I need to add Find and Replace commands to the plugin menu so it would be possible to set them as Notepad++ shortcuts, which would make it possible to do sequential find and/or replace while focus remains in the document.

                        Your suggestion here makes sense, and I need to crawl through this entire topic to see what other ideas and observations I might have forgotten. There was a suggestion in another topic about showing context (lines before and after) in the search results list: I’ll probably look at that when I look at search in files, since both will require significant changes to the way I build the search results list at present.

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

                          @guy038 said:

                          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 :

                          Thank you for that additional information. I had a suspicion this was a Notepad++ behavior not really related to the plugin.

                          I have not been able to reproduce it. It is possible that it is dependent on some detail of your operating system or drivers.

                          Since you can reproduce it without any plugin, I suggest adding it as a Notepad++ issue if you think it is worth further investigation. It could be that others will be able to reproduce it, perhaps including someone who can run Notepad++ under debug and close in on what is going wrong.

                          1 Reply Last reply Reply Quote 1

                          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