目次

仕事で C/C++ のコードを書くことが多いです。 しかし、特にコーディングスタイルが決まっているわけではないです。自分のところだけはきれいに整えようということで、Google Style Guideを Emacs に導入しました。

Google は C++ Style Guide を公開してます。それに準拠した Emacs のパッケージgoogle-c-styleも公開しています。

ドキュメントに書いてある一番単純な設定はこちら。

(package-install 'google-c-style)
(require 'google-c-style)

(add-hook 'c-mode-hook 'google-set-c-style)
(add-hook 'c++-mode-hook 'google-set-c-style)

しかし、気に入らないところが2点あったので、少しカスタマイズしました。 google-c-stylecc-modeの設定をGoogle Style Guideに合わせているのパッケージなので、cc-modeの設定で上書きが可能です。

僕は以下の設定を加えました。

  • Tab をハードタブで4つ
  • switch case のインデントなし

それらの設定を関数にまとめて、hook 時にコールするようにしています。C/C++ 両方で適用させたいのでこの形にしました。

すべての設定はこちら。例のごとくパッケージマネージャはデフォルトのpackageを使っています。

(package-install 'google-c-style)
(require 'google-c-style)

(defun cc-mode-init ()
  (google-set-c-style)
  (setq indent-tabs-mode t)
  (setq c-basic-offset 4)
  (c-set-offset 'case-label 0)
)

(add-hook 'c-mode-hook 'cc-mode-init)
(add-hook 'c++-mode-hook 'cc-mode-init)

Google Style Guideではなくてもいいですが、何かのコーディングスタイルをベースにカスタマイズするのが楽でいいですね。

cc-mode の公式ドキュメントはこちらです。日本語の情報だとこちらがわかりやすいです。

今度はフォーマッタも導入したい。clang-formatとかかなぁ。-> 追記 導入した

同じカテゴリの記事