You can turn folding on and off as a whole with the Enable Folding preference.
The Fold Line Mode preference can be used to determine whether or not a horizontal line is drawn at fold points, whether it is drawn above or below the fold point, and whether it is shown when the fold point is collapsed or expanded. Fold Indicator Style is used to select the look of the fold marks shown at fold points.
Once folding is turned on, an additional margin appears to the left of source files that can be folded. Left mouse click on one of the fold marks in this margin to collapse or expand that fold point. Right mouse clicking anywhere on the fold margin displays a context menu with the various folding operations.
You can also hold down the following key modifiers while left-clicking to modify the folding behavior:
- Shift -- Clicking on any fold point while holding down the shift key will expand that point and all its children recursively so that the maximum level of expansion is increased by one.
- Ctrl -- Clicking on any fold point while holding down the ctrl key will collapse that point and all its children recursively so that the maximum level of expansion is decreased by one.
- Ctrl+Shift -- On a currently expanded fold point, this will collapse all child fold points recursively to maximum depth, as well as just the outer one. When the fold point is subsequently re-expanded with a regular click, its children will appear collapsed. Ctrl-shift-click on a collapsed fold point will force re-expansion of all children recursively to maximum depth.
Fold commands are also available in the Folding section of the Source menu, which indicates the key equivalents assigned to the operations:
- Toggle Current Fold -- Like clicking on the fold margin, this operates on the first fold point found in the current selection or on the current line.
- Collapse Current More -- Like ctrl-clicking, this collapses the current fold point one more level than it is now.
- Expand Current More -- Like shift-clicking, this expands the current fold point one more level than it is now.
- Collapse Current Completely -- Like shift-ctrl-clicking on an expanded node, this collapses all children recursively to maximum depth.
- Expand Current Completely -- Like shift-ctrl-clicking on a collapsed node, this ensures that all children are expanded recursively to maximum depth.
- Collapse All -- Unconditionally collapse the entire file recursively.
- Expand All -- Unconditionally expand the entire file recursively.
- Fold Python Methods -- Fold up all methods in all classes in the file.
- Fold Python Classes -- Fold up all classes in the file.
- Fold Python Classes and Defs -- Fold up all classes and any top-level function definitions in the file.