How do I collapse sections of code in Visual Studio Code for Windows?

Visual Studio-Code

Visual Studio-Code Problem Overview


How do I fold or collapse sections of code in Visual Studio Code?

Is this feature supported?

Visual Studio-Code Solutions


Solution 1 - Visual Studio-Code

Folding has been rolled out and is now implemented since Visual Studio Code version 0.10.11. There are these keyboard shortcuts available:

  • Fold folds the innermost uncollapsed region at the cursor:

    • Ctrl + Shift + [ on Windows and Linux
    • + + [ on macOS
  • Unfold unfolds the collapsed region at the cursor:

    • Ctrl + Shift + ] on Windows and Linux
    • + + ] on macOS
  • Fold All folds all regions in the editor:

    • Ctrl + K, Ctrl + 0 (zero) on Windows and Linux
    • + K, Ctrl +0 (zero) on macOS
  • Unfold All unfolds all regions in the editor:

    • Ctrl + K, Ctrl + J on Windows and Linux
    • + K, Ctrl + J on macOS

References: https://code.visualstudio.com/docs/getstarted/keybindings

Solution 2 - Visual Studio-Code

As of Visual Studio Code version 1.12.0, April 2017, see Basic Editing > Folding section in the docs.

The default keys are:

> Fold All: CTRL+K, CTRL+0 (zero) > > Fold Level [n]: CTRL+K, CTRL+[n]* > > Unfold All: CTRL+K, CTRL+J > > Fold Region: CTRL+K, CTRL+[ > > Unfold Region: CTRL+K, CTRL+]

*Fold Level: to fold all but the most outer classes, try CTRL+K, CTRL+1

Macs: use instead of CTRL (thanks Prajeet)

Solution 3 - Visual Studio-Code

Code folding by regions has arrived with v1.17. Folding by regions documentation. And v1.19 and 1.23.

[Generally you can add a space, for example // region and // endregion to //region and //endregion and it will also work.]

TypeScript/JavaScript: //#region and //#endregion or // #region and // #endregion
C#:                    #region and #endregion
C/C++:                 #pragma region and #pragma endregion
F#:                    //#region and //#endregion
PowerShell:            #region and #endregion
Python:                #region and #endregion
VB:                    #Region and #End Region
PHP:                   #region and #endregion
Bat:                   ::#region and ::#endregion or REM #region and REM #endregion
Markdown:              <!-- #region --> and <!-- #endregion -->
Golang                 //region and //endregion or //#region and //#endregion
Java                   //#region and //#endregion
CSS/SCSS/Less:         /* #region */ and /* #endregion */ or /*#region*/ and /*#endregion*/
SCSS/Less:             // #region and // #endregion
Go:                    // region, // endregion and // #region, // #endregion
shellscript:           # region and # endregion
Perl5                  #region and #endregion or =pod and =cut  
sql                    --#region and --#endregion

Important: If you don't see your language in the list ::

> Each language also has snippets available for the markers. Type '#' and invoke code completion to see them. To have region markers configured for your language, contact the language extension provider.

So type # and then Ctrl+Space to see the region markers for any language.


Solution 4 - Visual Studio-Code

This feature is available in the standard build now. To make the collapse/expand controls appears, you need to mouse over the area just to the right of the line numbers as shown in this screenshot:

Enter image description here

Solution 5 - Visual Studio-Code

You should add user settings:

{
    "editor.showFoldingControls": "always",
    "editor.folding": true,
    "editor.foldingStrategy": "indentation", 
}

Solution 6 - Visual Studio-Code

ctrl + k + 0 : Fold all levels (namespace , class , method , block)

ctrl + k + 1 : namspace

ctrl + k + 2 : class

ctrl + k + 3 : methods

ctrl + k + 4 : blocks

ctrl + k + [ or ] : current cursor block

ctrl + k + j : UnFold

Solution 7 - Visual Studio-Code

The default shortcut for collapse/extend are:

Ctrl + Shift + [ : "Fold"

Ctrl + Shift + Alt + [ : "Fold all"

Ctrl + Shift + ] : "Unfold"

Ctrl + Shift + Alt + ] : "Unfold all"

Or go to keybindings.json and change as you wish.

For example:

{
    "key": "cmd+k cmd+m",
    "command": "editor.foldAll",
    "when": "editorFocus"
},
{
    "key": "cmd+m cmd+k",
    "command": "editor.unfoldAll",
    "when": "editorFocus"
},

Solution 8 - Visual Studio-Code

If none of the shortcuts are working (like for me), as a workaround you can also open the command palette (Ctrl + 3 or View -> Command Palette...) and type in fold all:

enter image description here

Solution 9 - Visual Studio-Code

Collapsing is now supported in release 1.0:

> Source Code Folding Shortcuts > > There are new folding actions to collapse source code regions based on > their folding level. > > There are actions to fold level 1 (Ctrl+K Ctrl+1) to level 5 (Ctrl+K > Ctrl+5). To unfold, use Unfold All (Ctrl+Shift+Alt+]). > > The level folding actions do not apply to region containing the > current cursor.

