人生第一篇博客文章,写写VAssistX的VA Snippet Editor
首先,先上效果代码
1
//
********************************************************************
2
//
TESTCLASS.H 文件注释
3
//
文件名 : TESTCLASS.H
4
//
文件路径: J:\CODING\TEST\C++解疑\CYUYAN\
5
//
作者 : RIPPLE
6
//
创建时间: 2009/10/3 11:02
7
//
文件描述:
8
//
*********************************************************************
9
#ifndef _H_TESTCLASS_H_
10
#define
_H_TESTCLASS_H_
11
12
#include
<
iostream
>
13
using
namespace
std;
14
15
namespace
ripple
16
{
17
//********************************************************************
18
// CHello 类注释
19
// 类名 : CHello
20
// 基类名称: NULL
21
// 命名空间: ripple
22
// 作者 : RIPPLE
23
// 创建时间: 2009/10/3 11:16
24
// 类描述 : 说Hello
25
//*********************************************************************
26
27
class CHello
28
{
29
public:
30
void SayHello(void)
31
{
32
cout<<"hello"<<endl;
33
}
34
private:
35
36
};
37
38
//********************************************************************
39
// CHelloWorld 类注释
40
// 类名 : CHelloWorld
41
// 基类名称: CHello
42
// 命名空间: ripple
43
// 作者 : RIPPLE
44
// 创建时间: 2009/10/3 11:16
45
// 类描述 : 说HelloWorld
46
//*********************************************************************
47
48
class CHelloWorld : public CHello
49
{
50
public:
51
void SayHello()
52
{
53
cout<<"hello world"<<endl;
54
}
55
private:
56
57
};
58
59
}
60
#endif
61
接着,放出测试代码
2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

1
//
********************************************************************
2
//
C.CPP 文件注释
3
//
文件名 : C.CPP
4
//
文件路径: J:\CODING\TEST\C++解疑\CYUYAN\
5
//
作者 : RIPPLE
6
//
创建时间: 2009/10/3 12:49
7
//
文件描述:
8
//
*********************************************************************
9
10
#include
"
testclass.h
"
11
using
namespace
ripple;
12
int
main()
13
{
14
CHello p;
15
p.SayHello();
16
CHelloWorld pp;
17
pp.SayHello();
18
system("pause");
19
}
那些注释。都是事先在VAssistX中,通过宏写的。接下来放出各个关键宏的代码
2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

首先是 文件级的注释
fileinfo:
快捷键自己设定:(本人用fileinfo作为快捷键)
先别管这些宏什么意思,最后我会贴出所有宏的解释,相信,那是,你也可以编写出符合自己编程习惯的宏代码
1
//
********************************************************************
2
//
$FILE_BASE_UPPER$.$FILE_EXT_UPPER$ 文件注释
3
//
文件名 : $FILE_BASE_UPPER$.$FILE_EXT_UPPER$
4
//
文件路径: $FILE_PATH_UPPER$\
5
//
作者 : %USERNAME%
6
//
创建时间: $YEAR$/$MONTH$/$DAY$ $HOUR$:$MINUTE$
7
//
文件描述: $end$
8
//
*********************************************************************
9
接着,防止头文件被多次包含(选取)(PS:这有两种情况,一种是这种,用鼠标选择后 右键选择Sourround With (VA X),选择你事先设置好的名称即可,
2

3

4

5

6

7

8

9

这里我设为防止头文件被多次包含(选取)。
宏代码敬上:
1
#ifndef _H_$FILE_BASE_UPPER$_H_
2
#define
_H_$FILE_BASE_UPPER$_H_
3
4
$selected$
5
6
#endif
注意文中的selected宏,那表示选中的文字将被 #ifndef ... #endif包围
2

3

4

5

6

最后再展示下类注释的宏编写。
注意:VA Snippet Editor不仅支持自己的宏,还支持系统环境变量,注意下面的%USERNAME%就是个例子(表示系统现在使用的用户名)
1
//
********************************************************************
2
//
$ClassName$ 类注释
3
//
类名 : $ClassName$
4
//
基类名称: $BaseClassName$NULL
5
//
命名空间: ripple
6
//
作者 : %USERNAME%
7
//
创建时间: $YEAR$/$MONTH$/$DAY$ $HOUR$:$MINUTE$
8
//
类描述 : $end$
9
//
*********************************************************************
10
11
好了,写了几个常用的宏代码了,大家应该对这有点感觉了吧。
2

3

4

5

6

7

8

9

10

11

安装软件的方法就不多说了。网上很多。
接下交大家如何打开VA Snippet Editor
方法有几种,第一种,也是个人比较喜欢的方式,在IDE的文本编辑区输入 //-然后会弹出[Edit]菜单,点击这个菜单即可进入编辑。当然也可以添加删除拷贝等操作。
第二种是,在IDE主菜单中,依次选择VAssisstX->Visual AssistX Options->Advanced->Sugesstions,单击右边的Edit VA Snippet,即可进入编辑。
最后,献上所有VS Snippet Editor的宏
1
Date
2
$DATE$ Year
/
month
/
day formatted
as
%
04d
/%
02d
/%
02d
3
$DAY$ Day of month formatted
as
%
d
4
$DAY_02$ Day of month formatted
as
%
02d
5
$DAYNAME$ Three
-
character abbreviation of day
6
$DAYLONGNAME$ Full name of day
7
$MONTH$ Month formatted
as
%
d
8
$MONTH_02$ Month formatted
as
%
02d
9
$MONTHNAME$ Three
-
character abbreviation of month
10
$MONTHLONGNAME$ Full name of month
11
$YEAR$ Year formatted
as
%
d
12
$YEAR_02$ Year formatted
as
%
02d
13
Time $HOUR$ Hour formatted
as
%
d
14
$HOUR_02$ Hour formatted
as
%
02d
15
$MINUTE$ Minute formatted
as
%
02d
16
$SECOND$ Second formatted
as
%
02d
17
File
18
$FILE$ Full filename with path
*
19
$FILE_UPPER$ Full filename with path
in
uppercase
*
20
$FILE_BASE$ Filename without path or extension
*
21
$FILE_BASE_UPPER$ Filename without path or extension
in
upper
case
*
22
$FILE_EXT$ Filename extension
*
23
$FILE_EXT_UPPER$ Filename extension
in
upper
case
*
24
$FILE_PATH$ Path of file
*
25
$FILE_PATH_UPPER$ Path of file
in
upper
case
*
26
General
27
$clipboard$ Current clipboard
28
$end$ Position of caret after expansion
29
$selected$ Current selection
**
30
$$ Literal
'
$
'
character
31
Symbol Context
32
$MethodName$ Name of containing method
33
$MethodArgs$ Method parameters
34
$ClassName$ Name of containing
class
35
$BaseClassName$ Name of
base
class
of containing
class
36
$NamespaceName$ Name of innermost containing
namespace
37
GUID
38
$GUID_DEFINITION$ Generated GUID formatted
for
use
in
a definition
39
$GUID_STRING$ Generated GUID formatted
for
use
in
a
string
40
$GUID_STRUCT$ Generated GUID formatted
for
use
in
a
struct
41
Refactor
42
$GeneratedPropertyName$ Property name generated during Encapsulate Field
43
$MethodArg$ One parameter of the method and its type
44
$MethodArgName$ One parameter of the method
45
$MethodArgType$ Type of one parameter of the method
46
$MethodBody$ Body of implementation
47
$MethodQualifier$ Optional qualifiers of method
48
$ParameterList$ Parameters separated by commas
49
$SymbolContext$ Context and name of method
50
$SymbolName$ Name of method
51
$SymbolPrivileges$ Access of method
52
$SymbolStatic$ Keyword
static
or blank
53
$SymbolType$ Return type of method
54
$SymbolVirtual$ Keyword
virtual
or blank
55
56
另外,参考官方网站http://www.wholetomato.com/products/features/vasnippets.asp学习更多。。
2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

最后的最后是系统环境常用的变量(也许有用):
WINDOWS系统变量 ALLUSERSPROFILE=H:\Documents and Settings\All Users //所有用户的PROFILE路径 APPDATA=H:\Documents and Settings\Administrator\Application Data //当前用户的应用程序路径 ClusterLog=H:\WINDOWS\Cluster\cluster.log //集群日志路径 CommonProgramFiles=H:\Program Files\Common Files //应用程序公用的文件路径 COMPUTERNAME=E2003 //计算机名称 ComSpec=H:\WINDOWS\system32\cmd.exe //当前的命令解释器 HOMEDRIVE=H: //当前用户的主盘 HOMEPATH=\Documents and Settings\Administrator //当前用户的主目录 LOGONSERVER=\E2003 //登录的服务器 NUMBER_O_PROCESSORS=1 //当前计算机的处理器数字 OS=Windows_NT //当前系统的内核 Path=H:\Program Files\Support Tools\;H:\WINDOWS\system32; //学过DOS的都知道 PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH //以前DOS下默认的是COM,EXE,BAT,现在已经有这么多了哟,以前都不知道,脚本都可以不打扩展名了 PROCESSOR_ARCHITECTURE=x86 //处理器架构 PROCESSOR_IDENTIFIER=x86 Family 15 Model 1 Stepping 3, GenuineIntel //处理器标识符 PROCESSOR_LEVEL=15 //没注意过,不知道有什么用 PROCESSOR_REVISION=0103 //版本? ProgramFiles=H:\Program Files //应用程序的默认安装目录 PROMPT=$P$G //学过DOS的都知道 SESSIONNAME=Console //会话名称? SystemDrive=H: //系统所在的盘符 SystemRoot=H:\WINDOWS //系统所在的目录 TEMP=H:\DOCUME~1\ADMINI~1\LOCALS~1\Temp //当前用户的临时目录 TMP=H:\DOCUME~1\ADMINI~1\LOCALS~1\Temp //同上 USERDNSDOMAIN=MCSE.COM //当前用户所在的域的DNS表示 USERDOMAIN=MCSE //NETBIOS表示 USERNAME=administrator //当前用户名 USERPROFILE=H:\Documents and Settings\Administrator //当前用户的配置文件目录 windir=H:\WINDOWS //windows所在的目录,总是跟systemroot一样