regex - Atom 中的自定义语法高亮显示

标签 regex syntax-highlighting atom-editor

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

这是该语言的示例:

# comment
cmd $v 1234    # comment
mov $ $v

其中 $v$ 是变量,cmdmov 是命令。

这是我的 .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]?之外,一切正常。据我了解,这应该与字符 $ 字面匹配,后跟 0 或 1 个从 az 的任何字母,这就是我需要。不幸的是,变量没有突出显示。

最佳答案

您可以安全地使用[$][a-z]?,因为在字符类内(那些在方括号内定义的正则表达式构造[...])特殊正则表达式元字符(或有时称为魔术字符)不必转义。

通常,$表示字符串的结尾(或行,它取决于正则表达式修饰符,并且其行为在各种正则表达式风格之间也有所不同)。使用 1 个斜杠或 2 个斜杠可以对其进行转义(取决于环境)。如果您不确定,经验法则是将其放入字符类中。

关于regex - Atom 中的自定义语法高亮显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35054971/

相关文章:

c# - 如何根据父 div 中的符号删除它?

java - 将一个字符串与一个表达式中的多个值进行比较

java - 除特定情况外如何匹配单个字符

ide - WebStorm 中 Hugo 的语法高亮显示

dependencies - 启动 Atom 文本编辑器 linux !# .未找到 GLIBC_2.14 和 GLIBC_2.15?

php - 删除 unicode 项目符号字符

javascript - Vim:内联 JavaScript 语法高亮显示优于单独文件

typescript - visual studio 2015/resharper 支持 angular2

git - 如何修复 Git 提交 GPG 签名期间的 'cannot run --version: No such file or directory' 错误

ruby-on-rails - Atom-Editor:Rubocop 不适用于 atom