Search++: A work in progress
-
@guy038 said:
First, many thanks for adding theFind in Filescapability within theSearch++plugin.Thank you for trying it!
It’s important to emphasize that the Filters search is always a NON-SENSITIVE search.
I made it that way by default since file and folder names are not case sensitive in Windows. You can still prefix the expression with
(?-i)to make it case sensitive. I don’t know if the API I use to retrieve file paths from a folder is guaranteed always to return names in the correct case, but it appears that it does.Now, is there a particular reason for not allowing the
ICUsearch ?Just the same as before — allocation of time and effort. ICU is not a “drop-in replacement” for Boost::regex; it would have significantly delayed me being able to release a public version of this had I included ICU search. Since Notepad++ users are already familiar with Boost::regex syntax, and I am more familiar with its programming interface (and so can work with it more quickly than ICU), I have prioritized Boost::regex.
I am not ruling out adding it later. I will say, though, that I plan to study and attempt to incorporate its useful unique features into Boost::regex before spending too much time trying to implement additional ICU search variants of Search++ functions. It remains to be seen whether I can successfully fork Boost::regex and extend/enhance it to make the ICU search option redundant. It definitely helps me that you are making note of ICU features you miss in Boost::regex.
Regarding the
Search++ Resultsdialog :- Would it be possible to add a Purge option, like in the context menu of the N++
Search resultsdialog ? You could use the same labelPurge for every searchor some equivalent ( I do likePurge before each search)
That makes sense and sounds possible. I’ll add it.
- Although written in your files list, I also noted that the number of scanned files is not reported in the
Search++ Results** dialog, unlike with the N++ **Search results` dialog
And, if possible, it would be best to include the chosen options of the current regex too, like
Regex, Case,...?!Agreed. I’ll add that information.
To end with, I noticed that, within the N++
Search results, it is possible to easily see all files which has matches, without seeing the matched lines :-
By hitting
Ctrland clicking on⊟, on the first line => The search collapsed after some time and then with a simple click on⊞ -
By using the
Fold Alloption of the Context dialog and then a simple click on⊞of the first line
I see your point. There is some flexibility missing. I will look for a way to make that easy to do.
- Would it be possible to add a Purge option, like in the context menu of the N++
-
Regarding the Search++ Results dialog :
Would it be possible to add a Purge option, like in the context menu of the N++ Search results dialog ? You could use the same label Purge for every search or some equivalent ( I do like Purge before each search )
A question about this. Since it is in a sense a “destructive” option, do you think it should be remembered across Notepad++ sessions, or should it have to be invoked afresh in each session where you want it enabled?
-
Hi, @coises,
In my opinion, this option seems more like a way of working than a delete option. So, I think this option should remain active between Notepad++ sessions. Note that it’s presently the case within the N++
Search resultspanel.But, of course, on re-opening N++, the N++
Search resultsand theSearch++ Resultspanels are both cleared silently, before any search !After opening Notepad+ and a first search, involving the N++
Search resultsor theSearch Resultspanels, you can easily un-check thatPurgeoption if you plan to compare multiple searches !BR
guy038
-
Search++ version 0.6.1 is available.
This update enhances the Search++ Results list, including adding more detail to the search headers, implementing an “automatically purge” toggle and recognizing single-click in the margin.
All comments, critiques and thoughts are welcome!
- Would it be possible to add a Purge option, like in the context menu of the N++
Search resultsdialog ?
- Although written in your files list, I also noted that the number of scanned files is not reported in the
Search++ Results** dialog, unlike with the N++ **Search results` dialog
[…]
And, if possible, it would be best to include the chosen options of the current regex too, like
Regex, Case,...?!To end with, I noticed that, within the N++
Search results, it is possible to easily see all files which has matches, without seeing the matched linesThis update addresses all those points. See the help for details about the commands in the results list.
I’m not handling folding quite the same way as Notepad++ does. (It could be that in time I will decide to try to emulate Notepad++’s appearance and behavior more closely.) What I did was add a context menu option (also available as Shift+Enter or Shift+double-click) for search header lines that toggles the fold state of all documents in that search without folding the search itself. So if you select Expand/Collapse Search, or double-click, the search folds or unfolds with the folding of documents within it unchanged. If you select Expand/Collapse Documents, or Shift+double-click, when the search is expanded, all documents within that search either expand or collapse (the opposite of whatever is the state of the first document).
I added a few other things, like clicking in a margin being equivalent to double-clicking in a header line or on the first position in a detail line. There is a purge toggle now, and search header lines include information about how many files were searched and the type of search (including modifiers).
- Would it be possible to add a Purge option, like in the context menu of the N++
-
Hello, @coises and All,
Thanks for this quick new version. And many thanks for implementing all propositions that I suggested ;-)) So far, everything seems to work nicely !
Now, one request :
- Would it be possible, in the
Search++ Resultsto prevent the displaying of the last character ( an?sign inside a rectangle ) in all lines ( Search line, Document lines and Matched lines ) ? Personally, I think it globally makes the display harder to read ! Just a personnal appreciation
And one question :
Natively, you can swap the keyboard focus between the N++
Search resultsand theCurrent documentwindow by hitting theF7key. I do not see an equivalent with your Search++ pluginI mean :
When, both, the
Search++and theSearch++ Resultspanels are opened, you can swap the keyboard focus between them with theCtrl + Hshortcut. How to toogle between theSearch++ Resultsand theCurrent documentwindow ?Best Regards,
guy038
- Would it be possible, in the
-
Hi, @coises and All,
Sorry, but I came across a serious bug regarding the
ICUsearch, sinceSearch++versionv0.6-
The Find in Selection, Find in Marked Text and Find in Whole Document options
-
The Find All in Selection, Find All in Marked Text and Find All in Whole Document options
Triggers the closure of Notepad++, without saving any configuration file and unsaved tabs
After some quick tests :
-
The Select, Mark and Show options,
-
The Count in Selection, Count in Marked Text and Count in Whole Document
Seems to work correctly in
ICUmodeBR
guy038
-
-
@guy038 said:
I came across a serious bug regarding theICUsearch, sinceSearch++versionv0.6Thank you for the detailed report. I can reproduce it… in the release version. It doesn’t happen in a debug version (which uses exactly the same code); so it’s a subtle error somewhere. I will find it.
I changed some existing code when I added Find in Files. You observation that this fault began in 0.6 will help me know where to look.
-
- Would it be possible, in the
Search++ Resultsto prevent the displaying of the last character ( an?sign inside a rectangle ) in all lines ( Search line, Document lines and Matched lines ) ?
Huh. I know what must be causing that, but I don’t know why it is causing it (on your system, but not on mine). (I set line ending characters to be displayed, but then to display with zero opacity. I do this so the marks I place to indicate a zero-length match will still show when the match occurs at the end of a line. The mark must be placed on the following character, and if the character isn’t shown, neither is the mark.)
Would you tell me what font you use for Notepad++ documents (the Search++ Results window copies that from the document window) and what you have at Settings | Preferences… | MISC. for rendering mode (GDI or DirectWrite)?
If I can figure out why you see the characters, hopefully I can figure out what to change so that you (and others with the same configuration) won’t see them.
Natively, you can swap the keyboard focus between the N++
Search resultsand theCurrent documentwindow by hitting theF7key. I do not see an equivalent with your Search++ pluginThe problem is that Search++ can’t (or shouldn’t… see below) control what shortcut keys do when focus is in Notepad++.
From the Search++ Results window, Ctrl+N will take you to the document. To switch from the document to the Results, though, I’d have to add a Search++ Results entry on the Plugins | Search++ menu, and then you’d have to set a shortcut for that in the Notepad++ shortcut mapper. You probably wouldn’t want to give up Ctrl+N, though.
The only way to get from Notepad++ to Search++ (or any plugin) is through a shortcut that’s either manually added in Shortcut Mapper or added by default in the plugin’s setup. (I’m still not sure how conflicts are resolved when a plugin defines a shortcut key that is already defined by default, by the user or by another plugin. I did define a few shortcut keys in Columns++ for manipulating rectangular selections, but it still bothers me that it feels a little… arrogant… to do that. My plugin might not be as important to the user as something else that also wants those keys.)
I am open to suggestions on how to manage this. I agree that consistency between navigation keys used when focus is in the plugin and when focus is in Notepad++ would be desirable, I just don’t have a plausible design for it.
- Would it be possible, in the
-
Hi, @coises,
Practically, I installed your plugin
Search++on a8.9_x64version of N++As you can see, in the screenshot below :

