使用Ace Editor预打包版本并尝试向Ace JavaScript编辑器添加一些突出显示(自定义关键字)的基本代码。
请不要在示例中阅读太多内容,这纯粹是一个避免发布敏感数据的示例。
关键字示例:添加到keywordMapper:
"options": "settings|options|global|user";
并在使用它的页面中添加了一些css:
.ace-eclipse .ace_options {\
color: rgb(255,20,147);\
}\
我认为它只会突出显示键盘,所以我可以得到这个(没有突出显示点):
但我没有尝试过的任何作品。我只能得到第一个(前点:'。')字来匹配。 “.settings”不会匹配(你认为会这样)。
我的想法是,我将根据之前的令牌实现自动完成,例如输入“设置”。要获取包含“选项”(和其他内容)的列表,请单击选项并输入“。”获取包含“global | user”的列表,另一个“。”显示每个相应对象中的所有设置。
我已经使用规则进行了一些实验,但这足够令人困惑,而我能得到的最接近的是点突出显示。
感谢任何帮助。
P.S。曾经去过ace主站点上的<![CDATA[
示例,甚至无法获得他们发布的代码。
它如此令人困惑,几乎没有任何文件!我不能帮助,但认为它不能那么难,因为他们的网站上有大量的“真实世界用户”。
感谢。
答案 0 :(得分:1)
keywordMapper仅适用于关键字和顶级标识符。点后面的所有属性都在https://github.com/ajaxorg/ace/blob/v1.2.6/lib/ace/mode/javascript_highlight_rules.js#L210中处理。 所以你应该在它之前添加另一条规则:
{
token : "options",
regex : "settings|options|global|user"
},
您可以使用https://ace.c9.io/tool/mode_creator.html来体验荧光笔
但是对于自动完成,你并不需要突出显示标记,你可以使用它们的值,而不是类型。