ace编辑器代码突出显示对象表示法

时间:2017-01-19 17:09:49

标签: javascript syntax-highlighting keyword ace-editor

使用Ace Editor预打包版本并尝试向Ace JavaScript编辑器添加一些突出显示(自定义关键字)的基本代码。

请不要在示例中阅读太多内容,这纯粹是一个避免发布敏感数据的示例。

关键字示例:添加到keywordMapper:

"options": "settings|options|global|user";

并在使用它的页面中添加了一些css:

.ace-eclipse .ace_options {\
  color: rgb(255,20,147);\
}\

我认为它只会突出显示键盘,所以我可以得到这个(没有突出显示点):
enter image description here

但我没有尝试过的任何作品。我只能得到第一个(前点:'。')字来匹配。 “.settings”不会匹配(你认为会这样)。

我的想法是,我将根据之前的令牌实现自动完成,例如输入“设置”。要获取包含“选项”(和其他内容)的列表,请单击选项并输入“。”获取包含“global | user”的列表,另一个“。”显示每个相应对象中的所有设置。

我已经使用规则进行了一些实验,但这足够令人困惑,而我能得到的最接近的是点突出显示。

感谢任何帮助。

P.S。曾经去过ace主站点上的<![CDATA[示例,甚至无法获得他们发布的代码。

它如此令人困惑,几乎没有任何文件!我不能帮助,但认为它不能那么难,因为他们的网站上有大量的“真实世界用户”。

感谢。

1 个答案:

答案 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来体验荧光笔

但是对于自动完成,你并不需要突出显示标记,你可以使用它们的值,而不是类型。

相关问题