mirror of
https://github.com/microsoft/vscode-extension-samples.git
synced 2026-06-13 07:10:26 +08:00
46 lines
2.0 KiB
Markdown
46 lines
2.0 KiB
Markdown
# LSP Example for Log Streaming
|
|
|
|
This is a repository adapted from [lsp-sample](https://github.com/Microsoft/vscode-extension-samples/tree/main/lsp-sample) to demonstrate
|
|
|
|
- Usage of the JSON output
|
|
- Streaming the JSON into [LSP Inspector](https://github.com/Microsoft/language-server-protocol-inspector)
|
|
|
|
## Demo
|
|
|
|

|
|
|
|
## Synopsis
|
|
|
|
- With `vscode-languageclient@5.1.0-next.9`, you can specify a JSON log output format with `[langId].trace.server` as follows:
|
|
```jsonc
|
|
"languageServerExample.trace.server": {
|
|
"format": "json", // or "text"
|
|
"verbosity": "verbose" // or "off" | "messages"
|
|
}
|
|
```
|
|
- A [webview](https://github.com/Microsoft/language-server-protocol-inspector/tree/master/lsp-inspector-webview) build of the LSP Inspector can be downloaded here: https://marketplace.visualstudio.com/items?itemName=octref.lsp-inspector-webview
|
|
- When using the Webview LSP Inspector, it will open a WebSocket Server taking incoming connection that sends logs following [this format](https://github.com/Microsoft/language-server-protocol-inspector#log-format).
|
|
- You can stream the JSON log of any Language Server using `vscode-languageclient` to the LSP Inspector, and it will show a live view of the LSP connection.
|
|
|
|
## Running the Sample
|
|
|
|
- Install the [LSP Inspector Webview](https://marketplace.visualstudio.com/items?itemName=octref.lsp-inspector-webview) extension
|
|
- Compile and Run this Extension
|
|
- `npm install`
|
|
- `npm run compile`
|
|
- F5 to run the extension
|
|
- Add the following setting:
|
|
```json
|
|
"languageServerExample.trace.server": {
|
|
"format": "json",
|
|
"verbosity": "verbose"
|
|
},
|
|
```
|
|
- Open a txt file so this Language Server gets activated
|
|
- Run command "LSP Inspector: Start LSP Inspector"
|
|
- Run command "Start Stream Logs into languageServerExample.port"
|
|
- As you are typing, doing auto-completion, many messages should show up in the inspector, such as
|
|
- `textDocument/didChange`
|
|
- `textDocument/completion`
|
|
- `textDocument/publishDiagnostics`
|