今週のNetBeansのRuby環境


Tor Nobeyが今週のNetBeansRuby環境の様子を書いていたりするんだけど、
2/2にNetBeansCVSにあげたようです。

Ruby Screenshot of the Week #3
http://blogs.sun.com/tor/date/20070202

ビルドのやり方も書いてくれているのでさっそくビルドしてみることにした。

・・・・というわけで、

「はっし〜〜が夜なべをしてNetBeansビルドしたよ♪〜」

・・・ああ、昨日は木枯らしが吹いていたなぁ。


チェックアウトからビルドまでを4回失敗して、結局5時間以上かかっちゃったよ(遠い目)。
最後はEclipse環境上でビルドしてやっと成功。


試してみると、おいおい、RDT(EclipseRuby環境)って何だよ!くらいにすでに完成度が高い。

特にスゴイのが、

  • Syntax Coloring(コードの色づけね)
  • コードジャンプ


コードジャンプはRubyの組み込みクラスにまでジャンプしてくれる(もちろん、組み込みクラスはCかJavaなのでダミークラスにだが・・・)。
RDTの場合、同じファイル内のメソッド形式呼び出しならジャンプしてくれんだけどね。


その他、Windowとして以下のものがある。

  1. Navigator (Eclipseのアウトラインみたいなやつ)
  2. Lucene Index Browser
  3. AST View (RubyのAbstaract Syntax Tree をJRubyを利用して表示する)
  4. Token Spy Window


多分、1は説明の必要もないアウトライン表示。


2は(おそらく)コード補完候補を出すための仕組みの制御。
NetBeansRuby環境ではコード補完候補を出すために、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タン。 この短期間でよくぞここまで・・・。ぐっじょぶ。

*1:ちなみに、世の中にはプログラミング言語用の全文(全コード)検索エンジンのgonzui[http://gonzui.sourceforge.net/index.html.ja:title]というプロダクトも存在する

*2:ちなみに、JavaはASTにした後、バイトコードを吐くわけだな。その他のコンパイラ型言語はもちろんネイティブ・コードを吐く

簡単に下記にはっし〜〜流ビルドのやり方を書いておくのでご参考までに。


■注意

  • TorタンのBlogを見ながらやる場合は、CVSチェックアウトで必ず -P オプションをつける
  • Eclipse上でビルドする場合は、必ずEclipseの実行させているJVMとAntを実行させるJVMを同一のものにする(はっし〜〜は、JDK 6(Windows版) を使った )


cvs.netbeans.org から下記のたくさ〜んなプロジェクトをチェックアウトすると大吉!


CVS

  • Host : cvs.netbeans.org
  • Repository Path : /cvs
  • User : anoncvs
  • Password : なし


② チェック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