阅读(1615) (10)

IntelliJ IDEA在项目中查找使用

2017-10-24 11:57:46 更新

IntelliJ IDEA 提供不同的查找选项,这取决于您是否正在查找类、方法、字段、参数或 throw 语句的使用,并将查找使用扩展到受支持的语言中的文件。例如,在 CSS、XML 和 HTML 文件中,您可以查找样式、类、标签和属性的用法。

也可以将查找用法扩展到 Cucumber 步骤定义。

在 "查找工具" 窗口中浏览查找结果。

在项目中找到符号的使用

  1. 选择一个符号以查找它的使用。要做到这一点,请将插入符号放在编辑器中的所需符号内,或单击 "项目" 工具窗口中的符号。您也可以在 UML 类图中选择符号。
  2. 执行以下操作之一:在主菜单上选择:编辑| 查找| 查找使用(Edit | Find | Find Usages)选择。在上下文菜单中选择 "查找使用"。按 Alt+F7。
  3. 在查找工具窗口中,浏览查找结果。使用按钮可以通过使用类型表示有意义的组中的搜索结果。
    IntelliJ IDEA在项目中找到符号的使用

在分析查找结果的同时,您可以随时打开查找选项对话框中,方法是单击 "查找工具" 窗口中的或按 Ctrl+Shift+Alt+F7。

查找实现和重写方法的使用

在 PHP 上下文中,IntelliJ IDEA 还将 "查找使用(Finding Usages)" 功能应用于已实现和重写的方法。请考虑以下示例:

  1. 创建一个接口,一个实现它的抽象类,以及两个扩展抽象类的类:使用 foo () 方法创建接口 MyInterface。创建一个实现 MyInterface 的抽象类 MyAbstractClass。创建一个扩展 MyAbstractClass 并实现接口所需的 foo () 方法的类 MyClass,并重写父类的方法。创建一个类 MyClassWithDelegate, 它使用委托扩展 MyClass 并实现 foo ()。创建分别从 MyClass 和 MyClassWithDelegate 调用 foo () 的变量 $b 和 $c :
    <?php
    interface MyInterface {
        //press Alt-F7 on foo() here
        public function foo();
    }
    
    abstract class MyAbstractClass implements MyInterface {
        public function foo () {
        // TODO: Implement foo() method.
        }
    }
    
    class MyClass extends MyAbstractClass {
        public function foo() {
        parent::foo(); // TODO: Change the automatically generated stub
        echo "foo";
        }
    }
    
    class MyClassWithDelegate extends MyClass {
        public function foo() {
        foo();
        }
    }
    
    $b = new MyClass();
    $b->foo();
    $c = new MyClassWithDelegate();
    $c->foo();
  2. 从 MyInterface,通过按 Alt+F7 为 foo() 调用查找使用(Finding Usages)或者在主菜单中选择编辑| 查找| 查找用法(Edit | Find | Find Usages)。默认情况下,IntelliJ IDEA 只向超级方法和方法调用显示委托: 
    IntelliJ IDEA查找实现和重写方法的使用
  3. 如果要查找实现或重写基方法的方法,请单击 "查找" 工具窗口中的。然后在查找使用中打开方法选项对话框,选择“包括重载方法”复选框并单击“查找”。因此,该 foo() 方法的所有用法都可以在实现或扩展 MyInterface 的所有类中找到:
    IntelliJ IDEA查找实现和重写方法的使用