[[JAVAの記事一覧]]
*目次 [#k5b1b442]
#contents
*趣旨 [#od33a6b3]
Eclipseでマクロ機能を使えるようにする
*Eclipse Monkeyの導入 [#o93343fc]
まずはEclipse Monkeyをアップデートサイト経由で導入します。
http://download.eclipse.org/technology/dash/update/
Eclipse MonkeyをインストールするとEclipseのメニューバーに「Scripts」メニューが追加される。
*「Examples」を選択 [#s567cc18]
メニューバーに「Scripts」から「Examples」を選択することでワークスペースに「Eclipse Monkey Examples」プロジェクトが作成される
*Eclipseのメニューに表示する [#lb3c8270]
エクリプスでjsファイルを新規作成し、
下記ソースを保存する。
すぐさま
Hello > NanimoShinai
にメニューが登録されているのがわかる。
/*
* Menu: Hello > NanimoShinai
*/
function main() {
}
*メッセージボックスを表示する [#tad11ab8]
/*
* Menu: Hello > HelloWorld
*/
function main() {
Packages.org.eclipse.jface.dialogs.MessageDialog.openInformation(
window.getShell(),
"Monkey Dialog",
"Hello World"
)
}
**alert [#ie347008]
alert文でもアラート表示できた。
alert("1");
**他ファイルの読み込み [#tf108fe7]
まず、下記のファイルを作成しておく
***LibHello.js [#qe13fbee]
function lib_function() {
return "Hello libfunction";
}
***インクルード例 [#g08e0b61]
/*
* Menu: Hello > LibHello
*/
include("LibHello.js");
function main() {
alert(lib_function());
}
*Eclipse Monkeyで使えるオブジェクト [#wbb7aad5]
下記のようにコメント箇所に
* DOM: http://localhost/org.eclipse.eclipsemonkey.lang.javascript
をいれるとエクリプスのオブジェクトにアクセスできる
/*
* Menu: Views > Google Web View
* DOM: http://localhost/org.eclipse.eclipsemonkey.lang.javascript
*/
**参考URL [#aa98ae3a]
http://d.hatena.ne.jp/ZoAmichi/20080801/1217631793
**ビューの取得 [#j3375929]
views.getView("GoogleWebView");
**Resourcesオブジェクトを取得 [#g972ebc6]
o Resources
+ Object[] filesMatching(String) ワークスペース上のパターンに一致するファイルオブジェクトを返します
**View [#h4cdaed7]
***void setHTML(String) [#f6a8c73b]
***void execute(String) [#n30033ac]
引数はorg.eclipse.swt.Browser#executeで実行するスクリプトです
***void showView(boolean) [#j759f1bc]
***void setTitle(String) [#pbf41904]
***String url [#yd45f67e]
***addEventListener(String, js関数) [#h33b4e2b]
これどこに定義されてるんですか?
**editorsオブジェクトを取得 [#i30adad9]
***Editor[] all [#m2366f60]
開いてる全てのエディタ
***Editor [#f800a48b]
activeEditor 開いてるアクティブなエディタ
***String toString() [#qae4796f]
**Editorオブジェクト [#w4b1cd39]
***void applyEdit(int,int,String) 引数は(開始位置、置換される長さ、挿入するテキスト) [#acd249fa]
***void beginCompoundChange() [#ab974431]
***void close(boolean) [#m884c99e]
引数にtrueで保存して閉じる
***void endCompoundChange() [#r95b2dd0]
***int getLineAtOffset(int) 指定したテキスト位置から行を取得 [#lb2985ec]
***int getOffsetAtLine(int) 指定した行のテキスト位置を取得 [#j77e1682]
***void save() [#v9db90f2]
***void selectAndReveal(int,int) [#te8ca402]
***String toString() [#f6bed0b7]
***String id [#y1d4d4f5]
***String lineDelimiter [#ve6ba959]
***int sourceLength [#de3653b4]
***[JSO] selectionRange 選択範囲。 [#h148ec2b]
{"startingOffset":開始位置,"endingOffset":終了位置}
+ String title
+ ITextEditor textEditor
+ int currentOffset 書き込み可能プロパティ
**io [#g9c77eca]
未調査。
*Eclipse/保存と同時にブラウザを自動リロードする方法 [#cedfbe50]
http://tobysoft.net/wiki/index.php?Eclipse%2F%CA%DD%C2%B8%A4%C8%C6%B1%BB%FE%A4%CB%A5%D6%A5%E9%A5%A6%A5%B6%A4%F2%BC%AB%C6%B0%A5%EA%A5%ED%A1%BC%A5%C9%A4%B9%A4%EB%CA%FD%CB%A1
http://d.hatena.ne.jp/tomo_snowbug/20080809/1218294986