代碼摺疊

代碼摺疊

代碼摺疊是一些文本編輯器,原始碼編輯器和IDE的一個功能,它允許用戶有選擇地隱藏和顯示 - “摺疊” - 當前編輯檔案的各個部分作為例行編輯操作的一部分。 這允許用戶管理大量文本,同時僅查看在任何給定時間特別相關的文本子部分。摺疊的識別可以是自動的,通常基於所討論的計算機語言,縮進或手動的語法,基於帶內標記(保存為原始碼的一部分)或指定帶外, 只在編輯器中。許多編輯器在側邊欄中提供代碼摺疊的公開小部件,在行號旁邊,例如由指向側面(如果摺疊)或向下(如果展開)的三角形指示,或者通過[ - ]框指示 可摺疊(展開)文本和可擴展(摺疊)文本的[+]框。 一些電腦程式員通常使用此功能來管理原始碼檔案,並且還經常用於數據比較,以僅查看已更改的文本。

基本介紹

  • 中文名:代碼摺疊
  • 外文名:Code folding
歷史,套用,列提綱,隱藏樣板代碼,摺疊元數據,在結構化編程中顯示結構或三明治代碼,分組代碼,隱藏遺留代碼,摺疊代碼的四種方式,

歷史

可能第一個摺疊編輯器是用於IBM 370大型機的1974結構化編程工具(SPF)編輯器,它可以根據縮進隱藏線條。 它顯示在字元映射的3270終端上它對像COBOL這樣的冗長語言非常有用。 它演變為互動式系統生產力設施(ISPF)。

套用

代碼摺疊具有各種使用模式,主要是組織代碼或隱藏較少有用的信息,因此可以專注於更重要的信息。 常見的模式如下。

列提綱

最基本的是,應用程式使用代碼摺疊來概述原始碼,將每個塊摺疊為單行。 這可以只是函式和類之類的頂級塊,嵌套函式和方法之類的嵌套塊,或者所有塊,特別是控制流塊。 這使得人們可以獲得代碼概覽,輕鬆導航和重新排列代碼,並根據需要深入了解更多細節,而不會被其他代碼分散注意力。 從視角來看,這允許人們快速查看所有函式的列表(沒有他們的身體),而導航方式則取代了長期函式的廣泛分頁 - 或者搜尋目標 - 直接轉到下一個函式。

隱藏樣板代碼

某些語言或庫需要大量的樣板代碼。 這導致代碼非常長,這可能會掩蓋主要觀點。 此外,實用代碼可能會在樣板中丟失。
例如,在Java中,具有getter和setter的單個私有欄位至少需要3行,如果每個欄位位於單獨的行上:
private String name = null;
public String getName() { return name; }
public void setName(String name) { this.name = name; }
這擴展到10行,傳統的功能斷行和功能之間的間距(包括尾隨換行):
private String name = null;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
使用Javadoc的文檔將其擴展為20行:
/**
* Property <code>name</code> readable/writable.
*/
private String name = null;
/**
* Getter for property <code>name</code>
*/
public String getName() {
return name;
}
/**
* Setter for property <code>name</code>.
* @param name
*/
public void setName(String name) {
this.name = name;
}
如果有很多這樣的欄位,結果很容易就是數百行代碼而且“有趣”內容很少 - 代碼摺疊可以將每個欄位減少到一行,甚至可以減少所有欄位的單行。 此外,如果所有例程欄位都被摺疊,但非常規欄位(其中getter或setter不僅僅是返回或分配私有欄位)沒有摺疊,則更容易看到實質性代碼。

摺疊元數據

元數據可能很長,並且通常不如它描述的數據重要。 摺疊元數據允許主要關注數據,而不是元數據。

在結構化編程中顯示結構或三明治代碼

結構化編程由嵌套的代碼塊組成,長代碼塊(如長切換語句)可能會掩蓋整體結構。 代碼摺疊允許人們看到整體結構並擴展到特定級別。 此外,在某些用途中,特別是嚴格的結構化編程(單功能退出),在查看擴展代碼時很難看到代碼模式。 例如,在結構化編程中的資源管理中,通常獲取資源,然後使用資源獲取代碼塊,最後獲取釋放資源。 如果中間存在長代碼塊,則很難看到獲取/釋放配對,但很容易看出插入的塊是否被摺疊。 類似地,在條件代碼中,如if ... then ... else,輔助塊可能遠離條件語句。

分組代碼

摺疊組可用於對代碼進行分組,可以通過顯式分組 - 類似於將模組分成多個部分的注釋塊,或者將類成員分成關聯的組 - 或隱式地,例如通過按訪問級別自動對類成員進行分組。

隱藏遺留代碼

遺留代碼或者開發人員不希望在給定時間點查看或更改的任何代碼 -可以摺疊起來,以便程式設計師可以專注於所考慮的代碼。

摺疊代碼的四種方式

動作或命令
效果
焦點列上的收起按鈕
收起高亮顯示的代碼塊
View |Code Folding |Fold
收起包含當前所選文本的代碼塊
View |Code Folding |Fold Methods/Functions
收起每個方法或函式最外層的代碼塊
View |Code Folding|Fold Comment Blocks
收起所有的多行注釋

相關詞條

熱門詞條

聯絡我們