当您在NetBeans 7中选择变量时,使用PHP(也可以使用其他语言),程序会突出显示文件中使用相同变量的所有位置。
我知道如何更改实际突出显示文本的颜色(在Options->Fonts & Colors->Syntax->PHP->Mark Occurrences
中),但NetBeans还会在编辑器滚动条右侧的垂直栏中标记匹配项。这是我想要更改的颜色,因为此栏还标记了使用版本控制时的差异,并且当存在大量差异时,“mark occurrences
”匹配不是很清楚。
答案 0 :(得分:4)
首先我得到了我需要找到的RGB颜色代码,175,172,102(html#AFAC66)
显然,用于突出显示垂直条中出现次数的颜色在Netbeans源中是硬编码的,因此无法将其更改为设置或任何配置文件。
以下是标记出现时垂直条默认显示的方式:
PHP模块从类中获取突出显示颜色:
org.netbeans.modules.csl.editor.semantic.MarkOccurrencesHighlighter.java
提到的类位于模块/ jar中:
$installation_folder/netbeans-8.0/ide/modules/org-netbeans-modules-csl-api.jar
您可以在http://hg.netbeans.org/中查看该类的来源,或者您可以使用反编译器。
要更改颜色,您可以获取源并重新编译模块,或者只需修改字节码即可。就个人而言,因为我只想修改3个值(RGB),所以我选择改变字节码。为此,您可以按照以下步骤操作:
org-netbeans-modules-csl-api.jar
的副本(我将该文件夹称为$folder
)。org.netbeans.modules.csl.editor.semantic.MarkOccurrencesHighlighter.class
中提取课程org-netbeans-modules-csl-api.jar
。为简单起见,请确保在jar副本所在的同一文件夹($folder
)中提取包/文件夹层次结构,以便获得:$folder/org/netbeans/modules/csl/editor/semantic/MarkOccurrencesHighlighter.class
$folder/org-netbeans-modules-csl-api.jar
ES_COLOR
):
bipush
更改为{{1}如果你想使用大于127的值)
sipush
,然后执行以下命令来替换jar中修改后的类:$folder
jar -uf org-netbeans-modules-csl-api.jar org/netbeans/modules/csl/editor/semantic/MarkOccurrencesHighlighter.class
,也可以将其复制到$installation_folder/netbeans-8.0/ide/modules/
文件夹。后者似乎更好,因为它不会修改安装。 以下是标记出现时垂直条现在的样子:
如果要更改用于突出显示Java模块垂直栏中出现次数的颜色,则必须修改位于其中的另一个类$user_directory/modules
org.netbeans.modules.java.editor.semantic.MarkOccurrencesHighlighter.java
,遵循相同的步骤。
如果我错过了某些内容,或者有更简单的方法来更改竖条中显示的颜色,请随意添加。
(使用Netbeans 8.0测试)