I had a problem finding the ] button on my keyboard (Norwegian layout), and in my case it was the Å button. (Or two buttons left and one down starting from the backspace button.)

Solution 10 - Visual Studio-Code

With JavaScript:

//#region REGION_NAME
   ...code here
//#endregion

Solution 11 - Visual Studio-Code

This feature is now supported, since Visual Studio Code 1.17. To fold/collapse your code block, just add the region tags, such as //#region my block name and //#endregion if coding in TypeScript/JavaScript.

Example:

Region Folding

Solution 12 - Visual Studio-Code

Just press ctrl + shift + p, and then type 'fold'. all keybinds about (un)fold will be shown. If ctrl k does not work, probably it's because the vim extension overrides the key. in this case, you should modify settings.json (press ctrl + shift + p, and then type 'settings' ) with

"vim.handleKeys": {
  "<C-k>": false,
},

enter image description here

Solution 13 - Visual Studio-Code

v1.42 is adding some nice refinements to how folds look and function. See https://github.com/microsoft/vscode-docs/blob/vnext/release-notes/v1_42.md#folded-range-highlighting:

> Folded Range Highlighting > > Folded ranges now are easier to discover thanks to a background color > for all folded ranges.

fold highlight > > Fold highlight color Theme: Dark+ > > The feature is controled by the setting editor.foldingHighlight and > the color can be customized with the color editor.foldBackground. > > "workbench.colorCustomizations": { "editor.foldBackground": "#355000" } > > Folding Refinements > > Shift + Click on the folding indicator first only folds the inner > ranges. Shift + Click again (when all inner ranges are already folded) > will also fold the parent. Shift + Click again unfolds all.

fold shift click > > When using the Fold command (kb(editor.fold))] on an already folded > range, the next unfolded parent range will be folded.

Solution 14 - Visual Studio-Code

This is the latest built-in(default) keyboard shortcuts for folding and unfolding the code

vscode Keyboard shortcut

enter image description here

Ctrl+Shift+[ Fold (collapse) regionCtrl+Shift+] Unfold (uncollapse) region
Ctrl+K Ctrl+[ Fold (collapse) all subregionsCtrl+K Ctrl+] Unfold (uncollapse) all subregions
Ctrl+K Ctrl+0 Fold (collapse) all regions
Ctrl+K Ctrl+J Unfold (uncollapse) all

Nb: But in some cases, your vs code extension or user will alter the keyboard binding(shortcut). So best option that Checks like this

  1. view->command palette OR cntrl+shift+p
  2. type "fold" .It will suggest the fold and unfold and there shortcut. You can type that shortcut instead of command-palette

enter image description here

eg:

Fold All

enter image description here

UnFold All

enter image description here

Solution 15 - Visual Studio-Code

Code folding controls inside the editor to expand nodes of XML-structured documents and source code in VsCode

No technical tips here, just simple adjustments of the preferences of VsCode.

I managed to show code folding controls always in VsCode by going to Preferences and searching for 'folding'. Now just select to always show these controls. This works with the Typescript code and HTML of templates in the Angular 8 solution I tested it with.

This was tested with VsCode Insiders 1.37.0 running on a Windows 10 OS.

Show code folding controls always in VsCode

Solution 16 - Visual Studio-Code

As of version 1.3.1 (2016-07-17), Block Collapse is much more convenient.

Any line followed by an indented line will have a '-' character to allow collapse. If the block is collapsed, it will then be replaced by a '+' character that will open the collapsed block.

