Astyle编程语言格式化工具的中文说明

Artistic Style 1.23
Maintained by: Jim Pattee
Original Author: Tal Davidson

Usage  :  astyle [options] Source1.cpp Source2.cpp  [...]
          astyle [options] < Original > Beautified

When indenting a specific file, the resulting indented file RETAINS the
original file-name. The original pre-indented file is renamed, with a
suffix of ".orig" added to the original filename.

Wildcards (* and ?) may be used in the filename.
A ‘recursive‘ option can process directories recursively.
可以用通配符指定要处理的文件,用-r递归处理子目录

By default, astyle is set up to indent C/C++/C#/Java files, with 4 spaces
per indent, a maximal indentation of 40 spaces inside continuous statements,
and NO formatting.

Option‘s Format:
----------------
    Long options (starting with ‘--‘) must be written one at a time.
    Short options (starting with ‘-‘) may be appended together.
    Thus, -bps4 is the same as -b -p -s4.

风格:
-------------------------
    --style=allman  OR  --style=bsd  OR  -A1
    allman风格
    Allman style formatting/indenting.
    Broken brackets.

--style=java  OR  -A2
    java风格
    Java style formatting/indenting.
    Attached brackets.

--style=k&r  OR  --style=k/r  OR  -A3
    k&r风格
    Kernighan & Ritchie style formatting/indenting.
    Linux brackets.

--style=stroustrup  OR  -A4
    stroustrup风格
    Stroustrup style formatting/indenting.
    Stroustrup brackets.

--style=whitesmith  OR  -A5
    whitesmith风格
    Whitesmith style formatting/indenting.
    Broken, indented brackets.
    Indented class blocks and switch blocks.

--style=banner  OR  -A6
    banner风格
    Banner style formatting/indenting.
    Attached, indented brackets.
    Indented class blocks and switch blocks.

--style=gnu  OR  -A7
    gnu风格
    GNU style formatting/indenting.
    Broken brackets, indented blocks, indent is 2 spaces.

--style=linux  OR  -A8
    linux风格
    GNU style formatting/indenting.
    Linux brackets, indent is 8 spaces.

Tab and Bracket Options:
------------------------
tab选项:
    默认tab是4个空格.

--indent=spaces=#  OR  -s#
    默认行缩进为4个空格,可以将#替换为缩进量

--indent=tab  OR  --indent=tab=#  OR  -t  OR  -t#
    行缩进用tab,默认tab长度与4个空格相等

--indent=force-tab=#  OR  -T#
    优先采用空格缩进

大括号选项:
    If no brackets option is set,
    the brackets will not be changed.

--brackets=break  OR  -b
    大括号与前一块隔开为两行
    Break brackets from pre-block code (i.e. ANSI C/C++ style).

--brackets=attach  OR  -a
    大括号前一个与上一行在同一行
    Attach brackets to pre-block code (i.e. Java/K&R style).

--brackets=linux  OR  -l
    定义块 和 函数块中的大括号都被处理
    Break definition-block brackets and attach command-block
    brackets.

--brackets=stroustrup  OR  -u
    只处理函数中的大括号
    Attach all brackets except function definition brackets.

Indentation options:
--------------------
    --indent-classes  OR  -C
    缩进类定义中的public private protected标签.
    Indent ‘class‘ blocks, so that the inner ‘public:‘,
    ‘protected:‘ and ‘private: headers are indented in
    relation to the class block.

--indent-switches  OR  -S
    缩进switch中的case块,case和switch不在同一列
    Indent ‘switch‘ blocks, so that the inner ‘case XXX:‘
    headers are indented in relation to the switch block.

--indent-cases  OR  -K
    缩进case下面的语句
    Indent case blocks from the ‘case XXX:‘ headers.
    Case statements not enclosed in blocks are NOT indented.

--indent-blocks  OR  -G
    给块添加缩进,包括大括号
    Add extra indentation entire blocks (including brackets).

--indent-brackets  OR  -B
    给大括号添加缩进
    Add extra indentation to ‘{‘ and ‘}‘ block brackets.

--indent-namespaces  OR  -N
    缩进命名空间定义行
    Indent the contents of namespace blocks.

--indent-labels  OR  -L
    标签缩进
    Indent labels so that they appear one indent less than
    the current indentation level, rather than being
    flushed completely to the left (which is the default).

--indent-preprocessor  OR  -w
    多行宏定义缩进
    Indent multi-line #define statements.

--max-instatement-indent=#  OR  -M#
    跨行缩进,比如函数定义中的参数处在多行,那么参数缩进到同一列
    Indent a maximal # spaces in a continuous statement,
    relative to the previous line.

--min-conditional-indent=#  OR  -m#
    Indent a minimal # spaces in a continuous conditional
    belonging to a conditional header.

Formatting options:
-------------------
    --break-blocks  OR  -f
    空行分隔没有关系的块,类,标签(不包括函数块)
    Insert empty lines around unrelated blocks, labels, classes, ...

--break-blocks=all  OR  -F
    空行分隔无关系的块,包括else catch等
    Like --break-blocks, except also insert empty lines
    around closing headers (e.g. ‘else‘, ‘catch‘, ...).

