在 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 管理订单编辑页面中以编程方式添加自定义订单备注