Sublime Text 3のD言語開発パッケージDKitを使う
概要
Sublime Text 3 で D言語を開発するためのツール DKit を Mac で導入します.結構前に出たパッケージだし紹介記事ぐらいあるだろうと思っていたのですが,UNIX 系の物は無かったので一応.
手順
DKit は D Completion Daemon(通称DCD)と連携して動作します.Homebrew にいるので brew install dcd
で入ります.
README にもありますが,DKit はまだ開発途中のため,Package Control からインストールすることはできません.そのため,Packages ディレクトリに直接展開します.
# Packages ディレクトリの在処はメニューの Sublime Text → Preferences → Browse Packages... から分かります $ cd ~/Library/Application\ Support/Sublime\ Text\ 3/Packages $ git clone https://github.com/yazd/DKit
次に,設定ファイルを変更します.例によって Sublime Text → Preferences → Package Settings → DKit → Setting − User をいじります.Default に設定されている値を上書きするだけですが,DMD を Homebrew でインストールした場合は以下のようになります.
{ "dcd_path": "/usr/local/bin", "include_paths": [ "/usr/local/include/d2/" ] }
これで準備完了です.D 言語のファイルを開いてみます.
おお…….続けて見ていきましょう.
ちゃんと名前空間を考慮して補完されていきます.まあここらへんは全部 DCD から来た値を受け取っているだけだと思いますが.
スニペットも用意されています.
関数もちゃんとインポートされたものの中からのみ補完されます.
ファジィ検索もお手の物.
実行する時は Super + B,D - run を選択すると rdmd で実行するので標準出力を確認できます.
キーバインドで Shift + Super + G が Default の方で用意されており,関数の定義元に一瞬でジャンプできます.当然ローカルで定義した関数にもジャンプできます.
たまに Tab を押しても何も起こらないことがあるのですが,補完したかった場所でもう一度 Tab を押すとちゃんと補完されます.どうしてこういうことが起こるのかよく分かりませんが.また,現状 DCD の方で UFCS に対応していないので,Ruby のように気持ちよくメソッドチェーンするみたいなことはまだ出来ませんが,Sublime Text 2 が出た頃に D 言語のスキーマが用意されていなかったことを思えばずいぶん遠くに来たなあと思います.大学に入ってから Emacs 一辺倒だったのですが,移行しない理由の半分が D 言語が書けないことだったので,ここまで出来るとなるとうっかり移行してしまいそうです…….