• Showing Page History #100783

Show page source of ProtobufMode #100968

== Emacs protobuf-mode メモ
EmacsでProtocol Buffersの定義ファイルを編集する準備のメモ。user:ornse01 の環境でのメモなので、参考にする方は適宜読み替えてくださいな。

== ソース
 * https://github.com/google/protobuf/blob/master/editors/protobuf-mode.el
公式のリポジトリにelispが置いてあります。最終更新が5年前だけど(2014/12/04現在)。oneofとかまだ対応してないっぽい。

== インストール
 1. ~/.emacs.d/lisp 下 に上記のprotobuf-mode.elをダウンロード
 1. ~/.emacs.d/init.el に以下を追加。上記ファイルに書かれてる内容を参考にした
{{{ code elisp
;; protobuf-mode
(require 'protobuf-mode)
(setq auto-mode-alist (append '(("\\.proto$" . protobuf-mode)) auto-mode-alist))
}}}
 1. 拡張子".proto"のファイルを開けば prorobuf-mode になる

== Emacs 24.3 以降の場合
{{{ code
Symbol's function definition is void: cl-macroexpand-all
}}}
というエラーが出ました。

そういうときは以下を追加
{{{ code elisp
(require 'cl)
}}}

なんでも、clライブラリってのが24.3以降から使われなくなったとか。んでprotobuf-modeがそれ使ってるからエラーを出すそうで。

明示的に呼べば大丈夫っぽい。

参考:[http://sweng.web.fc2.com/ja/program/groovy/emacs-groovy-mode.html TIPS for Software Engineers:Groovy > Emacs Groovy mode]