我正在尝试将自定义关键字插入到在编辑器上设置的任何模式。我尝试了以下方法:
rules = editor.session.getMode().$highlightRules
startRules = rules.$rules.start
startRules.push({
regex: "\\w+"
onMatch: rules.createKeywordMapper({customToken: "one|two"})
})
rules.addRules({start: startRules})
editor.session.bgTokenizer.start(0)
我要完成的工作是能够用单词“ two”书写并用自定义标记包裹它
我迟到了几年,但是最近我找到了一个可能对您和其他人有帮助的解决方案。看看我在他们的Github存储库(Ace Editor Repo)上打开的这个问题。使用此解决方案,您可以像在运行时一样定义自己的令牌。在我的示例中,我创建了一个名为“ my_token”的令牌。编辑器会将其包装在div中,该div的类名称与您的标记名称匹配,并带有“ ace_”前缀。所以像“ ace_my_token”。请注意,我的解决方案的一部分要求我以最高优先级突出显示新规则,因为即使在字符串中,我也需要以不同的方式突出显示这是我将其放在规则集中的原因。您可能需要根据突出显示规则的方式来调整插入规则的位置。