Swift採用語言伺服器協議

weixin_34127717發表於2018-11-23

蘋果的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

相關文章