これはドリコム Advent Calendar 2014の10日目の記事です。
9日目は@hiracyさんによるサーバが増えた時にインフラ担当者がやってきたことです。
自己紹介
- @tkeo
- 2007年新卒でドリコムに入社、8年目
- メインの仕事はスマホゲームのサーバサイド(Rails)で、今年からクライアント(Unity)のほうも触り始めた
- Rails歴 6年、Unity歴 8ヶ月
- いまの作業比率は サーバ:クライアント = 2:1 ぐらい
今回の話
Unityを始めた当初はMonoDevelopを使っていたのですが、どうにも手になじまず腹が立ったので、普段サーバ側の開発で使っているemacsを使うことにしました。
以下はいろいろハマりながらも、インターネット上の先人の力を借りてまとめた自分の設定です。
環境
- Mac OS X Mavericks
- emacs 24.4.1
- パッケージ管理はcask
csharp-mode
これがなくては始まらないC#用のメジャーモード。
1 2 |
|
1 2 3 4 5 6 7 8 9 |
|
自動補完
OmniSharpServer
C#のコードをパースしたりいろいろやってくれる(らしい)サーバです。 他のエディタでも使えるらしいです。
monoが必要なのでインストールして、
1
|
|
あとはREADME通りにビルド。
1 2 3 4 |
|
するとOmniSharp/bin/Debug
にOmniSharp.exe
ができているはず。
試しに起動してみる。
1
|
|
するとずらずらっとLoadingほげほげと出てきて、Solution has finished loading
で起動完了。無事起動が確認できたらCtrl+Cで止めておく(このあとemacsから起動するので)
omnisharp-emacs
OmniSharpServerをemacsから使うためのものです。
1 2 |
|
1 2 3 |
|
csファイルを開いた時にslnファイルを選べと言われるので、選んであげるとバックグラウンドで起動してくれます。
M-x omnisharp-auto-complete
で候補表示、M-x omnisharp-go-to-definition
で定義にジャンプできます。
適当なキーバインドを設定しておくと便利。
文法チェック
omnisharp-emacsにcheckerが含まれていて、OmniSharpサーバと連携してチェックをしてくれます。
1 2 |
|
1 2 3 4 |
|
emacsclientアプリ化
Unity上でcsファイルをダブルクリックして開きたくなったときのための設定(あまりしないけど)
Unityの設定で外部エディタに指定できるのはMacのアプリ(*.app)だけなので、emacsclientを起動するアプリを作ります。 vim用にやっている人がいたのでその設定を参考にしました。
アプリを作るのにはAutomatorを使います。手順は以下のとおり。
- アプリケーションを選択。
- アクション>ユーティリティの中にある「AppleScriptを実行」を右にドラッグ&ドロップ。
- 下記コードを貼り付けて、appを適当な場所に保存。
1 2 3 |
|
作ったappをUnity上で指定してあげると、外部エディタとしてemacsが使えるようになります。 あとはserverとして起動するのを忘れずに。
1 2 3 4 |
|
リファレンス検索
rubyの開発でも使っているDashを使えるようにします。
dash-at-point
1
|
|
1 2 3 4 |
|
カーソル位置の単語で検索します。 上記設定ではcsharp-modeのときはキーワード “cs” が設定されたdocsetの中から検索します。
Dash側で画像のようにキーワードを設定しておくと、.NET FrameworkとUnity 3Dのドキュメントを同時に検索できます。
自前docsetを作る
doxygenを使えばDash用のdocsetを作れます。 コードを含むアセットを購入した時に(たまに)やってます。
1
|
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
こんな感じの設定ファイルを作って、まずはHTMLドキュメントを生成。
1
|
|
htmlディレクトリに移動してmakeをたたくとdocsetが作られます。
1 2 3 |
|
その他
日本語を含むときはBOM付きで保存しないと化けます。C-x RET f
でutf-8-with-signature
に変更。
まとめ
以上、MonoDevelopを使わずにemacsでUnity開発するための設定を紹介しました。
明日はみっきーさんです。