Subject: bug#22479: 25.0.50; isearch and query-replace histories do not remember if we were looking for symbols

From: Dima Kogan <[email-masked]>
Date: Sun, 31 Jan 2016 09:20:33 -0800

Drew Adams <[email-masked]> writes:

>> > I don't know how much complexity we want here. Each history item can
>> > be a richer structure than just the search string. Too much?
>
> Yes, too much (IMHO).  Trying to solve a non-problem or a minor problem.

I won't claim that this is the most pressing thing we have to work on,
but to me, an editor is a large number of small, nice things. So I do
this it's worthwhile to fix this

> People have been using Isearch for decades without this bothering
> them.  And it's not as if it is difficult for a user to reestablish
> such a state (symbol search) interactively.

I only started using the symbol-finding functionality of isearch
recently, and it's clearly underbaked, and that bothers me.

> 5. More ideas? ;)

- We can retain the two histories: regex, non-regex

- Any fancy (word, symbol, etc) searches can be stored into the regex
  history, bookmarked with the appropriate regexen ("\_<", "\_>" for
  instance)

- When reading the history to present to the user, these can be parsed
  out. So for instance when the user looks through the symbol-search
  history by hitting

  M-s _
  C-s

  emacs can look through the regex history, only selecting entries in
  \_<...\_>. The C-M-s history can either include all of these, or show
  only unbookmarked entries; both would be ok, I think.

This should be sufficiently compatible with external packages. I can do
the implementation if this sounds reasonable.