【问题标题】:Find usages of primary constructor of a Kotlin class查找 Kotlin 类的主构造函数的用法
【发布时间】:2018-02-24 12:04:07
【问题描述】:

假设您在基于 Kotlin 的项目中有一个非常重要且使用广泛的类。它有唯一这样定义的构造函数:

class MyAwesomeManager(argOne: String, argTwo: String)

出于某种原因,您需要快速找到其构造函数的所有用途。您正在使用 Android Studio(或 Intellj IDEA)。

但是...在其名称上按 Ctrl + LMB 会产生大量垃圾结果 - 用于导入、伴生对象的字段调用等。 ,但不是构造函数。将光标放在其名称上并点击 Alt + F7 也是如此。

那么,我如何找到这个主构造函数的全部和唯一用法?

【问题讨论】:

    标签: android-studio intellij-idea kotlin hotkeys


    【解决方案1】:

    您应该将插入符号放在主构造函数的左括号旁边,但不要放在第一个参数之前。可能添加空格或换行符:

    class MyAwesomeManager<caret>(argOne: String, argTwo: String)
    //also works
    class MyAwesomeManager(<caret> argOne: String, argTwo: String)
    

    然后调用查找用法。这应该只为您提供构造函数调用的用法。

    如果因为类有一个默认的零参数构造函数而没有括号,你可以在类名后面临时添加(),然后按上述进行。

    【讨论】:

    • 嗯,我想这也是一个正确的答案,但这种方法需要更好的瞄准:)
    • 小修正 - 插入符号需要放在左大括号之前。如果你把它放在大括号之后 AS 说它找不到用法或搜索第一个参数的用法。
    • @AlexeyGorovoy 我编辑了答案。第一个参数之前需要有一个空格或换行符。
    • 是否有 youtrack 票可以在这里要求更好的用户体验?
    【解决方案2】:

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

    1. 双击类名将其选中
    2. Ctrl+B 查找用法(编辑:Alt+f7 也可以)

    我不确定它是否适用于所有情况,但它对我有用。

    【讨论】:

    • 更新:你也可以使用Alt+f7作为第二步。
    • 但是在你的问题中你说 Alt+F7 也会给你带来垃圾。是哪个?
    • 我的意思是,如果你先选择一个类的全名,然后使用 Alt+F7,它只会找到构造函数的用法。我将编辑答案以澄清这一点。
    • 小注:如果你不想用鼠标来做,当插入符号在它上面时,使用 Ctrl+-> 导航到类名的末尾,然后使用 Ctrl+B。
    • Alt+F7 显示类的用法,而不是构造函数的用法,但 Ctrl+B 对我有用
    【解决方案3】:

    由于您的“Find Usages”调用(OSX 上的Alt+F7)来自 Kotlin 类名(也是构造函数定义),因此您将获得比在Java 构造函数——如您所见。如果 Find Usages 没有从此时开始显示该类的用法,那么您怎么知道该类的使用位置?

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

    扩展“新实例创建”向我展示了构造函数的用法。

    【讨论】:

    • 我需要检查一下,但我想它会找到所有构造函数的用法,而不仅仅是主构造函数的用法?
    猜你喜欢
    • 2019-01-10
    • 1970-01-01
    • 1970-01-01
    • 2020-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多