ARGENTO CUORE

 May the code be with you.

--.--.--[--] スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

2010.04.11[日] Scalaのための.ctagsとvim

ScalaはJavaVM上で動作するので、Android上で動作し、Google App Engineでも動作するらしい。
あと、C#上での実装もある(JavaVMより遅れているのかな)ので、.NET環境でも動作するみたい。
すごく嬉しい。

手元のctags(Exuberant ctags)はScala言語に対応していないので、ctagsがScalaのソースコードを理解してくれるよう新たに正規表現で設定ファイルを記述してやる必要がある。
正規表現面倒くさいーと思って探したらすぐに見つかった。↓を~/.ctagsに記述する。もし.ctagsがなければ新たに作成する。
--langdef=scala
--langmap=scala:.scala
--regex-scala=/^[ \t]*class[ \t]+([a-zA-Z0-9_]+)/\1/c,classes/
--regex-scala=/^[ \t]*trait[ \t]+([a-zA-Z0-9_]+)/\1/t,traits/
--regex-scala=/^[ \t]*type[ \t]+([a-zA-Z0-9_]+)/\1/T,types/
--regex-scala=/^[ \t]*def[ \t]+([a-zA-Z0-9_]+)/\1/m,methods/
--regex-scala=/^[ \t]*val[ \t]+([a-zA-Z0-9_]+)/\1/C,constants/
--regex-scala=/^[ \t]*var[ \t]+([a-zA-Z0-9_]+)/\1/l,local variables/
--regex-scala=/^[ \t]*package[ \t]+([a-zA-Z0-9_.]+)/\1/p,packages/
--regex-scala=/^[ \t]*case class[ \t]+([a-zA-Z0-9_]+)/\1/c,case classes/
--regex-scala=/^[ \t]*object[ \t]+([a-zA-Z0-9_]+)/\1/o,objects/

次に、Scalaのソースコードを手に入れる。Xubuntu9.10環境においてdebパッケージでインストールできるScalaのバージョンは2.7.5だったので、同じバージョンのものをダウンロード。jarファイルにまとめられたソースコードを解凍し、適当な場所に置く。

.ctagsに先ほどのScala言語の定義を記述していれば、ctagsによるtagファイルの構築が行える状態になっているので、
$ctags -f タグファイル名 -R ソースコードのディレクトリパス

によってタグファイルを作成しておく。

次に、vimの設定に移る。
Scalaのtoolsupportには開発をサポートしてくれる様々なファイルが用意されている。vimを使うならばvimのtoolsupportを選択し、plugin、syntax、indentのファイルをダウンロードし、~/.vim/以下の適切な箇所に配置する。
pluginファイルはソースコードに文字を挿入するようになっていて、もしそれが気に入らないならコメントアウトしたほうがいいかもしれない。

あとは.vimrcに.scalaファイルを読み込んだとき、作成したときにファイルタイプを設定するように、
autocmd BufNewFile,BufRead *.scala set filetype=scala

の一行を追加する

最後に、vim起動時にタグファイルを自動的に読み込むようにする。
set tags += タグファイルの位置/タグファイルの名前
スポンサーサイト

Comment






(編集・削除用)


管理者にだけ表示を許可

Trackback

http://ronor.blog81.fc2.com/tb.php/66-e023b05c

この記事にトラックバック(FC2Blog User)

Scala Feed

scala feed

FC2カウンター

プロフィール

RoNor

Author:RoNor
得意呪文はScalaですって言えるようになるのが夢です。
デスマーチ中、パーティメンバーの防御力を向上させたりさせなかったり。

検索フォーム

QRコード

QRコード

Copyright © 2009-2010 ARGENTO CUORE and RoNor All rights reserved.

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。