Сначала я получил коды цветов RGB, которые мне нужно было найти, 175, 172, 102 (html # AFAC66)
Очевидно, что цвет, используемый для выделения вхождений в вертикальной полосе, жестко задан в источниках Netbeans, поэтому изменить его параметры или любой файл конфигурации невозможно.
Вот как выглядит вертикальная полоса по умолчанию при маркировке вхождений:
Модуль 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), я решил изменить байт-код. Для этого вы можете выполнить следующие шаги:
- Сделайте копию
org-netbeans-modules-csl-api.jar
в другой папке (я буду называть эту папку $folder
).
- Извлечение класса
org.netbeans.modules.csl.editor.semantic.MarkOccurrencesHighlighter.class
из org-netbeans-modules-csl-api.jar
. Для простоты убедитесь, что вы извлекаете иерархию пакетов / папок в той же папке ($folder
), в которой находится копия файла jar, так что вы получите:
$folder/org/netbeans/modules/csl/editor/semantic/MarkOccurrencesHighlighter.class
$folder/org-netbeans-modules-csl-api.jar
- Откройте класс в декомпиляторе, я использовал JD (http://jd.benow.ca/)
- Найдите код, который вы хотите изменить (
ES_COLOR
):
- Откройте класс в редакторе байт-кода, я использовал reJ (http://rejava.sourceforge.net/) и найдите значения 175, 172, 102. (Вам придется изменить код операции
bipush
на sipush
, если вы хочу использовать значение больше 127)
- Измените значения, я выбрал синий (0,0,255):
- Сохраните измененный .class и проверьте с помощью декомпилятора, что значения были изменены:
- В терминале или командной строке перейдите к
$folder
и выполните следующую команду, чтобы заменить измененный класс в jar:
jar -uf org-netbeans-modules-csl-api.jar org/netbeans/modules/csl/editor/semantic/MarkOccurrencesHighlighter.class
- Теперь вы можете использовать декомпилятор, чтобы убедиться, что файл jar действительно был изменен с помощью измененного .class
- Наконец, вы можете скопировать измененный jar / модуль в исходное местоположение
$installation_folder/netbeans-8.0/ide/modules/
или скопировать его в папку $user_directory/modules
. Последнее кажется лучше, поскольку оно не изменяет установку.
- Запустите Netbeans и наслаждайтесь новым цветом.
Вот как теперь выглядит вертикальная черта при маркировке вхождений:
Если вы хотите изменить цвет, используемый для выделения вхождений на вертикальной панели для модуля 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)