Netbeans中垂直条中“标记出现”的颜色

时间:2011-06-01 20:44:04

标签: netbeans

当您在NetBeans 7中选择变量时,使用PHP(也可以使用其他语言),程序会突出显示文件中使用相同变量的所有位置。

我知道如何更改实际突出显示文本的颜色(在Options->Fonts & Colors->Syntax->PHP->Mark Occurrences中),但NetBeans还会在编辑器滚动条右侧的垂直栏中标记匹配项。这是我想要更改的颜色,因为此栏还标记了使用版本控制时的差异,并且当存在大量差异时,“mark occurrences”匹配不是很清楚。

1 个答案:

答案 0 :(得分:4)

首先我得到了我需要找到的RGB颜色代码,175,172,102(html#AFAC66)

显然,用于突出显示垂直条中出现次数的颜色在Netbeans源中是硬编码的,因此无法将其更改为设置或任何配置文件。

以下是标记出现时垂直条默认显示的方式:
enter image description here

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),所以我选择改变字节码。为此,您可以按照以下步骤操作:

  1. 在另一个文件夹中制作org-netbeans-modules-csl-api.jar的副本(我将该文件夹称为$folder)。
  2. 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
  3. 在反编译器中打开课程,我使用JD(http://jd.benow.ca/
  4. 找到要修改的代码(ES_COLOR): enter image description here
  5. 在字节码编辑器中打开课程,我使用reJ(http://rejava.sourceforge.net/),找到值175,172,102。(您必须将操作码bipush更改为{{1}如果你想使用大于127的值) enter image description here
  6. 修改值,我选择蓝色(0,0,255): enter image description here
  7. 保存修改后的.class,并使用反编译器验证值已更改: enter image description here
  8. 在终端或命令行中,导航到sipush,然后执行以下命令来替换jar中修改后的类:
    $folder
  9. 现在,您可以使用反编译器验证jar确实已使用更改的.class
  10. 进行修改
  11. 最后,您可以将修改后的jar /模块复制到原始位置jar -uf org-netbeans-modules-csl-api.jar org/netbeans/modules/csl/editor/semantic/MarkOccurrencesHighlighter.class,也可以将其复制到$installation_folder/netbeans-8.0/ide/modules/文件夹。后者似乎更好,因为它不会修改安装。
  12. 启动Netbeans并享受新的颜色。
  13. 以下是标记出现时垂直条现在的样子:
    enter image description here

    如果要更改用于突出显示Java模块垂直栏中出现次数的颜色,则必须修改位于其中的另一个类$user_directory/modules  org.netbeans.modules.java.editor.semantic.MarkOccurrencesHighlighter.java,遵循相同的步骤。

    如果我错过了某些内容,或者有更简单的方法来更改竖条中显示的颜色,请随意添加。

    (使用Netbeans 8.0测试)