TDD status on the Emacs mode line
Emacs Lisp
Pull request Compare This branch is 17 commits behind algernon:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

TDD status mode-line widget

Build Status

This little package implements a mode-line widget to track one's current test-driven development state (FAIL, PASS, or REFACTOR). Fully customisable faces and states and all that. The idea is based on a similar solution for Vim.



Once the package is downloaded, either via a git checkout or simply saving the tdd-status-mode-line.el file somewhere on your load path, simply requiring it is all you need. The package adds the TDD status to mode-line-misc-info, you need to have that in your mode-line for the package to work.

The package is also available from Marmalade:

(require 'package)
(add-to-list 'package-archives '("marmalade" . ""))
(package-install 'tdd-status-mode-line)

(require 'tdd-status-mode-line)


The package defines three global key bindings:

  • C-x t n advances the state (from none to FAIL, then to PASS and onto REFACTOR, and finally back to FAIL).
  • C-x t p steps the state back (from PASS to FAIL, etc).
  • C-x t c clears the state and hides the widget.

By default, the TDD state is global. If one wants to make it buffer local, the tdd-status/current-status-index variable needs to be made buffer local:

(require 'tdd-status-mode-line)
(make-variable-buffer-local 'tdd-status/current-status-index)