Atom 中的自定义语法突出显示
Custom syntax highlighting in Atom
作为自我练习,我开发了一种简单的类汇编语言。我想在 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'
}
]
除 variable
中的 $[a-z]?
外,一切正常。据我了解,这应该匹配字符 $
字面意思,后跟从 a
到 z
的任何字母的 0 或 1,这正是我需要的。不幸的是,没有突出显示变量。
您可以安全地使用 [$][a-z]?
,因为在 字符 class 中(那些在方括号 [...]
中定义的正则表达式结构)特殊的正则表达式元字符(或有时称为 魔术字符 )不必转义。
通常,$
表示一个字符串的结尾(或一行,它取决于正则表达式修饰符,并且它的行为在各种正则表达式风格中也不同)。使用 1 个斜杠或 2 个斜杠(取决于环境)来转义它。如果不确定,经验法则是将其放入字符 class.
作为自我练习,我开发了一种简单的类汇编语言。我想在 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'
}
]
除 variable
中的 $[a-z]?
外,一切正常。据我了解,这应该匹配字符 $
字面意思,后跟从 a
到 z
的任何字母的 0 或 1,这正是我需要的。不幸的是,没有突出显示变量。
您可以安全地使用 [$][a-z]?
,因为在 字符 class 中(那些在方括号 [...]
中定义的正则表达式结构)特殊的正则表达式元字符(或有时称为 魔术字符 )不必转义。
通常,$
表示一个字符串的结尾(或一行,它取决于正则表达式修饰符,并且它的行为在各种正则表达式风格中也不同)。使用 1 个斜杠或 2 个斜杠(取决于环境)来转义它。如果不确定,经验法则是将其放入字符 class.