Attached is a straw-man patch that is not production-quality but illustrates some of the concepts I'd like to see: * ripgrep supported for M-? * ripgrep auto-detected and used by default if available * treat ripgrep as a search method of its own and not just a different grep program * corollary: selection of search method should be made symbolically and not by supplying shell command strings Concerns not addressed by the patch: * unify back-ends and customisation options in xref.el and symref/grep.el * tramp * correct way to auto-detect ripgrep -- I have no idea, really, and would gladly settle for something dead simple, perhaps looking at the output of rg --version, instead of the voodoo code in the patch * other search methods -- for example, it would be interesting to allow use of Spotlight or similar indexed searching tools in some cases. * speeding up the parts that are not ripgrep. If the actual command (ripgrep or something else) takes zero seconds, what if anything prevents a crisp snappy response from Emacs? That said, it appears to work. Right now I'm not near my Linux machine and can just compare against the fairly slow BSD grep that comes with macOS, so obviously the speed-up is tremendous.