First, let me describe the problem this would address:
Sometimes I have to repeatedly perform a particular search, intermixed with performing other searches. For example, I might need to perform this particular search sequence:
- Text = main(
Look in: <project>
Match case
Don't match whole word
Don't use regular expressions
Color matching = functions only
- Do some editing
- Text = myString1:b*+=?*"\);"
Look in: C:\MyProject
Don't match case
Match whole word
Use regular expressions
Don't use color matching
- Do some editing
- Text = main(
Look in: <project>
Match case
Don't match whole word
Don't use regular expressions
Color matching = functions only
- Do some editing
- Text = new:b*MyClass\(:b*:a*\:b*);
Look in: <project>
Don't match case
Don't match whole word
Use regular expressions
Don't use color matching
- Do some editing
- Text = main(
Look in: <project>
Match case
Don't match whole word
Don't use regular expressions
Color matching = functions only
This example requires that I select and deselect several options for every search. However, notice that Steps 1, 5, and 9 are identical, and I would like to recall the entire search configuration from Step 1 for Steps 5 and 9. Currently, the only thing I can recall from Step 1 is the search text.
This is a proposed solution: The search history records the entire search configuration, not just the search text. As I select text from previous searches (whether using the up and down arrow keys or using the drop-down), it sets all of the search options to what was used for that text, not just the text. For compatibility, also provide a configuration option to disable this feature.
A note on this proposal: The way that it is currently implemented (V 27.0.0.1), if the text of the search does not change, then that text is not added to the search history. If this proposal is implemented, then two different searches with the same text but different search options would be entered separately into the search history.