問題タブ [language-server-protocol]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
107 参照

typescript - Language Server Protocol /VSCODE : 自分のケースへの lsp-sample の適応

言語サーバー プロトコルを使用して OCaml によって記述された独自の言語サーバー (LP) と通信する vscode 拡張機能 (クライアント言語) を作成しています。私のケース (OCaml 'lsp-base.ml' で記述されたサーバー) に適応できなかった vscode ドキュメントで提供された lsp サンプルに基づいて、これらのコード行には何が必要ですか:

それは...ですか?

0 投票する
0 に答える
222 参照

visual-studio-code - vscode/LSP: ブレークポイントを使用した vscode 拡張機能のデバッグ

OCaml で記述された LSP サーバーと通信する言語クライアント (typescript で記述) である vscode 拡張機能を実装しようとしています。そのためには、ブレークポイントを使用して拡張機能を段階的にデバッグする必要があります。ドキュメントを読みましたが、あまり役に立ちません。

0 投票する
2 に答える
682 参照

typescript - Language Server Extension を使用してワークスペースで新しいファイルを作成および編集する方法

Language Server Extension を取得して新しいファイルの作成をトリガーし、それを編集して、接続されたクライアントのワークスペースに表示するにはどうすればよいですか?

onExecuteCommand を介してサーバー上でコマンドを実行する node.js に vscode-languageserver で記述された LSP 拡張機能があります。このサーバー側のコマンドで、クライアントが新しいテキスト ファイルを作成し、テキストを入力して、開いているファイルのクライアントのワークスペース リストに表示されるようにします。

https://github.com/microsoft/vscode-languageserver-node/blob/master/client-tests/src/helpers.test.tsを見ると、WorkspaceChange オブジェクトを作成し、createFile() を実行する必要があると思います。 、いくつかの変更 (.insert) を適用し、connection.workspace.applyEdit() を介して編集を適用するようにクライアントに指示しますが、これは機能しません - ファイルは作成されず、デバッガーでエラーはスローされません。

サーバーの onExecuteCommand 内のコードは次のとおりです。

存在しないファイル名を指定すると、プロセスは失敗します。ファイルは作成されず、ワークスペースで開かれません。

ただし、既存のファイル名を指定すると、編集が適用され、期待どおりにファイルがワークスペースで開かれます。

createFile の前に編集を提供していたためだと思いましたが、createFile()の前にgetTextEditChange( ) を実行すると、プロセスはエラー「ドキュメントの変更に対してワークスペースの編集が構成されていません」で失敗します。