Unisips
Unisnips is a set of tools to parse and generate expandable snippets, aiming to be the bridge between different editor/plugin/code-exapand-apps. It parses snippet sources (so far only a subset of UltiSnips is supported) and converts them to different targets.
You can keep only one set of expressive code templates - AKA snippets - and free yourself the chore of rewriting snippets to fit specifications of different platforms.
✨ Features
interchangable data for further use
Parses source to a list ofSee the demo site's DEBUG panel.
Supported sources
UltiSnips
- Positional placholder (aka 'TabStop' in UltiSnips)
snippet subsec "most common and simple"
---------------- $1 ----------------------
----------------end $1 -------------------
endsnippet
snippet with_default "with default value"
function ${1:name} {
${2://body}
}
endsnippet
snippet nested "nested tabstop"
${0:outer and ${1://inner}}
endsnippet
- 'VISUAL' placeholder
snippet ret "return value"
ret ${VISUAL}
endsnippet
- script code block
snippet test_shell "shell code"
should print date: `! date`
endsnippet
snippet test_js "javascript code"
should print date: `!js new Date()`
endsnippet
Supported targets
- vscode, Visual Studio Code
- atom, Atom
- sublime , Sublime Text
Usage
Node cli
Install
npm i -g @unisnips/unisnips
# or
yarn global add @unisnips/unisnips
Example
unisnips convert --target vscode -i ~/.vim/Ultisnips/typescript.snippets -o ~/vscodesnippets/typescript.json
Roadmaps
-
[x] Port a subset of UltiSnips parser to TypeScript, enable some basic and mostly used features
-
[x] Add more builtin variables, may be useful in some targets (such as vscode's
$CURRENT_YEAR
) -
[ ] Parses
transformers
and convert them to vscode