-
I did not hit the Show All characters option (
¶) -
I did a search on a specific folder (
^Music) -
Most of the time, I use the Consolas font (
Consolas / Version 7.00 / Disposition **Open Type** signé numériquement **True Type Contours)
But you found out the culprit : it’s just because the
GDI ( most compatible)option was selected !. Luckily, for any other option of the rendering mode, after closing an re-starting N++, this special character does not display, anymore !
Regarding the problem about swapping between the
Search++ Resultsand theCurrent Documentwindow, do not bother about it :-))May be, you remenber that I personally used the
Ctrl + Shift+ Nshortcut to open theSearch...option. Thus, each use of theCtrl + Shift + N, alternatively, opens or closes mySearch...docked panelSo, I was able to deduce a way ( rather long, of course ) to do that :
-
Firstly, use
Ctrl + Nshortcut to switch to theCurrent Documentwindow -
Secondly, use the
Ctrl + Shift + Nshortcut to put the focus on theSearch..panel -
Thirdly, use the
Ctrl + Hshortcut to get the focus on theSearch++ Resultspanel, again !
Even, on my French keyboard, the
Hkey is quite close to theNkey !BR
guy038
-
-
But you found out the culprit : it’s just because the GDI ( most compatible) option was selected !. Luckily, for any other option of the rendering mode, after closing an re-starting N++, this special character does not display, anymore !
Thanks for documenting that!
It should appear correctly in GDI mode too, of course. I suspect the problem will turn out to be that GDI mode doesn’t support alpha transparency, so my setting the opacity to zero is doing nothing. I’ll have to find another way.
-
Search++ version 0.6.2 is available:
- Fix a critical error that caused ICU searches to crash Notepad++.
- Fix unwanted characters appearing at the ends of lines in the Results list with Notepad++ rendering mode GDI.
- Fix regression of line ending symbols being in text color instead of white space color, and switch the CRLF symbol in GDI mode to one that hopefully renders more consistently.
Thanks to @guy038 for catching the ICU error and the unwanted characters in the results list in GDI mode.
(The ICU error appears to have been due to an uninitialized variable. The faulty code has been there from the beginning. As chance would have it, up until now it just happened to land on memory that contained an innocuous value. Hopefully I didn’t miss anything else similar…)
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