# Code folding

CLion automatically recognizes certain code structures and makes them foldable. You can also define custom folding regions.

Folded code fragments are shown as shaded ellipses (![Folded fragment](https://resources.jetbrains.com.cn/help/img/idea/2026.2/foldedFragment.png) ). If a folded code fragment has errors, CLion highlights the fragment in red.

For more information, refer to [Code folding](working-with-source-code.html#code_folding).

| Command | Shortcut | Description |
| --- | --- | --- |
|  Collapse  |  `Ctrl+NumPad -` (Windows), `⌘ NumPad -` (macOS), `⌘ NumPad -` (IntelliJ IDEA Classic (macOS)), `⌘ NumPad -` (macOS System Shortcuts), `Ctrl+NumPad -` (XWin), `Ctrl+NumPad -` (GNOME), `Ctrl+NumPad -` (KDE), `Ctrl+NumPad -` (Emacs), `Ctrl+Shift+[` (Sublime Text), `⌘ ⌥ [` (Sublime Text (macOS)), `⌘ ⌥ ←` (Xcode), `Ctrl+M, S` (Visual Studio), `⌃ M, S` (Visual Studio (macOS)), `Ctrl+M, S` (ReSharper), `⌃ M, S` (ReSharper (macOS)), `Ctrl+Shift+Comma` (QtCreator), `⌘ ⇧ Comma` (QtCreator (macOS)), `Ctrl+NumPad -` (NetBeans), `Ctrl+NumPad -` (Eclipse), `⌘ NumPad -` (Eclipse (macOS))  |  Collapse the foldable block where your caret is..  |
|  Expand  |  `Ctrl+NumPad +` (Windows), `⌘ NumPad +` (macOS), `⌘ NumPad +` (IntelliJ IDEA Classic (macOS)), `⌘ NumPad +` (macOS System Shortcuts), `Ctrl+NumPad +` (XWin), `Ctrl+NumPad +` (GNOME), `Ctrl+NumPad +` (KDE), `Ctrl+NumPad +` (Emacs), `Ctrl+Shift+]` (Sublime Text), `⌘ ⌥ ]` (Sublime Text (macOS)), `⌘ ⌥ →` (Xcode), `Ctrl+M, E` (Visual Studio), `⌃ M, E` (Visual Studio (macOS)), `Ctrl+M, E` (ReSharper), `⌃ M, E` (ReSharper (macOS)), `Ctrl+Shift+.` (QtCreator), `⌘ ⇧ .` (QtCreator (macOS)), `Ctrl+NumPad +` (NetBeans), `Ctrl+NumPad +` (Eclipse), `⌘ NumPad +` (Eclipse (macOS))  |  Expand the collapsed block under the caret.  |
|  Collapse Recursively  |  `Ctrl+Alt+NumPad -` (Windows), `⌘ ⌥ NumPad -` (macOS), `⌘ ⌥ NumPad -` (IntelliJ IDEA Classic (macOS)), `⌘ ⌥ NumPad -` (macOS System Shortcuts), `Ctrl+Alt+NumPad -` (XWin), `Ctrl+Alt+NumPad -` (GNOME), `Ctrl+Alt+NumPad -` (KDE), `Ctrl+Alt+NumPad -` (Emacs), `Ctrl+Alt+NumPad -` (Sublime Text), `⌘ ⌥ NumPad -` (Sublime Text (macOS)), `⌘ ⌥ NumPad -` (Xcode), `Ctrl+Alt+NumPad -` (Visual Studio), `⌘ ⌥ NumPad -` (Visual Studio (macOS)), `Ctrl+Alt+NumPad -` (ReSharper), `⌘ ⌥ NumPad -` (ReSharper (macOS)), `Ctrl+Alt+NumPad -` (QtCreator), `⌘ ⌥ NumPad -` (QtCreator (macOS)), `Ctrl+NumPad /` (NetBeans), `Ctrl+Alt+NumPad -` (Eclipse), `⌘ ⌥ NumPad -` (Eclipse (macOS))  |  Collapse the current foldable block and all foldable blocks within it.  |
|  Expand Recursively  |  `Ctrl+Alt+NumPad +` (Windows), `⌘ ⌥ NumPad +` (macOS), `⌘ ⌥ NumPad +` (IntelliJ IDEA Classic (macOS)), `⌘ ⌥ NumPad +` (macOS System Shortcuts), `Ctrl+Alt+NumPad +` (XWin), `Ctrl+Alt+NumPad +` (GNOME), `Ctrl+Alt+NumPad +` (KDE), `Ctrl+Alt+NumPad +` (Emacs), `Ctrl+Alt+NumPad +` (Sublime Text), `⌘ ⌥ NumPad +` (Sublime Text (macOS)), `⌘ ⌥ NumPad +` (Xcode), `Ctrl+Alt+NumPad +` (Visual Studio), `⌘ ⌥ NumPad +` (Visual Studio (macOS)), `Ctrl+Alt+NumPad +` (ReSharper), `⌘ ⌥ NumPad +` (ReSharper (macOS)), `Ctrl+Alt+NumPad +` (QtCreator), `⌘ ⌥ NumPad +` (QtCreator (macOS)), `Ctrl+NumPad *` (NetBeans), `Ctrl+Alt+NumPad +` (Eclipse), `⌘ ⌥ NumPad +` (Eclipse (macOS))  |  Expand the collapsed block under the caret all the collapsed blocks within it.  |
|  Expand All  |  `Ctrl+Shift+NumPad +` (Windows), `⌘ ⇧ NumPad +` (macOS), `⌘ ⇧ NumPad +` (IntelliJ IDEA Classic (macOS)), `⌥ ⇧ Plus` (macOS System Shortcuts), `Ctrl+Shift+NumPad +` (XWin), `Ctrl+Shift+NumPad +` (GNOME), `Ctrl+Shift+NumPad +` (KDE), `Ctrl+Shift+NumPad +` (Emacs), `Ctrl+K, Ctrl+J` (Sublime Text), `⌘ K, ⌘ J` (Sublime Text (macOS)), `⌘ ⇧ NumPad +` (Xcode), `Ctrl+M, X` (Visual Studio), `⌃ M, X` (Visual Studio (macOS)), `Ctrl+M, X` (ReSharper), `⌃ M, X` (ReSharper (macOS)), `Ctrl+Shift+NumPad +` (QtCreator), `⌘ ⇧ NumPad +` (QtCreator (macOS)), `Ctrl+Shift+NumPad +` (NetBeans), `Ctrl+NumPad *` (Eclipse), `⌘ NumPad *` (Eclipse (macOS))  |  Expand all collapsed blocks in the document or within the selection.  |
|  Collapse All  |  `Ctrl+Shift+NumPad -` (Windows), `⌘ ⇧ NumPad -` (macOS), `⌘ ⇧ NumPad -` (IntelliJ IDEA Classic (macOS)), `⌥ ⇧ Minus` (macOS System Shortcuts), `Ctrl+Shift+NumPad -` (XWin), `Ctrl+Shift+NumPad -` (GNOME), `Ctrl+Shift+NumPad -` (KDE), `Ctrl+Shift+NumPad -` (Emacs), `Ctrl+K, Ctrl+1` (Sublime Text), `⌘ K, ⌘ 1` (Sublime Text (macOS)), `⌘ ⇧ NumPad -` (Xcode), `Ctrl+M, A` (Visual Studio), `⌃ M, A` (Visual Studio (macOS)), `Ctrl+M, A` (ReSharper), `⌃ M, A` (ReSharper (macOS)), `Ctrl+Shift+NumPad -` (QtCreator), `⌘ ⇧ NumPad -` (QtCreator (macOS)), `Ctrl+Shift+NumPad -` (NetBeans), `Ctrl+Shift+NumPad /` (Eclipse), `⌘ ⇧ NumPad /` (Eclipse (macOS))  |  Collapse all foldable blocks in the document or within the selection.  |
|  Expand all to level \| 1, 2, 3, 4 or 5  |      * `Ctrl+Shift+NumPad *, 1` (Windows), `⌘ ⌥ NumPad *, 1` (macOS), `⌘ ⌥ NumPad *, 1` (IntelliJ IDEA Classic (macOS)), `⌘ ⌥ NumPad *, 1` (macOS System Shortcuts), `Ctrl+Shift+NumPad *, 1` (XWin), `Ctrl+Shift+NumPad *, 1` (GNOME), `Ctrl+Shift+NumPad *, 1` (KDE), `Ctrl+Shift+NumPad *, 1` (Emacs), `Ctrl+Shift+NumPad *, 1` (Sublime Text), `⌘ ⌥ NumPad *, 1` (Sublime Text (macOS)), `⌘ ⌥ NumPad *, 1` (Xcode), `Ctrl+Shift+NumPad *, 1` (Visual Studio), `⌘ ⌥ NumPad *, 1` (Visual Studio (macOS)), `Ctrl+Shift+NumPad *, 1` (ReSharper), `⌘ ⌥ NumPad *, 1` (ReSharper (macOS)), `Ctrl+Shift+NumPad *, 1` (QtCreator), `⌘ ⌥ NumPad *, 1` (QtCreator (macOS)), `Ctrl+Shift+NumPad *, 1` (NetBeans), `Ctrl+Shift+NumPad *, 1` (Eclipse), `Ctrl+Shift+NumPad *, 1` (Eclipse (macOS))    * `Ctrl+Shift+NumPad *, 2` (Windows), `⌘ ⌥ NumPad *, 2` (macOS), `⌘ ⌥ NumPad *, 2` (IntelliJ IDEA Classic (macOS)), `⌘ ⌥ NumPad *, 2` (macOS System Shortcuts), `Ctrl+Shift+NumPad *, 2` (XWin), `Ctrl+Shift+NumPad *, 2` (GNOME), `Ctrl+Shift+NumPad *, 2` (KDE), `Ctrl+Shift+NumPad *, 2` (Emacs), `Ctrl+Shift+NumPad *, 2` (Sublime Text), `⌘ ⌥ NumPad *, 2` (Sublime Text (macOS)), `⌘ ⌥ NumPad *, 2` (Xcode), `Ctrl+Shift+NumPad *, 2` (Visual Studio), `⌘ ⌥ NumPad *, 2` (Visual Studio (macOS)), `Ctrl+Shift+NumPad *, 2` (ReSharper), `⌘ ⌥ NumPad *, 2` (ReSharper (macOS)), `Ctrl+Shift+NumPad *, 2` (QtCreator), `⌘ ⌥ NumPad *, 2` (QtCreator (macOS)), `Ctrl+Shift+NumPad *, 2` (NetBeans), `Ctrl+Shift+NumPad *, 2` (Eclipse), `Ctrl+Shift+NumPad *, 2` (Eclipse (macOS))    * `Ctrl+Shift+NumPad *, 3` (Windows), `⌘ ⌥ NumPad *, 3` (macOS), `⌘ ⌥ NumPad *, 3` (IntelliJ IDEA Classic (macOS)), `⌘ ⌥ NumPad *, 3` (macOS System Shortcuts), `Ctrl+Shift+NumPad *, 3` (XWin), `Ctrl+Shift+NumPad *, 3` (GNOME), `Ctrl+Shift+NumPad *, 3` (KDE), `Ctrl+Shift+NumPad *, 3` (Emacs), `Ctrl+Shift+NumPad *, 3` (Sublime Text), `⌘ ⌥ NumPad *, 3` (Sublime Text (macOS)), `⌘ ⌥ NumPad *, 3` (Xcode), `Ctrl+Shift+NumPad *, 3` (Visual Studio), `⌘ ⌥ NumPad *, 3` (Visual Studio (macOS)), `Ctrl+Shift+NumPad *, 3` (ReSharper), `⌘ ⌥ NumPad *, 3` (ReSharper (macOS)), `Ctrl+Shift+NumPad *, 3` (QtCreator), `⌘ ⌥ NumPad *, 3` (QtCreator (macOS)), `Ctrl+Shift+NumPad *, 3` (NetBeans), `Ctrl+Shift+NumPad *, 3` (Eclipse), `Ctrl+Shift+NumPad *, 3` (Eclipse (macOS))    * `Ctrl+Shift+NumPad *, 4` (Windows), `⌘ ⌥ NumPad *, 4` (macOS), `⌘ ⌥ NumPad *, 4` (IntelliJ IDEA Classic (macOS)), `⌘ ⌥ NumPad *, 4` (macOS System Shortcuts), `Ctrl+Shift+NumPad *, 4` (XWin), `Ctrl+Shift+NumPad *, 4` (GNOME), `Ctrl+Shift+NumPad *, 4` (KDE), `Ctrl+Shift+NumPad *, 4` (Emacs), `Ctrl+Shift+NumPad *, 4` (Sublime Text), `⌘ ⌥ NumPad *, 4` (Sublime Text (macOS)), `⌘ ⌥ NumPad *, 4` (Xcode), `Ctrl+Shift+NumPad *, 4` (Visual Studio), `⌘ ⌥ NumPad *, 4` (Visual Studio (macOS)), `Ctrl+Shift+NumPad *, 4` (ReSharper), `⌘ ⌥ NumPad *, 4` (ReSharper (macOS)), `Ctrl+Shift+NumPad *, 4` (QtCreator), `⌘ ⌥ NumPad *, 4` (QtCreator (macOS)), `Ctrl+Shift+NumPad *, 4` (NetBeans), `Ctrl+Shift+NumPad *, 4` (Eclipse), `Ctrl+Shift+NumPad *, 4` (Eclipse (macOS))    * `Ctrl+Shift+NumPad *, 5` (Windows), `⌘ ⌥ NumPad *, 5` (macOS), `⌘ ⌥ NumPad *, 5` (IntelliJ IDEA Classic (macOS)), `⌘ ⌥ NumPad *, 5` (macOS System Shortcuts), `Ctrl+Shift+NumPad *, 5` (XWin), `Ctrl+Shift+NumPad *, 5` (GNOME), `Ctrl+Shift+NumPad *, 5` (KDE), `Ctrl+Shift+NumPad *, 5` (Emacs), `Ctrl+Shift+NumPad *, 5` (Sublime Text), `⌘ ⌥ NumPad *, 5` (Sublime Text (macOS)), `⌘ ⌥ NumPad *, 5` (Xcode), `Ctrl+Shift+NumPad *, 5` (Visual Studio), `⌘ ⌥ NumPad *, 5` (Visual Studio (macOS)), `Ctrl+Shift+NumPad *, 5` (ReSharper), `⌘ ⌥ NumPad *, 5` (ReSharper (macOS)), `Ctrl+Shift+NumPad *, 5` (QtCreator), `⌘ ⌥ NumPad *, 5` (QtCreator (macOS)), `Ctrl+Shift+NumPad *, 5` (NetBeans), `Ctrl+Shift+NumPad *, 5` (Eclipse), `Ctrl+Shift+NumPad *, 5` (Eclipse (macOS))    |  Expand all the folded blocks in the document up to the specified nesting level.  |
|  Fold Selection / Remove region  |  `Ctrl+.` (Windows), `⌘ .` (macOS), `⌘ .` (IntelliJ IDEA Classic (macOS)), `⌘ .` (macOS System Shortcuts), `Ctrl+.` (XWin), `Ctrl+.` (GNOME), `Ctrl+.` (KDE), `Ctrl+.` (Emacs), `Ctrl+.` (Sublime Text), `⌘ .` (Sublime Text (macOS)), `Ctrl+.` (Xcode), `Ctrl+M, H` (Visual Studio), `⌘ .` (Visual Studio (macOS)), `Ctrl+M, H` (ReSharper), `⌘ .` (ReSharper (macOS)), `Ctrl+.` (QtCreator), `⌘ .` (QtCreator (macOS)), `Ctrl+.` (NetBeans), `Ctrl+.` (Eclipse), `Ctrl+.` (Eclipse (macOS))  |  Collapse the selected fragment and create a custom folding region for it to make it 'foldable' or expand the current fragment and remove the corresponding custom folding region.  |

## See also

### Procedures

[Fold code elements](working-with-source-code.html#code_folding)

