Данный пост является продолжением этого. Тогда я разработал плагин, окрашивающий такие элементы интерфейса как деревья и списки в цвета выбранной схемы. С тех пор прошло уже почти 2 месяца и кое-что изменилось.
Главная и очень хорошая новость: в JetBrains работают (в частности stalk) над стандартной темной схемой. Она будет подключаться через look and feel и будет называться Darcula. Она уже включена в исходники для Comunity Edition и попадет в новые EAPы.
При разработке Color IDE был обнаружен особый тип багов — hardcoded значения в коде IDE, которые не проявляют себя при использовании белой темы, но заметные при использовании темной. Например, дерево в настройках стало выглядеть вот так:
Единственный способ пофиксить это — подменить реализацию классов на пропатченную, не содержащую жестко заданных значений. Решить эту проблему средствами плагинов без вмешательства в файлы IDE мне не удалось. Хотя я очень упорно пытался, например, пробовал подменить классы через class loader в рантайме.
Поэтому решение было реализовано в виде патчера для IDE, который для удобства оформлен в виде плагина Patch IDE. Первый раз при загрузке этот патчер меняет файлы на исправленные, а затем перезагружает IDE с уже новыми файлами. Для удобства была реализована возможность отката на оригинальную версию файла, это можно сделать из меню в настройках.
На данный момент плагин решает следующие три проблемы:
Все патчи я добавляю в треккер JetBrains и два из них уже прошли ревью и включены в исходный код.
Несмотря на появление Darcula я планирую и дальше развивать Color IDE/Patch IDE. Я проверял его работу в Intellij IDEA версии выше 11.1, PhpStorm 4.0.3, PyCharm 2.5.2, RubyMine 4.5 на Windows.
1. Darcula
Главная и очень хорошая новость: в JetBrains работают (в частности stalk) над стандартной темной схемой. Она будет подключаться через look and feel и будет называться Darcula. Она уже включена в исходники для Comunity Edition и попадет в новые EAPы.
- На данный момент она выглядит вот так:
- А вот тут можно посмотреть видео: www.screenr.com/asl8
2. Patch IDE
При разработке Color IDE был обнаружен особый тип багов — hardcoded значения в коде IDE, которые не проявляют себя при использовании белой темы, но заметные при использовании темной. Например, дерево в настройках стало выглядеть вот так:
Единственный способ пофиксить это — подменить реализацию классов на пропатченную, не содержащую жестко заданных значений. Решить эту проблему средствами плагинов без вмешательства в файлы IDE мне не удалось. Хотя я очень упорно пытался, например, пробовал подменить классы через class loader в рантайме.
Поэтому решение было реализовано в виде патчера для IDE, который для удобства оформлен в виде плагина Patch IDE. Первый раз при загрузке этот патчер меняет файлы на исправленные, а затем перезагружает IDE с уже новыми файлами. Для удобства была реализована возможность отката на оригинальную версию файла, это можно сделать из меню в настройках.
На данный момент плагин решает следующие три проблемы:
- Упомянутая проблема с деревом настроек
- До фикса
- После фикса
- Бага в трекере JetBrains:
http://youtrack.jetbrains.com/issue/IDEA-88520
- До фикса
- Черный цвет текста в узлах некоторых деревьев
- До фикса
- После фикса
- Бага в трекере JetBrains:
http://youtrack.jetbrains.com/issue/IDEA-88526
- До фикса
- В новых билдах (после 118.308) цвет фона для тестовых файлов очень светлый, и текст темных тем выглядит на нем неконтрастно
- До фикса
- После фикса
- Бага в трекере JetBrains еще не зарегистрирована
- До фикса
Все патчи я добавляю в треккер JetBrains и два из них уже прошли ревью и включены в исходный код.
Несмотря на появление Darcula я планирую и дальше развивать Color IDE/Patch IDE. Я проверял его работу в Intellij IDEA версии выше 11.1, PhpStorm 4.0.3, PyCharm 2.5.2, RubyMine 4.5 на Windows.