AStyle用法

AStyle用法

2023年7月9日发(作者:)

在Source Insight集成Astyle和汉字删除问题(zz)

Windows平台下也有好多人都喜欢用SourceInsight编辑C/C++程序,但是SourceInsight没有提供对代码格式化的功能,如果将Artistic Style集成到SourceInsight中,那就可以为它扩展出代码格式化的功能了。

假定的目录是“C:ArtisticStyle”,在该目录下有一个“”文件是用来保存配置的文件。下面简要地介绍下Artistic Style集成到SourceInsight中的方法。

1. 打开你的SourceInsight, 选择菜单“Options-->Custom Commands-->Add”,

输入Artistic Style(可以随便输入一个名字)。

2. Run中输入: C: --style=ansi –s4 -S -N -L -m0 -M40 -U

--convert-tabs --suffix=.pre %f

3. Dir留空,将Iconic Window, "Capture Output", "Parse Links in

OutPut", "File,then Line" 四项前打上勾。

----注意:根据我自己的测试的结果,这4个都不打钩比较好,只对“Pause when

done”打钩即可。如果选上前面说的4项,那么黑色的命令行界面会保留。

4. 然后点对话框中右侧的按钮“Menu”, 选择Menu-->View-->,

右侧Insert, OK.

5. 此时在SourceInsight中的View菜单下多了个Style的子菜单选项,可以用它来对单个C/C++文件进行格式化。

C:> --style=ansi -s3 my_unformat.c

参数 --style=ansi

参数 -s3

所有空格会以 3 个 spaces 重新排列

文件名 my_unformat.c

文件名也可以用 wild (*) char 來代表,例如 *.c

Refer: /,

转自:/920538/214369

1、 只能删除半个汉字的问题

确实情况下,Source Insight删除汉字时是半个半个删除的,删除一半的汉字显示为乱码,在写注释时非常讨厌,最后在网上找到了一个宏,当按退格键时执行,基本上可以解决这个问题了。在附件中有这个宏。具体的使用方法文件中有说明,如下:

* 安装:

* ① 复制入SourceInsight安装目录;

* ② Project→Open Project,打开Base项目;

* ③ 将复制过去的添加入Base项目;

* ④ 重启SourceInsight;

* ⑤ Options→Key Assignments,将Marco: SuperBackspace绑定到BackSpace键; * ⑥ Enjoy!!

2、 GDI++不能正常显示汉字的解决

由 于安装了GDI++氦版,不知道为什么Source Insight中的汉字竟然不能正常渲染,我用的Consolas字体,刚开始以为只要在GDI++配置中做个字体链接就可以了,可惜不成功啊。网上高人 说将字体改为“宋体”可以解决问题,可惜我试了还是不行。最后一种一种字体尝试,最后确定“黑体”可以正常显示。

3、 代码格式化

由于是看的别人的代码,编程风格实在不敢恭维,编辑的格式也是乱七八槽,一看头都大了。真想找个工具将代码全部格式化好,确实有这样的好东东:AStyle,具体的参数可以参照它的说明文档。我用的是:

C: --style=ansi –s4 -S -N -L -m0 -M40 -U --convert-tabs

--suffix=.pre %f

可以在Source Insight中安装这个外部命令,具体如下:

点option→custom commands,点右边的Add,按提示输入一个名字如:Format

with Astyle,Run中输入刚才的命令行。

最后可以Option→Key Assignments中绑定一个快捷键,如下图所示:

命令:

1. 单个文件:astyle --style=ansi -s4 -S -N -L -m0 -M40 -U --convert-tabs --suffix=.pre

hello.c

--style=ansi 主要表示代码的花括号位置所在,其他的选项还有K&R等等,分别对应的简写是A1-A10。

-s4 表示缩进四个空格,也是默认配置

-S 表示用来表switch语句的缩进

-N 表示命名空间的缩进

-L 表示lable的缩进,goto对应的

-m0 表示条件表达式太长,换行书写时,下一行对上一行的最小缩进为0

-M40 表示一个一行未写完的语句(数组赋值,多参数),下一行对顶格的最大缩进为40

-U 表示括号内的两头的参数和括号之间不留空格

--convert-tabs 表示把非缩进的行里的Tab转换成空格,双引号里的Tab不会改变

--suffix=.pre 表示原始文件的后缀,默认为.orig

hello.c 需要代码格式化的文件

2. 多个文件:

