ScalaでEclipse Pluginを書いてみたよ
う ご く w w w http://bit.ly/gy1lJ8
都元ダイスケ🍅 on Twitter: "う ご く w w w http://bit.ly/gy1lJ8"
えーと。id:kompiroさんとネタかぶりですがw 一足先にScalaを試したのでご報告。
普通に動きました。特に難しいことしてません。id:kompiroさんの手順の変法です、で済まそうとしたらちょっと違ったので手順を箇条書きしときます。
- Eclipse for RCPにScala IDEをインストールしとく。
- 普通のScalaプロジェクトをつくる。
- EclipseプラグインプロジェクトでHello worldのスケルトンを作る。
- Scalaプロジェクトの .project と .classpath をプラグインプロジェクトに適当にマージする。
- Scala-2.7のjarを*1libにコピーしてMANIFEST.MFやbuild.propertiesに記述
- スケルトンのソースコードを *.java から *.scala にリネームして、中身もScalaにする。
- あとは起動するだけ
package org.jiemamy.eclipse.sample.scala import org.eclipse.jface.resource.ImageDescriptor import org.eclipse.ui.plugin.AbstractUIPlugin import org.osgi.framework.BundleContext class Activator extends AbstractUIPlugin { val PLUGIN_ID = "org.jiemamy.eclipse.sample.scala" var plugin:Activator = null @throws(classOf[Exception]) override def start(context:BundleContext) { super.start(context) plugin = this } @throws(classOf[Exception]) override def stop(context:BundleContext) { plugin = null super.stop(context) } }
package org.jiemamy.eclipse.sample.scala.actions import org.eclipse.jface.action.IAction import org.eclipse.jface.viewers.ISelection import org.eclipse.ui.IWorkbenchWindow import org.eclipse.ui.IWorkbenchWindowActionDelegate import org.eclipse.jface.dialogs.MessageDialog class SampleAction extends IWorkbenchWindowActionDelegate { var window:IWorkbenchWindow = null def run(action:IAction) { MessageDialog.openInformation( window.getShell(), "Plugin by Scala", "Hello, Eclipse x Scala world") } def selectionChanged(action:IAction, selection:ISelection) { } def dispose() { } def init(window:IWorkbenchWindow) { this.window = window; } }
うーん、なんか異様に重い起動だった気がするけど…。原理的にはそんな重いはずないんだけどな〜。