【问题标题】:Ace editor's setAnnotations won't stay permanentAce 编辑器的 setAnnotations 不会永久存在
【发布时间】:2014-09-18 03:29:19
【问题描述】:

我无法保留我的注释。看到这个 jsfiddle:http://jsfiddle.net/c8k45yw1/5/

您将看到我手动设置的第 2 行,“X”标记会出现半秒后消失。想法?

var editor = ace.edit("editor");
editor.setTheme("ace/theme/chrome");
editor.getSession().setMode("ace/mode/javascript");
//editor.session.setBreakpoint(2);
editor.getSession().setAnnotations([{
  row: 1,
  column: 0,
  text: "Strange error",
  type: "error" // also warning and information
}]);

【问题讨论】:

    标签: javascript ace-editor


    【解决方案1】:

    ace 中的语法检查器使用相同的 setAnnotations api,并清除旧的注释。 你可以用editor.session.setOption("useWorker", false)禁用它

    【讨论】:

    • 谢谢!早该想到的。不错的收获!
    • 即使在将 useWorker 设置为 false 之后,注释也不会保持不变。知道它可能是什么吗?
    • @PrinceGautham 请创建一个页面来展示该问题
    • 2018 年更新:我不知道为什么,但对我来说它不适用于 typescript 2.3.2 和 ace 1.2.0。 TS 抛出 Property 'setOption' does not exist on type 'IEditSession' 错误)。我认为它也适用于editor.setOption("useWorker", false);。根据doc:“editor.setOption 也会修改 editor.session 的选项...”。
    • 您可以使用某些“任何”类型解决打字稿问题。但我尝试了所有不同的方法(有很多方法,包括通过选项道具传递 useWorker),但截至 2019 年它们都不起作用-07-04。注释只是不断消失。标记工作得很好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-31
    相关资源
    最近更新 更多