With so many "change-able" behaviours, we do need an option page (in Tools Options).
Most people will want there own mix of defaults, and not having to toggle them all the time.
Or at least sticky settings.
the user must enable the multi-word search himself, otherwise many users will be surprised that the search "stopped working" as usual. So we need another button or option
Not a button (well maybe a dropdown, see TortoiseGit) ... Maybe make it a context menu, on the filter edit. Well ok, that is for the copy/paste/... stuff, but it could have the rest in there.
See image how it works in TortoiseGit
Though... this is for filters everywhere. FilterEdit are used throughout the IDE. And they should offer all the same behaviour.
Therefore this needs to be an option.
If it then can be toggled away from the option, then should that
- affect the one filter only (persistent, or for one search)?
- affect all filters
If the mode can be changed, some way to see the current mode would be nice (background image?)
I have added MultiWordSearch to several windows already. I believe that it should work everywhere the same, so that it is convenient for the user to use it. Therefore, it is desirable to make the search in this window similar. That is, we just need to try to expand it.
It should definitely the same everywhere.
Just need to define what it should be everywhere. The start you made is great, but lets get all the ideas together.
And also ensure that later additions can be made easily to affect all the windows....
Btw: "Debug Inspector" has a filter (but not yet a filter edit). It could benefit too.
And watches/locals will eventually get it too.
Here there will also be search in different "columns": variable-name/expression ; value ; address; ...
' - quotation marks (this is usual for Pascal programmers - all string constants are enclosed in such quotation marks).
'' - to escape the quote character itself (also from Pascal).
Ok.
I still think alternatively / optional escaping with \ is a good idea too. Many people are used to that too (like in regex). And if we have global options, then it is easy to toggle.
will allow you to continue using double quotes to search only at the beginning, end, or entire phrase.
Ok.
Btw, they alse need to be escape-able. And I am not that sure about: "" (and then also how to escape the coma , ? Or the space for that matter)
Ok escaping space (and coma) isn't needed, if you put all into single quotes. But if you modify a search term it may be less work to type \, than to navigate to the begin of the current sub-term and insert the opening `
But it is desirable to replace the "," sign in this window with "|"
+1
Correct above for | instead of ,
To search within a path, I suggest using the "@" sign, like so:
I do like the idea of having a "search operator" for that.
But see my comment about watches. There are several columns.
And also in the search result, you have the following options:
- search all
- search only found text
- search only path
- search only line-num
- search all, except: ...
If we change it to
@: search only path
@t: search only found
Text
@!t: search except found
Text
@tl: text and line
@p: Path (if omitted "p" is default), hence @: works
@!: all except path
Its a bit complex, better ideas welcome.
Yes, I wanted to suggest something similar, at least for TTreeFilterEdit and TListFilterEdit.
Shouldn't it be in the base class ?
It may have a name like: "AllowOnlyASCII" or "OnlyQWERTY".
Or should it be a an enum?
- Only Latin
- Only digits (that may be of interest(
- Only digits, and dot or coma (locale dependent)
- Only Latin chars
- Only Upper (or only lower) // that may be better with a "set of enum"
Or a String, that contains all allowed chars. If that string is limited to #32..#127 it can be turned into a set for lookup.
Just to say, I know I am going a bit overboard with some of the ideas. Just throwing in everything I can think of.
Especially published properties can be hard to extend later. Enum/set can ease that a bit.