astyle --style=allman --recursive /home/user/project/*.cpp /home/user/project/*.h

运行参数的常用选项:

参数命令 参数说明

default indent option

默认4个空格

--indent=spaces / --indent=spaces=# / -s#

指定#个空格,#在1~20之间

--indent=tab / --indent=tab=# / -t#

使用制表符,指定#个空格(1~20)

--indent=force-tab / --indent=force-tab=# / -T#

强制使用制表符,指定#个空格,#在1~20之间

default brackets option

默认不改变括号

--brackets=break / -b

括号改为下行( e.g. ANSI C / C++ style )

--brackets=attach / -a

括号在语句后( e.g. Java / K&R style )

--brackets=linux / -l

括号如linux风格

--brackets=stroustrup / -u

括号如stroustrup风格

--brackets=horstmann / -g

括号如horstmann 风格

②缩进选项

参数命令 参数说明

--indent-classes / -C

缩进class和struct块后面的public等

--indent-switches / -S

缩进switch块后面的case块

--indent-cases / -K

缩进case块后面的括号

--indent-brackets / -B

括号缩进

--indent-blocks / -G

括号缩进,函数缩进

--indent-namespaces / -N

命名空间后缩进

--indent-labels / -L

额外的标签缩进

--indent-preprocessor / -w

多行反斜杠定义缩进

--indent-col1-comments / -Y

允许注释跟随代码一起缩进

--max-instatement-indent=# / -M#

在连续声明中缩进最大#个空格(#小于80,默认为40)

--min-conditional-indent=# / -m#

在多行中设置最小缩进(#小于40,默认为当前两倍缩进)

③填充选项

参数命令 参数说明

--break-blocks / -f

在循环语句前后加空行

--break-blocks=all / -F

在循环语句前后、else、catch前加空行

--pad-oper / -p

运算符前后加空格 --pad-paren / -P

--pad-paren-out / -d

--pad-paren-in / -D

--pad-header / -H

--unpad-paren / -U

--delete-empty-lines / -x

--fill-empty-lines / -E

④格式化选项

参数命令

在括号内外都加上空格

在括号外加上空格

在括号内加上空格

只在括弧头部添加一个空格

移除括号内外的空格

删除函数方法里多余的空行

以空格对齐填充前一行空行

参数说明

让else语句块下起一行

让else if 语句拆开缩进

自动补充括号,默认在条件语句后紧接括号

自动补充括号,并且保持括号与语句在一行

维持一行里的多条语句不变

不破坏一行里面的块

转换TAB 为空格

使指针或者引用符靠近变量类型

使指针或者引用符在变量类型和变量名称中间

使指针或者引用符靠近变量名称

指定为C/C++代码格式化

指定为C#代码格式化

指定为JAVA 代码格式化

--break-closing-brackets / -y

--break-elseifs / -e

--add-brackets / -j

--add-one-line-brackets / -J

--keep-one-line-statements / -o

--keep-one-line-blocks / -O

--convert-tabs / -c

--align-pointer=type / -k1

--align-pointer=middle / -k2

--align-pointer=name / -k3

--mode=c

--mode=cs

--mode=java

把编辑器集成到Tornado中去中去中去中去

我们就以Source Insight为例进行说明,首先我们在Tornado菜单中的Tools->Options中选择External Editor标签页,在command中输入下面的命令:

D:Source Insight -i +$lineno $filename 其中加粗的部分是Source

Insight所在的实际路径,这个可以通过右边的Browse按钮进行浏览选择;-i表示只允许打开一个Source Insight程序;如果勾选了下面的File Menu复选框,表示从菜单中选择新建一个文件的时候会直接调用Source Insight,如果选择了Project表示从工程中双击文件会直接调用Source Insight,如果选择了Build out

wind则在编译过程的输出窗口双击出现错误的行会直接跳到Source Insight中相应的行(注意要实现这个功能,参数+$lineno 是必须的)。同时最好在Source

Insight中也作一下设置,否则如果在Tornado中对文件进行修改,Source Insight会提示文在外部被修改了,是否要重新装入,比较烦人,所以我们可以把这个提示去掉,方法是在Source Insight菜单中选择Option->Preference中的File标签页,从上向下数去掉第三个复选框即可。 不过必须在Invoke from选项里,勾选Project才行的

发布者:admin,转转请注明出处:http://www.yc00.com/news/1688906175a182235.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信