今週のNetBeansのRuby環境
Tor Nobeyが今週のNetBeansーRuby環境の様子を書いていたりするんだけど、
2/2にNetBeansのCVSにあげたようです。
■ Ruby Screenshot of the Week #3
http://blogs.sun.com/tor/date/20070202
ビルドのやり方も書いてくれているのでさっそくビルドしてみることにした。
・・・・というわけで、
「はっし〜〜が夜なべをしてNetBeansビルドしたよ♪〜」
・・・ああ、昨日は木枯らしが吹いていたなぁ。
チェックアウトからビルドまでを4回失敗して、結局5時間以上かかっちゃったよ(遠い目)。
最後はEclipse環境上でビルドしてやっと成功。
試してみると、おいおい、RDT(EclipseのRuby環境)って何だよ!くらいにすでに完成度が高い。
特にスゴイのが、
- Syntax Coloring(コードの色づけね)
- コードジャンプ
コードジャンプはRubyの組み込みクラスにまでジャンプしてくれる(もちろん、組み込みクラスはCかJavaなのでダミークラスにだが・・・)。
RDTの場合、同じファイル内のメソッド形式呼び出しならジャンプしてくれんだけどね。
その他、Windowとして以下のものがある。
- Navigator (Eclipseのアウトラインみたいなやつ)
- Lucene Index Browser
- AST View (RubyのAbstaract Syntax Tree をJRubyを利用して表示する)
- Token Spy Window
多分、1は説明の必要もないアウトライン表示。
2は(おそらく)コード補完候補を出すための仕組みの制御。
NetBeansのRuby環境ではコード補完候補を出すために、LuceneというJava製の全文検索エンジンを使っているもよう。
全文検索エンジンのインデックス作成範囲を指定するツールが2というわけだ。
*1
3は、これは説明難しいな・・・。
簡単に言うと、コンパイラのlexer(字句解析)なり、Parser(構文解析)で解析した結果はAbstarace Syntax Tree(抽象構文木)(以下、AST)という形式で保存しておくわけだよ
プログラムの実行時はこのASTをたどりながら実行するというのが、インタプリタ型言語の仕組みだったりする。
*2
ということはだ、プログラムからコードの文字列を触るよりも、このASTをいじくった方がいろいろとプログラミングしやすかったりする。
したがって、ASTを見られる環境があるとまぁ、いろいろとツールを作ったりしやすいというわけだ。
おそらく、このASTツールはTorタンが自分自身のために使っていると見た。
ちなみに、4のToken Windowはlexerの字句解析結果を見るためのツールだね。これもTorタンが使っていると見た。
(だって、僕らパンピーには必要ないもの。)
あと、書き忘れたけどRailsのプロジェクトも作れる。Webrickも自動的にあがる。
それにしても、すごいぞ! Torタン。 この短期間でよくぞここまで・・・。ぐっじょぶ。
簡単に下記にはっし〜〜流ビルドのやり方を書いておくのでご参考までに。
■注意
- TorタンのBlogを見ながらやる場合は、CVSチェックアウトで必ず -P オプションをつける
- Eclipse上でビルドする場合は、必ずEclipseの実行させているJVMとAntを実行させるJVMを同一のものにする(はっし〜〜は、JDK 6(Windows版) を使った )
cvs.netbeans.org から下記のたくさ〜んなプロジェクトをチェックアウトすると大吉!
■ CVS
② チェックnbbuildプロジェクトのbuild.xmlを実行するのだけど、
■ Targetsタブ
- build-nozip
- merge
を選択。
■ Mainタブ ー Arguments
- Dmoduleconfig=ruby
を記載
■ チェックアウトするプロジェクト
apisupport applet autoupdate beans classclosure classfile clazz core db debuggercore debuggerjpda diff editor extbrowser form graph html httpserver i18n ide image j2ee j2eeserver jarpackager java javacvs javadoc jellytools jemmy junit languages lexer libs logger mdr mobility monitor nbbuild objectbrowser openide openidex profiler projects properties refactoring schema2beans scripting serverplugins subversion tasklist text tomcatint usersguide utilities vcscore vcscvs vcsgeneric versioncontrol web websvc xml xtest