查找 Kotlin 类的主构造函数用法

25

想象一下,你在使用基于Kotlin的项目中有一个非常重要且广泛使用的类。它只有一个构造函数,定义如下:

class MyAwesomeManager(argOne: String, argTwo: String)

由于某些原因,您需要快速查找其构造函数的所有用法。您正在使用Android Studio(或Intellj IDEA)。

但是...在其名称上按Ctrl + LMB会给出大量垃圾结果-包括导入中的用途、伴随对象的字段调用等。这是一个的所有用法,但不是构造函数的用法。将光标放在其名称上并按Alt + F7也是如此。

那么,如何找到所有仅限于主要构造函数的用法?

4个回答

30
你应该把光标放在主构造函数的左圆括号旁边,但不要放在第一个参数之前。可能需要添加空格或换行符:
class MyAwesomeManager<caret>(argOne: String, argTwo: String)
//also works
class MyAwesomeManager(<caret> argOne: String, argTwo: String)

然后调用查找用法。这应该只给出构造函数调用的用法。

如果没有括号,因为该类具有默认的零参数构造函数,您可以在类名后面暂时添加(),然后按照上述步骤继续。


嗯,我猜这也是一个正确的答案,但这种方法需要更好的瞄准 :) - AlexeyGorovoy
小修正 - 插入符号需要放在左花括号之前。如果你把它放在右花括号之后,AS会说找不到用法或搜索第一个参数的用法。 - AlexeyGorovoy
2
@AlexeyGorovoy 我编辑了回答,第一个参数前需要有一个空格或换行符。 - Kirill Rakhman
这里是否有一个YouTrack工单来要求改进用户体验? - Holger Brandl

19

非常抱歉我这么快就回答了自己的问题,但我想我已经找到了解决方案。只需两个简单步骤:

  1. 双击类名进行选择
  2. Ctrl+B查找用法(注:Alt+f7也可以使用)

我不确定它是否在所有情况下都有效,但对我来说有效。


更新:你也可以使用 Alt+f7 作为第二步。 - AlexeyGorovoy
2
但是在你的问题中,你说Alt+F7也给出了垃圾信息。这是哪一个呢? - Eugen Pechanec
1
我是说,如果你首先选择一个类的全名,然后使用Alt+F7,它只会找到构造函数的用法。我会编辑答案来澄清这一点。 - AlexeyGorovoy
小提示:如果您不想使用鼠标,可以在光标位于类名上时使用Ctrl+->导航到其末尾,然后使用Ctrl+B。 - A. Kazarovets
Alt+F7显示类的用法,而不是构造函数,但Ctrl+B对我有用。 - Klitos G.

3

由于您的“查找用法”调用(在OSX上为Alt+F7)是从Kotlin类名(也是构造函数定义)中进行的,因此您将获得比在Java构造函数上执行相同操作时更多的结果,正如您所看到的。如果查找用法未显示此点之后的类用法,那么您又该如何知道该类在哪里被使用呢?

在我的一个Kotlin类中执行此操作,我得到了以下结果:

enter image description here

展开“新实例创建”,可以显示构造函数的用法。


我需要检查一下,但我猜它会找到所有构造函数的用法,而不仅仅是主要构造函数的用法? - AlexeyGorovoy

0
随着时间的推移,IntelliJ不断发展。
如果我将光标放在类名的某个位置,并调用“查找用法”(Alt+F7),它会找到该类的所有用法。
但是...
如果我将光标直接放在括号的前面,并调用“查找用法”(Alt+F7),它只会找到对构造函数的调用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接