VS Code でのホバー

ホバーとクイック情報

ホバーは C# と F# の両方に実装されています。リクエストは Roslyn または FCS にルーティングされ、現在の未保存の文書テキストを対象に評価されます。

C# ホバー

C# のホバーには、次の情報が含まれる場合があります。

  • 完全修飾されたシンボルシグネチャ、修飾子、パラメーター、nullable 注釈
  • メンバーが属する型
  • [Obsolete] メッセージ
  • レンダリングされた XML ドキュメント
  • var、数値リテラル、ラムダパラメーター、タプル要素、パターン変数の推論型

文字列リテラルと文字リテラルでは、意図的にツールチップを返しません。Roslyn は宣言と参照の両方を解決するため、ホバーは定義上でも使用箇所でも機能します。

F# ホバー

F# のホバーは FCS の拡張ツールチップを使用します。F# シグネチャを含む Markdown コードブロックを返し、利用可能な XML ドキュメントをレンダリングします。関数、値、型、メンバー、判別共用体のケース、およびその他の FCS シンボルをサポートします。

ライブバッファでの動作

文書を開いたとき、および変更したときに、SharpLsp は文書の全文を対応するサイドカーへ送信します。そのため、ホバーにはディスクへ保存されていない編集内容も反映されます。置き換えられた古い文書バージョンへのリクエストが、より新しいナビゲーション状態を上書きすることはありません。

失敗時の動作

その位置にシンボルが存在しない場合、サイドカーが無効な場合、または解析に失敗した場合、SharpLsp は作り出した情報を提示せず null を返します。サイドカーのライフサイクル監視によって、障害が発生したサイドカーを再起動できますが、障害に遭遇したリクエストではツールチップが返されないことがあります。