netbeans - Netbeans中垂直条中 "mark occurrences"的颜色

标签 netbeans

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

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

最佳答案

首先,我得到了我需要找到的 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),所以我选择更改字节码。为此,您可以按照以下步骤操作:

  • 复制 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
  • 在反编译器中打开类,我用的是 JD ( http://jd.benow.ca/ )
  • 找到要修改的代码(ES_COLOR):
    enter image description here
  • 在字节码编辑器中打开该类,我使用了 reJ (http://rejava.sourceforge.net/),并找到值 175、172、102。(如果您想使用更大的值,则必须将操作码 bipush 更改为 sipush超过 127)
    enter image description here
  • 修改数值,我选择了蓝色(0,0,255):
    enter image description here
  • 保存修改后的 .class,并使用反编译器验证值已更改:
    enter image description here
  • 在终端或命令行中,导航到 $folder ,并执行以下命令替换jar中修改后的类:jar -uf org-netbeans-modules-csl-api.jar org/netbeans/modules/csl/editor/semantic/MarkOccurrencesHighlighter.class
  • 现在,您可以使用反编译器来验证 jar 是否确实被修改后的 .class
  • 最后,可以将修改后的jar/module复制到原位置$installation_folder/netbeans-8.0/ide/modules/或者您可以将其复制到$user_directory/modules文件夹。后者似乎更好,因为它不会修改安装。
  • 启动 Netbeans 并享受新颜色。

  • 以下是标记事件时垂直条现在的样子:
    enter image description here

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

    如果我遗漏了某些内容,或者如果有更简单的方法可以更改垂直栏中显示的颜色,请随时添加。

    (使用 Netbeans 8.0 测试)

    关于netbeans - Netbeans中垂直条中 "mark occurrences"的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6207419/

    相关文章:

    netbeans - 无法使用带有 Netbeans 的 phpdocumentor 2 生成文档

    java - (NetBeans) 在创建的对象上调用单个方法或单个静态方法

    java - 使用 runnable jar 运行 akka

    tomcat - 从 Netbeans 运行时,Tomcat 6 的 SSl 不起作用

    c++ - Netbeans 7.1.2 中的 C++ 分析器在哪里

    java - Netbeans 中的 Neo4J : error with Iterator

    java - Netbeans 使用 JBoss5 插入了 EAR 开发

    java - 从 Netbeans 构建时自动签署 JAR

    java - selenium 找不到合适的方法,直到(ExpectedCondition<WebElement>)

    java - netbeans java代码审查插件