配置
在Souce insight上選擇Tools->Custom Commands,點(diǎn)擊Add,輸入Astyle,點(diǎn)擊OK。
在Run中輸入C:\AStyle\bin\AStyle.exe --style=ansi -S -N -L -xC80 -z2 --convert-tabs -H -p -U --align-pointer=name --quiet --suffix=none %f
如下圖所示:

完成后點(diǎn)擊Close。
在Source insight選擇Options->Menu Assignments,在Command中選擇Astyle,在Menu中選擇View,在Menu Contents中選擇Toolbars,然后點(diǎn)擊Insert,如下圖所示。

點(diǎn)擊Insert,點(diǎn)擊OK,完成。
在Source insight中選擇Options->Key Assignments,在Command中選擇Astyle,點(diǎn)擊Assign New Key,然后輸入一個(gè)快捷鍵(我使用的是Ctrl+Alt+F),如下圖所示。

點(diǎn)擊OK后完成快捷鍵的配置。
使用
Asytle是完全可以脫離Source insight來單獨(dú)使用的,這里僅說明如何在Source insight中使用Asytle。
在上面的步驟中,我們配置了快捷鍵,只要打開想格式化的.c或者.h文件,按下快捷鍵,如果配置無誤,文件就會被格式化,然后Source insight會提示重新載入這個(gè)文件,動手試一下吧。
Astyle參數(shù)
Astyle提供了很多參數(shù)供大家使用,通過配置這些參數(shù),我們可以將文件格式化成我們想要的形式。
我使用的是
--style=ansi -S -N -L -xC80 -z2 -H -p -U --align-pointer=name --suffix=none --quiet
| 配置 | 含義 |
|---|---|
| -S | ”case XXX”需要縮進(jìn) |
| -N | namespace中的內(nèi)容縮進(jìn) |
| -L | 縮進(jìn)label,讓label比當(dāng)前的內(nèi)容先前一個(gè)縮進(jìn)距離,而不是通通靠左 |
| -xC80 | 最長80個(gè)字符 |
| -convert-tabs | 將tab轉(zhuǎn)換為合適長度的空格 |
| -H | 在if for等關(guān)鍵字后面,加一個(gè)空格 |
| -p | 在操作符兩邊加空格 |
| -U | 去掉()內(nèi)部不必要的空格 |
| ---align-pointer=name | 讓*更靠近變量名 |
| --suffix=none | 不備份原始文件 |
更多的參數(shù),可以直接在命令行中輸入
astyle --help
就可以看到了。
Astyle并不是萬能的格式化工具,只能支持一些典型的格式化,例如:
- 函數(shù)多參數(shù)對齊
- 使代碼不超過80字符
- Tab全部轉(zhuǎn)化成空格
- 細(xì)化一些空格、*的放置方式。
- 代碼縮進(jìn)
- 去掉每行末尾無用的空格
- 花括號的放置