VAssistX使用小竅門


日常使用中的一些VAssistX使用小竅門,簡單總結下

一,修改VAssistX默認緩存文件路徑,防止默認C盤被占用空間過大

1、  打開注冊表HKCU\Software\Whole Tomato,新建UserDataDir,數值為要修改的路徑,如下圖:

 

2、  C:\Users\{用戶名稱}\AppData\Roaming\VisualAssist\ 為AutoText目錄,拷貝到新目錄下

3、  C:\Users\{用戶名稱}\AppData\Local\VisualAssist\為符號表目錄,拷不拷貝無所謂

4、  刪除舊的AutoText和符號表目錄,會發現C盤瞬間多了好幾個G

 

 二,利用Visual AssistX的特性快速適應C++代碼規范

Visual AssistX是一款功能非常強大的VC、VS插件,可以非常便利用其自動完成和着色的功能,讓代碼的輸入速度和可讀性大大的增強。在實際的開發過程當中,很多人只利用到了它的這兩個功能,在下面我將介紹下,利用Visual AssistX實現按代碼規范要求的文件頭注釋,函數注釋,以及查找代碼,代碼重構的相功能。

快速的加入文件頭注釋:

例如有如下c++編程規范的要求,源文件頭部應該進行注釋,列出版權說明,文件名,修改日志等。具體示例如下:

[示例]:

/**   @file file.h

 *     @note XXX Technology Co., Ltd. All Right Reserved.

 *     @brief 這里填寫本文件的摘要。

 *

*     @author           xxx

 *     @date               2004/02/14

 *

*     @note 下面的note和warning為可選項目

 *     @note 這里填寫本文件的詳細功能描述和注解

 *     @note 歷史記錄:

 *     @note V2.0.0  添加了一個導出接口

*

 *     @warning 這里填寫本文件相關的警告信息

 */

 

 Visual AssistX自帶的文件頭注釋和我們公司要求的格式有所不同,所以我們首先修改它的格式,在Viusal Studio的VAssistX菜單(前提是已經安裝過這個軟件)中,選擇tools項中的Edit VA Snippets…項,如下圖:

 

將彈出如下對話框:

 

左側的樹上如#d,#u代表着一些常用的快捷輸入,比如輸入#d就會自動彈出#define的候選輸入,然后敲擊回車便會自動補全相應的功能,我們就是加入我們的文件頭的注釋。

首先為代碼頭加入快捷輸入前幾個字符,我這里為了不和其實的有所沖突,便以“/***”做為快捷輸入的字符,也就是說當輸入“/***”時,就會彈出我們自定義的文件頭注釋。

  1. 點擊工具欄的新建按鈕 。
  2. 在右側輸入如下:                    

其中Title是這個Snippet的標題,這里寫的是“File header detailed”,Shortcut就是你設置的快捷鍵,這里設置的是“/***”,Despcription就是你自已經對這個Snippet的詳細描述。

  1. 在內容里輸入如下:
    /**  @file        $FILE_BASE$.$FILE_EXT$

    *   @note  XXX Technology Co., Ltd. All Right Reserved.

    *   @brief   $Breif$

 *

    *   @author  $Author$

    *   @date    $YEAR$/$MONTH$/$DAY$

    *

 *   @note   detailed functional description of this document and comments

    *   @note   History

    *

    *   @warning warning message related to this document 

*/

大部分內容可以看的明白,有幾處“$FILE_BASE$”,“$FILE_EXIT$等是Visual AssistX的保留字,$FILE_BASE$是不包括擴展名的文件頭,$FILE_EXIT$是文件擴展名,當我們插入這些內容里,Visual AssistX會自動替換為文件名,$YEAR$/$MONTH$/$DAY$是如“2011/5/20” 的方式插入日期。你也可以自定義保留字,像此處$Breif$,$Author$是我們自己定義的,看英文的意思是文件簡介和文件的作者,作用是,當你輸入/***時,敲回車會彈出一個對話框,讓你手動輸入Breif和Author,看下圖:

當輸入/***時彈出你自定義的這個Snippets的標題,

 

直接敲回車:

 

Brief和Autor就是你自定義的保留字,你在這里邊輸入到你編寫的這個C++文件的簡介和作者,敲回車,就會自動加入文件頭。如下圖:

 

由於我把注釋的顏色設置成灰色了,所以看不太清,實際如下:

/**  @file  WarnDlg.h

 *   @note  XXX Technology Co., Ltd. *            All Right Reserved.

 *   @brief  警告框

 *

 *   @author jiangxf

 *   @date   2011/5/27

 *

 *   @note   detailed functional description of this document *   @note   History

 *

 *   @warning warning message related to this document 

*/

