Emacs and occurs mode for Haskell

λ June 4, 2019
Tags: emacs, haskell

Just how I’ve used Emacs for over twenty five years and never used occurs mode until tonight I will never know!

Just recently I have been spending a lot of time developing a small project, an editor of sorts, using SDL with Haskell bindings, and the time came to split up the code into modules.

Anyway, to cut a long story short, the only reason at that time to do this was because I was finding it hard to find a specific function in the buffer in a convenient manner. So, thinks I, perhaps I should….hang on…. what about grep in buffers for .*::.*, which as a rudimentary first pass should at least find those lines that have function signatures.

So I googled and…. M-s o came up trumps! This is the result of running it in a buffer full of Haskell code:

Occurs mode output showing candidate functions

As you can see, the buffer below shows all the candidates in the buffer and all I have to do is switch buffers (F12 for my setup) and select one. A simple and effective solution.

For added ease, it’s simple enough to bind it to a keystroke.