在进行嵌入式代码开发中,格式化的代码会减少代码提交时候的diff的区别,而且也更加便于阅读代码,通过在iar 或者keil中配置astyle,从而保证代码的一致性,是很好的编程习惯。
下边从两个方面分别描述如何在keil中,或者iar中设置从而进行代码格式化。
keil的设置
keil的代码格式化的设置
keil的astyle格式化的设置
按照下面进行设置。

keil的快捷键的设置

C:\Program Files\Astyle\astyle.exe
--style=allman --indent=spaces=4 --indent-switches --indent-namespaces --pad-oper --indent-labels --min-conditional-indent=0 --max-continuation-indent=40 --convert-tabs --indent-preproc-block --delete-empty-lines --squeeze-lines=2 --suffix=none !E
快捷键的设置
在这里我习惯于使用快捷键,Ctrl + Alt +W 进行设置。按照下面的步骤,进行设置即可。

在keil中直接使用vscode打开当前的.c文件
我们可以在keil中方便的进行打开vscode的设置,现在普通的ide,没有ai的辅助,使用快捷键进行打开vscode,然后使用mars 或者github的 copilet进行编程, 对于代码的编写是事半功倍的。
具体设置如下:

使用vscode快捷键的设置

iar 的相关的设置
iar的astyle的格式化的设置
打开IAR软件,选择Tools菜单下Configure Tools.

格式化代码的时候将光标定位在准备格式化的文件内部
Astyle Current File
C:\Program Files\AStyle\bin\AStyle.exe
Iar的快捷键进行设置
按照下面的步骤进行设置。
在iar的ide中打开vscode进行编程

设置快捷键进行打开同样的设置。

通过这样进行设置,可以保证编程的统一性。
keil参考教程 。
iar参考教程。
sourceinsight 自动格式化整个目录的脚本

"C:\Program Files\AStyle\bin\AStyle.exe" --style=ansi -s4 -S -N -R ./*.c ./*.h -p -L -N -m0 -M40 --convert-tabs --suffix=.pre %f
如果需要对于整个代码的文件夹进行格式化,可以使用如下的批处理进行设置。
@echo off
set curdir=%~dp0
cd /d %curdir%
set astyle="C:\Program Files\AStyle\bin\AStyle.exe"
for /r %~dp1%~nx1 %%a in (.) do %astyle% "%%a\*.c" --style=allman --indent=spaces=4 --indent-switches --indent-namespaces --pad-oper --indent-labels --min-conditional-indent=0 --max-continuation-indent=40 --convert-tabs --indent-preproc-block --delete-empty-lines --pad-method-prefix --squeeze-lines=2 --suffix=none %f
for /r %~dp1%~nx1 %%a in (.) do %astyle% "%%a\*.h" --style=allman --indent=spaces=4 --indent-switches --indent-namespaces --pad-oper --indent-labels --min-conditional-indent=0 --max-continuation-indent=40 --convert-tabs --indent-preproc-block --delete-empty-lines --pad-method-prefix --squeeze-lines=2 --suffix=none %f
REM ::删除astyle生成的所有中间文件
for /r %~dp1%~nx1 %%a in (*.orig) do del %%a
for /r %~dp1%~nx1 %%a in (*.pre) do del %%a
for /r %~dp1%~nx1 %%a in (*.bak) do del %%a
timeout /t 5 /nobreak >nul

被折叠的 条评论
为什么被折叠?



