在摩纳哥编辑器中高效存储ViewState(折叠状态)

时间:2019-02-11 15:06:19

标签: typescript monaco-editor

我正在开发一个名为Playground的微型代码编辑器,该代码编辑器应可视化我的种子项目。

每个种子项目包含两个用Tabs表示的模型:HTML和JS。 在更改示例期间,我重用了这两个模型,并使用 jsModel.setValue()和htmlMode.setValue()用所选示例的值更新它们。每个示例可能包含#region块,其中包含先前示例中已经提到的代码。选择一个示例后,我想将其隐藏。因此,我触发了“ editor.foldAllMarkerRegions ”处理程序。

所有这些步骤都会产生令人不快的外观:所示代码->折叠了代码块。但是,我想看看已经折叠的代码!

我脑海中可能的解决方案:

  • 在初始化时

  • 模型之间的映射

  • 将模型设置为编辑器
  • 触发' editor.foldAllMarkerRegions 处理程序'
  • 将ViewState保存到地图

  • 在运行时

  • 从地图中获取所选示例的viewState

  • editor.restoreViewState

问题是:

  • 如何为每个模型预先设置折叠状态,以便当我调用 setModel()时代码已经被折叠?
  • 我可以在后台(也许是摩纳哥的第二个实例)上以某种方式做到这一点吗?
  • 可能是更简单的方法,例如呈现模型之前如何触发折叠?

摩纳哥编辑:0.15.5

0 个答案:

没有答案