Emacs を使っているときに TDD を意識するための Emacs Lisp
この記事を読んで、素敵なEmacs Lispだなと思いました。
- TDDの勘所とTDD支援超簡易Emacs Lisp - aikeの日記
-- http://d.hatena.ne.jp/aike/20080217
今回一番厳密に守っていたのは「Think」「Red」「Green」「Refactoring」のモード切り替え。今どこのモードで作業をしているのかを意識して、例えばテストNGが残っている状態(Red)では絶対にリファクタリングをしない、というような進め方をしていました。
背景よりはカーソルかな、と思ったけれど、
カーソルが白いと、見つけられなくなっちゃいます。
その後、以下を参照して、Emacsのステータスバーの色を、C-c + mで変更できるようにしました。
- unknownplace.org - 2008/02/21 - TDD支援elisp
-- http://unknownplace.org/memo/2008/02/21#e001
僕は背景が黒なので、考え中の色を黒にしました。
以下を.emacsに追記しました。
;;
;; via http://unknownplace.org/memo/2008/02/21#e001
;; C-c + mでステータスバーの色が変わる。デフォを黒にした。
(defvar tdd-bgcolor-alist
'(("Think" ."black")
("Red" ."#ff4444")
("Green" ."#44dd44")
("Refactoring"."#ffaa44")))
(defvar tdd-bgcolor-mode 3)
(defvar tdd-bgcolor-mode-name "")
(let (
(cell (or (memq 'mode-line-position mode-line-format)
(memq 'mode-line-buffer-identification mode-line-format)))
(newcdr 'tdd-bgcolor-mode-name))
(unless (member newcdr mode-line-format)
(setcdr cell (cons newcdr (cdr cell)))))
(defun tdd-bgcolor-rotate ()
(interactive)
(let (pair)
(if (>= tdd-bgcolor-mode 3)
(setq tdd-bgcolor-mode 0)
(setq tdd-bgcolor-mode
(+ tdd-bgcolor-mode 1)))
(setq pair
(nth tdd-bgcolor-mode tdd-bgcolor-alist))
(setq tdd-bgcolor-mode-name (format "[%s]" (car pair)))
(message tdd-bgcolor-mode-name)
(set-face-foreground 'mode-line (cdr pair))))
(global-set-key "\C-cm" 'tdd-bgcolor-rotate)
投稿者:としのり 日時:23:59:59 | コメント | トラックバック() |

