2011-10-21 6 views
4

注:これはScala-IDEメーリングリストで同じ質問を正確に再投稿したものです。返信がゼロになり、5日後に待っています。ScalaコンパイラプラグインがScala IDEで動作する方法

私はScala Compiler Pluginを書いています。それは現在 scalawrapperと呼ばれています(しかし、後でより良い名前を見つけるかもしれません)。私は タイプセーフスタックがインストールされている、と私は下にそれで私のプラグインを置く:今、私はこのようなscalacを呼び出すことができます

C:\Program Files\typesafe-stack\misc\scala-devel\plugins 

scalac -classpath ... -Xplugin-require:scalawrapper test\... 

とそれが見つけ、自動的に私のプラグインを使用しています。

残念ながら、私はScala-IDEで使用することができません。私はいつも Missing required plugin: scalawrapperを得る。 「Project Properties \ Scala Compiler(プロジェクト設定を使用)\ Advanced」タブで、 エラーが発生するため、Xplugin-requireフィールドに scalawrapperを入力しています。しかし、私がXpluginsdirに入力できるものは、 の効果があるようです。

私は、上記の絶対パスを試してみましたが、前方 とバックスラッシュで試してみましたが、スペースそれで せずに一時ディレクトリを試してみましたが、ワークスペースに 相対を試してみました、ディレクトリを投影する相対を試してみました。それは何も使用しません。以前のバージョンのScala-IDEでScalaCL プラグインを使用しようとしたため、 は自分のプラグインに固有ではなく、全く同じ理由で に失敗しました。

私はちょうど今日(2011年10月15日)を更新しているので、最新 バージョン(それはそう私は最終的に、明示的に、4にインデントを設定し が、多分私はちょうど過去の設定を見落としすることができます)を持っている必要があります。

私はXpluginsdirに何も入れていないときに、実際に何が期待されているのか、そして使用するものは のデフォルト値を教えてくれますか?

答えて

3

Scala IDEは、イン​​ストールしたコンパイラではなくプレゼンテーションコンパイラを使用します。 Scala IDEを使用してプラグインを使用するには、Eclipseの環境設定でプラグインを指定する必要があります。

Try Windows->Preferences->Scala->Compiler [詳細設定]タブを参照してください。パスはワークスペースを基準にしています。

編集:私はワークスペースとの相対的な言い方をすれば、.metadataが格納されている実際のワークスペースディレクトリ($workspace_loc)を意味します。私は$project_loc(c:\ code \ project \ source)が$workspace_loc(c:\ code \ project \ workspace)とは異なる、ソースコードを含むプロジェクトファイルが1つのディレクトリに格納され、 。コンパイラ・パラメータで指定するディレクトリは、ワークスペース($workspace_loc)からの相対パスです。

同様の設定があるかどうかを確認するには、プロジェクトに移動してProperties->Resource->Linked Resourcesを選択します。

プラグインと呼ばれるディレクトリ$workspace_locの下にディレクトリを作成し、そこにjarファイルを配置しました。Windows->Preferences->Scala->Compiler [詳細設定]タブの下で、私は

Xplugin = C:\code\project\workspace\plugin\xxx-0.0.1.jar 
Xplugin-require = xxx 

はあなたにも、プロジェクトのプロパティでプラグインを指定することができることに注意してください持っているが、それはまだ $workspace_locを使用しています。上記の設定は私の仕事です。

+0

あなたは私の質問を読んでいません。私は設定がどこにあるか知っています: "Project Properties \ Scala Compiler(プロジェクト設定の使用)\ Advanced"タブで "唯一の問題は、ITが機能しません。 –

+0

申し訳ありませんが、私はあなたの質問を読んだが、私が意味したことについて十分に明確ではなかった。私は答えを編集しました。 –

+0

ありがとうございます。あなたが言ったように私がそれをするなら、それはうまくいくようです。私はそれが以前にはうまくいかなかったと思った理由は、Eclipseがすべての出力(System.outとlog(...)の両方)を捨て去ってしまったからだ。 scalacで出力を生成するのと同じオプションは、Eclipseでは何もしません。私はそれが動作することを証明するために例外をスローする必要がありましたが、それは別の問題で解決される別の問題です。 jarを明示的に指定する必要がないように、Xpluginsdirの使い方を知りましたか? –

関連する問題