[ID CC-CC2021] Сериализация значимых свойств стиля символа

veretragna

γνώσις
Топикстартер
Сообщения
578
Реакции
200
Здравствуйте.
Поставил я себе задачу извлечь из документа стили символов, сохранив их атрибуты в удобный для хранения формат, чтобы потом подключать их в другие проекты скриптом. Для того, чтобы это сделать, нужно правильно описать стиль символа: перебрать все его свойства и сохранить только те, которые не являются null или Enumerator.NOTHING.
Есть ли быстрый способ это сделать? Или как-то умнее сериализовать стиль символа, чем последовательно перебирать свойства?
Для других структур я просто конвертирую массив или объект в json функцией .toSource() и пишу в файл.
 
Последнее редактирование:

veretragna

γνώσις
Топикстартер
Сообщения
578
Реакции
200
Вопрос закрыт, в свойствах стиля символа есть массив .properties, который можно легко сериализовать. Или сначала скопировать в локальную переменную, почистить, а затем сериализовать вызовом .toSource().
 

veretragna

γνώσις
Топикстартер
Сообщения
578
Реакции
200
Итог: массив .properties очень удобно чистится вот такой функцией (сжижено с интернетов и доработано напильником):
JavaScript:
function clear(obj) {
  for (var propName in obj) {
    if (obj[propName] === null || obj[propName] === undefined || obj[propName] === NothingEnum.NOTHING || obj[propName] === "" || obj[propName] === "[None]") {
      delete obj[propName];
    }
  }
}

2019-07-16_174725.png

Конечно, нужно еще вручную удалить специфичные свойства типа styleUniqueID, index, id, но все-таки это значительно проще, чем руками наяривать.
 

Petruccio

20 лет на форуме
Сообщения
923
Реакции
214
Я стесняюсь спросить, но ведь у Индизайна есть импорт стилей из другого документа, это не оно?
 

veretragna

γνώσις
Топикстартер
Сообщения
578
Реакции
200
Я стесняюсь спросить, но ведь у Индизайна есть импорт стилей из другого документа, это не оно?
Это оно, но я хочу сделать не совсем это. Я понял и реализовал концепцию динамической автоподсветки синтаксиса греп-стилями и хочу написать самостоятельный скрипт, который бы создавал в документе набор стилей для подсветки конкретного языка из заранее определенного списка. Таскать с собой документ индизайна с образцами мне кажется менее оптимальным решением, чем скрипт
 
  • Спасибо
Реакции: Petruccio