The (Ctrl + Shift + Alt + ]) will still affect all blocks, closing one level. Each repeated use closed one more level. The (Ctrl + Shift + Alt + [) works in the opposite way.

Hooray, block collapse finally works usefully.

Solution 17 - Visual Studio-Code

Here is the most common useful default keymap of VS code. and You easily can customize by your own keymap.

Fold All: CTRL + 0

Unfold All: CTRL + J

Fold Region: CTRL + [

Unfold Region: CTRL + ]

Fold Level 1: CTRL+ 1

Fold Level 2: CTRL+ 2

Fold Level 3: CTRL+ 3

Fold Level 1: CTRL+ 4

Solution 18 - Visual Studio-Code

VSCode extension: Fold Level, one key fold to the level you want.

enter image description here

Solution 19 - Visual Studio-Code

> Note: these shortcuts only work as expected if you edit your keybindings.json

I wasn't happy with the default shortcuts, I wanted them to work as follow:

  • Fold: Ctrl + Alt + ]
  • Fold recursively: Ctrl + ⇧ Shift + Alt + ]
  • Fold all: Ctrl + k then Ctrl + ]
  • Unfold: Ctrl + Alt + [
  • Unfold recursively: Ctrl + ⇧ Shift + Alt + [
  • Unfold all: Ctrl + k then Ctrl + [

To set it up:

  • Open Preferences: Open Keyboard Shortcuts (JSON) (Ctrl + ⇧ Shift + p)
  • Add the following snippet to that file >Already have custom keybindings for fold/unfold? Then you'd need to replace them.
    {
        "key": "ctrl+alt+]",
        "command": "editor.fold",
        "when": "editorTextFocus && foldingEnabled"
    },
    {
        "key": "ctrl+alt+[",
        "command": "editor.unfold",
        "when": "editorTextFocus && foldingEnabled"
    },
    {
        "key": "ctrl+shift+alt+]",
        "command": "editor.foldRecursively",
        "when": "editorTextFocus && foldingEnabled"
    },
    {
        "key": "ctrl+shift+alt+[",
        "command": "editor.unfoldRecursively",
        "when": "editorTextFocus && foldingEnabled"
    },
    {
        "key": "ctrl+k ctrl+[",
        "command": "editor.unfoldAll",
        "when": "editorTextFocus && foldingEnabled"
    },
    {
        "key": "ctrl+k ctrl+]",
        "command": "editor.foldAll",
        "when": "editorTextFocus && foldingEnabled"
    },

Solution 20 - Visual Studio-Code

to fold/unfold current block use (ctrl+k)+(ctrl+l)

Solution 21 - Visual Studio-Code

On a Mac, it's the RHS Command key, K, not the left for the code folding commands.

Otherwise the left hand Command key will delete the current line, K.

Solution 22 - Visual Studio-Code

I wish Visual Studio Code could handle:

#region Function Write-Log
Function Write-Log {
    ...
}
#endregion Function Write-Log

Right now Visual Studio Code just ignores it and will not collapse it. Meanwhile Notepad++ and PowerGUI handle this just fine.

Update: I just noticed an update for Visual Studio Code. This is now supported!

Solution 23 - Visual Studio-Code

Or, if you want to remove the folding buttons, for extra space:

"editor.folding": false

(add to your settings.json file)

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionNickView Question on Stackoverflow
Solution 1 - Visual Studio-CodeBroccoView Answer on Stackoverflow
Solution 2 - Visual Studio-CodeMichael FultonView Answer on Stackoverflow
Solution 3 - Visual Studio-CodeMarkView Answer on Stackoverflow
Solution 4 - Visual Studio-CodeBraveNewMathView Answer on Stackoverflow
Solution 5 - Visual Studio-CodeMinh Tien TranView Answer on Stackoverflow
Solution 6 - Visual Studio-CodeM KomaeiView Answer on Stackoverflow
Solution 7 - Visual Studio-CodeSamuel PintoView Answer on Stackoverflow
Solution 8 - Visual Studio-CodeJorn VerneeView Answer on Stackoverflow
Solution 9 - Visual Studio-CodeStian StandahlView Answer on Stackoverflow
Solution 10 - Visual Studio-CodeRafael GrilliView Answer on Stackoverflow
Solution 11 - Visual Studio-CodeMurilo PerroneView Answer on Stackoverflow
Solution 12 - Visual Studio-Codeuser3113626View Answer on Stackoverflow
Solution 13 - Visual Studio-CodeMarkView Answer on Stackoverflow
Solution 14 - Visual Studio-CodelavaView Answer on Stackoverflow
Solution 15 - Visual Studio-CodeTore AurstadView Answer on Stackoverflow
Solution 16 - Visual Studio-CodeMiguelitoView Answer on Stackoverflow
Solution 17 - Visual Studio-CodeLisan EView Answer on Stackoverflow
Solution 18 - Visual Studio-CodevikydView Answer on Stackoverflow
Solution 19 - Visual Studio-CodeJesusIniestaView Answer on Stackoverflow
Solution 20 - Visual Studio-Codemahmoud elgmlView Answer on Stackoverflow
Solution 21 - Visual Studio-CodeReaddyEddyView Answer on Stackoverflow
Solution 22 - Visual Studio-CodeMr. AnnoyedView Answer on Stackoverflow
Solution 23 - Visual Studio-CodelenoohView Answer on Stackoverflow