2012年9月24日月曜日

tab・space混じりのコードにキレてくれるemacs

ぐぐって出たものを見つつ、設定を書きました。
他の方に見てもらうコードは、混じってたら絶対まずいです。tabかspaceだけでインデントしないと怒られます。

ぐぐって出てくる方はtab派じゃなくspace派が多かったので、
tab派向けに、あんまりtabが目立たない、spaceと混じった時だけ怒るような感じにしてみました。

参考にしたもの: http://murakan.cocolog-nifty.com/blog/2009/01/emacs-tips-b314.html

;;======================================;;
;; tab, full-space escape               ;;
;;======================================;;
(defface my-face-r-1 '((t (:background "gray15"))) nil)
(defface my-face-b-1 '((t (:background "red"))) nil)
(defface my-face-b-2 '((t (:foreground "gray20" :underline t))) nil)
(defface my-face-u-1 '((t (:foreground "red" :underline t))) nil)
(defvar my-face-r-1 'my-face-r-1)
(defvar my-face-b-1 'my-face-b-1)
(defvar my-face-b-2 'my-face-b-2)
(defvar my-face-u-1 'my-face-u-1)
(defadvice font-lock-mode (before my-font-lock-mode())
  (font-lock-add-keywords
   major-mode
   '(
     ("\t" 0 my-face-b-2 append)
     (" " 0 my-face-u-1 append)
     ("[ \t]+$" 0 my-face-b-1 append)
     (" [\r]*\n" 0 my-face-r-1 append)
     ("\t+ +" 0 my-face-b-1 append)
     )))
(ad-enable-advice 'font-lock-mode 'before 'my-font-lock-mode)
(ad-activate 'font-lock-mode)

0 件のコメント:

コメントを投稿