2013-08-16 80 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