近日,微軟在舊金山召開的DevNation大會上宣布推出一個開源的語言服務(wù)器協(xié)議。而更有意思的是,這是微軟與Codenvy、紅帽聯(lián)合推出的。
微軟、Codenvy和紅帽聯(lián)合推出一個支持編程語言和集成開發(fā)環(huán)境之間溝通的開源通用協(xié)議。
這個消息聽起來可能有些令人震驚。但要知道,微軟一直以來都在深層次上采用開源方法。另外,微軟也一直努力將Visual Studio和開源Eclipse開發(fā)環(huán)境合在一起。除此之外,微軟還推出了在紅帽企業(yè)Linux(RHEL)里運行SQL Server、.NET Core 1.0版和ASP.NET。綜合以上種種,現(xiàn)在看到微軟和其開源合作伙伴創(chuàng)建了語言服務(wù)器協(xié)議(LSP)也就不會覺得太奇怪了。
據(jù)了解,LSP旨在提供一個將編程語言整合到各種代碼編輯器及集成開發(fā)環(huán)境(IDE)的通用方法,并為各種編程語言在不同軟件工具里提供豐富的編輯體驗,擴展開發(fā)人員的靈活性和生產(chǎn)力。
Codenvy CEO兼Eclipse Che項目負責人Tyler Jewell表示:“在過去,大多數(shù)編程語言只是針對一個工具進行優(yōu)化,這就使得開發(fā)人員在使用自己熟悉和喜歡的編輯器時受到限制,也限制了語言提供商的機會。”他還表示,“開發(fā)者可利用微軟、紅帽、Codenvy共同支持的通用協(xié)議,在自己喜歡的工具里獲得任何關(guān)于任何編程語言的智能用法。”
LSP是一個開源項目,其中定義了語言服務(wù)器里基于JavaScript對象符號(JSON)的數(shù)據(jù)交換協(xié)議。目前,該項目托管在GitHub上,用的是創(chuàng)造通用和麻省理工學院授權(quán)。
LSP旨在促進編輯器和語言服務(wù)器之間的互操作性,令開發(fā)人員能夠使用各種智能編程語言助手,這些語言助手的主要功能包括:找符號、語法分析、代碼補全、定義定位、綜視以及利用所選用的編輯器或IDE重構(gòu)代碼。
LSP目前支持以下語言:C++、PowerShell、JSON、CSS/LESS/SASS、Xtext、Crane PHP、Haxe、Java和RAML。集成開發(fā)環(huán)境方面,微軟Visual Studio Code和Eclipse Che目前已經(jīng)實現(xiàn)了LSP協(xié)議。LSP協(xié)議在Eclipse Che的實現(xiàn)是個開源代碼分支,第三季度開始提供給一般用戶下載。
微軟杰出工程師Erich Gamma 表示:“我們在將Omnisharp C#和TypeScript整合到到VS Code后就定義了通用語言服務(wù)器協(xié)議。經(jīng)過兩次語言服務(wù)器的整合,有一點變得很明顯,那就是對于工具提供商和語言提供商來說,一個共同的協(xié)議是一個雙贏結(jié)果。如此,語言提供商可以將自己的語言支持拿出來,其他工具提供商就可以拿去用,就很容易了。”
語言服務(wù)器協(xié)議方面的協(xié)作提供的功能包括:
開發(fā)人員的靈活性和選擇性:開發(fā)人員可以在使用新編程語言時試用各種豐富編輯體驗,而同時仍繼續(xù)使用自己的首選工具。多個操作系統(tǒng):編程語言提供商可以在多種操作系統(tǒng)里支持幾種工具,可最大限度地實現(xiàn)覆蓋范圍和和相關(guān)性。編輯器支持:微軟Visual Studio Code和Eclipse Che、新一代的Eclipse IDE增添了對LSP協(xié)議的支持。多種編程語言的支持:除了今天起可供使用的程語言服務(wù)器,年內(nèi)計劃將啟動更多支持LSP的語言服務(wù)器。其中包括Omnisharp項目的C#, Typefox的xText和R、Ensime的JavaFX和微軟的CSS。紅帽開源了一個項目的工作,以提供首個獨立的Java語言服務(wù)器,紅帽提議將其捐給Eclipse基金會。開放合作:Codenvy、微軟和紅帽致力于與開源社區(qū)合作開發(fā)LSP協(xié)議。LSP協(xié)議托管在公共存儲服務(wù)器里,任何人都可以提交反饋,或是貢獻項目修改請求,達到提高和完善LSP項目的目的。語言服務(wù)器注冊:語言服務(wù)器在全球性注冊表里公開發(fā)布,該注冊表由Codenvy建立,是Eclipse項目的一部分,托管在Eclipse基金會里。任何工具軟件借助全球性注冊表就可以找到語言服務(wù)器并對其進行使用。