Swift採用語言伺服器協議
蘋果的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協議Swift協議
- Swift中的協議Swift協議
- 採用一門新程式語言,或不採用
- ffmpeg 推流檔案,採用rtmp協議協議
- Go語言實現HTTPS加密協議GoHTTP加密協議
- 【轉】使用 Go 語言讀寫 Redis 協議GoRedis協議
- Swift Protocol 詳解 - 協議&面向協議程式設計SwiftProtocol協議程式設計
- Swift代理協議的安全使用Swift協議
- [譯] Swift 寫網路層:用面向協議的方式Swift協議
- Swift 運用協議泛型封裝網路層Swift協議泛型封裝
- 為什麼ChatGPT採用SSE協議而不是Websocket?ChatGPT協議Web
- Swift 語言基礎Swift
- 我不懂 Swift 語言Swift
- MG--Swift面向協議開發Swift協議
- Swift 4 踩坑之 Codable 協議Swift協議
- [譯]Swift利用協議優化NSNotificationCenterSwift協議優化
- 開源的語言伺服器協議可能成為程式設計IDE標準伺服器協議程式設計IDE
- 使用Go語言開發iOS應用(Swift版)GoiOSSwift
- Swift 新語言開發Swift
- Swift語言快速入門Swift
- 淺談Swift程式語言Swift
- Swift:面向協議的網路請求Swift協議
- iOS - Swift 面向協議程式設計(二)iOSSwift協議程式設計
- iOS - Swift 面向協議程式設計(一)iOSSwift協議程式設計
- Swift中的面向協議程式設計Swift協議程式設計
- MQTT 協議在石油行業資料採集中的應用MQQT協議行業
- 使用 Swift 語言編寫 Android 應用入門SwiftAndroid
- 更小、更快、更簡單Google ProtoBuf 跨語言通訊協議Go協議
- “勇氣”號火星機器人採用Java語言機器人Java
- 第二章 Swift語言Swift
- Swift多語言版本的建立Swift
- Swift 程式語言入門教程Swift
- Swift 語言的字串與字元Swift字串字元
- Swift 語言的基本運算子Swift
- Git : SSH 協議伺服器Git協議伺服器
- iOS Swift 建立代理協議的多種方式iOSSwift協議
- Swift 面向協議程式設計的那些事Swift協議程式設計
- Swift CustomStringConvertible 協議的使用SwiftGC協議