gpt4 book ai didi

javascript - ACE 编辑器 "end of parsing"事件

转载 作者:行者123 更新时间:2023-12-03 11:47:35 24 4
gpt4 key购买 nike

我希望在 ACE 编辑器结束解析新源代码时回调一个函数,以便能够在每个后续 .ace_identifier DOM 节点上添加单击事件监听器。到目前为止,我找不到用于此目的的正确 ACE 事件,并且以下简单的代码不执行任何操作:

    editor = ace.edit $('#editor')
editor.setReadOnly true

// editor change event - never triggered in this case
editor.getSession().on 'change', (e) ->
console.log e

// changing the language makes ACE parse the source code and generates
// a new DOM...
editor.getSession().setMode "ace/mode/javascript"
// ... but a this point, $('.ace_identifier') returns a empty array
// instead of the expected list of ace_identifiers created
console.log $('.ace_identifier')

最佳答案

没有“解析结束”的事件,你可以在 editor.renderer 上使用 afterRender 事件,但是 ace 使用 dom 作为 Canvas ,仅为了创建节点文本的可见部分,并且经常丢弃并重新绘制整个内容,因此向 ace 编辑器内的 dom 节点添加事件监听器是一个坏主意。

您可以改为向编辑器添加监听器,并使用 session.getToken 获取光标下的 token 。

ace google 群组中的讨论可能会有所帮助 https://groups.google.com/d/msg/ace-discuss/XFnf3-3gcAY/u7OIMdHkGGwJ

关于javascript - ACE 编辑器 "end of parsing"事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25983311/

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