Skip to content

Update LSP ecosystem deps to v10 / LSP 3.18 + bumps#129

Merged
spoenemann merged 11 commits into
eclipse-sprotty:masterfrom
cdietrich:update-lsp-deps-v10
Jun 18, 2026
Merged

Update LSP ecosystem deps to v10 / LSP 3.18 + bumps#129
spoenemann merged 11 commits into
eclipse-sprotty:masterfrom
cdietrich:update-lsp-deps-v10

Conversation

@cdietrich

@cdietrich cdietrich commented Jun 11, 2026

Copy link
Copy Markdown
Contributor
  • vscode-languageclient: ^9.0.1 -> ^10.0.0
  • vscode-languageserver: ^9.0.1 -> ^10.0.0 (language-server example)
  • vscode-languageserver-protocol: ^3.17.5 -> ^3.18.0
  • vscode-jsonrpc: 8.2.0 -> 9.0.0 (transitive)
  • langium / langium-sprotty / langium-cli: 3.5.x -> 4.3.0-next.a52b426 (pre-release needed because langium 4.3.0 adds vscode-languageserver@10 support)
  • typescript: ~5.2.2 -> ~6.0.3
  • engines.vscode: ^1.46.0 -> ^1.91.0 (required by vscode-languageclient@10)
  • @types/vscode: 1.50.0 -> 1.91.0 (aligned with engine floor)
  • moduleResolution: node -> bundler (LSP 3.18 packages dropped the main field in favour of exports-only; bundler resolution handles this correctly)

Source fixes:

  • lsp-webview-endpoint.ts: import ResponseMessage from public vscode-jsonrpc root instead of internal lib/common/messages path (restructured in v9)
  • lsp-utils.ts: TextDocumentEdit.edits is now (TextEdit|AnnotatedTextEdit|SnippetTextEdit)[]; filter to edits with newText before mapping to vscode.TextEdit
  • main.ts: import from vscode-languageserver/node (not /node.js - v10 uses exports map)

Additional dependency refresh:

  • eslint: ^8.54.0 -> ^9.39.4
  • @typescript-eslint/eslint-plugin / parser: ^6.11.0 -> ^8.61.0
  • eslint-config-prettier: ^9.0.0 -> ^10.1.8
  • lerna: ^8.2.3 -> ^9.0.7
  • vscode-messenger / vscode-messenger-common / vscode-messenger-webview: ^0.5.1 -> ^0.6.1
  • @types/node: remaining Node 14 typings -> ^22.19.21
  • esbuild: ^0.25.6 -> ^0.28.0
  • webpack: ^5.89.0 -> ^5.107.2
  • ts-loader: ^9.5.1 -> ^9.6.0
  • css-loader: ^6.8.1 -> ^7.1.4
  • source-map-loader: ^4.0.1 -> ^5.0.0
  • style-loader: ^3.3.3 -> ^4.0.0
  • webpack-cli: ^5.1.4 -> ^7.0.3

Notes:

  • vscode-messenger 0.6 changes handler registration to return Disposable instead of Messenger. The codebase does not use chained onRequest/onNotification calls, and extension-side handlers already store returned disposables.
  • @types/vscode is intentionally kept at 1.91.0 because the VS Code engine floor is ^1.91.0.
  • sprotty / sprotty-protocol 1.4.0 are intentionally left separate because they interact with the Inversify CJS/ESM typing issue seen in CI.
  • langium 4.3.0-next.a52b426 is 3 commits behind main; once 4.3.0 is released this should be changed to a stable version range.
  • ESLint 9 required migrating the shared config to flat config format. eslint-plugin-header is still used for copyright validation, with a local metadata shim for ESLint 9 rule option validation.
  • TypeScript 6 required explicit Node typings in Node-side packages, an ignoreDeprecations entry for downlevelIteration, and CSS module declarations for side-effect stylesheet imports.
  • Lerna 9 requires Node ^20.19.0, ^22.12.0, or >=24.0.0. The workflow uses node-version: '22', which resolves to a compatible current Node 22.

Verification:

  • yarn prepare
  • yarn workspace states-sprotty-webview build
  • npx npm-check-updates --workspaces --target minor
  • npx npm-check-updates --workspaces --target latest --filter css-loader,source-map-loader,style-loader,webpack-cli,lerna,typescript,eslint,@typescript-eslint/eslint-plugin,@typescript-eslint/parser,eslint-config-prettier

- vscode-languageclient: ^9.0.1 → ^10.0.0
- vscode-languageserver: ^9.0.1 → ^10.0.0 (language-server example)
- vscode-languageserver-protocol: ^3.17.5 → ^3.18.0
- vscode-jsonrpc: 8.2.0 → 9.0.0 (transitive)
- langium / langium-sprotty / langium-cli: 3.5.x → 4.3.0-next.a52b426
  (pre-release needed because langium 4.3.0 adds vscode-languageserver@10 support)
- typescript: ~5.2.2 → ~5.9.3
  (5.9 correctly widens `readonly []` through `satisfies` constraints, fixing
   a type error in langium-generated AST reflection code)
- engines.vscode: ^1.46.0 → ^1.91.0 (required by vscode-languageclient@10)
- @types/vscode: 1.50.0 → 1.91.0 (aligned with engine floor)
- moduleResolution: node → bundler (LSP 3.18 packages dropped the `main` field
  in favour of `exports`-only; bundler resolution handles this correctly)

Source fixes:
- lsp-webview-endpoint.ts: import ResponseMessage from public vscode-jsonrpc root
  instead of internal lib/common/messages path (restructured in v9)
- lsp-utils.ts: TextDocumentEdit.edits is now (TextEdit|AnnotatedTextEdit|SnippetTextEdit)[];
  filter to edits with `newText` before mapping to vscode.TextEdit
- main.ts: import from vscode-languageserver/node (not /node.js — v10 uses exports map)

Note: langium 4.3.0-next.a52b426 is 3 commits behind main; once 4.3.0 is
released this should be changed to a stable version range.
@cdietrich cdietrich force-pushed the update-lsp-deps-v10 branch from 2589fa2 to 36ced6d Compare June 11, 2026 05:28
@cdietrich cdietrich changed the title Update LSP ecosystem deps to v10 / LSP 3.18 Update LSP ecosystem deps to v10 / LSP 3.18 + minor bumps Jun 11, 2026
@cdietrich cdietrich changed the title Update LSP ecosystem deps to v10 / LSP 3.18 + minor bumps Update LSP ecosystem deps to v10 / LSP 3.18 + bumps Jun 11, 2026
Comment thread examples/states-langium/language-server/package.json Outdated
@cdietrich cdietrich marked this pull request as ready for review June 15, 2026 11:17

@spoenemann spoenemann left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

@cdietrich

Copy link
Copy Markdown
Contributor Author

@spoenemann be aware i am not a committer ;)

@spoenemann

Copy link
Copy Markdown
Contributor

Ok, could you rebase due to conflicts?

@cdietrich

Copy link
Copy Markdown
Contributor Author

@spoenemann github does not show any conflicts

@spoenemann spoenemann merged commit 13c76fb into eclipse-sprotty:master Jun 18, 2026
2 checks passed
@spoenemann

Copy link
Copy Markdown
Contributor

It showed conflicts with "Rebase" selected, but no more conflicts after switching to "Squash"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants