VimでScalaを編集中に{,(,[で改行したときに },),] を自動で入力する

お目当てのIntelliJScalaプラグインがなかなか遊んでくれないもんで、その間にVimのautoend.vimにおれおれautoend_scala.rbを追加した。
これでVimでのScalaコーディングがちょっと快適に。
ちなみに他にはScala公式謹製のScalaのインデントとシンタックスハイライトを使ってます。あ、あと辞書ファイル。

autoend.vimが何かって言うのはこちらでも見て下さい。
rubyの対応が書かれているautoend_ruby.rbをぱくって削りまくってちょっと付け足しだたけの劣化版なんだけど、これで十分なんじゃね?という。

#autoend_scala.rb
#autoend_ruby.rbをコピって削ったscala版
class AutoEnd::Handler::Scala
  include AutoEnd::Helper

  def self.filetypes
    %w(scala)
  end

  def initialize
    @exps = [
      /([{(\[])\s*$/             # {,(,[
    ]

    @assoc = Hash.new {|h, k| k }.merge(
      '('      => ')',
      '{'      => '}',
      '['      => ']'
    )
  end

  def handle(line = $curbuf.line)
    return unless eol? && @exps.find {|e| e =~ line }
    append_line(indent + @assoc[$1]) if $1
  end
end

Scalaの場合はとりあえず、{,(,[だけ対応してれば十分かなと。
ちなみにautoend.vimの作者さんは、endwise.vimっていう同じ機能の物があるので、そっちに乗り換えますっていってるんだけど、autoend.vimRubyコードで書いてあって、個人的にこっちの方がいじりやすいので、自分としてはこっちを使い続けられる限り使い続けていこうかなと思ってます。