用source insight 編輯代碼時,苦于source insight沒有集成的代碼格式化工具, GNU的astyle是一個免費的代碼格式化工具,能夠整理符合c/c++規范。
目前創新互聯建站已為上千多家的企業提供了網站建設、域名、網頁空間、綿陽服務器托管、企業網站設計、浦北網站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協力一起成長,共同發展。
我們可以將astyle.exe外掛到SourceInsight中。詳細步驟如下:
1:從http //astyle sourceforge net上下載AStyle_2.01_windows.zip (開放源碼,可以仔細閱讀);
2:解壓縮后將bin文件夾下的astyle.exe放到source insight目錄下(自己可以放在任意位置)
在SourceInsight菜單欄里,Options--Custom Commands界面上選擇:Add,在彈出對話框寫入 Astyle.
3:在run中添加astyle.exe --style=ansi %f,其中,如果astyle.exe所在路徑中有空格,必須用""括起來,參數--style=ansi 代表ansi C 格式(如果你需要格式化java代碼,這個地方改為:--style=java),"%f"是指作用于當前文件,這個必須的.其它命令參數可以參考astyle的幫助參數可以查看網頁http //astyle sourceforge net/astyle.html
4:此外,在此界面上還可以為這個命令設置快捷鍵,點擊"keys",添加你覺得方便的按鈕;
5:在SourceInsight菜單欄里,Options--Menu Assignments界面上,將這個命令名稱為Astyle添加到某工具欄下,我是依然放在了view下,在左面的Command列表里找到我們剛才添加的"Astyle",在右面的Menu中選擇你要加到那個菜單下,這里我加到"view"下,可以在"Menu Contents"選擇適當位置,點擊"insert"即可。
1. 格式化從根開始的整個項目
AStyle.exe -A1 -R ./*.c ./*.h -bt4 -Sw -fpxHU -Jk3 -n %f
參數 意義
Predefined Style Options
-A1 代表 --style = ansi or allman模式
Tab and Bracket options
-b 代表 語句塊之前加上空格
-t4 代表 each tab as 4 spaces
Indentation options
-S 代表 switch開關語句,以便于使case x: 對自動對齊
-w 代表 用“/”對齊多行參數
Padding options
-f 代表 不相關的代碼之間加空行
-p 代表 雙目運算符前后加上空格,如:+ - * /
-x 代表 刪除相關語句之是的空行. 如:if, else語句間的空行
-H 代表 在if, for, while關鍵字與括號()之間加上空格
-U 代表 移除括號兩邊不必要的空格
Formatting options
-J 代表 為單行語句加上{}
-k3 代表 指針及引用(*, )符號,挨著變量名
Other option
-n 代表 不生成備份。默認生成 .orig文件
-R 代表 目錄遞歸
注:
格式化從根開始的整個項目,指的是把整個項目里的所有.c .h文件都格式化。打開工程目錄,插件會自動識別出項目的根目錄的。格式化后,這個項目就會全部更改。而且在格式化的過程中,會很消耗時間。
造成的后果:在進行SVN提交時,由于先前的SVN代碼與此不同,會進行大面積的更改。如果修改了格式化選項,還會造成代碼的重新提交。如果大量文件產生格式問題,會把實際修改的內容掩蓋掉,在回溯記錄進行問題確認時,會產生麻煩。容易忽略了主要問題。
建議:盡量少用此選項。如果為了使用整個項目更規范,可以使用此選項。提交單個文件時最好不要使用此選項。
2. 格式化當前目錄下的.c文件
AStyle.exe -A1 -R ./test/*.c -bt4 -Sw -fpxHU -Jk3 -n %f
參數意義從略,看上面.
-R 后面添加所修改工程的路徑,及文件名,就可以執行只格式化該目錄下的.c文件。路徑中的是用“/” or “/”都可以錄找到路徑。
建議:在進行工程項目部分模塊開發時,如果為了使這部分項目模塊更規范,可以使用此選項。對于頻繁修改少量多個文件。可以使用此選項,以實現批處理文件的功能。
3. 格式化單個文件
AStyle.exe -A1 -bt4 -Sw -fpxHU -Jk3 -n %f
參數從略,看上面
只進行當前修改文件的格式化處理。只針對單個文件起作用。這樣很容易使所寫文件更加的規范。在編寫代碼過程中,可以省去很多調整代碼結構的時間,是最常用的選項。
建議:在平時編寫代碼時,盡量使用此選項。只對單個文件進行處理,不會影響其它文件。
在SVN進行提交時,影響最小。
下面是各選項的效果,如果個人有需要,可以按其效果進行更改參數,可能會造成多人編寫代碼的樣式不同。
--recursive / -r / -R
在每個目錄下執行命令。可以處理所有子目錄下的文件。當用此選項時,文件名應當包含通配符,應當指名路徑,名稱。以便shell會執行。 e.g. "$HOME/src/*.cpp"
--brackets=break / -b
void Foo(bool isFoo)
{
if (isFoo)
{
bar();
}
else
{
anotherBar();
}
}
--indent=tab / --indent=tab=# / -t / -t#
對齊使用tab字符。每個tab 代表 # 個spaces ( e.g. -t6 / --indent=tab=6) #必須在2-20之間, 如果不設置,就當作4個spaces.
--indent-switches / -S
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;
}
}
--indent-preprocessor / -w
用“/”對齊多行參數
#define Is_Bar(arg,a,b) /
(Is_Foo((arg), (a)) /
|| Is_Foo((arg), (b)))
becomes:
#define Is_Bar(arg,a,b) /
(Is_Foo((arg), (a)) /
|| Is_Foo((arg), (b)))
--break-blocks / -f
在關鍵字if, for, while與()之間填充空格,在不相關代碼之間加上空行
isFoo = true;
if (isFoo) {
bar();
} else {
anotherBar();
}
isBar = false;
becomes:
isFoo = true;
if (isFoo) {
bar();
} else {
anotherBar();
}
isBar = false;
--pad-oper / -p
在各雙目運算符的前后分別加上空格,行末會保持原樣。
if (foo==2)
a=bar((b-c)*a,d--);
becomes:
if (foo == 2)
a = bar((b - c) * a, d--);
--delete-empty-lines / -x
刪除函數里邊的空行。函數外面的空行不會被刪除。
void Foo()
{
foo1 = 1;
foo2 = 2;
}
becomes:
void Foo()
{
foo1 = 1;
foo2 = 2;
}
--pad-header / -H
在關鍵字 ‘if’,‘for’, ‘while’..與括號之間填充空格。任何行注釋的末尾都會保留原始列。
if(isFoo(a, b))
bar(a, b);
becomes:
if (isFoo(a, b))
bar(a, b);
--unpad-paren / -U
移除括號里邊和外邊的的無用空間
if ( isFoo( a, b ) )
bar ( a, b );
becomes (with no padding option requested):
if(isFoo(a, b))
bar(a, b);
--add-one-line-brackets / -J
為 ‘if’, ‘for’, ‘while’里的單行語句加上{}。這條語句只能和{}在同一行。如果相變成不同行,需要手動修改。
if (isFoo)
isFoo = false;
becomes:
if (isFoo)
{ isFoo = false; }
--align-pointer=type / -k1
--align-pointer=middle / -k2
--align-pointer=name / -k3
對齊指針,引用(* or )的標號位置,使其位于變量類型一側或變量名一側,也可以處在類型與名稱之間。
char *foo1;
becomes (with align-pointer=type):
char* foo1;
char* foo2;
becomes (with align-pointer=middle):
char * foo2;
char foo3;
becomes (with align-pointer=name):
char foo3;
--suffix=none / -n
不保留文件的備份文件。文件在格式化之后,原始文件會清除
Ctrl+Alt+L 格式化代碼
Ctrl+Shift+J 兩行合成一行,刪去不必要的空格匹配代碼格式
其他快捷鍵:
【常規】
Ctrl+Shift + Enter,語句完成
“!”,否定完成,輸入表達式時按 “!”鍵
Ctrl+E,最近的文件
Ctrl+Shift+E,最近更改的文件
Shift+Click,可以關閉文件
Ctrl+[ OR ],可以跑到大括號的開頭與結尾
Ctrl+F12,可以顯示當前文件的結構
Ctrl+F7,可以查詢當前元素在當前文件中的引用,然后按 F3 可以選擇
Ctrl+N,可以快速打開類
Ctrl+Shift+N,可以快速打開文件
Alt+Q,可以看到當前方法的聲明
Ctrl+P,可以顯示參數信息
Ctrl+Shift+Insert,可以選擇剪貼板內容并插入
Alt+Insert,可以生成構造器/Getter/Setter等
Ctrl+Alt+V,可以引入變量。例如:new String(); 自動導入變量定義
Ctrl+Alt+T,可以把代碼包在一個塊內,例如:try/catch
Ctrl+Enter,導入包,自動修正
Ctrl+Alt+L,格式化代碼
Ctrl+Alt+I,將選中的代碼進行自動縮進編排,這個功能在編輯 JSP 文件時也可以工作
Ctrl+Alt+O,優化導入的類和包
Ctrl+R,替換文本
Ctrl+F,查找文本
Ctrl+Shift+Space,自動補全代碼
Ctrl+空格,代碼提示(與系統輸入法快捷鍵沖突)
Ctrl+Shift+Alt+N,查找類中的方法或變量
Alt+Shift+C,最近的更改
Alt+Shift+Up/Down,上/下移一行
Shift+F6,重構 – 重命名
Ctrl+X,刪除行
Ctrl+D,復制行
Ctrl+/或Ctrl+Shift+/,注釋(//或者/**/)
Ctrl+J,自動代碼(例如:serr)
Ctrl+Alt+J,用動態模板環繞
Ctrl+H,顯示類結構圖(類的繼承層次)
Ctrl+Q,顯示注釋文檔
Alt+F1,查找代碼所在位置
Alt+1,快速打開或隱藏工程面板
Ctrl+Alt+left/right,返回至上次瀏覽的位置
Alt+left/right,切換代碼視圖
Alt+Up/Down,在方法間快速移動定位
Ctrl+Shift+Up/Down,向上/下移動語句
F2 或 Shift+F2,高亮錯誤或警告快速定位
Tab,代碼標簽輸入完成后,按 Tab,生成代碼
Ctrl+Shift+F7,高亮顯示所有該文本,按 Esc 高亮消失
Alt+F3,逐個往下查找相同文本,并高亮顯示
Ctrl+Up/Down,光標中轉到第一行或最后一行下
Ctrl+B/Ctrl+Click,快速打開光標處的類或方法(跳轉到定義處)
Ctrl+Alt+B,跳轉到方法實現處
Ctrl+Shift+Backspace,跳轉到上次編輯的地方
Ctrl+O,重寫方法
Ctrl+Alt+Space,類名自動完成
Ctrl+Alt+Up/Down,快速跳轉搜索結果
Ctrl+Shift+J,整合兩行
Alt+F8,計算變量值
Ctrl+Shift+V,可以將最近使用的剪貼板內容選擇插入到文本
Ctrl+Alt+Shift+V,簡單粘貼
Shift+Esc,不僅可以把焦點移到編輯器上,而且還可以隱藏當前(或最后活動的)工具窗口
F12,把焦點從編輯器移到最近使用的工具窗口
Shift+F1,要打開編輯器光標字符處使用的類或者方法 Java 文檔的瀏覽器
Ctrl+W,可以選擇單詞繼而語句繼而行繼而函數
Ctrl+Shift+W,取消選擇光標所在詞
Alt+F7,查找整個工程中使用地某一個類、方法或者變量的位置
Ctrl+I,實現方法
Ctrl+Shift+U,大小寫轉化
Ctrl+Y,刪除當前行
Shift+Enter,向下插入新行
psvm/sout,main/System.out.println(); Ctrl+J,查看更多
Ctrl+Shift+F,全局查找
Ctrl+F,查找/Shift+F3,向上查找/F3,向下查找
Ctrl+Shift+S,高級搜索
Ctrl+U,轉到父類
Ctrl+Alt+S,打開設置對話框
Alt+Shift+Inert,開啟/關閉列選擇模式
Ctrl+Alt+Shift+S,打開當前項目/模塊屬性
Ctrl+G,定位行
Alt+Home,跳轉到導航欄
Ctrl+Enter,上插一行
Ctrl+Backspace,按單詞刪除
Ctrl+”+/-”,當前方法展開、折疊
Ctrl+Shift+”+/-”,全部展開、折疊
Alt+1,項目
Alt+2,收藏
Alt+6,TODO
Alt+7,結構
Ctrl+Shift+C,復制路徑
Ctrl+Alt+Shift+C,復制引用,必須選擇類名
Ctrl+Alt+Y,同步
Ctrl+~,快速切換方案(界面外觀、代碼風格、快捷鍵映射等菜單)
Ctrl+Tab,轉到下一個拆分器
Ctrl+Shift+Tab,轉到上一個拆分器
【重構】
Ctrl+Alt+Shift+T,彈出重構菜單
Alt+Delete,安全刪除
Ctrl+Alt+N,內聯
【查找】
Ctrl+F,查找
Ctrl+R,替換
Ctrl+Shift+F,在路徑中查找
Ctrl+Shift+R,在路徑中替換
Ctrl+Shift+S,搜索結構
Ctrl+Shift+M,替換結構
【VCS】
Alt+~,VCS 操作菜單
Ctrl+K,提交更改
Ctrl+T,更新項目
Ctrl+Alt+Shift+D,顯示變化
補充說明:
IDEA 全稱IntelliJ IDEA,是java語言開發的集成環境,IntelliJ在業界被公認為最好的java開發工具之一,尤其在智能代碼助手、代碼自動提示、重構、J2EE支持、Ant、JUnit、CVS整合、代碼審查、 創新的GUI設計等方面的功能可以說是超常的。IDEA是JetBrains公司的產品,這家公司總部位于捷克共和國的首都布拉格,開發人員以嚴謹著稱的東歐程序員為主。
java堆棧代碼行數不一致,需要4個步驟進行修復。
1、這個錯誤明顯是字符串轉int時出現的,但當前行號701不會出現此問題。
2、觀察其前后代碼,發現703行開始有轉換代碼。
3、檢查代碼和業務,發現是調用接口傳參有問題。
4、代碼修復。
HTML頁面的代碼如何格式化、整理?解決辦法如下:
1、打開Windows——“Preference(首選項)”
2、在彈出的“Preference(首選項)”窗口界面,找到左側java導航?----“editor ”-----“save actions”。
3、在右側“Save Actions”里找到“Perform the selected actions on save”前打上√,點擊“ok”保存。
本文題目:java怎么規整代碼 java整理代碼
標題鏈接:http://vcdvsql.cn/article4/hpgoie.html
成都網站建設公司_創新互聯,為您提供品牌網站建設、、云服務器、外貿建站、App設計、微信小程序
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