【问题标题】:How to highlight usages of method parameter in the IntelliJ Idea?如何在 IntelliJ Idea 中突出显示方法参数的用法?
【发布时间】:2014-08-14 09:16:03
【问题描述】:

我知道编辑器中有一个设置 -> 在插入符号移动时突出显示 -> 在插入符号处突出显示元素的用法

但它似乎在方法主体中突出显示了除 方法参数 之外的所有其他内容。 我该如何克服这个问题?

ps:我用的是 Darcula 主题

【问题讨论】:

    标签: intellij-idea syntax-highlighting highlight


    【解决方案1】:

    请举以下例子:

    public class Usages {
        public static void main(String[] args) {
            String s1 = "x", s2 = "y", s3 = "z";
            new Usages().foo(s1, s2, s3);    // ***
        }
    
        public void foo(String a, String b, String c) { }
    }
    

    您是否希望将鼠标悬停在标记为*** 的行中的s1 上,并看到foo 的方法参数中突出显示的a

    不幸的是,这不会发生,因为方法参数a 本身没有任何用法

    您可以验证这一点 - 将光标悬停在 public void foo(String a, String b, String c) 行中的 a 上并点击 alt-f7,IntelliJ 会说 No Usages in项目文件

    这是由于查找用法的性质决定的 - 它们必须根据 IntelliJ 代码结构的内部表示 PsiTree 进行定义。

    相反,如果您将光标悬停在标记为*** 的行中的s1 上,您将看到s1String s1 = "x", s2 = "y", s3 = "z"; 行上突出显示,同样,如果您点击alt-f7,IntelliJ 会确认上面一行有s1 用法。

    顺便说一句,有一个您可能感兴趣的插件通过文本等效搜索(而不是 PsiTree / find 用法)工作:FindWordAtCaret Plugin

    编辑

    这对我有用。我想知道为什么它对你不起作用? IntelliJ 13.1.1

    public void foo(String a, String b, String c) {
        String bar = a;    // ***
    }
    

    (将光标放在标记为*** 的行上的a - 突出显示来自String aa)。

    您可以尝试使用foo 方法在新的 intellij 项目中创建新的类文件吗?也许它与源或项目有关。

    【讨论】:

    • 不,可能我解释不清楚。从您的示例中,我希望将光标(插入符号)放在“a”上时,我会在方法 foo() 的主体中看到“a”的用法。
    • 是的,这正是我的情况(在您的编辑中),由于某种原因对我不起作用。不知道为什么。想法 13.0.1。项目设置有问题左右,会尝试查找原因。感谢您的帮助。
    猜你喜欢
    • 2023-03-25
    • 2020-07-09
    • 2018-06-14
    • 2010-12-19
    • 1970-01-01
    • 2018-05-27
    • 2018-03-17
    • 1970-01-01
    • 2023-02-22
    相关资源
    最近更新 更多