代码格式调整工具Astyle在keil上的命令参数详解及应用

目录

前沿

1 AStyle简介

1.1 为什么要使用Astyle工具

1.2 Astyle下载

1.3 Astyle常用配置参数

1.4 Astyle常用配置参数详解

1.4.1 -A参数(括号独占)详解

1.4.2 -s4参数(缩进4个空格)详解

1.4.3 -xV参数(do-while括号)详解

1.4.4 -S参数(switch缩进)详解

1.4.5 -xW参数(条件编译缩进)详解

1.4.6 -Y参数(注释缩进)详解

1.4.7 -M#参数(连续行最大空格缩进)详解

1.4.8 -f参数(条件语句空行填充)详解

1.4.9 -xg参数(逗号空格填充)详解

1.4.10 -H参数(条件语句空格填充)详解

1.4.11 -U参数(去除括号多余空格)详解

1.4.12 -c参数(tab转空格)详解

1.4.13 -n参数(不保留原始数据备份)详解

2 Astyle在keil上的应用

2.1 Astyle加载到keil工具栏中

2.1.1 单个文件格式修改

2.1.2 批量文件格式修改

2.2 代码格式调整演示

2.2.1 单个文件格式修改演示

2.2.2 批量文件格式修改演示


前沿

        对于有强迫症的博主来说,别人的代码如果不符合自己的审美标准,会去逐行修改代码,这就造成了大量的时间浪费在修改代码格式上面,突然有一天发现了一个自动修改代码格式的工具--Astyle,觉得很好用,在这里分享给大家。

1 AStyle简介

        以下是百度百科对Astyle的解释:

《Astyle是一个用来对C/C++代码进行格式化的 Eclipse 插件,可在 Eclipse CDT 环境中使用。该插件基于 Artistic Style 开发。可嵌入MDK,Source Insight,UE等软件使用》

1.1 为什么要使用Astyle工具

        当我们打开其他人编写的代码的时候,有强迫症的读者会去修改代码的格式,比如对齐、空行、条件语句后面增加空格等,如果工程很大,那么会花费我们巨大的人力时间,对工程及个人是很不友好的,所以代码格式调整工具就孕育而生了。

1.2 Astyle下载

        这里提供Astyle-v3.4-x64版本的下载文件,其他版本请到网上自行下载,这里不多介绍下载。这里以Astyle-v3.4-x64进行讲解。

        下载好了之后,我们打开doc文件夹的《astyle.html》文件,这个文件有对Astyle的所有解释,但是我们使用不到这么多,我们下面简单讲解一下常用的配置参数以及怎么在其他IDE工具上集成Astyle工具。

代码格式调整工具Astyle在keil上的命令参数详解及应用_第1张图片

代码格式调整工具Astyle在keil上的命令参数详解及应用_第2张图片

1.3 Astyle常用配置参数

        这里只是针对嵌入式C语言的代码的常用配置参数,其他编程语言的常用配置参数请自行参考doc文件夹的《astyle.html》文件进行修改。

Astyle常用命令参数
参数 分类 说明
-A1 Brace Style Options 每个括号都单独占一行,成对括号对齐,内容统一向后缩进
-s4 Tab Options 缩进4个空格
-xV Brace Modify Options 将“do-while”语句的右“while”附加到右大括号。这优先于大括号样式和打断-闭合大括号选项。
-S Indentation Options 缩进“switch”块,以便在switch块中缩进“case X:”语句。
-xW Indentation Options 条件编译缩进
-Y Indentation Options 注释缩进
-M# Indentation Options 设置缩进连续行的最大#个空格
-f Padding Options 条件语句空行填充
-xg Padding Options 逗号空格填充
-H Padding Options 条件语句空格填充
-U Padding Options 去除括号多余空格
-c Formatting Options 将tab键替换成空格键
-n Other Options 不保留原始数据备份

        常用命令参数:-A1 -s4 -xV -S -xW -Y -M120 -f -xg -H -U -c -n

1.4 Astyle常用配置参数详解

1.4.1 -A参数(括号独占)详解

        括号使用-A1参数,该参数主要特点是:每个括号都单独占一行,成对括号对齐,内容统一向后缩进。

int Foo(bool isBar)
{
    if (isBar)
    {
        bar();
        return 1;
    }
    else
        return 0;
}

1.4.2 -s4参数(缩进4个空格)详解

        Tab键使用-s4参数,该参数特点是:缩进使用4个空格键。

void Foo() {
....if (isBar1
............&& isBar2)    // indent of this line can be changed with min-conditional-indent
........bar();
}

1.4.3 -xV参数(do-while括号)详解

        本条目只涉及到do...while参数,do..while缩进采用-xV参数,该参数特点为:将“do-while”语句的右“while”附加到右大括号。这优先于大括号样式和打断-闭合大括选项

do
{
    bar();
    ++x;
}
while x == 1;

becomes:

do
{
    bar();
    ++x;
} while x == 1;

1.4.4 -S参数(switch缩进)详解

        缩进“switch”块,以便在switch块中缩进“case X:”语句。整个案例块缩进。

switch (foo)
{
case 1:
    a += 1;
    break;

case 2:
{
    a += 2;
    break;
}
}

becomes:

switch (foo)
{
    case 1:
        a += 1;
        break;

    case 2:
    {
        a += 2;
        break;
    }
}

