Visual Studio 2022 17.6

| | 0 Comments| 13:03
Categories:

Visual Studio 2022 的更新又來囉~這次的版本是 17.6,官方的公告是《Visual Studio 2022 – 17.6 Now Available》,這邊就來簡單紀錄一下個人有興趣的更新了。

首先,Visual Studio 執行後列出的新增功能列表如下:

  • C# 的 InteIIiCode API 使用範例
  • .NET 遠端偵錯的視覺化檢視支援
  • Unreal Engine 記錄檢視器
  • Tim Jones 提供的 HLSL 工具擴充功能
  • 適用于 ARM64 裝罝的 .NET MAUI 工具
  • 適用于 Unix 的遠端檔案總管
  • CMake 偵錯工具
  • 匯入 C 或 C++ 內嵌 STM32CubelDE
  • GitHub 問題整合
  • 中斷點群組
  • WSL 上 .NET 的分析工具即時圖表
  • 建立 C + + 成員函式
  • C++ 的檢測分析工具
  • Android 資訊清單編輯器

C++ 相關的部分則可以參考《Visual Studio 2022 version 17.6 for C++ Developers》,不過個人覺得這次好像比較少值得注意的。

更詳細的更新,則可以參考 release note

下面是個人覺得比較有興趣的點:

GitHub 問題整合

這邊是強化了 Visual Studio 內建的 git 圖形介面和 GitHub 的整合。

現在如果是 GitHub 的專案的話,在輸入 git commit 的註解的時候,只要輸入「#」、或是按下右下角的「#」按鈕,他就會列出 GitHub 上面這個專案的 issue 與 pull request,讓使用者可以快速地將這個 commit 連結到對應的 issue;同時,這邊也可以快速地開啟 GitHub 上面的 issue 頁面。

詳細的說明,可以參考《Reference GitHub Issues and Pull Requests in Visual Studio》這篇文章。

這部份對於把專案放在 GitHub 上面的人來說,應該算是個實用的功能;但是由於 Heresy 自己主要是使用自己架設的 GitLab,所以用到的機會就不大了。

另外,git merge 似乎也有更新?但是由於 Heresy 大多都還是使用 TortoiseGit,所以就不多做研究了。

中斷點群組

這次更新後,可以在「中斷點」(breakpoint)視窗中,建立出有階層式的群組,來做控制點的管理。

這樣做的好處是當要大量啟用/停用特定的中斷點的時候,可以透過群組來做操作、而不用一個一個趣點選。

另外,中斷點群組也有很基本的條件式啟動,就不知道以後會不會有更多功能了?

建立 C + + 成員函式

這是個個人覺得還算實用的功能~如果我們定義了一個 class 如下:

class CData
{
protected:
  int    iVal;
  float  fVal;
};

現在在 class 的名字下會出現三個點、將滑鼠游標移過去後會出現一個起子的按鈕,可以選擇要建立那些成員函式。

如果是「預設建構函式」的話,他會直接去透過 default 來建立一個空的建構子(參考)如下:

CData() = default;

而如果是選「具有所有欄位的建構函式」的話,則會變成:

CData(int iVal, float fVal)
  : iVal(iVal), fVal(fVal)
{
}

基本上算是幫忙寫了個殼,讓使用者方便後續修改了。

而「等號運算子」的部分,基本上就是 operator==,建立出來的內容大概如下:

bool operator==(const CData& other) const
{
  return iVal == other.iVal && fVal == other.fVal;
}

在很多情況下,能自動建立出這種函式其實算是可以減少一些人工的。

不過個人覺得比較可惜的是,他還沒辦法去建立其他像是 copy constructor 或是 move operator 之類的東西?如果能把這些都自動建立出來,感覺會更方便。

成對括號上色

這個功能在 17.5 就有列出來了,不過當時實際上沒有真正出現;而現在在「選項」中的「文字編輯器」的「一般」、「顯示」裡面,可以開啟這項功能了~不過,選項名稱還是英文?

在開啟這項功能後,對應的括號(大括號和小括號都有)就會用同樣的顏色來顯示;理論上這樣可以更清楚利確認括號是怎麼對應的了~

不過,有的時候可能會覺得程式碼的顏色太花就是了。 :p

這部分可以參考之前的《C++ Brace Pair Colorization and More in Visual Studio》一文。

自黏捲動

這個「自黏捲動」(Sticky Scroll)算是個有趣的新功能?他預設應該沒有開啟,可以在「選項」中的「文字編輯器」、「一般」的「自黏捲動」中找到相關的設定。

它的功能基本上是會在捲動程式碼的時候,把 namespace、class、函式定義、if、for 這些有層次的東西留在文件的上放、讓在捲動程式碼的時候,可明確地看的出來現在的程式碼是在哪個東西裡面。

下面就是為微軟在《Sticky Scroll now in preview》一文中提供的示意:

不過感覺上,這種顯示效果感覺得習慣一下才會有比較有用?

效能改善

另外,根據官方說法,這次更新也大幅改善了大型方案的開啟、關閉速度。
以開啟大型方案來說,在有快取的狀況下號稱可以提高到 8 倍;而在關閉方案的部分,則也號稱快了 50%。

此外,Git History 的功能也號稱提高了 42% 的效能。

其他不知道怎麼用的

理論上,這次更新應該可以將 Just My Code 的設定檔(.natjmc.natstepfilter)的檔案移到方案層級、方便團隊共用。
(關於 Just My Code 可以參考之前的《在 VIsual Studio 使用 Just My Code,避免 C++ 偵錯時顯示大量外部函式庫的內容》)

個人是覺得這樣的更動很實用,只是 Heresy 這邊卻看不出來到底該怎麼使用(官方 issue)?或許等之後研究出來,再來寫一篇好了?

另外,這次「檢測分析工具」(Instrumentation tool、官方文件)也開始支援 C++ 的專案了。要執行的話可以透過「偵錯」、「效能分析工具」裡面的「檢測」來啟動。
不過他不會自動幫專案加上必要性的「/PROFILE」這個連結參數,需要自己修改專案設定(專案屬性、連結器、進階、設定檔)。
而重點是,這東西個人還不知道該怎麼實用? XD

Leave a Reply

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *