2024年Go最新带你玩转Visual Studio——带你高效开发_vs2008 vaoutline(2),2024年最新Golang开发面试

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!


2.主要窗口和工具

插件装上之后你应该就能感觉比以前好多了,比如代码高亮啊,智能提示啊,应该立马就能体现出来。但这还是要简单介绍一下。

窗口视图

图 2:窗口视图

插件成功安装之后,菜单栏会多一个VassistX的菜单,这里包含了VassistX的所有功能和相关的设置,设置方面后面还会进一步讲。
左侧会有两个VA Outline和VA View视图(如果没有,可能菜单VassistX\Tools\VA Outline调出来)。VA Outline这个视图很有用,也是我用的最多的一个视图,它能清晰地呈现一个类中的各个成员。
工具栏也会多一个VassistX工具组。这个我用的最多的要数最右边的.h与.cpp的切换按钮。


3常用的快捷键

这里只列出一些最常用的快捷键,一般记住这些也就够用了。

快捷键说明备注
Alt+G快速跳转,如由声明跳转到实现,由实现跳转到声明。光标要在标识符处
Alt+O.h与.cpp文件的快速切换
Alt+Shift+F查找标识符所有被引用的位置光标要在标识符处
Alt+Shift+O查找整个Solution下的某个文件O指open,打开指定的文件
Alt+Shift+S查找标识符S指Symbol
Alt+Shift+R重命名标识符光标要在标识符处,R指ReName
Ctrl+Shift+V选择剪切板的内容进行粘贴
更改快捷键

菜单Tools\Option…,然后在打开的对话框中选择Keyboard,Show commands containning中输入VAssistX就能看到VAssistX的各种功能,你可以设置某一指定功能的快捷键。如你输入VAssistX.refactorRename,就能看到重命名的默认快捷键是Shift+Alt+R,你在Press shortcut keys中按下快捷键更改它。

设置快捷键

图 3:设置快捷键



VassistX的高效开发的属性配制

选项设置

VassistX有些默认设置并不太友好,我们可以自己重新设置它。在菜单中选择VassitX\Visual Assist X Option…打开设置对话框。以下是我个人的偏好设置,仅作参考(只说明一些关键设置的含义)。

设置1

图 4:设置1

1.拼写错误检测(这个不要选,不然老会有红色的波浪线提示);

2.类型错误检测(这个选上,可以测试你的变量类型是否正确);

设置2

图 5:设置2

1.高亮引用的标识符(设置颜色,一个当前词的颜色,一个是非当前词的颜色);

2.自动高亮当前光标所在处标识符

3.高亮查找引用的结果;

4.高亮重命名标识符时关联的变量;

设置3

图 6:设置3

1.(黑色)高亮匹配的括号;

2.(红色)高亮不匹配的括号;

3.高亮当前光标所在的行(可选择高亮前景或高亮背景);

4.纵向指示器的分隔线,一般用于控制一行代码的字符数;

5.高亮查找结果。


注释配制与自动添加代码

注释也是程序的一个重要组成部分之一,好的注释是提高代码的可读性和程序的可维护性的一个关键因素,而要写大量的注释是一件非常繁琐的事情,给程序员增加了不少负担,而VAsssistX就可能帮我们减轻这种负担。将光标移到函数名处,右键鼠标选择Refactor\Document Method可自动帮我们添加函数的注释。

我们可以自己配制自定义的注释格式。选择菜单:VAssistX\Insert VA Snippet…\Edit VA Snippet…进行设置。给出我的相关设置,仅作参考:

Title: File header detailed
Shortcut: fh
Description: 对整个文件进行注释

//===============================================================
//Summary:
// $FILE\_BASE$ 类, $end$
//FileName:
// $FILE\_BASE$.$FILE\_EXT$
//Remarks:
// ...
//Date:
// $YEAR$/$MONTH$/$DAY$
//Author:
// %USERNAME%(luoweifu@126.com)
//===============================================================

**说明:**两个$符号之间的内容都是VAssistX中定义的宏,参见文后的附录:Visual Assist X Snippets 宏


Title: Refactor Document Method
Shortcut:
Description: 对函数进行注释

//---------------------------------------------------------------
//function: 
// $SymbolName$ $end$
//Access:
// $SymbolVirtual$ $SymbolPrivileges$ $SymbolStatic$
//Parameter:
// [in] $MethodArg$ - 
//Returns:
// $SymbolType$ - 
//Remarks:
// ...
//author: %USERNAME%[luoweifu]
//---------------------------------------------------------------


Title: #ifndef … #endif
Shortcut: #ifn
Description: 防止头文件重复包含

#ifndef __$FILE_BASE_UPPER$\_H__
#define __$FILE_BASE_UPPER$\_H__
$end$
#endif  //__$FILE_BASE_UPPER$\_H__


Title: Refactor Encapsulate Field
Shortcut:
Description: 添加类中成员变量的Get/Set方法。

    $end$$SymbolType$ Get$GeneratedPropertyName$() const
    {
        return $SymbolName$;
    }
    void Set$GeneratedPropertyName$($SymbolType$ val)
    {
        $SymbolName$ = val;
    }


Title:
Shortcut: //-
Description: 用于某一个重要修改的注释,并记录修改时间。

// $end$ [$YEAR$/$MONTH$/$DAY$ %USERNAME%]

Title:
Shortcut: ///
Description: 分隔线,用于重要的代码块的分隔。

//===============================================================
$end$


附录

Visual Assist X Snippets 宏

.Reserved StringMeaning样例或说明
Date
DATE

D

A

T

E

DATE | Year/month/day formatted as %04d/%02d/%02d | 2015/10/02 |
| |
DATELOCALE

D

A

T

E

L

O

C

A

L

E

DATE_LOCALE | Current date in locale format | 本地化格式境 |
| |
DAY

D

A

Y

DAY | Day of month formatted as %d | 2 |
| |
DAY02

D

A

Y

0

2

DAY_02 | Day of month formatted as %02d | 02 |
| |
DAYNAME

D

A

Y

N

A

M

E

DAYNAME | Day abbreviation in locale format | //Fri |
| |
DAYLONGNAME

D

A

Y

L

O

N

G

N

A

M

E

DAYLONGNAME | Full name of day in locale format | //Friday |
| |
MONTH

M

O

N

T

H

MONTH | Month formatted as %d | 10 |
| |
MONTH02

M

O

N

T

H

0

2

MONTH_02 | Month formatted as %02d | 10 |
| |
MONTHNAME

M

O

N

T

H

N

A

M

E

MONTHNAME | Month abbreviation in locale format | Oct |
| |
MONTHLONGNAME

M

O

N

T

H

L

O

N

G

N

A

M

E

MONTHLONGNAME | Full name of month in locale format | October |
| |
YEAR

Y

E

A

R

YEAR | Year formatted as %d | 2015 |
| |
YEAR02

Y

E

A

R

0

2

YEAR_02 | Year formatted as %02d | 15 |
| Time |
HOUR

H

O

U

R

HOUR | Hour formatted as %d | 16 |
| |
HOUR02

H

O

U

R

0

2

HOUR_02 | Hour formatted as %02d | 16 |
| |
MINUTE

M

I

N

U

T

E

MINUTE | Minute formatted as %02d | 29 |
| |
SECOND

S

E

C

O

N

D

SECOND | Second formatted as %02d | 30 |
| File |
FILE

F

I

L

E

FILE | Full filename with path* | D:\CppWorkspace\DesignPattern\DesignPattern\Water.h |
| |
FILEUPPER

F

I

L

E

U

P

P

E

R

FILE_UPPER | Full filename with path in uppercase* | D:\CPPWORKSPACE\DESIGNPATTERN\DESIGNPATTERN\WATER.H |
| |
FILEBASE

F

I

L

E

B

A

S

E

FILE_BASE | Filename without path or extension* | Water |
| |
FILEBASEUPPER

F

I

L

E

B

A

S

E

U

P

P

E

R

FILE_BASE_UPPER | Filename without path or extension in upper case* | WATER |
| |
FILEEXT

F

I

L

E

E

X

T

FILE_EXT | Filename extension* | h |
| |
FILEEXTUPPER

F

I

L

E

E

X

T

U

P

P

E

R

FILE_EXT_UPPER | Filename extension in upper case* | H |
| |
FILEPATH

F

I

L

E

P

A

T

H

FILE_PATH | Path of file* | D:\CppWorkspace\DesignPattern\DesignPattern |
| |
FILEPATHUPPER

F

I

L

E

P

A

T

H

U

P

P

E

R

FILE_PATH_UPPER | Path of file in upper case* | D:\CPPWORKSPACE\DESIGNPATTERN\DESIGNPATTERN |
| General |
clipboard

c

l

i

p

b

o

a

r

d

clipboard | Current clipboard | 当前剪贴板内容 |
| |
end

e

n

d

end | Position of caret after expansion | 输入完成光标位置 |
| |
selected

s

e

l

e

c

t

e

d

selected | Current selection** | 选定内容 |
| | $$ | Literal ‘$’ character | $转义 |
| Symbol Context |
MethodName

M

e

t

h

o

d

N

a

m

e

MethodName | Name of containing method | |
| |
MethodArgs

M

e

t

h

o

d

A

r

g

s

MethodArgs | Method parameters | 函数参数列表 |
| |
ClassName

C

l

a

s

s

N

a

m

e

ClassName | Name of containing class | 类名称 |
| |
BaseClassName

B

a

s

e

C

l

a

s

s

N

a

m

e

BaseClassName | Name of base class of containing class | 基类名称 |
| |
NamespaceName

N

a

m

e

s

p

a

c

e

N

a

m

e

NamespaceName | Fully qualified namespace name | 命名空间 |
| GUID |
GUIDDEFINITION

G

U

I

D

D

E

F

I

N

I

T

I

O

N

GUID_DEFINITION | Generated GUID formatted for use in a definition | GUID定义,“,”分割 |
| |
GUIDSTRING

G

U

I

D

S

T

R

I

N

G

GUID_STRING | Generated GUID formatted for use in a string | GUID字符串,“-”分割 |
| |
GUIDSTRUCT

G

U

I

D

S

T

R

U

C

T

GUID_STRUCT | Generated GUID formatted for use in a struct | GUID结构 |
| |
GUIDSYMBOL

G

U

I

D

S

Y

M

B

O

L

GUID_SYMBOL | Generated GUID formatted with underscores | GUID符号,”_”分割 |
| |
GUIDSTRINGUPPER

G

U

I

D

S

T

R

I

N

G

U

P

P

E

R

GUID_STRING_UPPER | Uppercase version of
GUIDSTRING

G

U

I

D

S

T

R

I

N

G

GUID_STRING | 略 |
| |
GUIDSTRUCTUPPER

G

U

I

D

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

ted GUID formatted for use in a definition | GUID定义,“,”分割 |
| |
GUIDSTRING

G

U

I

D

S

T

R

I

N

G

GUID_STRING | Generated GUID formatted for use in a string | GUID字符串,“-”分割 |
| |
GUIDSTRUCT

G

U

I

D

S

T

R

U

C

T

GUID_STRUCT | Generated GUID formatted for use in a struct | GUID结构 |
| |
GUIDSYMBOL

G

U

I

D

S

Y

M

B

O

L

GUID_SYMBOL | Generated GUID formatted with underscores | GUID符号,”_”分割 |
| |
GUIDSTRINGUPPER

G

U

I

D

S

T

R

I

N

G

U

P

P

E

R

GUID_STRING_UPPER | Uppercase version of
GUIDSTRING

G

U

I

D

S

T

R

I

N

G

GUID_STRING | 略 |
| |
GUIDSTRUCTUPPER

G

U

I

D

[外链图片转存中…(img-I8nOAmkF-1715647875180)]
[外链图片转存中…(img-GX0xBMdK-1715647875181)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值