微軟 Visual Studio 2022 第五次大更新來了~官方的公告是《Visual Studio 2022 – 17.5 Released》、直接和 C++ 相關的,則是《Visual Studio 2022 version 17.5 for C++ Developers》這篇;release note 的更新細節(頁面)也已經更新了。
這次官方的更新重點包括了(執行後列出來的):
- 多合一式搜尋
- 效能增強功能
- 輕鬆將容器發佈至 Azure Container Apps !
- ASP.NET Core – 開發人員通道
- InteIIiCode – C# 建議的內嵌差異檢視
- Unreal Engine Blueprints 支援
- 編輯Markdown 檔案
- 快速新增檔案
- 文字視覺化檢視增強功能
- 序列監視器
- 複製及展開巨集展開
- 程式碼涵蓋範圍篩選
- 協助工具檢查程式
下面則是 Heresy 自己撿了一些覺得對自己有用的功能來介紹一下。
而由於 Heresy 自己是以 C++ 為主要開發環境,所以還是會偏向這方面了~
多合一式搜尋(All-In-One Search)
雖然微軟把它放在最前面,但是實際上還是一項在預覽階段的功能。想要啟用的話,需要到「工具」的「選項」中,找到「環境」下的「預覽功能」,把「新的 Visual Studio 搜尋體驗」開啟才能用。
在開啟後,使用鍵盤的 Ctrl + Q 可以叫出「功能搜尋」的功能、Ctrl + T 則可以開啟程式碼搜尋的功能(其實是同一個視窗):
其實這功能在 17.4 也有,只是現在在程式碼搜尋的部分看來對介面做了相當的改善,會提供更詳細的資訊、以及程式的預覽。
但是個人覺得可惜的,是他雖然提供了檔案、類別、成員三種額外的搜尋條件,但是卻不能混合使用、也不能用多個關鍵字來搜尋。
更詳細的介紹,可以參考《New: Better search in Visual Studio》。
內建 Markdown 預覽功能
以往要在 Visual Studio 內預覽 Markdown 的檔案的話,都得另外安裝延伸模組才行;而這版的 Visual Studio 終於把 Markdown 的預覽功能加進來了!
現在只要開啟 .md
的檔案,編輯區的左上角就會有「Preview」的按鈕,按下去右邊就會出現內容的預覽了。
文字視覺化檢視增強功能
現在在偵錯的時候,可以針對文字進行下列的處理:
- URL 編碼和解碼
- Base64 編碼和解碼
- JWT 解碼
個人覺得這是相當實用的功能!尤其在開發要串聯 Web API、或是要讀取網頁的東西的時候,要偵錯會方便很多~
要使用的話,基本上就是在偵錯的時候,檢視文字型別的變數的時候,點選前方的「檢視」按鈕,選擇「文字視覺化檢視」。
這邊會跳出一個額外的視窗來顯示字串的內容;這次的更新就是在裡面多了一個「字串操作」的選項,可以對字串進行操作。
如此一來,就可以更方便地確認經過編碼過的內容是否和預期的相同了!
程式碼涵蓋範圍篩選
在程式碼涵蓋範圍(code coverage)的介面中,可以在搜尋框的部分,針對名稱、統計資來來做報告的篩選,方便找到想要的東西。
不過這項功能應該是只有企業版才能用的了。
快速新增檔案
拼字檢查
在程式碼中,也加入了拼字檢查的功能,如果用到錯字的話,他會在底下顯示藍色的波浪線。
如果按 Ctrl + . 或 Alt + Enter 的話,則就會出現右圖的畫面,提供建議使用者修正的方向、或是設定忽略它。
如果修正的是變數、函式的話,他會跳出「重新命名」的對話框,讓使用者可以快速地把名字整個改掉(不是用單純的字串取代)。
安裝組態的匯出以及套用
這項算是比較特別、偏向企業佈署的使用情境了。
現在在 Visual Studio Installer 裡,可以透過「匯出組態」來把自己的安裝設定匯出成一個 .vsconfig
檔案,然後在別的系統上透過「匯入組態」來建立相通的安裝環境。(參考)
而如果要大量部屬的話,則可以透過下面的命令來完成安裝:
vs_enterprise.exe --layout c:\layout --config c:\my.vsconfig --useLatestInstaller
或者,也可以直接用現在 Windows 有內建的 WinGet 來完成安裝(參考):
winget install --id Microsoft.VisualStudio.2022.Community --override "--passive --config c:\my.vsconfig"
這樣對於要大量佈署的人來說,應該會是個比較方便的方法了。
再來,則是 C++ 的部分了~這部分主要可以參考《Visual Studio 2022 version 17.5 for C++ Developers》這篇。
這部分大概列一下個人覺得比較有用的:
- 改善 debug 版效率
- 基本上應該是減少某些程式碼編譯後的產出、藉此讓 debug 模式的建置結果效能更好。
- 可以參考《Improving the State of Debug Performance in C++》
- C++23 新功能
- 針對
std::format
加入std::format_string
,作為編譯階段的格式化字串之用。 - 在 C++20 的 Ranges 裡加入
- 巨集展開
其他沒玩出來的功能:
- Reimagined Member List
- 應該是名為「Predictive IntelliSense」的預覽性功能,理論上是會提供型別符合的成員列表,算是自動完成的改進。
- 但是 Heresy 這邊試不出來、也找不到對應的選項?
- Brace Pair Colorization
- 理論上應該有加入幫對應的大括號(
{}
)上不同顏色的功能
結果大括號的上色要等到 17.6
https://devblogs.microsoft.com/cppblog/visual-studio-17-5-for-cpp-devs/#comment-2210