プロジェクト横断的な探索
ライブラリのファイルパスの取得
理想的には、システムにインストールされているすべてのライブラリを参照できるべきだが、LSPはそういった構造を扱っていないので難しい。各言語ごとに異なった構造でライブラリは保存されているので、その探索プログラムも個々に作る必要がある。
Document Symbolsから得られる位置情報をもとに、各識別子が定義されているファイルを探し、それぞれのファイルパスからLanguage Serverを起動する。 ファイルパスからLanguage Serverを起動
ファイルのURIから正しくLanguage Serverを起動するには、次の情報が必要
ファイルの言語(C, Pythonなど)
拡張子から判定?
ファイルの中身を読む?
対応するLanguage Serverのコマンド
各言語とどのLanguage Serverを紐付けるかはコンフィグファイルで記述
ルートパス(プロジェクトのルート)
例えば、package.jsonがあるディレクトリを探す