--break-closing-brackets  OR  -y
    else catch左边的大括号与else catch分隔
    Break brackets before closing headers (e.g. ‘else‘, ‘catch‘, ...).
    Use with --brackets=attach, --brackets=linux,
    or --brackets=stroustrup.

--break-elseifs  OR  -e
    else if()分隔为两行
    Break ‘else if()‘ statements into two different lines.

--delete-empty-lines  OR  -x
    删除多余空行
    Delete empty lines within a function or method.
    It will NOT delete lines added by the break-blocks options.

--pad-oper  OR  -p
    操作符两端插入一个空格
    Insert space paddings around operators.

--pad-paren  OR  -P
    括号内外都插入空格
    Insert space padding around parenthesis on both the outside
    and the inside.

--pad-paren-out  OR  -d
    括号外部插入空格
    Insert space padding around parenthesis on the outside only.

--pad-paren-in  OR  -D
    括号外部插入空格
    Insert space padding around parenthesis on the inside only.

--unpad-paren  OR  -U
    移除括号两端多余空格
    Remove unnecessary space padding around parenthesis.  This
    can be used in combination with the ‘pad‘ options above.

--keep-one-line-statements  OR  -o
    一行中的多个申明不分隔  int x;int y;int z不被分为3行
    Don‘t break lines containing multiple statements into
    multiple single-statement lines.

--keep-one-line-blocks  OR  -O
    大括号中的单行语句不被拆分
    Don‘t break blocks residing completely on one line.

--convert-tabs  OR  -c
    tab转换为空格
    Convert tabs to the appropriate number of spaces.

--fill-empty-lines  OR  -E
    块间空行的换行符前插入一个空格
    Fill empty lines with the white space of their
    previous lines.

--mode=c
    处理c文件
    Indent a C or C++ source file (this is the default).

--mode=java
    处理jave文件
    Indent a Java source file.

--mode=cs
    处理c#文件
    Indent a C# source file.

Other options:
--------------
    --suffix=####
    指定备份文件的后缀
    Append the suffix #### instead of ‘.orig‘ to original filename.

--suffix=none  OR  -n
    不备份文件
    Do not retain a backup of the original file.

--options=####
    指定从####文件读取选项信息
    Specify an options file #### to read and use.

--options=none
    禁止从文件读取选项信息
    Disable the default options file.
    Only the command-line parameters will be used.

--recursive  OR  -r  OR  -R
    递归处理子目录
    Process subdirectories recursively.

--exclude=####
    排除不处理的文件夹
    Specify a file or directory #### to be excluded from processing.

--errors-to-stdout  OR  -X
    Print errors and help information to standard-output rather than
    to standard-error.

--preserve-date  OR  -Z
    不修改时间
    The date and time modified will not be changed in the formatted file.

--verbose  OR  -v
    输出详细处理信息
    Verbose mode. Extra informational messages will be displayed.

--formatted  OR  -Q
    输出信息中只包括被修改的文件信息
    Formatted display mode. Display only the files that have been formatted.

--quiet  OR  -q
    忽略所有错误
    Quiet mode. Suppress all output except error messages.

--version  OR  -V
    输出astyle版本
    Print version number.

--help  OR  -h  OR  -?
    帮助信息
    Print this help message.

Default options file:
---------------------
    Artistic Style looks for a default options file in the
    following order:
    1. The contents of the ARTISTIC_STYLE_OPTIONS environment
       variable if it exists.
       从ARTISTIC_STYLE_OPTIONS环境变量读取选项
    2. The file called .astylerc in the directory pointed to by the
       HOME environment variable ( i.e. $HOME/.astylerc ).
       从/home文件夹中的.astylerc文件读取选项
    3. The file called astylerc in the directory pointed to by the
       USERPROFILE environment variable ( i.e. %USERPROFILE%\astylerc ).
       从USERPROFILE下的astylerc文件读取选项信息
    If a default options file is found, the options in this file
    will be parsed BEFORE the command-line options.
    Long options within the default option file may be written without
    the preliminary ‘--‘.

--options的用法:

我的在source insight中的设置为   AStyle.exe --options=D:\TOOLS\AStyle\astyle.cfg  %f

astyle.cfg内容为:

-s4 -SKFxpUcnlaC
#井号表示是注释
#-s4 行缩进用4个空格
#-S  switch 与case不同列,case缩进
#-K  缩进case下面的语句
#-F  空行分隔无关块
#-x  删除多余空行
#-p  操作符两端出入空格
#-U  移除括号两端多余空格
#-c  tab转空格
#-n  不做备份
#-l  处理定义和函数中的大括号
#-a  大括号保留在上一行

时间: 2024-10-05 05:21:58

Astyle编程语言格式化工具的中文说明的相关文章

《Swift编程语言教程》中文翻译及读书笔记page21

