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

  • Автор темы Автор темы veretragna
  • Дата начала Дата начала

veretragna

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