2011-06-01 25 views
3

当您在NetBeans 7中使用PHP(与其他语言一起使用)选择一个变量时,该程序将突出显示使用相同变量的文件内的所有位置。Netbeans竖线中“标记出现次数”的颜色

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

回答

3

首先我我需要找到RGB颜色码,175,172,102(HTML#AFAC66)

显然,其用于突出显示出现在垂直栏中的颜色在NetBeans是硬编码来源,所以它不可能改变它的设置或任何配置文件。

这里是竖线标志出现时的样子默认:
enter image description here

的PHP模块会从类中的高亮颜色:
org.netbeans.modules.csl.editor.semantic.MarkOccurrencesHighlighter.java
所提到的类位于模块/罐:
$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-api.jar中提取类org.netbeans.modules.csl.editor.semantic.MarkOccurrencesHighlighter.class。为简单起见,请确保您解压缩程序包/文件夹层次在罐子里的副本位于同一个文件夹($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。 (您将不得不更改操作码bipushsipush,如果你想使用的值大于127) enter image description here
  6. 修改的值,我选择了蓝色(0,0,255): enter image description here
  7. 保存修改。类,以及与这些值已经被改变的反编译验证: enter image description here
  8. 在终端或命令行,导航到$folder,并执行以下命令来替换在罐中的修改后的类:
    jar -uf org-netbeans-modules-csl-api.jar org/netbeans/modules/csl/editor/semantic/MarkOccurrencesHighlighter.class
  9. 现在,您可以使用反编译器来验证jar是否确实被修改了.class
  10. 最后,您可以将修改的jar /模块复制到原始位置$installation_folder/netbeans-8.0/ide/modules/,或者您可以将其复制到$user_directory/modules文件夹。后者似乎更好,因为它不会修改安装。
  11. 启动Netbeans并享受新的色彩。

这里是竖条现在看起来如何标记出现时:
enter image description here

如果要更改用于突出显示了Java模块竖线出现的颜色,你会修改位于 $installation_folder/netbeans-8.0/java/modules/org-netbeans-modules-java-editor.jar之内的另一个类org.netbeans.modules.java.editor.semantic.MarkOccurrencesHighlighter.java,遵循相同的步骤。

如果我错过了某些东西,或者如果有更简单的方法来更改竖线中显示的颜色,请随时添加它。 (使用Netbeans 8.0测试)