リファクタリングが大好きな人のためのoutputz.el設定 -削除した文字数も記録したい!-

outputzは書いた文字数を記録してくれるWebサービスだけど、リファクタリングとかだと削った文字数を記録してくれるとうれしいよね、みたいな話を今日してた。

というわけで、とりあえずoutputz.elの設定を書き換えて削除した文字数も記録するようにしてみた。なんかoutputzの趣旨からずれてる気がするけど、大丈夫かな。

(require 'outputz)
(setq outputz-key "<復活の呪文>")
(setq outputz-uri "http://%s.com")
(setq outputz-minus-uri "http://minus-%s.com") ;; 文字が減ったときに使うuri
(global-outputz-mode t)

(add-hook 'outputz-mode-hook
	  (lambda ()
	    (set (make-local-variable 'outputz-minus-count) 
		 (- (point-max) (point-min)))))
(add-hook 'find-file-hook
	  (lambda ()
	    (when outputz-mode
	      (setq outputz-minus-count
		    (max 0 (- (point-max) (point-min)))))))

(defadvice outputz (after outputz-minus)
  (when outputz-mode
    (let ((current-count (- (point-max) (point-min))))
      (when (and (> current-count 0)
		 (< current-count outputz-minus-count))
	(let ((outputz-uri outputz-minus-uri))
	  (outputz-post (- outputz-minus-count current-count))))
      (setq outputz-minus-count current-count))))
(ad-activate-regexp "outputz-minus")