我安装了软件包MarkdownExtended
和MonokaiExtended
,这已经为 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 Extended
,Monokai 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
保存文件(它应该自动保存在正确的位置),并且您的列表项现在应该被适当地突出显示。