如何修复 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
我正在使用 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