現状
- LSPを介して、hover, definition, monikerを取得する
- 取得した情報をJSON (Hovercraft)にまとめる
- HovercraftからElasticSearch用のインデックスファイル(JSONL形式)を生成する
- Elm製のWebインターフェースを介して、ElasticSearchで検索する
以上のような動作をするプロトタイプが完成している。
マイルストーン
バージョン1
- LSPを介して簡易的なAPIドキュメントを生成する
- 簡易的なDoxygenのようなイメージ
- 一緒に検索用のインデックスも生成する
- 単純な検索(正規表現など)
- Webとコマンドラインのインターフェース
バージョン2
- プラグイン機能
- 例えばJavaScriptによるスクリプティングのサポート?
- LSP以外のデータソースのサポート
- ソースコードとは独立に書かれたAPIドキュメント
- Doxygenなど既存のドキュメントジェネレータ
- Hoogleなど既存のAPI検索システム
- 対象となるプログラミング言語ごとにカスタマイズ可能な検索(Combyのようなものを想定)
- VS CodeやVimなどのテキストエディタ向けプラグインのインターフェース
バージョン3
- 言語間のクロス検索
- 例えば、Pythonの文脈で書かれた検索クエリから、適切なJavaScriptでの検索結果を返す
- 「普段使ってる言語でこう書くものって、この言語だとどう書くんだろう?」
- OpenAIのCodexのようなモデルが使える?
- LSPの拡張
- hover情報をAPIドキュメントに流用するのではなく、APIドキュメントそのものをやりとりするようなプロトコルの追加
- プログラムの構造(クラスや関数定義の依存関係など)を解析・取得するためのプロトコルの追加
- その他、Siskuの開発において必要となった機能の追加