SwiftPMも本格的に使えそうなので、SourceKit-LSPを試してみました。
SourceKit-LSPは外部エディタ向けの、Swiftコードの補完やジャンプなどの機能を提供するLanguage Server Protocolです。
VScodeやVimなどのテキストエディタなどで利用することが出来ます。
Toolchainのインストール
こちらから、使いたいバージョンのtoolchainをいれます。
RELEASE
がついているものが安定版です。
Ubuntuユーザーは、動かない組み合わせ等があるので注意が必要です。
macの場合、.pkg
でインストールしたものは/Library/Developer/Toolchains/
などに入っています。
sourcekit-lspのビルド
こちらのレポジトリからcloneして、ビルドします。
2019年10月時点では、ビルドにSwift5.1以上を要求されたので、手元のバージョンをswift --version
で確認してみてください。
macユーザーはXcode11に付属しているので、そちらが入っていれば大丈夫なはずです。
最新のバージョンを使わない場合は、適当なタグをcheckoutしてください。
RELEASE
のtoolchainを使う場合は、-c release
を指定してください。
git clone git@github.com:apple/sourcekit-lsp.git cd sourcekit-lsp swift build -c release
ビルドしたsourcekit-lsp
は.build/release
に生成されます。
sourcekit-lsp
は、後から絶対パスをVSCodeの設定で指定するか、以下のように適当なパスの通っている場所に移します。
mv .build/release/sourcekit-lsp /usr/local/bin
Dockerを使ってビルド
Ubuntuで使う人は、Docker Hubに公式のイメージがあるので、pullしてそちらのコンテナを使ってください。
(Swift5.1.1はUbuntu用の脆弱性パッチが入ったバージョンなので、5.1.0ではなく5.1.1推奨です)
docker pull swift docker run -itv /path/to/sourcekit-lsp:/home/sourcekit-lsp swift /bin/bash root@6a514ecb5877: cd /home/sourcekit-lsp root@6a514ecb5877: swift build -c release
VSCode向けのVSIXプラグインのビルドとインストール
sourcekit-lsp/Editors/vscode at master · apple/sourcekit-lsp
先ほどcloneしてきたレポジトリの中のEditors/vscode
にプラグインのソースがあります。
こちらのソースは、ビルドにnpm
を利用します。
インストールされていない場合、Homebrew
などで入れておきます。(有名なので割愛)
READMEに従ってパッケージをビルドします。
cd Editors/vscode
npm run createDevPackage
out
ディレクトリの中にパッケージを(.vsix
)が生成されるので、拡張機能タブのInstall from VSIX...
から入れます。
sourcekit-lspとtoolchainのパス指定
VSCodeのプラグイン設定から、toolchainのパスを指定します。
先ほどsourcekit-lsp
を移さなかった人は、そちらの絶対パスも指定します。
感想
普通のiOS開発の場合は、UIKit
などの補完が効かないのがしんどいのでXcodeかなと思います。
Linuxユーザーや、各種研究用などそれ以外の用途なら、まだ動いていない部分もありそうですが、実用できると思います。