ctrl+shift+p filters: :st2 :st3 :win :osx :linux
Browse

Fold​Functions

by math2001 ST3

Sublime Text plugin to fold functions. And it supports functions with arguments on more than one line!

Details

Installs

  • Total 1K
  • Win 691
  • OS X 277
  • Linux 279
Jul 21 Jul 20 Jul 19 Jul 18 Jul 17 Jul 16 Jul 15 Jul 14 Jul 13 Jul 12 Jul 11 Jul 10 Jul 9 Jul 8 Jul 7 Jul 6 Jul 5 Jul 4 Jul 3 Jul 2 Jul 1 Jun 30 Jun 29 Jun 28 Jun 27 Jun 26 Jun 25 Jun 24 Jun 23 Jun 22 Jun 21 Jun 20 Jun 19 Jun 18 Jun 17 Jun 16 Jun 15 Jun 14 Jun 13 Jun 12 Jun 11 Jun 10 Jun 9 Jun 8 Jun 7 Jun 6
Windows 0 0 2 4 2 0 2 1 1 3 2 1 2 0 0 1 2 3 1 0 3 0 0 2 0 2 0 1 1 7 2 4 3 1 0 0 1 1 0 2 2 0 0 3 1 4
OS X 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 2 0 0 1 1 0 0 2 2 1 0 0 0 1 2 0 0 1 0 0 1 2 1 1 0 0 0 0 1 0
Linux 0 2 1 0 2 2 0 1 0 0 0 1 2 2 0 1 1 0 0 0 1 0 1 1 0 0 0 0 1 2 0 0 0 0 0 0 0 0 0 1 2 1 0 1 0 0

Readme

Source
raw.​githubusercontent.​com

FoldFunctions

This package folds every functions in the current file, so that you can have a global view of it, and then unfold a few, so that you don't have to scroll a lot, skipping over the functions you're not interested in at the moment.

For now, the following language are supported:

  • Python :heart:
  • JavaScript

The good part is that it supports arguments on multiple lines, like so (in this case, it's python):

def my_function(argument_number_one, argument_number_two,
                argument_number_three):
    print('It works!!')

    for i in range(10):
        print('It really does!')

Example of folding with this package - FoldFunctions - through the command palette of Sublime Text

Installation

Because it is not available on package control for now, you have to add this repo “manually” to your list.

Using package control

  1. Open up the command palette (ctrl+shift+p), and find Package Control: Add Repository. Then enter the URL of this repo: https://github.com/math2001/FoldFunctions in the input field.
  2. Open up the command palette again and find Package Control: Install Package, and just search for FoldFunctions. (just a normal install)

Using the command line

cd "%APPDATA%\Sublime Text 3\Packages"             # on window
cd ~/Library/Application\ Support/Sublime\ Text\ 3 # on mac
cd ~/.config/sublime-text-3                        # on linux

git clone "https://github.com/math2001/FoldFunctions"

Which solution do I choose?

It depends of your needs:

  • If you intend to just use FoldFunctions, then pick the first solution (Package Control), you'll get automatic update.
  • On the opposite side, if you want to tweak it, use the second solution. Note that, to get updates, you'll have to git pull

Usage

The command is accessible from the command palette.

  • ctrl+shift+p
  • Search for Fold Functions
  • hit enter

Note: The caption will be the same, whichever supported language file you are editing, but the actual command will change. :wink:

Adding a key binding

It's up to you, but I prefer to have this command bound to this command, in my case, alt+f. So, here's what I've done:

{
    "keys": ["alt+f"],
    "command": "fold_python_functions",
    "context": [
        {"key": "selector", "operand": "source.python"}
    ]
},
{
    "keys": ["alt+f"],
    "command": "fold_javascript_functions",
    "context": [
        {"key": "selector", "operand": "source.js"}
    ]
}