Introducing Swiper
10 Mar 2015I like the idea of
helm-swoop, but it
somehow has minor annoyances that stop me from using it, like
automatic helm-input, and especially the circular candidates. Or maybe it's just NIH talking.
Anyway, I'm rolling my own, and it's called swiper.

Swiper in action
Here's how it looks like:

As you can see, the search string "dec fun pro" is transformed into
a regex "\\(dec\\).*\\(fun\\).*\\(pro\\)", and each group in the
matches is highlighted with a different face. This is quite similar
to the way re-builder does it. In fact it's possible to use swiper
as a poor man's re-builder (since it matches only single lines).
I'm doing my own matching this time, as the part-swapping behavior of
helm-match-plugin is more annoying than useful.
Also note that:
- The whole
*swiper*buffer is fully syntax highlighted. - The appropriate parts of the matches are highlighted as well.
Swiper in a dired buffer
Here's another screenshot:

It appears that helm is ignoring the display of file attributes, since they have
a sort of invisible property set. I kind of like this behavior.
See how the faces are recycled
I've defined only 4 faces currently (foxes aren't unicorns, the palette is quite limited), so they loop about if you have many groups:

Yup, the technology is there. Although a powerline theme for the
helm mode line is still missing.