Tabstop on type constraints
[gitmo/moose-dev-utils.git] / vim / moose_snippets.vim
index 541f05b..f9c3411 100644 (file)
@@ -9,8 +9,13 @@ let st = g:snip_start_tag
 let et = g:snip_end_tag
 let cd = g:snip_elem_delim
 
-exec "Snippet class package ".st."ClassName".et.";<CR>use Moose;<CR>extends '".st."SuperClass".et."';<CR><CR>".st.et."<CR><CR>__PACKAGE__->meta->make_immutable;<CR>no Moose;<CR><CR>1;<CR>"
-exec "Snippet has has ".st."attr".et." => (<CR>is => 'rw',<CR>isa => 'Str',<CR>".st.et."<CR>);"
-exec "Snippet hasl has ".st."attr".et." => (<CR>is => 'rw',<CR>isa => 'Str',<CR>lazy_build => 1,<CR>);<CR><CR>sub _build_".st."attr".et." {<CR>my $self = shift;<CR>".st.et."<CR>}<CR><CR>"
+function! RemoveEmptySuperClass()
+    s/^extends '<{}>';\n//e
+    return @z
+endfun
+
+exec "Snippet class package ".st."ClassName".et.";<CR>use Moose;<CR>extends '".st."SuperClass:RemoveEmptySuperClass()".et."';<CR><CR>".st.et."<CR><CR>__PACKAGE__->meta->make_immutable;<CR>no Moose;<CR><CR>1;<CR>"
+exec "Snippet has has ".st."attr".et." => (<CR>is => 'rw',<CR>isa => '".st."Str".et."',<CR>".st.et."<CR>);"
+exec "Snippet hasl has ".st."attr".et." => (<CR>is => 'rw',<CR>isa => '".st."Str".et."',<CR>lazy_build => 1,<CR>);<CR><CR>sub _build_".st."attr".et." {<CR>my $self = shift;<CR>".st.et."<CR>}<CR><CR>"
 exec "Snippet sub sub ".st."name".et." {<CR>my $self = shift;<CR>".st.et."<CR>}<CR>"