<The Swift Programming Language>中文翻译及读书笔记,附件中为英文原版教程 因21页之前内容和技术关系不大,不做翻译整理,从第21页开始 第21页 1 swift作为一门语言对的新老语言的继承与扩展 本页主要内容是简要介绍了一下swift编程语言的定位.拥有自己的数据类型int.float.string等数据类型外,swift还具有array.dict等数据类型. 2 引入了tuple元组数据类型 特别说明的是在swift语言里引入了oc和c没有的tuple元组数

亲密数编程语言的定位

亲密数编程语言是试验性质的完全基于汉语的计算机编程语言.我只是闲时用她来探索一下汉语编程,学习一下相关知识,巩固一下个人技能,没有想着用它做严肃的事.我觉得也不该用汉语编程语言做严肃的事情,那些严肃的事情还是留给工业上成熟的语言来做吧.因为能力所限,我也不可能设计一个完美完善的编程语言如Ruby.Python.Go.C.Rust.Julia.Kotlin.Haskell.Clojure.Elixir等.我只能尽量减化.简化的结果就是亲密数编程语言和Forth语言比较相似,是基于栈的编程语言.大部

计算机基础之编程

目录 计算机基础之编程 一.什么是编程语言 二.什么是编程? 三.为什么要编程? 计算机基础之编程 一.什么是编程语言 ? python和中文,英语一样都是门语言,只要是语言,就可以看成一种事物与另一种事物沟通的介质.Python属于编程语言,编程语言是程序员和计算机之间沟通的介质:中文和英文则是人与人之间沟通的介质. 二.什么是编程? ? 编程是指:程序员基于某种编程语言的语法格式将自己想让计算机做的事,写到文件中.所以说编程的结果是一堆文件,这一堆文件就是程序. 三.为什么要编程? ? 计算

《Swift编程语言》中文翻译及读书笔记page25

The Swift Programming Language读书笔记学习笔记 第25页 本页主要说在swift语言里可以使用分号,但分号不作为每条swift语言语句的结尾 而是间隔写在一行的多条swift语句. eg: var x = 194 var y = 184 var z = 7311 上边三行swift语句可写成一行 var x = 194, y = 184, z = 7311 在本页还提及了swift里的int数据,这和其他语言里int整形数据没啥区别. 特别之处1)提及了UInt8

Apple Swift编程语言入门中文教程

Apple Swift编程语言入门教程 目录 1   简介 2   Swift入门 3   简单值 4   控制流 5   函数与闭包 6   对象与类 7   枚举与结构 1   简介 今天凌晨Apple刚刚发布了Swift编程语言,本文从其发布的书籍<The Swift Programming Language>中摘录和提取而成.希望对各位的iOS&OSX开发有所帮助. Swift是供iOS和OS X应用编程的新编程语言,基于C和Objective-C,而却没有C的一些兼容约束.S

软件工程学生的编程能力与编程语言是中文或英文有关系吗?

此问题纯属在数据课上看着全是英文的课件,又听着老师并不标准的普通话,有点儿懵而瞎想的,后来看到老师的补充作业中,有一道题与我想的差不多,于是在网上查了一些期刊,搜了些资料,然后就决定写这个.下面进入正题. 据<圣经·创世纪>第11章记载,巴比塔是当时人类联合起来兴建希望能通往天堂的高塔,为了阻止人类的计划,上帝让人类说不同的语言,使人类相互之间不能够沟通,计划因此失败,人类各散东西.也就是说,人类联合兴建通天塔的计划失败的一个关键因素是:说不同语言的人之间再也不能像以往仅说一种共同的语言那样很

《Swift编程语言》中文翻译及读书笔记page21

·<The Swift Programming Language>中文翻译及读书笔记,附件中为英文原版教程 因21页之前内容和技术关系不大,不做翻译整理,从第21页开始 第21页 1 swift作为一门语言对的新老语言的继承与扩展 本页主要内容是简要介绍了一下swift编程语言的定位.拥有自己的数据类型int.float.string等数据类型外,swift还具有array.dict等数据类型. 2 引入了tuple元组数据类型 特别说明的是在swift语言里引入了oc和c没有的tuple元组

《Swift编程语言》中文翻译及读书笔记page22

·<The Swift Programming Language>中文翻译及读书笔记,附件中为英文原版教程 因21页之前内容和技术关系不大,不做翻译整理,从第21页开始 ·        第22页 本页知识点总结 1 如何在一行里定义多个变量? var开始.等号赋值.用逗号间隔 eg1: var x = 19.4, y = 18.4 z = 7.311 需要注意的是最好是同类型数据 2 如何指定数据的类型? 用冒号间隔变量名和类型名 eg2: var  x : Int = 12 eg3:var

《Swift编程语言》中文翻译及读书笔记page23

·<The Swift Programming Language>中文翻译及读书笔记,附件中为英文原版教程 因21页之前内容和技术关系不大,不做翻译整理,从第21页开始 · 第23页 1 本页主要讲述如何给常量和变量取名,即命名规则. 1)不可使数学符号.箭头 2)不可点.线等符号 3)不可以数字开始作为变量名 到底怎样才可以取一个合法的名字呢?这和其他语言一样可依据匈牙利命名法来去变量和常量名 匈牙利命名法:http://baike.baidu.com/view/419474.htm?fr=