【規(guī)范代碼】keil 代碼格式化工具

前言

nixgnauhcuy's blog

所有文章除特別聲明外,均采用 CC BY-NC-SA 4.0 許可協(xié)議。轉(zhuǎn)載請(qǐng)注明來(lái)自 nixgnauhcuy's blog!

在用 Keil5 編寫(xiě)程序的時(shí)候,很多情況要參考別人寫(xiě)的程序來(lái)完成開(kāi)發(fā),在這過(guò)程中,看到了很多代碼編寫(xiě)風(fēng)格不一、代碼編寫(xiě)不規(guī)范的情況。有時(shí)候看的頭都大了,在一次偶然的情況下,認(rèn)識(shí)了 Astyle 這一代碼格式工具,就根據(jù)帖子上的教程配置在了 Keil 上,后面在使用的過(guò)程中,發(fā)現(xiàn)這款插件的高效性,所以特意拿出來(lái)分享。


Astyle

Astyle 網(wǎng)站

Astyle


Astyle 介紹

我直接搬 Astyle 網(wǎng)站兩句話來(lái)介紹,網(wǎng)站的介紹已經(jīng)十分詳細(xì)了,文檔等信息都可以在網(wǎng)站上獲取到。

Artistic Style is a source code indenter, formatter, and beautifier for the C, C++, C++/CLI, Objective-C, C# and Java programming languages.

Artistic Style 是 C, C++, C++/CLI, Objective-C, C# 和 Java 等編程語(yǔ)言的代碼縮進(jìn)器、格式化器和美化器。

Artistic Style 是適用 C, C++, C++/CLI, Objective-C, C# 和 Java 等編程語(yǔ)言的免費(fèi)、快速和小型自動(dòng)格式化軟件。


Astyle 下載

進(jìn)入官網(wǎng),在官網(wǎng)下方點(diǎn)擊 Download 進(jìn)入下載頁(yè)面.

image

下載頁(yè)面直接下載最新版本即可.

image

Astyle 保存

Astyle 下載完后,根據(jù)自己的需求和方便,解壓并保存好就可以了。這里我是直接丟在了 keil 的根目錄下。


Keil 增加 Astyle 插件

Keil 使用 Astyle 效果

使用前:


image

使用后:


image

Keil 配置 Astyle

打開(kāi) Keil ,然后在菜單欄中找到 Tools-Customize Tools Menu...

image

打開(kāi)后,增加兩個(gè)內(nèi)容,分別命名為:

  • Astyle All Files
  • Astyle Current File

命名可以自己需求,不一定和我一樣。

然后位置都選擇你解壓 Astyle 文件中 bin 文件夾下的 Astyle.exe ,在 Arguments 參數(shù)中對(duì)應(yīng)填入:

Astyle All Files

  • -n "$E*.c" "$E*.h"

Astyle Current File

  • -n !E

如圖:

image
image

設(shè)置好后我們點(diǎn) OK 應(yīng)用。


Keil 使用 Astyle 格式代碼

配置好后,我們可以在 Tools-Customize Tools Menu... 中看到我們新增加的兩個(gè)自定義工具。

image

格式化正在編輯的文件所在目錄下所有的 .c 與 .h 文件就選擇 Astyle All Files。

格式化正在編輯的文件則選擇 Astyle Current File.

格式化可以在 keil 的輸出窗口看到格式情況。

image

關(guān)于配置參數(shù)上的解釋

我們?cè)?keil 中填入了兩行參數(shù)值:

Astyle All Files

  • -n "$E*.c" "$E*.h"

Astyle Current File

  • -n !E

-n,格式化文件時(shí),新的縮進(jìn)的文件將保留原始文件,創(chuàng)建原始文件的副本,并在原始文件名后附加 .orig ,可以通過(guò) -n 來(lái)取消設(shè)置備份副本。

image

"$E*.c" "$E*.h",$E 是 Keil 的指令,表示當(dāng)前文件所在目錄內(nèi)的全部文件,加上 *.c 與 *.h ,表示當(dāng)前文件所在目錄內(nèi) .c 文件與 .h 文件,Astyle 也會(huì)只格式化當(dāng)前文件所在目錄內(nèi)的全部的 .c 與 .h 文件。

!E,!E 是 Keil 的指令,表示當(dāng)前文件, Astyle 在操作時(shí)就只格式化當(dāng)前正在編輯的文件。


Astyle 的其他配置

括號(hào)格式化風(fēng)格

image

具體的可以參照 Astyle文檔,不過(guò)多敘述。


allman 風(fēng)格

--style=allman / --style=bsd / --style=break / -A1

Allman style uses broken braces.

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

java 風(fēng)格

--style=java / --style=attach / -A2

Java style uses attached braces.

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

kr 風(fēng)格

--style=kr / --style=k&r / --style=k/r / -A3

Kernighan & Ritchie style uses linux braces. Opening braces are broken from namespaces, classes, and function definitions. The braces are attached to everything else, including arrays, structs, enums, and statements within a function.

Using the k&r option may cause problems because of the &. This can be resolved by enclosing the k&r in quotes (e.g. --style="k&r") or by using one of the alternates --style=kr or --style=k/r.

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

其他

還有很多的風(fēng)格,可以在對(duì)應(yīng)的文檔看,總共有15種風(fēng)格任君挑選,如 python、google、linux 風(fēng)格等。
因?yàn)槲矣?Keil 開(kāi)發(fā)是 C 語(yǔ)言,所有我選了 A1 的風(fēng)格,所以相應(yīng)的在 Keil 上我就配置了:

-n -A1 "$E*.c" "$E*.h"

不生成副本,用 A1 風(fēng)格,來(lái)格式化 .c 與 .h 文件。


格式化縮進(jìn)長(zhǎng)度

空格縮進(jìn)

這里我就不在截圖了,具體的可以看文檔,默認(rèn)我們不配置縮進(jìn)選項(xiàng)的話,默認(rèn)是4個(gè)空格,如果你想要更改縮進(jìn)的空格長(zhǎng)度,你可以通過(guò):

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

-s4,就是縮進(jìn) 4 個(gè)空格,那么相應(yīng)的,要改縮進(jìn) x 個(gè)空格就更改 -sx 就可以了.


制表符縮進(jìn)

同上,

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

-t4,就是縮進(jìn) 4 個(gè)制表符,那么相應(yīng)的,要改縮進(jìn) x 個(gè)制表符就更改-tx就可以了。


其他

還有另外兩種縮進(jìn)方式,我覺(jué)得很少使用,就不列舉了,有興趣了解可以訪問(wèn)官方文檔。

還有許多格式化的形式,我也不多加敘述,例如縮進(jìn)'switch'塊、'case'塊、注釋、'class'和'struct'塊、預(yù)處理程序縮進(jìn)等許許多多的格式化方式,官方文檔列舉的說(shuō)明十分詳細(xì),針對(duì)自己需要的、想要的格式化需求,針對(duì)性的在文檔中尋找并利用,制作一個(gè)自己的高效率工具。


擴(kuò)展

keil5 的安裝及破解

keil 軟件配置


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容