Regex Atom中的自定义语法高亮显示
作为自我练习,我开发了一种简单的汇编语言。我想在Atom中为此添加语法高亮显示。我正确地突出显示了命令、注释和文字,但由于某些原因,我的变量没有突出显示 以下是该语言的一个示例:Regex Atom中的自定义语法高亮显示,regex,syntax-highlighting,atom-editor,Regex,Syntax Highlighting,Atom Editor,作为自我练习,我开发了一种简单的汇编语言。我想在Atom中为此添加语法高亮显示。我正确地突出显示了命令、注释和文字,但由于某些原因,我的变量没有突出显示 以下是该语言的一个示例: # comment cmd $v 1234 # comment mov $ $v 其中$v和$是变量,cmd和mov是命令 以下是我的.cson突出显示: 'fileTypes': [ 'yasa' ] 'scopeName': 'source.yasa' 'name': 'yasa' 'patterns'
# comment
cmd $v 1234 # comment
mov $ $v
其中$v
和$
是变量,cmd
和mov
是命令
以下是我的.cson
突出显示:
'fileTypes': [
'yasa'
]
'scopeName': 'source.yasa'
'name': 'yasa'
'patterns': [
{
'comment':'command'
'match':'^[a-z]{3}'
'name':'support.function.builtin.yasa'
}
{
'comment':'variable'
'match':'\$[a-z]?'
'name':'variable.other.normal.yasa'
}
{
'comment':'literal'
'match':'[ 0-9]+'
'name':'constant.numeric.yasa'
}
{
'comment':'comment'
'match': '#.*'
'name':'comment.line.number-sign.yasa'
}
]
除了
变量
中的\$[a-z]?
之外,所有操作都正常。据我所知,这应该与字符$
字面匹配,后跟从a
到z
的任何字母的0或1,这正是我所需要的。不幸的是,变量上没有突出显示。您可以安全地使用[$][a-z]?
,因为在字符类中(那些在方括号中定义的正则表达式构造[…]
)特殊正则表达式元字符(有时称为魔术字符)不必转义
通常,
$
表示字符串的结尾(或一行,它取决于正则表达式修饰符,而且它的行为在不同的正则表达式风格中也不同)。转义可以使用1斜杠或2斜杠(取决于环境)完成。如果您不确定,经验法则是将其放入字符类。Huh。成功了。知道为什么吗?