首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

打造 Visual Studio 2010 程式碼統計擴充套件:即時顯示行數、類別、方法、註解等指標

     編輯:關於.NET

本文手把手教學建立 VS2010 編輯器飾器擴充套件,在程式碼編輯器右上角顯示可摺疊的即時統計資訊面板:程式碼行數、字元數、命名空間/類別/介面/方法/屬性/欄位/註解計數、檔案大小。完整原始碼可直接編譯部署。

擴充套件功能概覽

  • 三態摺疊面板:最小化按鈕 → 基本統計 (行數/字元/大小) → 詳細統計 (類別/方法/屬性/欄位/介面/註解)。
  • 即時更新:編輯器內容變更、捲動、視窗大小調整皆觸發重新統計。
  • 語言偵測:自動識別 C# / VB.NET,支援擴充其他語言。
  • CS Parser 整合:利用開源解析器分析語法結構,避免自寫詞法分析器。

開發環境與專案範本

  1. 安裝 Visual Studio 2010 SDK。
  2. 新增專案選擇 Editor Viewport Adornment 範本 (Extensibility 分類)。
  3. 專案產生:Source.extension.vsixmanifest、Adornment.cs、AdornmentFactory.cs。

核心元件實作

1. WPF 使用者控制項

兩層 Expander 巢狀結構:外層 ExpandDirection=Left (基本資訊),內層 ExpandDirection=Down (詳細資訊)。StackPanel 排版 TextBlock,繫結 Foreground、FontWeight 等樣式屬性。

2. 程式碼分析核心:CodeInfoTracker

  • 接收 IWpfTextView (編輯器視圖介面)。
  • TextView.TextSnapshot.GetText() 取得完整原始碼文字。
  • DetectLanguage 透過 ContentType.DisplayName 判斷 CSharp / VisualBasic。
  • 呼叫 CSParser 解析 AST,統計各節點類型計數。
  • 回傳 Calculators 結構體 (含所有計數欄位)。

3. Adornment Factory:InfoBoxAdornmentFactory

[Export(typeof(IWpfTextViewCreationListener))]
[ContentType("text")]
[TextViewRole(PredefinedTextViewRoles.Document)]
internal sealed class InfoBoxAdornmentFactory : IWpfTextViewCreationListener
{
    [Export(typeof(AdornmentLayerDefinition))]
    [Name("AlwaysVisibleInfoBox")]
    [Order(After = PredefinedAdornmentLayers.Selection)]
    public AdornmentLayerDefinition editorAdornmentLayer = null;

    public void TextViewCreated(IWpfTextView textView)
    {
        new AlwaysVisibleInfoBox(textView); // 建立飾器實例
    }
}

AdornmentLayerDefinition 屬性定義顯示層級 (在 Selection 層之上)、層名稱、適用角色。

4. Adornment 實例:AlwaysVisibleInfoBox

  • 建構子:訂閱 LayoutChanged (編輯/捲動觸發)、ViewportWidthChanged/ViewportHeightChanged (視窗縮放觸發)。
  • OnLayoutChanged:實例化 CodeInfoTracker、呼叫 PerformCalculate()、更新 WPF 控制項文字。
  • onSizeChange:重新定位飾器至編輯器右上角 (ViewportRight - 255, ViewportTop + 10),清除舊飾器並 AddAdornment。

部署與發佈

  1. 建置專案產生 .vsix 檔案,雙擊即可安裝至 VS2010。
  2. 移除:工具 → 延伸模組管理員 → 解除安裝。
  3. 發佈至 Visual Studio Gallery:上傳 .vsix 至 VS Marketplace (原 Gallery)。

執行畫面

擴充套件三態展示:最小化按鈕、基本統計面板、詳細統計面板

摺疊/展開動畫示意

總結

Viewport Adornment + WPF + CS Parser + MEF 元件模型,快速打造實用的編輯器增強工具。此架構可擴充為程式碼品質儀表板、重構建議、即時編譯錯誤顯示等進階功能。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved