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包起來。可以加的包圍功能,如上圖所示。它會直接在你選中的代碼外面,加入你選擇的東西。

轉載于:https://www.cnblogs.com/widget90/p/6128590.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/394511.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/394511.shtml
英文地址,請注明出處:http://en.pswp.cn/news/394511.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

react 交互_如何在React應用程序中跟蹤用戶交互

react 交互by Faouzi Oudouh通過Faouzi Oudouh 如何在React應用程序中跟蹤用戶交互 (How to track user interactions in your React app) Worry not about which Analytics provider you need to gather user interaction within your app.不必擔心需要哪個Analytics(分析)提…

shell python比較_shell中的條件判斷以及與python中的對比

shell中比如比較字符串、判斷文件是否存在及是否可讀等&#xff0c;通常用"[]"來表示條件測試。注意&#xff1a;這里的空格很重要。要確保方括號的空格。if ....; then python中的條件判斷&#xff1a; if ....: (此處是冒號&#xff0c;不同…

服務器麒麟系統能設置mtu嗎,麒麟操作系統安裝標準手冊-20210405220006.docx-原創力文檔...

精品文檔精品文檔PAGEPAGE47精品文檔PAGE.銀河麒麟V3操作系統安裝手冊V1.2編制&#xff1a;王帥校核&#xff1a;朱本亮審定&#xff1a;周俊...文檔更新日志&#xff1a;序號修訂時間修訂內容修改人審定人012017-04-12發布文檔V1.0王帥周俊022017-05-11增加啟動安裝時藍屏錯誤…

多個 gradle 文件夾 \.gradle\wrapper\dists\ 設置gradle不是每次都下載

韓夢飛沙 韓亞飛 313134555qq.com yue31313 han_meng_fei_sha 設置gradle不是每次都下載 \.gradle\wrapper\dists\ 在你導入項目的時候&#xff0c;有個選項的&#xff1a; 你要是選了Use default gradle mapper就會下載一次&#xff0c;Use local gradle distribution就會…

docker使用方式

docker使用方式安裝&#xff1a;1.安裝依賴 yum install -y yum-utils \ device-mapper-persistent-data \ lvm2 2添加yum源 yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo 3.安裝 yum install docker-ce docker-ce-cli contain…

使用AxiosJavaScript中的簡單HTTP請求

Interested in learning JavaScript? Get my ebook at jshandbook.com有興趣學習JavaScript嗎&#xff1f; 在jshandbook.com上獲取我的電子書 介紹 (Introduction) Axios is a very popular JavaScript library you can use to perform HTTP requests. It works in both Brow…

Linux中通過命令直接刪除文件中最后一行

何謂Sed(Stream EDitor):Sed原為UNIX系統上的非交談式文字編輯器(non-interactive stream editor)。當Sed讀入待編輯文件&#xff0c;會依編輯命令來進行文件的編輯工作。sed -i $d file如同其它UNIX的指令一般&#xff0c;Sed亦是由標準輸入(standard input)讀入欲編輯的文件&…

vb獲取數組長度_如何實現數組的二分查找

二分查找是一種極其高效、簡練的查找算法&#xff0c;它不僅簡單&#xff0c;易用&#xff0c;而且還非常的高效。相對于順序查找&#xff0c;二分查找在效率是呈現指數性提升&#xff0c;數據量越大&#xff0c;越能體現出二分查找法的優勢。二分查找的查找過程是&#xff1a;…

400錯誤返回了服務器信息,使用Spring MVC,接受JSON錯誤的POST請求會導致返回默認的400錯誤代碼服務器頁面...

我正在使用RESTAPI。接收到帶有錯誤JSON的POST消息(例如{sdfasdfasdf})會使Spring返回默認服務器頁面&#xff0c;以顯示400錯誤請求錯誤。我不想返回頁面&#xff0c;我想返回自定義JSON錯誤對象。當使用ExceptionHandler引發異常時&#xff0c;可以執行此操作。因此&#xff…

【Python】list和tuple 區別比較

列表 List classmates [Michael, Bob, Tracy] 元組 Tuple tuple一旦初始化就不能修改&#xff0c;比如同樣是列出同學的名字&#xff1a; >>> classmates (Michael, Bob, Tracy) 現在&#xff0c;classmates這個tuple不能變了&#xff0c;它也沒有append()&#xff…

