IntelliJ IDEA 中的代码自动完成的功能之所以能让我如此印象深刻,原因是 IDEA 真的理解你的代码以及你当前所在的上下文。接下来我们将这些最重要的特性进行简单的说明,这些特性让 IDEA 显示出比其他 IDE 更棒的表现。 即刻完成 Instant completion
想要了解“即刻完成”是多么的有效,你可以浏览这个 演示视频. 类型感知的自动完成 Type-aware completion 另一个特性同样打破了常规的代码自动完成的方法,称为:智能自动完成。你可能已经知道,IDEA 中包含不止一种自动完成的功能,包括 基本自动完成 ⌘Space 和 智能自动完成 ⌘⇧Space.
静态属性和方法 Static fields and methods 就如同刚才我说的,IDEA 一直走在你的想法之前。如果你不记得一些静态成员的类名,你只需要开始输入静态成员的名称,然后调用两次“自动完成”,IDEA 会给你提供正确的可供选择的列表,甚至是通过静态 import 进来的方法,如果你调用 Intention action ⌥⏎ 的话.
常量自动完成 Constants completion 很多 API 使用 Java 的原始类型而不是枚举类型来定义常量,IDEA 能分析出项目中的这些常量,并在自动完成的建议列表中提供选择,快速输入。
父类自动完成 Super completion 你可能已经注意到了,要调用一个有很多参数的父类构造函数挺烦人,而 IDEA 能理解你想要的并提供建议列表供选择。
语句自动完成 Statements completion IntelliJ IDEA 另外一个智能的特性就是 自动完成语句 Complete statement ⌘⇧⏎, 可以帮你完成正在输入的语句的剩余部分,自动增加漏掉的大括号小括号和必要的格式化处理。 参数信息 Parameter info IntelliJ IDEA 会显示每个重载方法或者构造函数的参数信息,并高亮其中最佳匹配的参数类型。这帮你根据输入和期望的内容来选择合适的方法。
你也可以通过 ⌘P 来显示参数信息。 快速定义 Quick definition 另外一个你可能不知道的特性就是 快速定义 Quick definition ⌘⇧I. 它会弹窗显示建议列表中的方法定义的内容,更多的时候,方法的定义比文档更有用,特别是你不确定要使用哪个方法时。
从自动完成中排除 Exclude from completion 我肯定每个人都至少会碰到一次这种情形,你从来不用的某个反复总是反复的出现在自动建议列表中。例如 com.sun 或者是 java.awt 包。 IntelliJ IDEA 可帮你排除掉这些选项,只需要在要排除的选项中调用 Intention ⌥⏎ 并确认,你也可以在Settings 中重新找回这些信息。
其他语言注入 Injected languages 接下来的这个就不管是代码自动完成那么简单,这个功能完全可以开一篇新的文章详细介绍,但这里只介绍它跟代码自动完成有关的部分。 其他语言注入 Language injection 是 IntelliJ IDEA 带来的高级代码助手,可对 Java 代码中字符串的表达式进行自动完成。这些表达式可以是 SQL, JPQL, XPath expression, HTML, CSS, JavaScript 片段等任何语言。
使用 Tab 键的自动完成 Completion with Tab 另外一个特性就是 Сompletion with Tab,也就是使用 Tab 键来实现自动完成,当你选择建议列表中的某个条目后点击 ⇥, 选中的内容将会覆盖光标标识符,而不是插入。这在编辑如文件名这样的标识符片段时是很有用的。 中间匹配 Middle matching 另外一个高效的方法就是 中间匹配 Middle matching. 意思是当你在刚开始要输入某个标识符时,IntelliJ IDEA 就会为你提供可供选择的建议列表,这个特性能显著提升编码效率,特别是当你只记住某个名称的一部分时。
大小写敏感设置 Case sensitivity settings 正如你可能已经知道的,代码完成常用的方法就是使用驼峰法则来根据您的输入去匹配相应的类名。虽然你需要输入至少一个大小字母来给 IDE 一些线索提示。而 IntelliJ IDEA 改进了这个法则,它不要求一定是大小字母,也可以是小写的,也就是说你没必要在每次使用这个功能时按 ⇧
默认 IntelliJ IDEA 对大小写是敏感的,你可以在 Settings 修改此项设置。 资源属性(properties)、文件名和资源的自动完成 IDEA 还可判断当前正在使用一些加载资源的方法,并给出可供选择的资源列表。
一些在非 Java 文件中的类名自动完成 Class name completion in non-Java files IntelliJ IDEA 同样还提供一些非 Java 文件,如 XML 配置文件中的类名自动完成。
其他地方的自动完成 Completion in other places
|