歷時兩年,微軟 VS Code PowerShell 獲得重大更新
微軟開發(fā)團(tuán)隊近日更新了用于 Visual Studio Code 的 PowerShell 擴(kuò)展,這是一次歷時約兩年的重大更新,由通過 GitHub issues 提交反饋的用戶所推動。
微軟官方人員 Sydney Smith 在博客文章中表示:
- 這次更新代表了對 PowerShell Editor Services 的核心 PowerShell 引擎的徹底改造,旨在創(chuàng)造一個更可靠和穩(wěn)定的用戶體驗(yàn)。這個版本代表了近兩年的工作,它是我們對用戶在過去幾年中所提出的許多問題的回應(yīng)。
前面提到的 PowerShell Editor Services 是該工具的語言服務(wù)器,利用語言服務(wù)器協(xié)議,用于提供編程語言的特定功能,如自動補(bǔ)全、IntelliSense 和轉(zhuǎn)到定義等。
為了實(shí)現(xiàn)提高可靠性 / 穩(wěn)定性、測試、與以前版本的功能同等性等目標(biāo),該團(tuán)隊專注于該工具的線程模型。
以前的 Integrated Console,即 PowerShell 擴(kuò)展提供的 Shell,是通過在一個共享的主運(yùn)行空間上設(shè)置線程池任務(wù)來運(yùn)行的,而 LSP 的服務(wù)是通過 PowerShell 空閑事件完成的。這導(dǎo)致了開銷、線程問題和復(fù)雜的實(shí)現(xiàn),此次更新解決了 PowerShell 作為同步、單線程運(yùn)行時和語言服務(wù)器作為異步、多線程服務(wù)之間的不對稱問題。
這些不對稱問題通過一個新的專用管道線程來解決,該線程借用了 JavaScript 的事件循環(huán),因此代碼在正確的線程上同步運(yùn)行,以更可靠和無錯誤的代碼來防止許多競賽條件。
Smith 表示:
- 這一變化徹底改變了我們?yōu)?LSP 請求提供服務(wù)的方式、Integrated Console 的工作方式、PSReadLine 的集成方式、調(diào)試的實(shí)現(xiàn)方式、遠(yuǎn)程的處理方式以及 PowerShell Editor Services 中的其他長尾功能。
微軟在該版本的更新中,總共添加了 6000 行代碼并刪除了 12000 行代碼。根據(jù)官方說法,此次更新除了帶來新功能,還使擴(kuò)展的后端更易于維護(hù)、更高效,以及更易于理解。
為了能夠給 PowerShell 擴(kuò)展帶來更好的穩(wěn)定性,微軟開發(fā)團(tuán)隊在過去的 6 個月時間里共推出了 13 個 PowerShell 預(yù)覽版來進(jìn)行測試。
查看 VS Code Marketplace 中的 PowerShell 和 PowerShell 預(yù)覽版的評分也能看出用戶對此次更新的一個滿意度,其中前者歷史悠久已經(jīng)被安裝了大約 580 萬次,獲得了平均 3.7 分(滿分 5 分)。后者已經(jīng)被安裝了 20 多萬次,獲得了平均 4.6 分的成績。
PowerShell 擴(kuò)展的完整變化可在更新日志中找到。開發(fā)者有任何錯誤和功能的反饋,都可以在項目的 GitHub 頁面上提交。
本文轉(zhuǎn)自O(shè)SCHINA
本文標(biāo)題:歷時兩年,微軟 VS Code PowerShell 獲得重大更新
本文地址:https://www.oschina.net/news/194880/vs-code-powershell