1

[編集]:私はばかです。「EclipseIDEforJava Developers」を使用していたので、「EclipseClassic」を使用する必要がありました。Scalaプラグインは、Classicではるかにうまく機能します。

* [編集]:2011年11月1日-10/31にリリースされたベータ12リリースは大幅に改善されているようです*

** [編集]:2011年11月4日-ベータ12リリースが不安定になり、チームがIntelliJに切り替えました。将来、Eclipseプラグインを試して、別の体験をしたいと思っています。

EclipseでJava/Scalaプロジェクトをブレンドしましたが、コード補完が常に機能するとは限りません。'オブジェクト'、および別のプロジェクトで定義されているクラスで最も問題があるようです。これはscalaプラグインの単なる「機能」であることを理解していますが、これらの機能の影響を最小限に抑えるためにすべきことはありますか?

Eclipse Indigo
Scala Plugin: 2.0.0-beta11 

もう1日遊んだ後、scalaからjavaクラスの静的メンバーにアクセスするときにほとんどの問題が発生することがわかりました。

4

3 に答える 3

5

http://groups.google.com/group/scala-ide-userグループを試してみることをお勧めします。ただし、追加の詳細を提供でき、できれば「 suck」という単語を使用しないでください。

私が言えるのは、この短いテストケースは、HeliosSR2とEclipseScalaプラグイン2.0.0.beta11で問題なく機能するということだけです。Javaを使用したマルチプロジェクトのサポートがどれほど深いかはわかりません。また、既知の制限がある可能性があります。

次の構造でテストしました。

  1. test1 scalaプロジェクト、test2 scalaプロジェクト、およびtest3javaプロジェクト。
  2. test1とtest3を依存プロジェクトとしてtest2に追加し、ビルドパスにも追加しました
  3. test2では、test1とtest3のクラスをオートコンプリートできます。およびtest1のオブジェクト(まだ私をフォローしている場合)

これがオートコンプリートされたものです(コメントを参照)

package test2

import test1.{A1, O1} // A1 and O1 choices offered from A or O

class A2 {

  val a1 = new A1
  a1.ma1("foo") // ma1 was autocompleted from m

  val a3 = new test3.A3 // test3 choice offered from test
  a3.ma3("wqqw").toLowerCase() // ma3 completed from m
  // toLowerCase was completed from toL (3 choices offered)

  val o1 = O1.mo1  // mo1 was autocompleted from m
  val ox = O1 // O1 was completed from O (as second choice)
}
于 2011-10-28T02:51:40.100 に答える
3

現在(Scalaプラグインバージョン:2.0.0.beta11-2_09-201110031011-3a97f5e、Eclipseバージョン:3.6.2.v201102101200)、プラグインのコード補完に多くの問題があります。ところで、これはプラグインの最新バージョンではなく、これらの問題の多くが積極的に取り組んでいることを私は知っています。

まず、Scala-> Setup Diagnosticsで、完了するための2つのオプションがチェックされていることを確認してください。

  1. Scala互換のJDTコンテンツアシスト提案を使用する
  2. JDTコンテンツの自動アシストアクティベーションを有効にする

問題には2つの一般的な領域があります。

  1. クラスのオートコンプリートでは、インポートが正しく追加されない場合があります。

    val foo = new Th <ctrl-space>

  2. ctrl-spaceを実行しているときは、クラスのメソッドは表示されません。

これらの問題の回避策は、手動で使用しようとしているクラスのインポートを追加することです。これにより、問題の大部分が回避されます。それは私が知っている苦痛ですが、それはうまくいきます。

私は最近このコードを見ていませんが、私が覚えているように、問題は主に次の原因によるものです。

  1. Scalaコンパイラの速度(Javaコンパイラほど高速ではありません)
  2. クラス検索機能(現在作業中ですが、ほとんどの問題は解決されたと思います)
  3. 必要な提案の複雑さ。つまり、すべての特性などからすべてのメソッドを認識できるように、scalaコンパイラーが作業を終了するのを待つ必要があります。
  4. ソリューションの成熟度。

また、期待しているメソッドの一部がまったく表示されない場合があることに注意してください。オブジェクトが暗黙の変換の対象である場合、期待するメソッドを取得できません。

問題が発生した場合は、まず既知の問題と未解決の問題のリストを確認してください。問題が存在する場合は、バージョン番号やその他の関連情報を含め、ユースケースを追加してください。問題が存在しない場合は、作成してください。

余分なブラウニーポイントについては、githubでscala ideのクローンを作成し、修正を加えてプルリクエストを送信できます。

于 2011-10-28T08:57:43.567 に答える
0

これは古い投稿であり、私の環境は少し異なりますが、Eclipse Luna + Scala IDEプラグイン(4.2.0)で同じ問題が発生し、解決策を見つけたので、貢献したいと思いました。

私の場合、Ctrl + Spaceでオートコンプリートは行われず、実際にはコンパイルエラーも表示されませんでした。

私の回避策は

  1. Scalaプロジェクトを右クリック
  2. Scala->ビルドパスにScalaライブラリを追加

それからそれは働き始めました。

ここに画像の説明を入力してください

(Scalaライブラリコンテナー[2.11.7]が私のプロジェクトにありませんでした)

于 2015-10-03T07:18:47.330 に答える