leetcode315. 計算右側小于當前元素的個數(樹狀數組解法)

leetcode315. 計算右側小于當前元素的個數(樹狀數組解法) 題目&#xff1a;給定一個整數數組 nums&#xff0c;按要求返回一個新數組 counts。數組 counts 有該性質&#xff1a; counts[i] 的值是 nums[i] 右側小于 nums[i] 的元素的數量。 樹狀數組解法 java class Solution …

洛谷 P1101 單詞方陣

給一nn的字母方陣&#xff0c;內可能蘊含多個“yizhong”單詞。單詞在方陣中是沿著同一方向連續擺放的。擺放可沿著 8個方向的任一方向&#xff0c;同一單詞擺放時不再改變方向&#xff0c;單詞與單詞之間可以交叉,因此有可能共用字母。輸出時&#xff0c;將不是單詞的字母用*代…

從頭學習計算機網絡_如何從頭開始構建三層神經網絡

從頭學習計算機網絡by Daphne Cornelisse達芙妮康妮莉絲(Daphne Cornelisse) 如何從頭開始構建三層神經網絡 (How to build a three-layer neural network from scratch) In this post, I will go through the steps required for building a three layer neural network. I’…

python 文件處理

f open(chenli.txt) #打開文件 first_line f.readline() print(first line:,first_line) #讀一行 print(我是分隔線.center(50,-)) data f.read() # 讀取剩下的所有內容,文件大時不要用 print(data) #打印讀取內容f.close() #關閉文件1…

第五章 MVC之Bundle詳解

一、簡述 Bundle&#xff0c;英文原意就是捆、收集、歸攏。在MVC中的Bundle技術&#xff0c;也就是一個對css和js文件的捆綁壓縮的技術。 它的用處&#xff1a; 將多個請求捆綁為一個請求&#xff0c;減少服務器請求數 壓縮javascript&#xff0c;css等資源文件&#xff0c;減小…

所給服務器端程序改寫為能夠同時響應多個客戶端連接請求的服務器程序_一文讀懂客戶端請求是如何到達服務器的...

點擊上方“藍色字體”&#xff0c;選擇 “設為星標”關鍵訊息&#xff0c;D1時間送達&#xff01;互聯網是人類歷史上最偉大的發明創造之一&#xff0c;而構成互聯網架構的核心在于TCP/IP協議。那么TCP/IP是如何工作的呢&#xff0c;我們先從數據包開始講起。1、數據包一、HTTP…

消息服務器 推送技術,SSE服務器推送技術

SSE即 server send event 服務器發送事件&#xff0c;在在早期可能會使用ajax向服務器輪詢的方式&#xff0c;使瀏覽器第一時間接受到服務器的消息&#xff0c;但這種頻率不好控制&#xff0c;消耗也比較大。但是對于SSE來說&#xff0c;當客戶端向服務端發送請求&#xff0c;服…

Contest2162 - 2019-3-28 高一noip基礎知識點 測試5 題解版

傳送門 T1 單調棧 按照b排序 在家每一個物品時&#xff0c;判斷一下a和b的關系 如果s[sta[top]].a>s[i].b&#xff0c;就彈棧 記錄所有時候的height&#xff0c;并取最大值 T2 單調棧裸題 單調棧是干什么的&#xff1f;&#xff1f; 單調棧是記錄一個數的一側的第一個比他大…

在package.json里面的script設置環境變量,區分開發及生產環境。注意mac與windows的設置方式不一樣...

在package.json里面的script設置環境變量&#xff0c;區分開發及生產環境。 注意mac與windows的設置方式不一樣。 "scripts": {"publish-mac": "export NODE_ENVprod&&webpack -p --progress --colors","publish-win": "…

leetcode 978. 最長湍流子數組(動態規劃)

978. 最長湍流子數組 當 A 的子數組 A[i], A[i1], …, A[j] 滿足下列條件時&#xff0c;我們稱其為湍流子數組&#xff1a; 若 i < k < j&#xff0c;當 k 為奇數時&#xff0c; A[k] > A[k1]&#xff0c;且當 k 為偶數時&#xff0c;A[k] < A[k1]&#xff1b; 或 …