以后每次就可以通過輸入/***加入文件頭了,避免每次都自己復制,一勞永逸。

 

加入函數注釋:

我們的規范如下:

/**   @fn const char *TestClass::func1(char c,int n)

 *     @brief      <這里填寫函數的摘要>

 *     @param c 參數描述.

 *     @param n 參數描述.

 *     @return  返回描述

 */

這個在Visual AssistX中已經有了,但是只是格式不同,我們首先在Viusal Studio的VAssistX菜單(前提是已經安裝過這個軟件)中,選擇tools項中的Edit VA Snippets…項,在左側找到Refactor Document Method。

 

然后在左側的內容里輸入

 

注意Title和Shortcut里的內容不要修改。使用函數注釋按下面的方法:

在CPP的文件里找到你要加入注釋的函數,將光標移到函數處,右鍵,選擇Refactor菜單項里的Document Method,如下圖:

 

因為我們定義注釋里有個自定義的保留字$Brief$,所以在點擊完Document Method時,會彈出對話框讓你輸入函數的概要。輸入完點確定即可。

 

在Breif處輸入函數簡介。

 

/** @fn       CMutiroleDialog::ShowDialog

 *  @brief    顯示對話框

 *  @param    QWidget * parent

 *  @param    QString & strTitle

 *  @return   void

 */

點擊回車后生成上面的注釋,其中$MethodArgs$會給你列出所有的函數參數,這當然也是自動生成的,你在每個參數后面加入參數的注釋內容即可,這個當然不能自動完成,因為它也猜不出函數參數的意思~。

 

查找某個函數的功能:

Visual Studio的查找功能有些不太好用的地方,我現在介紹下這個插件的查找功能。

假如你要找一個函數在哪里被引用到,這個就非常方便了。

首先將鼠標移動到函數名稱上,會出現一個倒三角號,

 

如果選擇Find References,就可以顯示在這個解決方案中,所以引用到這個函數的地方,如果選擇Find Reference in File,它只用顯示這個函數在當前的文件當中引用到的地方,查找的結果在:

 

會詳細的顯示出在哪個文件里,哪一行,還有哪個函數里引用到了這個函數,而且可以使用代碼着色的功能顯示,非常直觀。

在上面的菜單當中,還可以直接選擇重命名,這樣就可以重命名所有引用到地方一起改變名稱,這個可以自己試下。

 

自動加入函數實現的功能:

當你在頭文件里寫了一個函數時,每次都得到CPP文件中補上函數的實現,其實你可以在頭文件的函數處,右鍵,選擇Refactor,Create Implements的,這樣,就會在C++中自加入函數的實現,而不用手動再去寫。

 

如上圖。

這個Refactor中,可以實現好多功能

  1. 可以加入類的成員變量
  2. 加入相似的函數
  3. 如果你先在CPP寫好了函數,可以直接在.h中加入聲明
  4. 如果一些函數和變量是其他頭文件中的,而你還沒有include,還可以自動include進來
  5. 改變名稱
  6. 選中一塊代碼,可以把這塊代碼抽象成一個函數(就是加一個函數體將這塊選中的代碼包起來,使之成為一個獨立的函數)
  7. 實現接口,如果你繼承的父類有虛擬函數,他們的直接實現這些接口,並分別加入到頭文件和CPP文件中。

 

包圍功能

 

包圍功能是這樣的,當你選中一塊代碼,可以直接用{}或()包圍起來,也可以在這塊代碼中加入if包起來。可以加的包圍功能,如上圖所示。它會直接在你選中的代碼外面,加入你選擇的東西。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM