Javascript 我们可以在ACE编辑器中使用图标吗';s自动完成

Javascript 我们可以在ACE编辑器中使用图标吗';s自动完成,javascript,ace-editor,Javascript,Ace Editor,我知道我可以在ACE编辑器中添加自动完成列表,如下所示 completions.push({ name:"testing1", value:"testing1", meta: "code1" }); completions.push({ name:"testing2", value:"testing2", meta: "code2" }); 我的要求是在自动完成弹出窗口中添加一个与“code1”相邻的图标。我试图在meta-value中使用,但没有成功。我看到了ace的源代码,但没有找到实现

我知道我可以在ACE编辑器中添加自动完成列表,如下所示

completions.push({ name:"testing1", value:"testing1", meta: "code1" });
completions.push({ name:"testing2", value:"testing2", meta: "code2" }); 
我的要求是在自动完成弹出窗口中添加一个与“code1”相邻的图标。我试图在meta-value中使用
,但没有成功。我看到了ace的源代码,但没有找到实现它的方法

以前有人这样做过吗

更新: 我自己做了,并在下面的答案中添加了详细信息,在
文本中使用
标记将不起作用,因为它不会被解释为HTML

如果可以在自动完成对象中包含其他信息,则可以:

completions.push({ name:"testing1", value:"testing1", meta: "code1", icon: "code1.png" });

从那里,您可以找到创建自动完成弹出窗口的代码,并添加一个条件if语句,该语句可以选择性地添加一个
标记。

我找到了一种通过css实现的方法

向完成对象添加了
className
属性

completions.push({ name:"test", value:"test", meta: "test", className:"iconable"});
并在css中添加了图标:

.ace_iconable:after
{
    content: " \f14c"; /* in my case it is font-awesome icon*/
    font-family: FontAwesome;
}

Tern扩展支持在自动完成扩展中使用iconClass属性。看


但是,这不是Ace编辑器中当前的内容。我想说,如果您只需要支持静态样式,可以使用className属性(请参阅)和before伪类来加载它们。在我的例子中,我需要对自动完成弹出窗口中的项目进行一些后处理,因此我需要像这样监听“afterRender”事件,以便可以动态地将图标插入其中

到目前为止你试过什么?显示您的工作。@Soviut,我刚刚更新了问题。请您帮助我获得钩子(在ace中)来修改代码以插入图标。我看到一个模块“ace/autocomplete/popup”使用完成数据来定义令牌,但我不知道如何覆盖它来使用我们的图标属性并呈现它。我也不知道。除非您有一些代码,否则请尝试Ace论坛寻求建议。