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

Wrap​It

by pykong ST3 Missing

Wrap Contents With Specific Code

Details

Installs

  • Total 277
  • Win 163
  • OS X 80
  • Linux 34
Feb 24 Feb 23 Feb 22 Feb 21 Feb 20 Feb 19 Feb 18 Feb 17 Feb 16 Feb 15 Feb 14 Feb 13 Feb 12 Feb 11 Feb 10 Feb 9 Feb 8 Feb 7 Feb 6 Feb 5 Feb 4 Feb 3 Feb 2 Feb 1 Jan 31 Jan 30 Jan 29 Jan 28 Jan 27 Jan 26 Jan 25 Jan 24 Jan 23 Jan 22 Jan 21 Jan 20 Jan 19 Jan 18 Jan 17 Jan 16 Jan 15 Jan 14 Jan 13 Jan 12 Jan 11 Jan 10
Windows 0 0 0 1 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 6 0 0 0 0 0 0 0 0 0
OS X 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 1
Linux 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 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.