【发布时间】:2014-08-14 09:16:03
【问题描述】:
我知道编辑器中有一个设置 -> 在插入符号移动时突出显示 -> 在插入符号处突出显示元素的用法。
但它似乎在方法主体中突出显示了除 方法参数 之外的所有其他内容。 我该如何克服这个问题?
ps:我用的是 Darcula 主题
【问题讨论】:
标签: intellij-idea syntax-highlighting highlight
我知道编辑器中有一个设置 -> 在插入符号移动时突出显示 -> 在插入符号处突出显示元素的用法。
但它似乎在方法主体中突出显示了除 方法参数 之外的所有其他内容。 我该如何克服这个问题?
ps:我用的是 Darcula 主题
【问题讨论】:
标签: intellij-idea syntax-highlighting highlight
请举以下例子:
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 上,您将看到s1 在String 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 a 的a)。
您可以尝试使用foo 方法在新的 intellij 项目中创建新的类文件吗?也许它与源或项目有关。
【讨论】: