はじめに
Eclipse Orionは、Eclipse Foundationが開発するWebベースの統合開発環境(IDE)です。
Orionサーバをダウンロードし、ローカル環境で運用することもできます。
現在はHTML, CSS, JavaScriptなど、一部の言語の開発にしか対応していませんが、
プラグインを開発・導入することで他の言語にも対応可能です。
このようにOrionは大変便利なのですが、開発者向けの日本語ドキュメントがまだ少なく、とっつきにくい印象があります。
以上のことから、調べたことを(半分メモ書きとして)書き残します。
Orionサーバ 環境構築
こちらのサイトから最新版をダウンロードします。
記事編集時(2015/09/11)の最新バージョンは9.0です。
解凍したら適当なディレクトリに配置します。
サーバの待ち受けポートはorion.iniで設定できます(デフォルトでは8080)
-Dorg.eclipse.equinox.http.jetty.http.port=8080
次に、サーバ設定ファイル(orion.conf)をorion.iniと同じディレクトリに配置します。
orion.confのテンプレートはGitHubにあります(https://github.com/eclipse/orion.client/blob/master/bundles/org.eclipse.orion.client.core/web-ide.conf)
設定項目については今回は割愛。何も書き換えなくても問題ないです。
Orionのディレクトリにあるorion.exe(Windows), orion(Linux)などを起動し、
ブラウザからhttp://localhost:8080/ にアクセス、ページが表示できることを確認します。
右上のRegisterリンクから新規アカウントを作成し、ログインできれば成功です。
プラグインの開発・導入手順
大まかな流れは次のとおりです。
- JavaScriptでプラグインを記述する
- それを読み込んだHTMLファイルをWebサーバなどに配置する
- ブラウザからOrionのページを開き、設定(歯車マーク)→PLUGINSのInstallをクリック。先ほどの作成したHTMLのURLを入力してSubmit
- 何の問題もなければプラグインが追加されます
Webサーバを立てるのが面倒という人はGitHub Pagesでも。
本記事では1について詳しく説明します。
Orionプラグインの開発
JavaScriptライブラリの入手
事前準備として、[orionのディレクトリ]/org.eclipse.client.core_***.jarを展開し、中にあるweb/orionディレクトリの中身をどこかに保存してください。
これがOrionプラグイン用のJavaScriptライブラリになります。
最低限必要なplugin.jsの他にも、非同期処理のためのDeferred.jsや正規表現関係をまとめたregex.jsなどがあります。
プラグインのソースコード
サンプルとして、エディタ上でCtrl-Shift-eを押すと、文字列"Hello, Orion!"を入力するプラグインを作ってみます。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Hello, Orion!</title>
<script src="plugin.js"></script>
<script>
var headers = {
name: "My Plugin",
version: "1.0",
description: "自作のプラグインたち"
};
var provider = new orion.PluginProvider(headers);
var serviceImpl = {
run: function(text) {
return "Hello, Orion!";
}
};
var serviceProperties = {
name: "Hello Orion plugin",
key: ["e", true, true] // Ctrl-Shift-e
};
provider.registerService("orion.edit.command", serviceImpl, serviceProperties);
provider.connect();
</script>
</head>
<body></body>
</html>
Orionプラグインのコードは、およそ次のような構成をしています。
- プラグインに関する情報を設定したPluginProviderオブジェクトを生成する。各プラグインには1つ以上のサービス(提供する機能の最小単位)を登録できます
- サービス(今回の例では"Hello, Orion!"の出力)の実装部分とプロパティをJSON形式で記述する。利用可能な項目はサービスのタイプによって異なります。
- PluginProviderオブジェクトのregisterServiceメソッドを呼び出し、サービスを登録する。引数はサービスタイプ(string), 実装部分(JSON), プロパティ(JSON)
- 登録したいサービスの数だけregisterServiceメソッドを呼び出し、登録を行う
- 最後にPluginProviderオブジェクトのconnectメソッドを呼び出す
サービスタイプの一覧はここにあります(英語)
あとは前述の手順に従い、Orion上でプラグインを読みこめば完了です。
複数のサービスを登録する場合、RequireJSなどを利用すると良いかもしれません。
参考
Orion/Server admin guide - Eclipsepedia https://wiki.eclipse.org/Orion/Server_admin_guide
Orion/Documentation/Developer Guide/Simple plugin example - Eclipsepedia http://wiki.eclipse.org/Orion/How_Tos/Writing_a_plugin