1.4.5 -xW参数(条件编译缩进)详解

        在大括号级别0处缩进预处理器块,并立即在命名空间中缩进。缩进的内容有限制。方法、类、数组等中的块不会缩进。包含大括号或多行定义语句的块将不会缩进。如果没有此选项,预处理器块将不会缩进。

#ifdef _WIN32
#include 
#ifndef NO_EXPORT
#define EXPORT
#endif
#endif

becomes:

#ifdef _WIN32
    #include 
    #ifndef NO_EXPORT
        #define EXPORT
    #endif
#endif

1.4.6 -Y参数(注释缩进)详解

        从第一列开始缩进C++注释。默认情况下,从第一列开始的C++注释被认为是注释掉的代码,而不是缩进的。此选项将允许注释与代码一起缩进。

void Foo()\n"
{
// comment
    if (isFoo)
        bar();
}

becomes:

void Foo()\n"
{
    // comment
    if (isFoo)
        bar();
}

1.4.7 -M#参数(连续行最大空格缩进)详解

        设置缩进连续行的最大#个空格。#表示列数,且不得小于40或大于120。如果未设置任何值,则将使用默认值40。此选项将防止连续线向右延伸过远。设置更大的值将允许代码进一步向右扩展。

fooArray[] = { red,
         green,
         blue };

fooFunction(barArg1,
         barArg2,
         barArg3);

becomes (with larger value):

fooArray[] = { red,
               green,
               blue };

fooFunction(barArg1,
            barArg2,
            barArg3);

1.4.8 -f参数(条件语句空行填充)详解

        在条件语句"if"、"for"、"while"...等语句上下填充空行。

isFoo = true;
if (isFoo) {
    bar();
} else {
    anotherBar();
}
isBar = false;

becomes:

isFoo = true;

if (isFoo) {
    bar();
} else {
    anotherBar();
}

isBar = false;

1.4.9 -xg参数(逗号空格填充)详解

        在逗号后插入空格填充。

if (isFoo(a,b))
    bar(a,b);

becomes:

if (isFoo(a, b))
    bar(a, b);

1.4.10 -H参数(条件语句空格填充)详解

        在条件语句"if"、"for"、"while"...等语句后插入空格。

if(isFoo((a+2), b))
    bar(a, b);

becomes:

if (isFoo((a+2), b))
    bar(a, b);

1.4.11 -U参数(去除括号多余空格)详解

        把括号中的多余空格去除。

if ( isFoo( ( a+2 ), b ) )
    bar ( a, b );

becomes (with no padding option requested):

if(isFoo((a+2), b))
    bar(a, b);

        -U参数不和条件语句空格填充(-H)冲突,比如设置了这两条指令,那么条件语句后面的空格也会保留。

if ( isFoo( ( a+2 ), b ) )
    bar ( a, b );

becomes (with no padding option requested):

if (isFoo((a+2), b))
    bar(a, b);

1.4.12 -c参数(tab转空格)详解

        此命令是将tab键转换成空格键,但是和-s4命令重复,也可以两个命令都加上,也可以只加上-s4命令或此命令。

1.4.13 -n参数(不保留原始数据备份)详解

        顾名思义,就是每次格式化之后的代码,修改前的文件不被保留。

2 Astyle在keil上的应用

        下载好的astyle3.4-x64.rar进行解压,找到《astyle.exe》文件,记住位置。

2.1 Astyle加载到keil工具栏中

        打开keil软件,选择tools-->Customize Tools Menu。代码格式调整工具Astyle在keil上的命令参数详解及应用_第3张图片

2.1.1 单个文件格式修改

        按下图操作,并填写常用命名参数:"!E" -A1 -s4 -xV -S -xW -Y -M120 -f -xg -H -U -c -n

注意:"!E",这里表示获得当前焦点且正在编辑的文件

代码格式调整工具Astyle在keil上的命令参数详解及应用_第4张图片

2.1.2 批量文件格式修改

        按下图操作,并填写常用命名参数:"$E*.c" -A1 -s4 -xV -S -xW -Y -M120 -f -xg -H -U -c -n

注意:"$E*.c",表示查找当前文件所在的文件夹所有的*.c文件

代码格式调整工具Astyle在keil上的命令参数详解及应用_第5张图片

        如果要修改*.h文件,相应的命令参数为:"$E*.h" -A1 -s4 -xV -S -xW -Y -M120 -f -xg -H -U -c -n

2.2 代码格式调整演示

2.2.1 单个文件格式修改演示

        点击Tools-->astyle格式单个文件,查看到文件已经被格式化了,并且在《Build Output》窗口能够查看运行命令信息。

代码格式调整工具Astyle在keil上的命令参数详解及应用_第6张图片

代码格式调整工具Astyle在keil上的命令参数详解及应用_第7张图片

2.2.2 批量文件格式修改演示

        点击Tools-->astyle格式多个文件,查看到当前文件所在的文件夹中的所有*.c文件已经被格式化了,并且在《Build Output》窗口能够查看运行命令信息(main.c文件已经在单个文件格式修改演示中被修改,所以这里不会被修改)。

代码格式调整工具Astyle在keil上的命令参数详解及应用_第8张图片

代码格式调整工具Astyle在keil上的命令参数详解及应用_第9张图片​​​​​​​

你可能感兴趣的:(代码工具,vscode,eclipse,编辑器)