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

How to fix IntelliJ IDEA method parameter auto-completion?

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

Eclipse 自动填写默认参数并允许您通过按 Tab:

快速浏览它们

然而,IntelliJ IDEA 处理起来并不方便,需要手动编写:

有没有办法让 IntelliJ IDEA 以类似于 Eclipse 的方式处理方法调用自动完成,并为您预先编写所有参数,让您只需按 Tab(或另一个键)来浏览它们?如果在原始 IntelliJ 中不可能,是否有 add-on/plugin/external 工具可以改进这种情况下的智能代码完成?


注意:我不是懒惰,只是很烦人,必须手动完成每个参数并在每个参数后加上逗号,而代码完成应该为您完成。

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

IntelliJ 不会这样做,据我所知,没有适用于它的插件。
没有适合你的解决方案(除非你自己构建了一个插件,但你只是有另一份工作来维护那个插件)

另一种方法是打破 habit/need 并使用 IntelliJ 的代码完成快捷方式:

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

硬编码 numbers/strings 作为自定义函数的参数是不可取的,因为这否定了参数的意义。传递一个预定义的变量是更好的做法,也更常见;此时 Ctrl+Shift+Space 是最简单的代码补全方式。
这也会阻止您关闭引号和添加逗号。

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


正如 frant.hartm 在他们的回答中所说:

Unfortunately the view of Intellij developers is that this feature would be too error prone. See this issue on youtrack.

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

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

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

尝试

Ctrl + Space

对于

Basic Code Completion

和之前写的一样

Ctrl + Shift + Space

对于

Type Code Completion

或尝试第二种变体两次。有关自动完成代码的更多信息,请参阅 here