ACE编辑器自定义突出显示规则

ACE Editor Custom Highlighting Rule

本文关键字:显示 规则 编辑器 自定义 ACE      更新时间:2023-09-26

我似乎找不到如何为ACE代码编辑器创建自定义语法高亮显示规则。

我的编辑器为PHP模式配置如下(并且工作完美);

    var phpeditor = ace.edit("php_inc");
    phpeditor.setTheme("ace/theme/dreamweaver");
    phpeditor.getSession().setMode("ace/mode/php");
    phpeditor.setOptions({
        enableBasicAutocompletion: true,
        enableSnippets: true,
        enableLiveAutocompletion: false,
    });

我希望编辑器做的是使用自定义规则将%%变量%%的所有实例(在百分号之间的任何文本)突出显示,并将其视为变量。

例如

,

<?php echo %%my_variable_name%%; ?>

是否有一种方法来扩展编辑器以允许此功能?

最简单的方法是修改php_highlight_rules文件并添加https://github.com/ajaxorg/ace/blob/master/lib/ace/mode/php_highlight_rules.js#L900一个规则

{
    token: "variable",
    regex: "%%''w+%%"
}

动态地做这个,有点困难,因为ace没有提供方便的方法来挂钩到模式创建,如果你需要这样做,也许你应该在github上的ace站点上打开一个问题。