A sign of ag.el's success is that users are learning its commands before occur.el!
miniblog.
Related Posts
I really like the MELPA model of packaging directly from git. It solves the problem of forgetting to release something -- just merge a PR and you're done.
It also makes version number bumps much less important.
You could go even further in a statically typed language and also figure out when breaking changes occur.
Today I learnt about a cunning trick used by GNU diff to make Myer's algorithm faster: https://github.com/mitsuhiko/similar/issues/15
If you do an initial pass to find items that only occur on one side, you can discard them before diffing! They'll always be shown as changed.
My Rust rule of thumb: if there are no lifetimes in your return type, you probably don't need to specify the lifetimes in your arguments.
(I know clippy will point out simple cases of unnecessary lifetimes, but plenty other cases occur IME.)
