Ohhnews

分类导航

$ cd ..
Jetbrains Blog原文

JetBrains 在 IntelliJ IDEA 2026.2 中开源 LSP 客户端 API

#lsp#intellij idea#开源#api#jetbrains

语言服务器协议 (LSP) 解决了一个实际问题:之前,每个 IDE 或编辑器都必须单独实现对特定语言的支持。语言服务器将这项工作集中到一个地方,并通过通用协议暴露出来,提供补全、格式化、文档和相关功能。

这个通用协议只是 IDE 集成的一部分。IDE 仍然需要决定如何启动服务器、处理代码以及辅助开发。这正是插件作者花费时间的地方。

产品可用性是其中一个难点,最近 Azure DevOps Pipeline 插件作者就遇到了这个问题。即使插件注册了 platform.lsp.serverSupportProvider,打开 azure-pipelines.yml 文件本应通过 IntelliJ Platform LSP 客户端启动语言服务器。在 Android Studio 中,这没有发生,因为 LSP 集成是商业 IDE 扩展,不属于 Android Studio 所用的开源 IntelliJ Platform 的一部分。没有可见的错误,没有后备方案,用户只能束手无策。

另一位插件作者采取了更极端的方式。对于 Swift 插件 Noctule,他们从头编写了自己的 LSP 客户端,因为现有选项不符合他们想要发布的插件。他们需要控制插件在何处工作、在不同 IDE 版本中的行为以及与编辑器的集成深度。在那个时候,自定义客户端并非过度设计,而是让插件行为一致的唯一方法。

这正是我们想要弥合的差距。

在 2026.2 发布周期中,我们将开源 LSP 客户端 API,将稳定且经过实战考验的平台客户端提供给 JetBrains IDE、Android Studio 以及其他基于公开的 IntelliJ 开源项目 的产品。

接下来是什么?

公开 API 正在更名,以便广泛使用。旧名称让 IDE 端听起来像服务器端。一旦代码开源并在 JetBrains IDE 之外使用,这就会变得混乱。平台拥有 LSP 客户端和 IDE 集成;语言服务器是外部进程。所以 LspServer 变为 LspClient,提供者变为 LspIntegrationProvider

注意: 开源 LSP API 的工作计划在 2026.1.4 稳定版中,不仅仅是 2026.2。这也意味着 Android Studio 支持可能早于 2026.2 到来;JetBrains 正在与 Google 团队合作实现这一点。

如果你的插件已经使用了 JetBrains LSP API,请关注这两个更新并调整到新名称。

如果你的插件使用了 LSP4IJ 或自定义客户端,不要为了迁移而迁移。检查最低 IDE 版本、Android Studio 支持、功能覆盖、自定义钩子以及远程或拆分模式需求。务必在 JetBrains Platform 论坛 上分享你的反馈。

对于新的语言集成,如果已有好的语言服务器,请从 IntelliJ Platform SDK 文档中的 LSP 文章 开始。要启动一个插件,请使用 IntelliJ Platform 插件生成器 或 IntelliJ IDEA 内重新设计的 Project 向导,并安装 Plugin DevKit 插件。

[LOADING...]