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

Wrap​It

by pyking2 ST3

Wrap Contents With Specific Code

Details

Installs

  • Total 232
  • Win 140
  • OS X 62
  • Linux 30
Oct 18 Oct 17 Oct 16 Oct 15 Oct 14 Oct 13 Oct 12 Oct 11 Oct 10 Oct 9 Oct 8 Oct 7 Oct 6 Oct 5 Oct 4 Oct 3 Oct 2 Oct 1 Sep 30 Sep 29 Sep 28 Sep 27 Sep 26 Sep 25 Sep 24 Sep 23 Sep 22 Sep 21 Sep 20 Sep 19 Sep 18 Sep 17 Sep 16 Sep 15 Sep 14 Sep 13 Sep 12 Sep 11 Sep 10 Sep 9 Sep 8 Sep 7 Sep 6 Sep 5 Sep 4
Windows 0 0 0 0 0 1 0 2 0 0 0 0 1 0 0 0 0 0 0 0 2 1 0 2 0 3 0 1 0 1 2 1 1 2 2 1 1 2 0 0 1 1 0 0 2
OS X 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 1 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 0 1 1
Linux 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 1 0 0 2 0 0 1 0 1 0 0 0 0 0 1

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.