notes from /dev/null

by Charles Choi 최민수


11 May 2026

Enhancing Elisp Development with Context Menus

As celebrated as Emacs is for its programmability, I find the actual process of developing Emacs Lisp (Elisp) to be quite underwhelming. Developing in Elisp has meant learning its libraries and idioms, which is to be expected. What I really don’t care for though are the arcane keybindings associated with doing basic things like evaluating, navigating (Xref), and debugging (especially debugging). While I’ve already committed to muscle memory most of said keybindings, I’d argue that having a mouse-based “point and click” interface is beneficial for both novice and experienced Elisp developers alike, as it lets one focus on the code and not on recalling the right key incantation all the time.

The addition of context-menu-mode in Emacs 28 has provided the opportunity to build a mouse-based UI for Elisp development and I’m happy to announce the availability of one in the latest v1.3.0 update to Anju, now on MELPA.

To get an idea of what’s available in the v1.3.0 update, here’s a screenshot of the context menu when normally editing an Elisp file where the point is on the symbol foo.

img

If foo is instrumented for debugging and run, the context menu is adjusted to provide Edebug commands as shown below.

img

The context menu enhancements provided by Anju take full advantage of built-in functions that identify context at point. Is the point on a symbol? In a function? In an ERT test? On a lambda? The menu items added by Anju take these factors into account to provide a relevant menu offering.

Users can read more about Anju’s context menu enhancements for Elisp development at Emacs Lisp Context Menu (Anju User Guide).

Some backstory with Edebug

Back in 2024, I did a deep dive into Edebug so as to give a presentation on it at the EmacsSF meetup. In doing so, I realized that all the core features for having an Elisp IDE were there, but no good UI to present it. I set upon prototyping one using Transient, with decidedly mixed results due to both Edebug and Transient fighting each other over window management.

A later Edebug UI prototype using the toolbar was attempted but it also had its issues, particularly with layout (or lack thereof) and toolbar-specific bugs in macOS. But a benefit of using the toolbar was that its UI interactions did not interfere with window management. The context menu also shares this benefit.

Closing Thoughts

The context menu has markedly improved my developer experience with Elisp, as I find myself using it more than typing out keybindings. Even with keybindings, I’ll use the Casual Elisp Transient to accomplish most Elisp interactions that don’t require Edebug.

That said, I’m not here to eschew keybindings. I still use them, when convenient. But in many circumstances they are not. The context menu can provide an easier way to achieve the same thing. Isn’t that a good thing?

emacs   anju

Past Articles

29
APR
2026

Bulk Search & Replace Commands for Files and Buffers in Emacs

An inventory of bulk commands to search and/or replace multiple files or buffers in Emacs.

read more
24
APR
2026

Some nice to know keybindings when using the mouse in Emacs

Some keybindings to know whenever you’re working with a mouse in Emacs.

read more
23
APR
2026

Call for Testing: Scrim v1.1.3 TestFlight on pre-release Emacs 31

Looking for folks who want to test a new pre-release build of Scrim v1.1.3 which fixes it for Emacs 31.

read more
8
APR
2026

Computing Days Until with Emacs

Countdown clocks are always useful. Here’s one for computing days until in Emacs.

read more
7
APR
2026

Calming Mouse Interaction in Dired

Single click to open a file in Dired is too twitchy. This post shows how to change it.

read more
30
MAR
2026

Announcing Anju

Announcing Anju, a project to align mouse interactions in Emacs with contemporary (circa 2026) expectations. Now available on MELPA.

read more
3
MAR
2026

Casual now available on NonGNU ELPA

Casual is now available on NonGNU ELPA.

read more
19
FEB
2026

Announcing Casual Org

At long last, announcing Casual support for Org Mode.

read more
10
FEB
2026

Deburring Emacs Imenu GUI Configuration

A bit of tuning to get Imenu GUI configuration working with any derived mode from prog-mode.

read more

Page 1 / 19   >

 

AboutMastodonBlueskyGitHub

Feeds & Tags
Get Scrim for macOSGet Captee for macOS

Powered by Pelican