diff options
| author | Ben Beltran <ben@freshout.us> | 2012-10-08 11:44:10 -0500 |
|---|---|---|
| committer | Ben Beltran <ben@freshout.us> | 2012-10-08 11:44:10 -0500 |
| commit | 0d23b6e515a01a5782532351821ebfa11f3d6cf2 (patch) | |
| tree | aa395b7e50ccb533d6b48b809016ac06f2d5bc8c /vim/plugin/31-create-scala.vim | |
| parent | a91731eac872b7837c2821341db5888702125cef (diff) | |
Add vim again :)
Diffstat (limited to 'vim/plugin/31-create-scala.vim')
| -rw-r--r-- | vim/plugin/31-create-scala.vim | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/vim/plugin/31-create-scala.vim b/vim/plugin/31-create-scala.vim new file mode 100644 index 0000000..e4ecb44 --- /dev/null +++ b/vim/plugin/31-create-scala.vim @@ -0,0 +1,55 @@ +" Vim plugin that generates new Scala source file when you type +" vim nonexistent.scala. +" Scripts tries to detect package name from the directory path, e. g. +" .../src/main/scala/com/mycompany/myapp/app.scala gets header +" package com.mycompany.myapp +" +" Author : Stepan Koltsov <yozh@mx1.ru> + +function! MakeScalaFile() + if exists("b:template_used") && b:template_used + return + endif + + let b:template_used = 1 + + let filename = expand("<afile>:p") + let x = substitute(filename, "\.scala$", "", "") + + let p = substitute(x, "/[^/]*$", "", "") + let p = substitute(p, "/", ".", "g") + let p = substitute(p, ".*\.src$", "@", "") " unnamed package + let p = substitute(p, ".*\.src\.", "!", "") + let p = substitute(p, "^!main\.scala\.", "!", "") " + let p = substitute(p, "^!.*\.ru\.", "!ru.", "") + let p = substitute(p, "^!.*\.org\.", "!org.", "") + let p = substitute(p, "^!.*\.com\.", "!com.", "") + + " ! marks that we found package name. + if match(p, "^!") == 0 + let p = substitute(p, "^!", "", "") + else + " Don't know package name. + let p = "@" + endif + + let class = substitute(x, ".*/", "", "") + + if p != "@" + call append("0", "package " . p) + endif + + "norm G + "call append(".", "class " . class . " {") + + "norm G + "call append(".", "} /// end of " . class) + + call append(".", "// vim: set ts=4 sw=4 et:") + call append(".", "") + +endfunction + +au BufNewFile *.scala call MakeScalaFile() + +" vim: set ts=4 sw=4 et: |