16

Language Server Protocolを使用する VSCode 拡張機能を実装したいのですが、サーバー コンポーネントを VSCode 拡張機能の一部ではなく、実際のサーバー (クラウド内) に配置したいと考えています。

WebSocket または HTTP 経由でサーバーに接続するようにクライアント拡張機能を設定できますか?

4

2 に答える 2

0

言語サーバーの場所を制御できるかどうかはわかりませんが、別のオプションがあります。たとえば、解析ヘルプを提供するために言語サーバー プロトコルを実装する必要はありません。その場合、独自の便利な解析サービス API を実装できます (サポートする言語の性質に合わせて調整されます)。

  1. 拡張機能内で、次を使用してワークスペース編集イベントをサブスクライブしますworkspace.onDidChangeTextDocument
  2. ファイルの変更時イベントが発生するたびに 1 秒のタイムアウトを再開する
  3. ファイルを変更せずにタイムアウトになったら、関連するすべてのファイルを収集し、解析サーバーに送信します。
  4. 拡張機能でhttps://code.visualstudio.com/api/references/vscode-api#languages.createDiagnosticCollectionDiagnosticCollectionを使用して作成し、それをクラウド内の解析サーバーからの警告/エラー/ヒントに置き換えます。
  5. workspace他のイベントにサブスクライブします。たとえばworkspace.onDidOpenTextDocument、コンテンツの関連性workspace.onDidCloseTextDocumentを維持するためDiagnosticCollection
于 2019-11-02T22:42:21.970 に答える