Regex 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'

作为自我练习,我开发了一种简单的汇编语言。我想在Atom中为此添加语法高亮显示。我正确地突出显示了命令、注释和文字,但由于某些原因,我的变量没有突出显示

以下是该语言的一个示例:

# 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。成功了。知道为什么吗?