Language Server Protocolのclientを書く
今どきのエディタはLanguage Server Protocol( Official page for Language Server Protocol ) を使えるものなようなので、そのクライアントを作ってみようと模索中。
まず、補完(completion)の機能を使えるようになることを目標にやってみる。
最短のステップは、
- サーバを起動して、initialize requestを送る
- サーバからのレスポンスを待つ
- didOpen notificationで開いたファイルを伝える
- textDocument/completion requestを送る
- サーバからレスポンスを受ける
エディタで編集している場合には、3.と4.の間で、didChange notificationを送らないと、だな。
作ってみて( https://github.com/masahino/mruby-lsp-client )、試してみると、サーバの実装にそれなりに差異があり、 個々に対応が必要になりそうな気配。