SublimeText 3 语法高亮 Markdown 列表 Asterisk

SublimeText 3 语法高亮 Markdown 列表 Asterisk

我安装了软件包MarkdownExtendedMonokaiExtended,这已经为 markdown 文件提供了相当不错的突出显示。但是,作为一个完美主义者,我想为 markdown 中的无序列表的星号着色。颜色方案设置为Monokai Extended,我已经在下面编辑了该.tmTheme文件Packages/User/Color Highlighter/themes/Monokai Extended.tmTheme(小心,这是一个很大的文本文件),如下所示:

    <dict>
        <key>name</key>
        <string>Markdown: List Items Punctuation</string>
        <key>scope</key>
        <string>punctuation.definition.list_item.markdown</string>
        <key>settings</key>
        <dict>
            <key>foreground</key>
            <string>#404b16</string>
        </dict>
    </dict>

这似乎正是我想要的,但是星号的颜色没有改变。我需要编辑文件中的其他文件或位置吗?我忽略了什么?

编辑#1

我的 Sublime Text 3 似乎出了点问题。当我打开它时,Monokai Extended.tmTheme文件膨胀了,有十万行。现在我用另一个文本编辑器打开它,然后像这样更改值:

    <dict>
        <key>name</key>
        <string>Markdown: List Items Punctuation</string>
        <key>scope</key>
        <string>punctuation.definition.list_item.markdown</string>
        <key>settings</key>
        <dict>
            <key>fontStyle</key>
            <string>bold</string>
            <key>foreground</key>
            <string>#80Ab36</string>
        </dict>
    </dict>

这会导致以下行为:

在此处输入图片描述

因此,第一个星号已经有颜色了,只缺少其他的……

概括

  • SublimeText 3(v3103)
  • 套餐:Markdown ExtendedMonokai Extended
  • 语法突出显示设置为Markdown Extended
  • 配色方案设置为Monokai Extended
  • 想要给 Markdown 文件中无序列表的星号着色

选择的解决方案

我使用了接受的答案中的代码,但我对其进行了一些修改,以便它包含缩进的星号:

list-paragraph:
- match: \G\s+(?=\S)
    push:
        - meta_scope: meta.paragraph.list.markdown
        - match: ^\s*$
            pop: true
        - match: '^([ ]{0,4}|\t{0,1})([*+-])(?=\s)'
            scope: punctuation.definition.list_item.markdown
        - match: '^([ ]{0,4}|\t{0,1})([0-9]+)(\.)(?=\s)'
            captures:
                1: punctuation.definition.list_item.markdown punctuation.definition.list_item.number.markdown
                2: punctuation.definition.list_item.markdown
        - include: inline

编辑#2

现在我再次对其进行了更改,以便仅允许某些缩进导致颜色变化:

list-paragraph:
- match: \G\s+(?=\S)
    push:
        - meta_scope: meta.paragraph.list.markdown
        - match: ^\s*$
            pop: true
        - match: '^([ ]{2}|[ ]{4}|[ ]{6}|[ ]{8}|[ ]{10}|[ ]{12}|\t{0,3})([*+-])(?=\s)'
            scope: punctuation.definition.list_item.markdown
        - match: '^([ ]{2}|[ ]{4}|[ ]{6}|[ ]{8}|[ ]{10}|[ ]{12}|\t{0,3})([0-9]+)(\.)(?=\s)'
            captures:
                1: punctuation.definition.list_item.markdown punctuation.definition.list_item.number.markdown
                2: punctuation.definition.list_item.markdown
        - include: inline

答案1

您需要编辑Markdown Extended语法定义文件,该文件被锁定在压缩.sublime-package文件中,因此首先您需要安装PackageResourceViewer。安装后,打开命令面板并输入prv调出 PackageResourceViewer 选项。选择PackageResourceViewer: Open Resource,然后Markdown Extended,然后Markdown Extended.sublime-syntax。选择菜单将保持打开状态,只需点击Esc即可将其删除。

在 中Markdown Extended.sublime-syntax,向下滚动到大约第 1172 行(在当前版本中,可能会更改)到标题为 的部分list-paragraph。它应该如下所示:

list-paragraph:
  - match: \G\s+(?=\S)
    push:
      - meta_scope: meta.paragraph.list.markdown
      - match: ^\s*$
        pop: true
      - include: inline

为了使其识别多个列表项,请将该部分更改为以下内容:

list-paragraph:
  - match: \G\s+(?=\S)
    push:
      - meta_scope: meta.paragraph.list.markdown
      - match: ^\s*$
        pop: true
      - match: '^\s{0,4}([*+-])(?=\s)'
        scope: punctuation.definition.list_item.markdown
      - match: '^\s{0,4}([0-9]+)(\.)(?=\s)'
        captures:
          1: punctuation.definition.list_item.markdown punctuation.definition.list_item.number.markdown
          2: punctuation.definition.list_item.markdown
      - include: inline

保存文件(它应该自动保存在正确的位置),并且您的列表项现在应该被适当地突出显示。

相关内容