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協議
- 採用一門新程式語言,或不採用
- 在Linux中,我們都知道,dns採用了tcp協議,又採用了udp協議,什麼時候採用tcp協議?什麼 時候採用udp協議?為什麼要這麼設計?LinuxDNSTCP協議UDP
- Swift CustomStringConvertible 協議的使用SwiftGC協議
- Go語言實現HTTPS加密協議GoHTTP加密協議
- ffmpeg 推流檔案,採用rtmp協議協議
- ios應用開發+swift語言入門iOSSwift
- 【轉】使用 Go 語言讀寫 Redis 協議GoRedis協議
- Swift代理協議的安全使用Swift協議
- [譯] Swift 寫網路層:用面向協議的方式Swift協議
- Swift 運用協議泛型封裝網路層Swift協議泛型封裝
- MG--Swift面向協議開發Swift協議
- 為什麼ChatGPT採用SSE協議而不是Websocket?ChatGPT協議Web
- 第二章 Swift語言Swift
- Swift:面向協議的網路請求Swift協議
- Swift中的面向協議程式設計Swift協議程式設計
- OC,swift,javascript,Dart語言比較SwiftJavaScriptDart
- iOS Swift 建立代理協議的多種方式iOSSwift協議
- Swift 面向協議程式設計的那些事Swift協議程式設計
- MQTT 協議在石油行業資料採集中的應用MQQT協議行業
- 更小、更快、更簡單Google ProtoBuf 跨語言通訊協議Go協議
- Swift使用協議加泛型程式設計(一)Swift協議泛型程式設計
- iOS 多國語言本地化與App內語言切換(Swift)iOSAPPSwift
- 實用TCP協議(1):TCP 協議簡介TCP協議
- Swift 核心動畫 面向協議 擴充套件封裝Swift動畫協議套件封裝
- 應用層協議協議
- 函數語言程式設計 – Lens(透鏡)原理與應用 [Swift描述]函數程式設計Swift
- 函數語言程式設計 - 酷炫Applicative(應用函子) [Swift描述]函數程式設計APPSwift
- 函數語言程式設計 - Lens(透鏡)原理與應用 [Swift描述]函數程式設計Swift
- 使用java語言基於SMTP協議手寫郵件客戶端Java協議客戶端
- WEB伺服器之HTTP協議Web伺服器HTTP協議
- 協作應用程式標記語言 CAML 點滴(一)
- “踩坑”經驗分享:Swift語言落地實踐Swift
- TCP應用層協議TCP協議
- 伺服器傳輸協議介紹伺服器協議
- 相信開源的力量:Nebula Graph 採用 Apache 2.0 作為其開源協議Apache協議
- Swift---協議和擴充套件、 錯誤處理、泛型Swift協議套件泛型
- TCP與應用層協議TCP協議