修改Ace Editor现有模式:调整大括号为代码块并替换procedure为void
解决方案
1. 修复大括号作为代码块而非注释的问题
- 找到当前使用的Ace Editor语言模式文件(如
xxx_mode.js),定位到规则数组rules - 移除所有将
{...}识别为注释块的规则,比如类似以下的条目:{ token: 'comment.block', regex: /\{[^}]*\}/ } - 添加大括号作为代码块的递归解析规则,和
begin/end逻辑对齐:{ token: 'keyword.control', begin: /\{/, end: /\}/, embed: '$self' // 递归用当前语言模式解析大括号内内容 }
2. 添加void作为等效procedure的关键字
- 在语言模式的
keywords配置中,将void加入到和procedure相同的关键字分组:keywords: { control: 'begin end procedure void', // 把void添加到control分组 // 其他关键字分组(如变量、常量等)保持不变 } - 如果模式用正则匹配关键字,修改对应正则表达式,加入
void:{ token: 'keyword.control', regex: /\b(begin|end|procedure|void)\b/ }
验证修改
修改完成后重新加载语言模式,测试以下场景:
- 大括号
{}被标记为keyword.control类,和begin/end样式一致 - 大括号内代码正常高亮,不再被识别为注释
void关键字显示和procedure完全相同的样式
内容的提问来源于stack exchange,提问作者Voiceless Man
相关产品推荐
相关产品推荐

