First stab at sticking a useful default into the package statement
Shawn M Moore [Sun, 10 May 2009 19:44:37 +0000 (15:44 -0400)]
vim/moose_snippets.vim

index 5b97d8d..ae377a6 100644 (file)
@@ -38,8 +38,21 @@ function! SnippetFile(filename)
     return Snippet(abbr, str)
 endfunction
 
+function! ParameterizedModule()
+    let current_file = expand("%")
+    let t = substitute(current_file, '\.pm', '', '')
+    let t = substitute(t, 'lib/', '', '')
+
+    " Sadly, this does not work because : is a special character in snippet
+    " tag names. Any ideas?
+    "let module = substitute(t, '/', '::', 'g')
+    let module = substitute(t, '/.*', '', '')
+
+    return '<{' . module . '}>'
+endfun
+
 call Snippet('class', [
-            \"package <{ClassName}>;",
+            \"package ".ParameterizedModule().";",
             \"use Moose;",
             \"",
             \"extends '<{SuperClass:RemoveEmptySuperClass()}>';",
@@ -51,7 +64,7 @@ call Snippet('class', [
             \"",
             \"1;"])
 call Snippet('role', [
-            \"package <{RoleName}>;",
+            \"package ".ParameterizedModule().";",
             \"use Moose::Role;",
             \"",
             \"<{}>",
@@ -101,7 +114,7 @@ call Snippet('after', [
 
 " MooseX support
 call Snippet('prole', [
-            \"package <{RoleName}>;",
+            \"package ".ParameterizedModule().";",
             \"use MooseX::Role::Parameterized;",
             \"",
             \"<{}>",