如何修复IntelliJ IDEA方法参数自动完成?

时间:2016-02-16 02:45:52

标签: java eclipse intellij-idea autocomplete intellisense

我正在使用IntelliJ IDEA 15,我注意到(默认情况下)Eclipse提供了更方便的自动完成功能,当涉及到编写需要多个参数的方法调用时。

Eclipse会自动填写默认参数,并允许您通过按标签 快速浏览它们:

enter image description here

但是,IntelliJ IDEA不能方便地处理它并让您手动编写它们:

enter image description here

有没有办法制作IntelliJ IDEA,以类似于Eclipse的方式处理方法调用自动完成,并为您预先写好所有参数,只需按 Tab (或其他键)导航它们?如果在原版IntelliJ中无法实现,是否有一个附加/插件/外部工具可以在这种情况下改善智能代码的完成?

注意:我不是很懒,它只是非常讨厌,不得不手动完成每个参数并在每个参数之后加一个逗号,当代码完成时应该为你完成。

4 个答案:

答案 0 :(得分:6)

IntelliJ没有这样做,而AFAIK没有它的插件 没有解决方案(除非你自己构建了一个插件,但是你只需要另外一个工作来维护该插件)

另一种方法是打破习惯/需求并使用IntelliJ的代码完成快捷方式:

  • Ctrl + P 查看功能的可能参数。
  • Ctrl + Shift + Space 列出可在相应参数位置作为参数输入的可能变量(基于类型) )。
    如果函数需要另一个参数,这也会输入逗号。

硬编码数字/字符串作为自定义函数的参数是不可取的,因为这会否定参数的要点。传递预定义变量是更好的做法,也更常见;此时 Ctrl + Shift + Space 是代码完成的最简单方法。
这也会阻止您关闭引号并添加逗号。

另请注意:IntelliSense是Microsoft的智能代码完成实现,IntelliJ和Eclipse都不使用它。

正如frant.hartm在答案中所述:

  

不幸的是,Intellij开发人员认为这个功能太容易出错。 See this issue on youtrack

他们甚至state that people are welcome to make a plugin that does this.

答案 1 :(得分:3)

与此AFAIK最接近的是“方法参数完成”,它允许您立即自动完成当前方法的参数作为内部方法调用的参数(在调用super()时适用于方法和构造函数)。

method parameter completion

不幸的是,Intellij开发人员认为这个功能太容易出错。请参阅this issue on youtrack

答案 2 :(得分:2)

IDEA不会自动填充参数。您可以使用Ctrl+Shift+Space进行自动完成(完成基于类型,而不是名称)或Ctrl+Alt+Space作为建议。或Ctrl+P查看接受的参数。

答案 3 :(得分:2)

尝试

Ctrl + Space

代表

  

基本代码完成

和以前写的一样

Ctrl + Shift + Space

代表

  

输入代码完成

或尝试第二个变体TWICE。有关自动完成代码的更多信息,请参见here