首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >eclipse中的scala代码完成

eclipse中的scala代码完成
EN

Stack Overflow用户
提问于 2011-10-28 01:17:22
回答 3查看 3.6K关注 0票数 1

编辑:我是个白痴。我当时使用的是“Eclipse for Java开发人员”,应该使用“Eclipse”。Scala插件在经典.环境下运行得更好

*编辑:2011年11月1日-2011年10月31日发布的Beta 12版本似乎要好得多*

**编辑:2011年11月4日- Beta 12版本变得不稳定,以至于我们的团队切换到了IntelliJ。我希望将来试用Eclipse插件,并有不同的体验。

我在eclipse中有一个混合的java/scala项目,我发现代码完成并不总是有效的。它似乎对“对象”和在不同项目中定义的类有最大的问题。我知道这只是scala插件的一个“特性”,但是我应该做些什么来尽量减少这些特性的影响呢?

代码语言:javascript
复制
Eclipse Indigo
Scala Plugin: 2.0.0-beta11 

在再玩一天之后,我发现大多数问题都是在从scala访问java类的静态成员时出现的。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-10-28 08:57:43

目前(Scala插件版本: 2.0.0.beta11-2_09-201110031011-3a97f5e,Eclipse版本: 3.6.2.v201102101200)插件中的代码完成存在一些问题。顺便说一句,这不是插件的最新版本,我知道很多这些问题都在积极研究。

首先,请确保在Scala->安装诊断中检查两个完成选项:

  1. 使用Scala兼容的JDT内容辅助建议
  2. 启用JDT内容自动辅助激活

有两个普遍的问题领域:

  1. 类的自动完成有时不能正确地添加导入。 val foo =新Th
  2. 在执行ctrl-space时,类上的方法不会出现。

解决这些问题的方法是为尝试手动使用的类添加导入。这就避免了绝大多数问题。我知道这很痛苦,但很管用。

最近我还没有看过这段代码,但据我所知,这些问题主要是由于:

  1. scala编译器的速度(它只是没有java编译器那么快)
  2. 类搜索工具(我认为大部分问题已经解决了)。
  3. 所需提案的复杂性,即您必须等待scala编译器完成它的工作,以便它能够从所有的特性中了解所有的方法等等。
  4. 解决方案的成熟。

另外,请注意,您期望的一些方法可能根本不会出现。如果对象受隐式转换的限制,则不会得到所期望的方法。

如果遇到问题,请首先查看已知问题未决问题列表。如果存在问题,请将您的用例添加到其中,包括版本号和任何其他相关信息。如果您的问题不存在,请创建它。

对于额外的浏览器点,您可以克隆github上的scala ide,并提交一个拉请求与您的修复。

票数 3
EN

Stack Overflow用户

发布于 2011-10-28 02:51:40

您可能想尝试http://groups.google.com/group/scala-ide-user组,前提是您可以提供更多的详细信息,并且希望不要使用“抽吸”这个词。

我所能说的是这个简短的测试用例在Helios SR2和Eclipse插件2.0.0.beta 11上工作得很好。我不确定Java对多个项目的支持有多深,而且可能存在已知的限制。

我用以下结构进行了测试。

  1. test1 scala项目、test2 scala项目和test3 java项目。
  2. 我将test1和test3作为依赖项目添加到test2中,并将它们添加到构建路径中。
  3. 在test2中,我可以从test1和test3自动完成类;在来自test1的对象上(如果您还在跟踪我)

以下是自动完成的内容(见注释)

代码语言:javascript
复制
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)
}
票数 5
EN

Stack Overflow用户

发布于 2015-10-03 07:18:47

这是一篇老文章,我的环境略有不同,但是Eclipse露娜+ Scala插件(4.2.0)也有同样的问题,并且找到了一个想要做出贡献的解决方案。

在我的例子中,Ctrl+Space上没有自动完成,实际上也没有显示编译错误。

我的解决办法是

  1. 右键单击Scala项目
  2. Scala ->添加Scala库来构建路径

然后开始起作用了。

(我的项目缺少Scala容器2.11.7 )

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7924193

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档