作为一种自我锻炼,我开发了一种简单的类似于汇编程序的语言。我想在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]?
in以外,其他一切正常variable
。据我了解,这应该$
从字面上匹配字符,然后是a
to的任何字母的0或1 z
,这正是我需要的。不幸的是,没有突出显示变量。
您可以[$][a-z]?
放心使用,因为在字符类(在方括号中定义的那些regex构造)内部,不必转义[...]
特殊的regex元字符(或有时称为魔术字符)。
通常,$
表示字符串的结尾(或一行,取决于regex修饰符,并且其行为在各种regex风格之间也有所不同)。转义可以使用1个斜杠或2个斜杠来完成(取决于环境)。如果不确定,经验法则是将其放入字符类。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句