使用astyle進行代碼格式化

        在參與團隊的開發的時候,由於平臺和編寫代碼的工具的不同等等問題,經常會遇到代碼格式非常混亂的情況,嚴重影響了代碼的閱讀效率。

        後來發現了一款比較好的工具——“astyle”。

 

        astyle這個工具可以將現有的代碼格式轉換爲指定的風格,當你將亂七八糟的代碼用astyle轉換一下之後,就會感覺整個世界都清靜了……

 

一、如何獲取


        astyle是一個開放源碼的項目,支持C/C++、C#和java的代碼格式化

        SourceForge地址:http://sourceforge.net/projects/astyle/

        我的Github拷貝:https://github.com/fatedier/fatedier-tools/tree/master/astyle

 

二、編譯


        直接寫一個Makefile編譯下源碼,我的Github的拷貝里有寫好的Makefile,直接用gmake命令編譯一下就可以用了。

 

三、示例


        ./astyle--style=ansi test.cpp

        

        執行之後會提示

        Formatted  xxx/test.cpp

 

        astyle會在當前目錄下生成一個備份文件,以.orig結尾,例如“test.cpp.orig”。

        而 test.cpp 就已經轉換爲了 ansi 代碼風格了。

 

四、常用選項


        注:使用 --help 選項可以查看astyle的幫助文檔

 

1、style風格設置


常用的代碼風格主要有三種:ansik&r以及java

(1) --style=allman  OR --style=ansi   OR  --style=bsd OR --style=break  OR  -A1

例如:

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

 

(2) --style=kr  OR --style=k&r  OR  --style=k/r OR  -A3

例如:

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

 

(3) --style=java  OR --style=attach  OR  -A2

例如:

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

 

2、Tab選項


默認是使用4個空格替換一個tab。

 

(1) --indent=spaces=#  OR  -s#

指定用幾個空格替換一個tab,例如 --indent=spaces=8 ,指定用8個空格替換一個tab。

 

(2) --indent=tab  OR --indent=tab=#  OR  -t  OR  -t#

指定縮進使用tab,=#同上,指定一個tab佔幾個空格,不說明的話默認是4個。

 

3、遞歸處理


--recursive OR  -r  OR  -R

可以遞歸處理所有子目錄的文件。

 

4、排除不處理的文件


--exclude=####

指定哪些文件或者文件夾不需要進行處理。

 

5、指定配置文件


--options=####

可以指定讀取某個文件的內容作爲參數選項。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章