Плагины Atom очень мощные. Они могут присоединяться к событиям, добавлять элементы в дом, перемещать курсор; практически любой вариант. И они могут быть настроены конечными пользователями на странице настроек пакета, поэтому вы можете предоставить приятный простой интерфейс, позволяющий пользователям выбирать такие вещи, как расположение сторонних инструментов и горячие клавиши. Но эти переменные доступны только через javascript. Так как же вы позволите своим пользователям менять стили в вашем плагине? Как насчет уродливого взлома узла?

Сделаем шаг назад. Плагины Atom по умолчанию используют файлы .less, которые поддерживают переменные, но не имеют доступа к странице настроек. Но никто не говорил, что нельзя создавать .less файлов во время выполнения. Я имею в виду, они, возможно, предполагали, что вы этого не сделаете, потому что это плохая идея, но неважно. Так мы только этим и займемся! Это так же просто, как прочитать соответствующие настройки через atom.config.observe и записать их в файл custom.less.

С этого момента просто убедитесь, что вы загрузили custom.less в свою настоящую таблицу стилей, и вы сможете использовать эти переменные! Есть только пара вещей, о которых нужно помнить. Во-первых, я сталкивался с состоянием гонки, обычно после обновления, когда файл custom.less не был полностью записан перед запуском, и плагин подбрасывал, потому что в нем отсутствовали переменные. Итак, вам нужно сначала загрузить файл default.less , который инициализирует все ваши переменные в случае, если custom.less пуст. Во-вторых, эти изменения будут применены только после перезагрузки, поэтому обязательно отметьте это на странице настроек, чтобы ваши пользователи не сходили с ума.