Update language server guides to use pull diagnostics - #10260
Conversation
Follow up on microsoft/vscode-extension-samples#1181 by updating the server walkthrough and documenting both diagnostics models. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Capture the merged sample in an isolated VS Code extension development host and update the logging explanation and alt text. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Explain capability flags, full reports, and refresh requests. Keep contextual comments and use one explicit handler return type instead of repeated satisfies expressions. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Use Launch Client's automatic child-process attachment and replace the obsolete manual-attach screenshot with a verified TypeScript breakpoint capture. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
It introduces a Markdown table formatting break and an incorrect tracing setting identifier that should be corrected before merge.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Review tier: Lite
Findings: 2
New issues introduced by this change (2)
| Severity | Finding |
|---|---|
api/language-extensions/language-server-extension-guide.md — [langId].trace.server is not the setting name used by the sample or vscode-languageclient; the… |
|
api/language-extensions/programmatic-language-features.md — The inline-completion row is missing its leading |, which breaks the Markdown table formatting. |
What changed in this PR
This PR updates the VS Code language server documentation guides to align the diagnostics examples with the current pull diagnostics model used by the vscode-extension-samples language server sample, and refreshes related debugging and tracing guidance.
Changes:
- Update diagnostics documentation to explain pull vs push diagnostics, and update the language server guide’s example server implementation to use
textDocument/diagnosticandworkspace/diagnostic/refresh. - Update the language server guide to rely on VS Code’s automatic child-process attachment for server debugging, and bump the documented dependency versions to match the sample.
- Refresh screenshots for diagnostics tracing and server debugging (Git LFS pointers updated).
| File | Description |
|---|---|
| api/language-extensions/programmatic-language-features.md | Updates diagnostics references to include both LSP pull and push diagnostics. |
| api/language-extensions/language-server-extension-guide.md | Updates the walkthrough code and narrative to use pull diagnostics + refresh, updates dependency versions, and modernizes debugging guidance. |
| api/language-extensions/images/language-server-extension-guide/lsp-log.png | Updates the diagnostics trace screenshot (LFS pointer change). |
| api/language-extensions/images/language-server-extension-guide/debugging-server.png | Updates the server debugging screenshot (LFS pointer change). |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Copilot review overview
🟢 Approval recommended
The changes are technically consistent with the intended diagnostics/debugging updates, with only minor documentation wording/consistency nits noted.
Review tier: Lite
Findings: None
Issues resolved since last review (2)
| Severity | Finding |
|---|---|
api/language-extensions/programmatic-language-features.md — The inline-completion row is missing its leading |, which breaks the Markdown table formatting. View resolved comment |
|
api/language-extensions/language-server-extension-guide.md — [langId].trace.server is not the setting name used by the sample or vscode-languageclient; the… View resolved comment |
Suppressed comments (2)
Previously missed (2) — in code that hasn't changed since the last review.
api/language-extensions/language-server-extension-guide.md:562
- This section refers to the Run and Debug view, but the earlier step list still says Run view. Update the step list so the instructions use the current view name consistently.
api/language-extensions/programmatic-language-features.md:84 - Minor grammar: “with the pull or push model” reads awkwardly; “using the pull or push model” is clearer.

Follow-up to microsoft/vscode-extension-samples#1181 and microsoft/vscode-extension-samples#973: align the language server guides with the sample's pull-diagnostics implementation.
Changes
Validation
Compiled and ran the exact documented client/server in VS Code. Verified diagnostics, settings refresh, unsaved edits clearing problems, and automatic attachment at a TypeScript server breakpoint. LSP IPC tests, whitespace checks, and Git LFS checks pass.