苹果的 Swift 团队宣布,他们将为Swift提供语言服务器协议(LSP)支持。这将为开发者提供在支持 LSP 的任何编辑器中使用 Swift 的可能性,并获得代码补全、语法高亮等功能。
除了代码补全和语法高亮之外,兼容 LSP 语言服务的 Swift 还将支持跨 C/C++/ObjC 源码的跨语言索引,从而实现转到定义、调用层次、搜索符号和重构功能。苹果的团队计划将 Xcode 引入新的语言服务,并对协议进行扩展,以支持 LSP 中不包含的 Xcode 编辑功能。
根据目前的计划,Swift LSP 服务将使用SourceKit,并将其与Clangd集成,后者是一个基于 Clang 的语言服务器协议开源实现。GitHub 上提供了 Swift 的语言服务器协议实现。尽管如此,它尚处于早期开发阶段,大多数更高级的特性还没有提供。
Swift LSP 服务的其中一个好处是,它将提高 Swift 在 Linux 上的可用性,从而可能会改善该语言在苹果生态系统之外的采用。此外,作为将 LSP 引入 Xcode 的附带效果,Xcode 可以包括对其他语言的支持,如 C#、Rust 等等,也包括一些理论上 Xcode 已经支持的语言,如 XML、JSON 等。不过,使 Xcode 兼容 LSP 目前并不是团队的重点。
语言服务器协议最初是微软开发的,作为 Visual Studio Code 用于与其他语言服务通信的协议。2016 年,微软开源了LSP。LSP 带来的最大好处是语言服务可以跨兼容 LSP 的编辑器重用。这大大减少了语言团队为使各种编辑器充分支持其语言所需的工作量,因为他们只需要实现一个兼容 LSP 的语言服务器,而该服务器可以在任何兼容 LSP 的编辑器中使用。
目前,有超过70个兼容LSP的语言服务器,许多主流的编程工具也支持LSP,包括 Eclipse、emacs、GNOME Builder、Atom、vim、Visual Studio 和 Visual Studio Code。
查看英文原文:Swift Adopts the Language Server Protocol
评论 1 条评论