在 ACE 编辑器中以编程方式折叠代码

Posted

技术标签:

【中文标题】在 ACE 编辑器中以编程方式折叠代码【英文标题】:Programmatically fold code in ACE editor 【发布时间】:2012-10-01 04:00:33 【问题描述】:

ACE(Bespin 的成功者)具有代码折叠功能。此外,还有一个事件 changeFold 在代码被折叠或展开时触发。

如何从 JavaScript 触发/设置代码折叠?

即从第 N 行开始折叠函数的代码。

【问题讨论】:

【参考方案1】:

请参阅 https://github.com/ajaxorg/ace/blob/master/lib/ace/edit_session/folding.js#L259 的 addfold 和 onFoldWidgetClick https://github.com/ajaxorg/ace/blob/master/lib/ace/edit_session/folding.js#L685 的用法示例

【讨论】:

这为我指出了要查看的正确代码。谢谢。这是我现在用来折叠代码editor.getSession().foldAll(1, 28); 和展开editor.getSession().unfold(2, true); 的内容。 还有一个问题:如果我立即foldAll,编辑器似乎还没有准备好折叠。我通过window.setTimeout(function() editor.getSession().foldAll(1, 28); , 100); 来解决。当编辑器准备好处理此类内容时,是否会触发事件? 你也可以不带参数使用它,像这样: foldAll() 和 unlock() -- 影响会话中的所有可折叠代码。 是否也可以在不显示折叠标记的情况下以编程方式折叠代码?这样的功能将有效地导致完全隐藏折叠的文本。 只能折叠类和方法,但不能折叠方法内的可折叠项?或者只是说两个层次,...

以上是关于在 ACE 编辑器中以编程方式折叠代码的主要内容,如果未能解决你的问题,请参考以下文章

在 didSelectRowAtIndexPath 中以编程方式编辑控制器的标题

在 Woocommerce 管理订单编辑页面中以编程方式添加自定义订单备注

如何在 xcode 5 iOS 7 中以编程方式编辑 plist?

ace编辑器sql提示!

在折叠显示中以编程方式关闭详细视图控制器?

我可以在 Visual Studio 2012 中以编程方式折叠/展开某个名称的所有预处理器块吗?