好用小幫手 Acuminator 診斷提示

Acuminator 是 Visual Studio 的擴充。 可以在 Visual Studio 的擴充中找到(如下)

Graphical user interface, text, application, Teams

Description automatically generated

它努力實現兩個目標:

  1. 通過靜態分析檢查 Acumatica 框架是否被正確使用。
  2. 簡化開發人員使用 Acumatica 的工作。
  • 診斷提示

分享有關 Acuminator 診斷中有用提示:在此Link 找到每個診斷的文檔和理由。

在 Visual Studio 的錯誤列表窗口中查看所有打開code file的診斷信息。 每次打開或關閉code file時,列表都會在一小段延遲後重新整理。

錯誤列表窗口中帶有診斷信息的表格可以通過單擊列標題進行排序。 還可以為某些列(如Project或File)應用過濾器。

也可以通過單擊“錯誤列表”窗口中“Code”列中的診斷代碼,從 Visual Studio 快速打開診斷文檔。

Graphical user interface, text, application

Description automatically generated
  • 語法上色

語法上色是開發工具提供給工程師最常見和最有用的功能之一。它使用一個簡單的想法 -> 透過用不同的顏色來強調程式碼中的某些文字。可快速而清晰地展示關鍵字、變數、宣告和許多其他有用的東西。我們的注意力被吸引到不同顏色的字上,這用於向我們展示程式碼的重要部分。顏色本身也提供了一些有用的信息。可以快速查看某個類型是struct、interface、enumerator和class。這樣的事情大大提高了開發人員的生產力。當然也可以依靠自己找出所有信息,但這需要更多時間。眾所周知,目前軟體開發中最昂貴的部分是工程師的時間。

在 Acuminator 語法上色的背後會與BQL中強調關鍵語法結構的想法相同。查看如下圖所示的大型 BQL 查詢相當不方便,確定這個查詢需要什麼參數也確實不容易。

Text

Description automatically generated

因此,希望對 BQL 進行上色是很自然地。 在開始開發之後,很快就對 BQL 部分進行了一些分類:

  • BQL 運算符:PXSelect等命令、邏輯運算符 Or、函數 Max
  • BQL 參數:定義查詢參數的“關鍵字”:RequiredOptionalCurrent等;
  • DAC及DAC欄位
  • DAC cache擴充的顏色不同,讓使用者區分 DAC 及其擴充
  • BQL 常量:實際上有兩部分:“前綴”和“結尾”。 在 Acumatica 中,BQL 常量通常由兩部分組成。 例如,APDocStatus.hold。 這實際上與 BQL 中經常出現的 <DAC>.<DAC field> 模式非常相似。 因此決定為前綴和結尾添加單獨的顏色。

上色後的結果:

A big colored  BQL query example

即使在 BQL 範圍之外,DAC 和 DAC 欄位類型實際上也是彩色的。 後來又添加了兩種顏色類型 -> PXActionPXGraph

Acuminator 還有另一個小東西 -> Angle braces。 有時在 BQL 查詢中會有很多尖括號堆疊在一起。 這使得編輯查詢變得困難。 Acuminator 將查詢的匹配開始和結束尖括號上色為相同的顏色。 這個特性的靈感來自 Viasfora一個 Visual Studio 擴充,它對普通大括號做同樣的事情。

有 14 種不同的顏色,每種braces顏色對應不同的巢狀層級。 如果 BQL 查詢中的尖括號巢狀層級超過 14 級,則顏色將重新循環。

Acumatica的設計師在默認顏色上非常努力,但如果此設計不適合個人喜好,可以在 Visual Studio 設置中指定顏色,工具 -> 選項 -> 環境 -> Fonts and Colors

Acuminator Fonts And Colors section

上圖顯示了 Acuminator 上色設置部分。可以對以下對象指定自定義顏色:

BQL 運算符、參數和常量(分別用於前綴和結尾)、DAC、DAC cache擴充和 DAC欄位、Action、Graph和對於 BQL 中尖括號的每個巢狀層級,下圖的紅色方塊表示所選項目的可客製化設置。

打開工具 -> 選項 -> Acuminator -> 常規 -> BQL Coloring

Acuminator Visual Studio Settings, coloring section selected

Acuminator 支持客製化 Visual Studio 主題。它有兩個默認主題顏色 -> 用於Light和Dark主題。如果 Acuminator 決定代碼編輯器背景為“Dark”,則將應用深色主題的設置。

以下是對紅框中所做工作的描述:

  • Colorize code only inside BQL commands

有些人更希望僅對 BQL 查詢進行上色,而不為其他物件上色。這種模式的存在是為了滿足此需求。 默認情況下是關閉的。

  • Enable coloring

Acumatica希望讓工程師能夠隨時關閉未使用的功能,也知道每個功能都會對性能產生影響。因此,如果僅將 Acuminator 用於其靜態分析或其他功能,並且不需要語法上色,則只需將其關閉即可。這將提高 IDE 的性能,可以繼續使用其他 Acuminator 功能。

  • Enable PXGraph/PXAction coloring

啟用或禁用Graph/Graph action的上色。Acumatica之後將這些功能添加到著色中,因此可以選擇禁用它們。默認情況下是打開的。

  • Use RegEx colorizer

這是一種傳統模式Acuminator 上色的第一個版本沒有使用 Roslyn。相反,它依據常用表達式並且非常原始,不支持複雜的 BQL 運算符或 FBQL。在一些少見的情況下,它也會錯誤地上色。我們不建議使用它,默認情況下此功能是關閉的。但是,當可能想要使用它時,有一個範例 – 當查看單獨的代碼文件而沒有解決方案時。為了正確工作,基於 Roslyn 的上色需要一個完整的項目,其中包含metadata和對 Acumatica 平台的引用。 RegEx colorizer解析 BQL 而不是分析其metadata。因此,它將適用於任何提供的code file。

分享至:

Share on facebook
Share on twitter
Share on linkedin