Folding Code Elements
You can collapse (fold) code fragments reducing them to a single visible line. In this way, you can hide the details that, at the moment, seem unimportant. If and when necessary, the folded code fragments can be expanded (unfolded).
Folded code fragments, normally, are shown as shaded ellipses ().
If the folded code block contains errors, PyCharm highlights the folded fragment in red.
Code folding means
You can collapse and expand code fragments by using:
- Code folding toggles (, or ). These toggles are shown in the editor to the left of the corresponding folding regions. If a region is unfolded, indicates the beginning of the region while is located at its end. For folded regions, the toggle is shown as .
If you hold the Alt key and click , or , the region is collapsed or expanded recursively, i.e. along with all its subordinate regions.
Commands of the Folding menu and associated keyboard shortcuts. The Folding menu can be accessed from the main menu bar ( ), or as a context menu in the editor. The shortcuts are shown right in the menu. See Commands of the Folding menu and associated shortcuts.
Folded fragments themselves: click to expand the corresponding fragment. See also, Viewing folded code fragments.
Folding predefined and custom regions
You can fold and unfold:
Lists and dictionaries.
Code blocks, i.e. code under the keywords
class
,def
,while
,if
, etc.Consecutive commented lines.
- Predefined regions that correspond import declarations, method bodies, documentation comments, etc. The predefined regions, roughly, correspond to the ones listed under Collapse by default on the page of PyCharm settings (Ctrl+Alt+S).
For the predefined regions, the folding toggles are available right away, without the need to perform any additional actions.
Any selected code fragment. A custom folding region for a selection is created and removed by means of the
command (Ctrl+.).Regions surrounded by corresponding commented folding markers (e.g.
//<editor-fold desc="Description">...//</editor-fold>
). See Using code folding comments.
Commands of the Folding menu and associated shortcuts
The Folding menu can be accessed from the main menu bar ( ), or as a context menu in the editor.
Command | Shortcut | Description |
---|---|---|
Expand | Ctrl+NumPad Plus | Expand the current collapsed fragment |
Collapse | Ctrl+NumPad - | Collapse the current folding region |
Expand Recursively | Ctrl+Alt+NumPad Plus | Expand the current folded fragment and all the subordinate collapsed folding regions within that fragment |
Collapse Recursively | Ctrl+Alt+NumPad - | Collapse the current folding region and all the subordinate folding regions within it |
Expand All | Ctrl+Shift+NumPad Plus | Expand all collapsed fragments within the selection, or, if nothing is selected, expand all the collapsed fragments in the current file |
Collapse All | Ctrl+Shift+NumPad - | Collapse all folding regions within the selection, or, if nothing is selected, collapse all the folding regions in the current file |
Expand to level | 1, 2, 3, 4 or 5 | Ctrl+NumPad *, 1 | Expand the current fragment and all the nested fragments up to the specified level |
Expand all to level | 1, 2, 3, 4 or 5 | Ctrl+Shift+NumPad *, 1 | Expand all the collapsed fragments in the file up to the specified nesting level |
Expand doc comments | Expand all documentation comments in the current file | |
Collapse doc comments | Collapse all documentation comments in the current file | |
Fold Selection / Remove region | Ctrl+. | Collapse the selected fragment and create a custom folding region for it to make it "foldable" / Expand the current fragment and remove the corresponding custom folding region to make the fragment "unfoldable" |
Specifying code folding preferences
You can specify:
Whether the code folding toggles should be shown.
Which folding regions should be collapsed by default.
The corresponding settings are on the
page of PyCharm settings (Ctrl+Alt+S).For more information, see Code Folding page.
Viewing folded code fragments
To see the contents of a folded fragment, point to the ellipsis that indicates that fragment.
Viewing the beginning of a folding region
To see the beginning of a folding region - if it's not currently visible - point to the folding toggle at the end of that region.
Using code folding comments
Supported folding comments
You can create custom folding regions by surrounding code fragments with commented lines n accordance with NetBeans style or Visual Studio style.
NetBeans style
For non-Python files:
//<editor-fold desc="Description">
...
//</editor-fold>
For Python files:
#<editor-fold desc="Description">
...
#</editor-fold>
Visual Studio style
For non-Python files:
//region Description
...
//endregion
For Python files:
#region Description
...
#endregion
Once you have chosen the style for a file, don't use the other style in that file.
Surrounding a fragment with folding comments
Select the code fragment of interest.
Select
or pressCtrl+Alt+T.Select the folding comments to be used.
- Specify the fragment description.
Now if you collapse the fragment, the description you have specified is shown in place of the code.
Navigating to folding regions
You can navigate to custom folding regions that were formed by surrounding code fragments with the corresponding commented folding markers:
Select
or press Ctrl+Alt+..Select the target folding region. (The regions in the list are identified by their descriptions.)