天天看點

紅帽、微軟和 Codenvy 聯合推出開源協定 LSP

微軟、紅帽及容器開發環境供應商codenvy本周在red hat devnation開放源碼大會上宣布将共同發展語言伺服器協定(language server protocol,lsp)項目,讓不同的程式編輯器與內建開發環境(ide)友善嵌入各種程式語言,允許開發人員在最喜愛的工具中使用各種語言來撰寫程式。

紅帽、微軟和 Codenvy 聯合推出開源協定 LSP

lsp是個開放源碼項目,唯一基于json的語言伺服器資料交換協定,目前由github代管,并采用cc及mit授權。該協定主要用來促進編輯器及語言伺服器之間的互動,允許開發人員在各種編輯器或整合開發環境中存取智慧型的程式語言工具,像是以符号搜尋、文法分析、自動完成代碼、移至定義、描繪輪廓或重構等。

每款程式語言都有獨立的語言伺服器,這些伺服器可能是由社群或語言供應商所建置,codenvy已展開語言伺服器的登記服務,以期打造支援lsp的語言伺服器清單,以利各種不同的編輯器存取。

codenvy執行長tyler jewell指出,過去絕大多數的語言都隻會針對單一工具進行最佳化,阻礙了開發人員使用他們最喜愛的編輯器,也局限了程式語言的推廣對象,透過微軟、紅帽及codenvy所共同支援的lsp,開發人員将可在自己喜愛的編輯器中使用任何語言。

除了可讓開發人員在習慣的編輯器中采用新語言之外,程式語言供應商也可透過lsp讓程式語言支援更多的作業系統及工具,此外,微軟的visual studio code及eclipse che都已添增對lsp的支援。

現階段lsp已支援c++、powershell、json、css/less/sass、xtext、crane php、haxe、java和raml。內建開發環境方面,微軟visual studio code和eclipse che目前已經實作了lsp協定。lsp協定在eclipse che的實作是個開源代碼分支,第三季度開始提供給一般使用者下載下傳。同時,紅帽也正在打造首個獨立的java語言伺服器。

語言伺服器協定方面的協作提供的功能包括:

開發人員的靈活性和選擇性:開發人員可以在使用新程式設計語言時試用各種豐富編輯體驗,而同時仍繼續使用自己的首選工具。

多個作業系統:程式設計語言提供商可以在多種作業系統裡支援幾種工具,可最大限度地實作覆寫範圍和和相關性。

編輯器支援:微軟visual studio code和eclipse che、新一代的eclipse ide增添了對lsp協定的支援。

多種程式設計語言的支援:除了今天起可供使用的程語言伺服器,年内計劃将啟動更多支援lsp的語言伺服器。其中包括omnisharp項目的c#, typefox的xtext和r、ensime的javafx和微軟的css。紅帽開源了一個項目的工作,以提供首個獨立的java語言伺服器,紅帽提議将其捐給eclipse基金會。

開放合作:codenvy、微軟和紅帽緻力于與開源社群合作開發lsp協定。lsp協定托管在公共存儲伺服器裡,任何人都可以送出回報,或是貢獻項目修改請求,達到提高和完善lsp項目的目的。

語言伺服器注冊:語言伺服器在全球性系統資料庫裡公開釋出,該系統資料庫由codenvy建立,是eclipse項目的一部分,托管在eclipse基金會裡。任何工具軟體借助全球性系統資料庫就可以找到語言伺服器并對其進行使用。