Эффективное хранение ViewState (Folding State) в Monaco-редакторе - PullRequest
0 голосов
/ 11 февраля 2019

Я занимаюсь разработкой крошечного редактора кода, известного как Playground, который должен визуализировать мои начальные проекты.

Каждый начальный проект содержит две модели, представленные в виде вкладок: HTML & JS.Во время изменения примеров я повторно использую эти две модели и обновляю их значениями выбранного примера, используя jsModel.setValue () & htmlMode.setValue () .Каждый пример может содержать блок #region, который содержит уже упомянутый код в предыдущих примерах.Я хотел бы скрыть это, когда пример выбран.Таким образом, я запускаю обработчик ' editor.foldAllMarkerRegions '.

Все эти шаги создают неприятный вид: код отображается -> блок кода свернут.Тем не менее, я хотел бы увидеть код, который уже сложен!

Возможное решение в моей голове:

  • Во время инициализации

  • сопоставление между моделями

  • установка модели в редактор
  • триггер ' editor.foldAllMarkerRegions обработчик'
  • saveViewState на карту

  • во время выполнения

  • получить viewState для выбранного примера с карты

  • editor.restoreViewState

Вопросы:

  • как предварительно установить состояние свертывания для каждой модели так, чтобы приВызовите setModel () код будет уже свернут?
  • можно ли как-то сделать это на фоне, может быть, второй экземпляр Монако?
  • может быть, проще, например, как запуститьсворачивание перед рендерингом модели?

монако-редактор: 0.15.5

...