【问题标题】:Custom Syntax Highlighting in Sublime Text 3 – cannot convertSublime Text 3 中的自定义语法突出显示 - 无法转换
【发布时间】:2015-06-26 13:50:18
【问题描述】:

我正在尝试为 Sublime Text 3 创建自己的语法突出显示。它的主要目的是区分用拉丁字母书写的文本和用西里尔字母书写的文本。我已经安装了 AAAPackageControl 并阅读了tutorial,但由于某种原因我无法使其工作。

这是我写的语法

# [PackageDev] target_format: plist, ext: tmLanguage
---
name: ADVANCED TEXT
scopeName: text.mirkowy
fileTypes: []
uuid: 78dbe755-58eb-4cdf-b954-4438334aedb9

patterns:
- comment: Words in Latin Script
  name: latin_text.text.mirkowy
  match: [A-Za-z]+
- comment: Words in Cyrillic Script
  name: cyrillic_text.text.mirkowy
  match: [ЁЂЃЄЅІЇЈЉЊЋЌЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяёђѓєѕіїјљњћќўџҐґ]+
- comment: Numbers
  name: numbers.text.mirkowy
  match: \d
...

但是,当我按 F7 将该文件转换为 plist 时,我不断收到错误,我不明白为什么(请记住,我对创建自己的语法等完全陌生)——这就是它看起来像:

Input type not specified, auto-detecting... YAML
No target format specified, searching in file... Property List
Parsing YAML... (C:\Users\iyoossaev\AppData\Roaming\Sublime Text 3\Packages\User\mirkowy.YAML-tmLanguage)
Error parsing YAML: while parsing a block mapping

我做错了什么?

【问题讨论】:

    标签: syntax-highlighting sublimetext3


    【解决方案1】:

    你几乎明白了,但你的正则表达式有一个小问题 - 方括号 [ ] 包围的字符类需要在括号 ( ) 内。您的“数字”正则表达式 \d 无需括号即可正常工作。因此,只需将您的代码更改为以下内容:

    # [PackageDev] target_format: plist, ext: tmLanguage
    ---
    name: ADVANCED TEXT
    scopeName: text.mirkowy
    fileTypes: []
    uuid: 78dbe755-58eb-4cdf-b954-4438334aedb9
    
    patterns:
    - comment: Words in Latin Script
      name: latin_text.text.mirkowy
      match: ([A-Za-z]+)
    
    - comment: Words in Cyrillic Script
      name: cyrillic_text.text.mirkowy
      match: ([ЁЂЃЄЅІЇЈЉЊЋЌЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяёђѓєѕіїјљњћќўџҐґ]+)
    
    - comment: Numbers
      name: numbers.text.mirkowy
      match: \d
    

    你应该准备好了。请注意,我在每个块之间放置了一个空格 - 这不是必需的,但它可以帮助您在视觉上分隔每个块,这在您遇到非常复杂的块时非常有用。

    如果您想要一些更复杂的.YAML-tmLanguage 语法定义示例,您会立即想到两个地方。第一个是PackageDev 包本身中的Syntax Definitions 文件夹。第二个实际上是在我的个人项目中,Python Improved 语法定义旨在更好地替代 Sublime 附带的内置 Python 语法。你可以在 Github 上找到PythonImproved.YAML-tmLanguage 的源代码。如果您对语法设计有任何疑问,请随时打开issue,或者在这里提出新问题。

    祝你好运!

    【讨论】:

    • 确实,它按建议工作。谢谢您的帮助;我也会看看你推荐的地方:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-30
    • 2015-01-24
    • 1970-01-01
    相关资源
    最近更新 更多