emacs transient menu

Transient Menus in Emacs pt. 1

Magit is an innovative package that provides an amazing interface over git. The complexity of its UI is completely hidden away thanks to another package born out of Magit called Transient. Transient is so innovative that it was added to emacs core in 2021. Understanding at least the basics of Transient can provide alot of value in building tools to enhance various workflows. From the official manual Transient is the library used to implement the keyboard-driven “menus” in Magit. It is distributed as a separate package, so that it can be used to implement similar menus in other packages. ...

November 13, 2024 · 11 min · JD

Managing Local Services in Emacs with Prodigy

Prodigy is an incredible tool of convenience for me. I’ve been slowly migrating my entire workflow into Emacs and Prodigy has become a staple in my day to day. What is Prodigy? Manage external services from within Emacs I came up with the idea when I got to work one Monday morning and before I could start working I had to manually start ten or so services. To get rid of this tedious work, I started working on this Emacs plugin, which provides a nice and simple GUI to manage services. ...

March 15, 2024 · 6 min · JD

Finding an Emacs Bug

I was recently working on a porcelain for local database management in Emacs, tablemacs (name tbd). The general idea here is to give a magit style interface for interacting with a local database. This mode is built off SQLi (sql-interactive-mode) and uses a hidden comint buffer to execute commands. Everything was working great till I encountered a really weird issue. Let me preface everything with, I’m still very new to elisp and am still very much a beginner. Not only is it a radically different language than what I’m used to, the paradigms are also just very unique to emacs. If some of the code here looks wrong, it’s a mistake in translation as some of it was modified for ease of understanding. ...

January 2, 2024 · 6 min · JD

Trying out GCC Emacs

I love Emacs. I’ve been using it since late 2017 and have had an on and off again relationship with it. It’s a great tool for anyone who likes to tinker around with software. Like any relationship, there are some pain points I have that consistently want to push me away from Emacs, one of which is performance. I’ve used Doom Emacs for a really long time and hlissner has done an incredible job of building a fantastic configuration setup, and compared to other configuration frameworks I’ve used, Doom is the most performant and most versatile. That being said, no matter how much optimization is done on the configuration side, Emacs can still be extremely slow, especially compared to it’s Vim counterpart. ...

February 20, 2021 · 3 min · JD

Using Run Command in Emacs for RSpec Watch Mode

Run Command is a really nifty Emacs package that abstracts away running arbitrary shell commands into a nice ivy or helm (or other completion frameworks) frontend. I saw a few of the examples and immediately got an idea for using it to build an RSpec watch mode. It’s a tiny optimization to my work flow as re-running the test command is just a few keystrokes in of itself, but getting automated feedback means I get to focus on other things while writing tests. ...

February 2, 2021 · 4 min · JD