代碼格式化專家

代碼格式化專家

該專家用於格式化代碼，目前只支持 Pascal。

代碼格式化功能可格式化當前編輯器內的 Pascal 單元源碼或選擇區的內容，默認熱鍵 Ctrl+W。如果有選擇區，格式化之前會將選擇區擴展至整行模式再進行格式化。

參數設置

代碼格式化專家的設置界面如圖：

- 普通設置

- 關鍵字大小寫：設置格式化時關鍵字的大小寫處理規則，有大寫、小寫、首字母大寫、不改變原有大小寫四種選擇，默認為小寫。

- Begin 位置：處理一些結構化語句如 if then 或 with do 後續的 begin end 代碼塊時，begin 是置於語句當前行之後，還是另起一行，默認另起一行。注意此選項不包括過程或函數的實現塊。

- 縮進空格數：指定縮進的空格數，默認為 2。

- 運算符前的空格數：指定運算符之前所放置的空格數，默認為 1，此選項常用於雙目運算符，注意括號等符號不在此列。

- 運算符後的空格數：指定運算符之後所放置的空格數，默認為 1，此選項常用於雙目運算符，注意括號等符號同樣不在此列。

- 自動換行選項：本選項有兩個寬度值，一個是換行寬度值，一個是超出寬度值。當勾選此自動換行選項後，當一行代碼超過後者較大的超出寬度值時，將本行代碼在剛超過前者較小的換行寬度處開始重新換行。這樣做的目的是為了避免一行代碼剛剛超長時，使用簡單換行帶來的新行內容太少的問題。注意由於部分符號不適合做行頭或行尾，由此帶來的調整可能導致分行的列值不完全和設置的換行值一致，使用時請注意。

- Uses 區的每個單元名獨佔一行：勾選此選項後，Uses 區的每個單元獨佔一行。如果不勾，則使用上面設置的自動換行的換行寬度進行自動換行。注意工程文件中的 uses 由於可能包括 in 以及文件的路徑，因而固定保持每個單元一行，不受此選項控制。

- 保留語句中的換行：勾選此選項後，單個語句中的換行在格式化後將被保留，不受自動換行的換行寬度的限制。

- 根據 IDE 內部符號表來糾正標識符的大小寫：勾選此選項後，格式化過程中將編譯並使用 IDE 內部的符號表來糾正源碼中的標識符的大小寫，該功能依賴於代碼輸入助手。

- 編譯指令處理：對於{$IFDEF} {$ELSE} {$ENDIF}等複雜的嵌套編譯指令，我們的格式化無法對其完美處理，默認只能將其當作註釋，但由此容易出現內容重複的語法錯誤。此選項允許格式化時對於這種出現分支的編譯指令，只處理第一個分支，也就是對於{$IFDEF} {$ELSE} {$ENDIF}這種編譯指令，只處理{$IFDEF} {$ELSE}中的部分，其餘部分原樣輸出。

- 彙編設置

- 行首縮進空格數：Pascal 嵌入彙編代碼時，此選項指定行首除 Label 外的縮進空格數，默認為 8。

- 縮進空格數：此選項指定彙編代碼內的 Tab 鍵縮進空格數，默認為 8。

- 不格式化 {(*} 與 {*)} 之間的內容：勾選此選項可控制對代碼中的部分區域不予格式化。

- 快捷鍵：可在此設置格式化功能以及設置等的快捷鍵。

- 確定：保存選項並關閉設置對話框。

- 取消：關閉設置對話框，不保存選項改動。

- 幫助：顯示幫助信息。

局限與已知問題

- 對編譯指令的處理：目前，代碼格式化專家採用的是針對整個源文件進行語法分析與排版的工作方式，並且把編譯指令當作註釋來處理。因此如果出現類似如{$IFDEF XXX} var A: Byte; {$ELSE} Word;{$ENDIF} 這種分隔的並列語法結構時會導致解析出錯，使用時請注意。

- 對註釋的處理：註釋風格千變萬化各各不同，目前我們對註釋的處理也沒有一定的規範，只盡可能保持註釋原有的風格，而無法做到和代碼聯動。另外，選擇區格式化時，不支持擴展成整行後的選區起始範圍落在註釋、字符串中的情形。

- 選項較少：目前代碼格式化專家未提供太多的控制選項，以後會逐步豐富。

- C/C++代碼：尚不支持。

相關主題

IDE 專家基本操作

IDE 專家設置

關於 IDE 專家包

(C)版權所有 2001-2025 CnPack 開發組