通过语言服务器协议实现 JavaScript 和 TypeScript 代码智能化
此外,随着时间的推移,我们在 Sourcegraph 简化了运行语言服务器的架构,从而消除了对这种紧密集成和控制的需求。Theia 的 TypeScript 语言服务器是一个围绕 tsserver 的更薄的包装,在某种程度上避免了这些问题。我们最新的方法是在云中运行 TypeScript 语言服务器,其在底层使用了 Theia 的语言服务器(以及间接地使用 tsserver)。
然而,自那时以来,我们的代码智能化进一步发展,如今主要由 LSIF - 语言服务器索引格式 提供支持。LSIF 与 LSP 共同开发,使用相同的结构,但采用预先计算的序列化,而不是 RPC 协议。这使我们能够为我们复杂的按需云代码智能化场景提供 近乎即时的代码智能化,因此我们将所有的工作都集中在 LSIF 索引器上。当然,所有这些工作都是 开源 的,如果您有兴趣,可以在我们的博客上阅读更多关于我们如何使用 LSIF 的信息(https://about.sourcegraph.com/blog/evolution-of-the-precise-code-intel-backend/)。
对于编辑器场景,LSP 仍然是明显的选择,欢迎大家分支这个仓库并承担维护工作,尽管从我们了解到的情况来看,我们建议基于 Theia 的方法(包装 tsserver)。我们也很期待能看到并期待 [官方 tsserver 的原生 LSP 支持](https://github.com/microsoft/TypeScript/issues/39459#issuecomment-696179304
暂无开放 Issues,或尚未同步最近议题。