Editor: The search filter system is unlearnably complex
You cannot in good faith expect ordinary game content creators to learn an intricate and esoteric filter declaration syntax just to input simple substring searches.
Proposed replacement:
- substring of any cell:
vivec
- substring of specific column:
id:vivec
- negation of the above:
-vivec
and-id:vivec
- a way to look for strings with spaces using double quotes:
"Vivec, "
(double quotes should also work around column names) - a way to do wildcard ranges: (.* in regex)
"Ald*Shrine"
- ways to compare to numbers:
charges:>=150
- implicitly
AND
ing filters together:Vivec urn
- explicitly
OR
ing filters together:Vivec OR ruhn
- column names are case-insensitive, like they already are
- search for the exact contents of any cell:
Vivec$
Most of these are lifted from how web search engines work.
Unlike programmer-facing query systems, it is exceptionally rare for a content developer to need to filter down to exactly one specific object. Merely placing the desired object somewhere on the screen that they can easily find it is enough. The filtering system described above is sufficient for this purpose. It does not matter whether the existing filter system continues to exist or not; it is only important that a simple system like the ones described above is the one that users actually interact with by default.
As such, the filtering system does not need to support excessively precise combinations of AND and OR operations, but if it really needs to, just imagine that the system also supports parens. If parens should be supported, the specifics of how they are parsed are not important.
The filtering system also does not need to support regexes, but if it must, they should be a secondary syntax, like `r".Vivec." or something behind a toggle, like programmer-focused text editors do them.
No bikeshedding. The specifics of this system are not important, only that it's far simpler than what we currently have, similar enough to web search engines to be learnable without RTFMing, and that it is indeed usable for "placing the desired object somewhere on the screen".