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

Wrap​It

by pykong ST3

Wrap Contents With Specific Code

Details

Installs

  • Total 614
  • Win 351
  • Mac 160
  • Linux 103
Apr 20 Apr 19 Apr 18 Apr 17 Apr 16 Apr 15 Apr 14 Apr 13 Apr 12 Apr 11 Apr 10 Apr 9 Apr 8 Apr 7 Apr 6 Apr 5 Apr 4 Apr 3 Apr 2 Apr 1 Mar 31 Mar 30 Mar 29 Mar 28 Mar 27 Mar 26 Mar 25 Mar 24 Mar 23 Mar 22 Mar 21 Mar 20 Mar 19 Mar 18 Mar 17 Mar 16 Mar 15 Mar 14 Mar 13 Mar 12 Mar 11 Mar 10 Mar 9 Mar 8 Mar 7
Windows 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Mac 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Linux 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Readme

Source
raw.​githubusercontent.​com

WrapIt

Sublime Text 3 plugin to easily wrap a text selection in predefined code blocks.

WhatFor?

  • Want to surround a selection with brackets? Easy. Just WrapIt!
  • Need to have these few lines inside an if-else block. It's fun. Just WrapIt!
  • Like to join several functions into a class declaration? No problem. Just WrapIt!
  • Want to … I think you get it! Just WrapIt! ;-)

Installation

Just use PackageControl. I am not going to explain here how to use it.

Usage

Wrapping

  1. Put your cursor anywhere, or select some text then hit alt+w.
  2. The quick panel will open giving you a range of code structure for wrapping your text with.
  3. Once you chose one, your text will rapidly get embedded into the selcted code structure.
  4. Like in any snippets you can use tab to move between different regions of that code to successively fill it.

Defining custom wrappers

By default WrapIt comes with templates for PHP, Python, JavaScript and JSON. You can extend the user settings file with custom templates for any syntax. Like so:

"definitions":[
                    { 
                      "name":"Python",
                      "syntaxes": [
                        "Packages/Python/Python.sublime-syntax",
                        "Packages/Python 3/Python3.tmLanguage",
                        "Packages/Python Improved/PythonImproved.tmLanguage",
                        "Packages/MagicPython/grammars/MagicPython.tmLanguage"
                      ],
                      "wrappers": [
                        {
                          "name": "if / else",
                          "description": "Wrap with: if - else block",
                          template":"\nif ${1}:\n\t<sel>\nelse:\n\t${2}"
                        }
                      ]
                    }
                  ]
  1. Copy definitions from to default to user settings file of the WrapIt package.
  2. Either extend an existing language or define a new one.
  3. “name” - name of language e.g. PYthon
  4. “syntaxed” - array of paths to .tmLanguage files for that language
  5. “wrappers” - array of objects for defining code blocks
  6. code block -
  7. “name” - name code block (label for quick panel)
  8. “descriptions” - one sentence descriptin of code block (sublabl for quick panel)
  9. “template” - template definition

Note: Both “name” and “template” must be filled or the respective code block will not be listed in the quick panel.

templating

  • <sel> - where your selection should be placed
  • \n - new line
  • \t - indent for line, if preceeding tag, all lines of a multiline selection will get indented
  • ${x} - regions for tab navigation, just like in snippets

Custom keybinding

As an alternative to the qick panel, commonly used wrapping can be bound to own key combination. In your user keybindings file, do:

{"keys": [ YOUR KEY COMBINATION ],
    "command": "wrap_it",
    "args": { NAME OF CODE BLOCK},
    "context": [SPECIFY SYNTAX HERE]},

Contributors

  • lattespirit: original idea, primordial version called sublime-wrapper.