www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.announce - For Vim D users (snippets)

Helllo, I just read somewhere that there is no support for D in 
Vim,
so I'll use this for a bit of self-advertisement.


A few days ago, I moved to UltiSnips vim script 
(https://github.com/SirVer/ultisnips), which I found to be more 
advanced and stable compared to SnipMate,
which I used previously.

I ported my SnipMate snippets to UltiSnips, removed some bugs, 
and any project-specific stuff. Sent a pullrequest to UltiSnips 
and got it merged.


TLDR:

You can do stuff like (imgur gallery):

http://imgur.com/a/RB7Pw


There is a _ton_ of snippets, maybe a bit too much (I found it 
very useful
for pretty much every keyword to be a snippet, i.e. 
"keyword"<tab> - and
I have generated code:

trivial shortcuts ("module" (with Boost license), "imp", "al", 
"?:", "scope", ...)
type definitions class ("class", "struct", "enum", ...)
flow control ("sw", "if", "ife", "elif", "for", "do", ...)
commonly called functions ("wr", "enf", ...)
DDoc - assuming "///" comments ("doc", "Par", "Thr", "Ret", ...)
Various other stuff I forgot. See the "d.snippets" file.

To add new D snippets, ":UltiSnipsEdit" while editing a D file.


Ultisnips uses <tab> to activate snippets, and <Ctrl-j>, <Ctrl-k> 
to move
between tabstops (editable parts), I found setting the latter
to <tab>, <Shift-tab> to be more intuitive/less keystrokes.


UltiSnips snippets can be implemented in python and
als support various possibilities of where a snippet
should be allowed (to avoid areas where it makes no sense),
e.g. only on start of line, or even regex.

This stuff is not yet used much, but it could be used to improve
the snippets further.


UltiSnips: https://github.com/SirVer/ultisnips
My fork (newest D fixes): https://github.com/kiith-sa/ultisnips
Nov 03 2012