以前、このブログではClangのコード補完機能を使ったEmacsの自動補完機能を紹介しました。
時は流れ、時代はSwiftです。
XcodeでSwiftを書く際、XcodeはXPCという仕組みを用いて、sourcekitdというデーモンと通信することで、コード補完などのプログラミング支援を行っています。
sourcekitdとの通信内容は非公開*1ですが、JP SimardさんというRealmの開発者の方が、sourcekitdをリバースエンジニアリングして一部プロトコルの解明を行い、sourcekittenというCLIを開発されました。
このソフトを使うことで、Xcode以外のソフトウェアからもsourcekitdの機能を使うことが出来るようになりました。
Emacsでこの機能を使えるように、sourcekittenの出力をauto-completeの情報源として使えるよう、elispを書いてみました。
スクリーンショットはこんな感じ。
ちなみに、Vimmerの方には、すでにこういうのがあるようですよ。
*1:2015年12月8日:Swiftのオープンソース化に合わせ、Sourcekitも公開されました