2013-08-16 75 views
2

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

我想要的是类似于未导入的类/ trait/object行为 - IDE强调它并询问是否要为其添加导入语句。最好的做法是,如果在代码完成列表中显示“pimped”方法/操作符,可能来自模块(或其他)范围,并且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" 
} 
+0

使用[class name completion](http://img404.imageshack.us/img404/872/6yg.png)。快捷键可以在您的键盘映射中找到。 – CrazyCoder

+0

它不建议不导入的自定义“皮条客”。 – monnef

回答

0

是,使用Alt-Ctrl-Space,它表明非进口implicits了。

+0

它似乎没有做任何事情。你能否写出在'settings-> keymap'列表中如何命名动作? (我可能会反弹它,另一方面,我无法在[cheatsheet]上找到它(http://www.jetbrains.com/idea/docs/IntelliJIDEA_ReferenceCard.pdf)...) – monnef

+0

它是'类名完成'。我使用'VimIdea',但在你的Sheatsheet中,键绑定是相同的(在最开始的第三行)。 – kriomant

+0

哦,对不起,不知道我怎么会错过。但不幸的是,它并不建议从隐式类(“扩展”方法)中不导入未导入的方法:(或者必须首先启用其他内容?) – monnef