cc-mode for MySQL
ここ1年くらいずっとEmacsのデフォルトのcc-modeを使っていたのだけれども、MySQL的なコーディング規約に微妙にあってなくて、手作業で直してたのですが、もういいかげん限界だーとおもっていろいろ調べていたら、MySQLのwebサイトにMySQL開発者的cc-mode設定例が載ってました。
URL:http://forge.mysql.com/wiki/MySQL_Internals_Coding_Guidelines
(require 'font-lock) (require 'cc-mode) (setq global-font-lock-mode t) ;;colors in all buffers that support it (setq font-lock-maximum-decoration t) ;;maximum color (c-add-style "MY" '("K&R" '("MY" (c-basic-offset . 2) (c-comment-only-line-offset . 0) (c-offsets-alist . ((statement-block-intro . +) (knr-argdecl-intro . 0) (substatement-open . 0) (label . -) (statement-cont . +) (arglist-intro . c-lineup-arglist-intro-after-paren) (arglist-close . c-lineup-arglist) )) ))) (setq c-mode-common-hook '(lambda () (c-set-style "MY") (setq tab-width 8) (setq indent-tabs-mode t) (setq comment-column 48))) (c-set-style "MY") (setq c-default-style "MY")
おぉ、楽だー。なんでもっと早くみつけなかったんだろ。。orz
と言ったものの、やっぱり細かいところで気に入らないところがでてきて・・・。
(add-hook 'c-mode-common-hook '(lambda () (c-set-style "k&r") (setq c-basic-offset 2)))
いろいろ調べて、とりあえずこんな感じでごまかすことに。公式サイト設定だとtab幅が5になっちゃうんだよね。