2

在当前的 IntelliJ IDEA (12) 中是否可以启用不在当前范围内的“pimps”(隐式 def 和隐式类的东西,类似于 C# 的扩展方法)的代码完成 = 当前文件中没有导入语句包含它们。

我想要的类似于未导入的类/特征/对象行为 - IDE 将其下划线并询问我是否要为其添加导入语句。最好的情况是,如果“拉皮条”的方法/运算符将显示在代码完成列表中,可能来自模块(或其他)范围,并且 IDE 会在使用此新方法/运算符时自动添加(或要求包含)导入。

这可以通过更改设置或使用某些插件来实现吗?

EDIT1:示例代码

Pimps.scala

object Pimps {
  implicit class stringPimps(s: String) {
    def myMethod = s"** $s **"
  }
}

Main.scala

import Pimps._ // without this import

object Main extends App {
  println("xxx".myMethod) // IDE won't suggest "myMethod"
}
4

1 回答 1

0

是的,使用Alt-Ctrl-Space,它也暗示了非导入的隐含。

于 2013-08-16T10:03:36.780 回答