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