Important search changes coming in next release(The changes described here have now been implemented in the 0.9.3 release, Nov 27.)
Before I release the next build, I want to describe a few important changes in how Echo searches for clips. This will not be part of the documentation, but I want to put out this explanation for those who are already using the app.
My goal is to design the search so that it requires the absolute minimum typing and effort. The current design does not entirely follow this goal. Using Echo dozens of times a day, I've noticed that I hardly ever use the “wildcard” and “advanced” search modes, even though I expected them to be fun and useful. Something about them was keeping me from using these features. That something was, I think, the search modes themselves. More precisely, the requirement to switch modes and having to remember which mode was active at any given time.
My first solution was to create a “smart” mode, where Echo would detect if you have typed a boolean expression (foo AND bar
) or used wildcards (foo*bar
), and automatically pick the correct mode to interpret your query. It seemed like a good idea at the time, but after much trial and error, it proved to be too confusing: there are too many potential “border cases”, where Echo could make the wrong decision, or where there was no clear reason to choose one mode over another. (The last release retained a small part of that idea in the new “auto detect wildcards” option, which helped a little bit, but still added complexity to all the existing search-related settings.)
I realized I was trying to rectify the problem of “too many search modes” by adding yet another search mode
So I decided on another tack. The new version of Echo radically simplifies the search modes and settings, without sacrificing functionality. Here is what's about to change:
1) The “wildcards” search mode has been removed.
It doesn’t exist anymore. There are only two modes now: basic and advanced.
2) The “pattern position” setting has been removed as well, because it is not needed anymore.
3) The “auto detect wildcards” setting (added in the last release) has been removed as well.
4) The “basic” mode now handles wildcards
) the way you expect. In essence it works the way the “wildcards” mode used to work: you can use wildcards anywhere in your search string.
5) If you want to search for the literal asterisk and question mark, you need to “escape them” with a backslash: “how are you\?
”). Since backslash is now a special “escape” character, it needs to be escaped itself if you want to find the literal \ character. For example, to search for filenames, you should type “c:\\
”, where previously “c:\
” would suffice.
But help is coming! You only have to double the backslash if it is followed directly by a wildcard, or another backslash, in order to avoid ambiguity. In the above example though, if you want to search for paths, you can still type “c:\”
(without doubling the backslash), and Echo will still do what you expect. All to minimize the typing! (If you are uncertain or Echo returns unexpected results, you can still double the backslash to be sure.)
Essentially, I am betting here that using wildcards happens more often than searching for the literal * and ? characters. On the other hand, since searching for the backslash might be more common, Echo tries to be smart and does not require the backslash to be doubled UNLESS it is immediately followed by a * or ? wildcard or by another backslash.
6) This redesign also lets Echo support wildcards in the “advanced” mode, which previously did not support them. Now you can use wildcards within the logical expressions too: “foo* AND *bar
So, in short, there are now two modes instead of three, and you can use wildcards everywhere. The only option that remains is “Auto Wrap Wildcards”. It has remained the same, but let me explain what it does, because now it’s more important than before.“Auto Wrap Wildcards”
now applies to both the basic and the advanced mode. Echo assumes that most of the time you search for substrings – that is, you don’t care WHERE the text occurs inside your clips, as long as it does occur somewhere. So if you type “dog
”, Echo will find “doghouse
” and “lapdog
”. This is achieved by automatically wrapping your search string in wildcards, so when you type “dog
”, Echo actually searches for “*dog*
”. But, this happens ONLY if the “Auto Wrap Wildcards” is enabled. Without this option, Echo will not add any wildcards to the search string, so you would only find clips that equal the word “dog”. (This is still useful, since you may use wildcards in the middle: “do*g
” would match “doing
”, or any other clip that begins with “do” and ends with “g”)
What if you want to search for clips that begin OR end with a specific string? Use the wildcards as you normally would. Even if “Auto Wrap Wildcards” is enabled, it will not add any wildcards if your search string already begins or ends with a wildcard. So, to find all clips that start with “do
”, search for “do*
”. To find any clips that end with “g
”, search for “*g
”. “Auto Wrap Wildcards” ONLY adds wildcards if your search string does not already contain them at either end. It’s auto, but smart