4

注: これは、Scala-IDE メーリング リストでの同じ質問の正確な再投稿です。返信がなく、5 日後に待つことを断念しました。

私は Scala Compiler Plugin を書いています。現在は scalawrapper と呼ばれています (後でもっと良い名前が見つかるかもしれません)。タイプセーフ スタックをインストールし、プラグインを次の場所に配置しました。

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

これで、scalac を次のように呼び出すことができます。

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

私のプラグインを自動的に見つけて使用します。

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

上記の絶対パスを試し、スラッシュとバック スラッシュを使用して試し、スペースを含まない一時ディレクトリを試し、プロジェクト ディレクトリからの相対パスを試し、ワークスペースからの相対パスを試しました。何も使用しません。以前のバージョンの Scala-IDE で以前に ScalaCL プラグインを使用しようとして、まったく同じ理由で失敗したため、これは自分のプラグインに固有のものではないことにも注意してください。

今日(15.10.2011)更新したばかりなので、最新バージョンが必要です(最終的にインデントを明示的に4に設定できるようですが、過去に設定を見落としていた可能性があります)。

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

4

1 に答える 1

3

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

試してみてくださいWindows->Preferences->Scala->Compiler。詳細タブを参照してください。パスは、ワークスペースに対して相対的です。

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

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

$workspace_locplugin という名前のディレクトリを作成し、そこに jar ファイルを配置しました。Windows->Preferences->Scala->Compiler[詳細設定] タブの下にある

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

プロジェクト プロパティでプラグインを指定することもできますが、引き続き$workspace_loc. 上記の構成は私にとってはうまくいきます。

于 2011-10-21T11:14:56.337 に答える