gpt4 book ai didi

javascript - 在 ACE 编辑器中重置撤消堆栈

转载 作者:可可西里 更新时间:2023-11-01 01:16:32 32 4
gpt4 key购买 nike

我想在 ACE editor 中重置撤消堆栈.行为应该是:

  1. 我在编辑器中做了一些修改。
  2. 调用一些魔术函数来重置撤消堆栈
  3. 尝试撤消时,这是不可能的,因为撤消堆栈已重置。

我想这与 UndoManager 有关来自 ACE,但我不知道如何在以下示例中使用它。

var editor = ace.edit("editor");
editor.setTheme("ace/theme/monokai");
editor.getSession().setMode("ace/mode/markdown");

setTimeout(function() {
editor.setValue("And now how can I reset the\nundo stack,so pressing\nCTRL+Z (or Command + Z) will *NOT*\ngo back to previous value?", -1);
}, 3000);
#editor {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
font-size: 25px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.1.9/ace.js"></script>
<div id="editor">This value will be changed in 3 seconds.</div>

我查看了 editoreditor.session 原型(prototype)以找到一些辅助函数,但没有成功。

最佳答案

是的,UndoManager 是维护所有历史记录的类。解决方案是使用空白/新创建的类来初始化 session 。

查看代码段。

var editor = ace.edit("editor");
editor.setTheme("ace/theme/monokai");
editor.getSession().setMode("ace/mode/markdown");

setTimeout(function() {
editor.setValue("And now how can I reset the\nundo stack,so pressing\nCTRL+Z (or Command + Z) will *NOT*\ngo back to previous value?", -1);
editor.getSession().setUndoManager(new ace.UndoManager())
}, 3000);
#editor {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
font-size: 25px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.1.9/ace.js"></script>
<div id="editor">This value will be changed in 3 seconds.</div>

关于javascript - 在 ACE 编辑器中重置撤消堆栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30986732/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com