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 | コメント | トラックバック |
blog comments powered by Disqus