Enable code folding in JupyterLab
Code folding is a quite useful solution, e.g., to enhance the visibility of scripts with large amounts of code. It allows to view only those parts of the script that are currently of interest.
Enabled code folding in JupyterLab. Left: Unfolded text. Right: Folded text.
How to enable code folding in JupyterLab
Code folding in JupyterLab can be enabled in the JSON Settings Editor. To do so, choose from the menu bar Settings->Advanced Settings Editor
, and in the then opened Settings
tab, click on JSON Settings Editor in the upper right corner:
JupyterLab’s Advanced Settings Editor. Open the JSON Settings Editor by clicking on the button in the upper right corner.
In the JSON Settings Editor, click in the left panel on Notebook. In the corresponding editor window User Preferences (the rightmost window) type CMD+f
/Ctrl+f
and search for “codeFolding”:
JupyterLab’s JSON Settings Editor. Having the Notebook tab activated, search for “codeFolding” in the User Preferences window.
Replace in all occurring codeFolding
settings false
by true
:
Change the
codeFolding
setting from false
to true
.
This enables code folding in Jupyter notebooks. To enable code folding in pure Python scripts as well, repeat these steps also in the Text Editor tab.
Code folding in action
In Jupyter notebooks, code folding looks like:
A Jupyter notebook in JupyterLab. Top: Unfolded text. Bottom: Folded text.
And in pure Python scripts:
A pure Python script in JupyterLab: Top: Unfolded text. Bottom: Folded text.
What can be folded?
We can fold all default Python code blocks like functions, for-loops, if-blocks, or classes. Unlike other editors and IDE like PyCharm, Spyder or VS Code, we are, however, not (yet) able to fold code cells (initialized by # %%
), which would further enhance the visibility of long code scripts. Maybe this will be possible in a future version of JupyterLab.
Pure Python script in VS Code. Top: Unfolded text. Bottom: Folded text. Note, that we can also fold code cells (initialized by
# %%
) here.
comments