获取 ace 编辑器的令牌字符串

Posted

技术标签:

【中文标题】获取 ace 编辑器的令牌字符串【英文标题】:get token string for ace editor 【发布时间】:2012-11-23 09:24:53 【问题描述】:

我刚刚看了厨房水槽演示,发现有一个选项“显示令牌信息”,它显示了鼠标所在的文本类型(变量、函数等)

我想创建类似的东西,可以在当前光标位置获取单词的当前标记字符串。有谁知道怎么做?

谢谢!

【问题讨论】:

【参考方案1】:

这样:

editor.on('mousemove', function(e) 
    var position = e.getCursorPosition();
    var token = editor.session.getTokenAt(position.row, position.column);

);

它将返回一个对象:

token = 
  type: "paren.rparen",
  value: "",
  index: 0,
  start: 0
 

【讨论】:

谢谢老兄,正是我要找的 谢谢,正是我需要的!看起来好像检索位置的函数发生了变化:e.getCursorPosition() 仅供参考如果您不想使用 mousemove 事件,也可以在光标更改时获取令牌。 请注意 mouse 位置与 cursor 位置不同。您可能应该使用editor.onCursorChange 而不是mousemove 事件。 (除非你想检测鼠标指针在哪个标记上,在这种情况下我被难住了!) 您现在应该使用 e.getDocumentPosition() 来获取行和列值。

以上是关于获取 ace 编辑器的令牌字符串的主要内容,如果未能解决你的问题,请参考以下文章

我如何从 ACE 编辑器中获得价值?

Ace Editor 手动添加片段

如何执行用户在我的页面上输入到我的 ACE 编辑器的代码

如何将 Ace 编辑器中的所有文本保存在 WT 中?

Ace 编辑器“定义未定义”

ACE编辑器是什么?