Files

46 lines
2.0 KiB
Markdown
Raw Permalink Normal View History

2018-09-05 00:40:46 -07:00
# LSP Example for Log Streaming
2021-02-22 09:58:22 -08:00
This is a repository adapted from [lsp-sample](https://github.com/Microsoft/vscode-extension-samples/tree/main/lsp-sample) to demonstrate
2018-09-05 00:40:46 -07:00
- Usage of the JSON output
- Streaming the JSON into [LSP Inspector](https://github.com/Microsoft/language-server-protocol-inspector)
2018-10-23 22:25:13 -07:00
## Demo
![demo](demo.gif)
2018-09-05 00:40:46 -07:00
## Synopsis
- With `vscode-languageclient@5.1.0-next.9`, you can specify a JSON log output format with `[langId].trace.server` as follows:
```jsonc
2018-09-05 00:40:46 -07:00
"languageServerExample.trace.server": {
"format": "json", // or "text"
"verbosity": "verbose" // or "off" | "messages"
2018-09-05 00:40:46 -07:00
}
```
2018-09-05 00:55:47 -07:00
- 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
2018-09-05 00:40:46 -07:00
- 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.
2018-10-23 22:25:13 -07:00
## Running the Sample
2018-09-05 00:55:47 -07:00
- 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`