CodeMirror代码完成分析光标位置

时间:2011-02-20 13:47:26

标签: autocomplete code-completion codemirror xml-editor

我想将代码完成功能集成到基于CodeMirror的xml编辑器中。它基本上解析xml文件的模式,并根据模式及其结构提供代码完成。但有些事我无法做到。例如,当光标移动到内部和xml标记的位置时,代码完成必须相应地表现。它应该知道光标在标签内,等等。我该怎么做?

我认为代码镜像的XML解析器可以给出关于光标位置的语义位置的线索,并进行一些改动。这可能吗?

或者是否存在分析光标位置和相应行为的通用方法?

提前致谢。

1 个答案:

答案 0 :(得分:2)

如果使用CodeMirror 2,则有一个getTokenAt方法,允许您分析给定位置的解析器状态。您可以看到这被用于在http://codemirror.net/2/demo/complete.html中自动填充本地JavaScript变量。对于XML解析器,您可以检查状态的上下文属性,该属性是一个链接的对象列表,每个对象包含一个tagName属性和一个链接到其上方上下文的prev属性。