有什么方法可以设置给定范围可见的空白?
我正在根据自己的喜好修改颜色方案,并希望能够显示给定范围内的空间。在Sublime网站上的色彩计划文档中,我还没有发现任何暗示这一点的建议。
对于我的特定情况,并且我想还有其他有用的情况,我正在与Markdown一起工作,并希望突出显示双行换行符。我可以设置背景,但这看起来不太正确。我希望能够在这个小范围内使空白可见,并更改前景色以使其突出。
您问题的简短答案是“否”。或者,是的,但仅以您已经发现的方式。
配色方案只能将前景色/背景色应用于范围以及粗体/斜体字体粗细。因此,假设您使用的语法检测到一个特定的范围,该范围用于您要突出显示的内容,则配色方案唯一可以做的就是更改背景颜色以使其可见。
唯一可以本地呈现空白的是draw_white_space
设置,此设置目前仅允许您在任何地方将其关闭,在任何地方将其打开或仅对选定的文本将其打开。在这种情况下,这实际上没有帮助。
不过,在插件领域中可能会出现类似的情况(可以通过使用View > Show Console
或打开Sublime控制台Ctrl+`并在其中输入代码来测试这些示例;它们还假定您使用的是默认的Markdown语法):
view.add_regions("whitespace", view.find_by_selector("punctuation.definition.hard-line-break.markdown"), "comment", flags=sublime.DRAW_NO_FILL)
这将导致所有强行中断都被概述,好像它们是找到结果一样。颜色由示波器选择(comment
在这里);这样就可以使它们可见,而无需使整个角色位置都具有背景色。
view.add_regions("whitespace", view.find_by_selector("punctuation.definition.hard-line-break.markdown"), "comment", "dot", flags=sublime.HIDDEN)
这将comment
在檐槽中为以此范围结尾的线添加一个点(颜色为)。您还可以将其与前面的示例结合以概述它们,并在装订线中引起注意。
style = '<style>.w { color: darkgray; }</style>'
content = '<body id="whitespace">' + style + '<span class="w">··</span></body>'
phantom_set = sublime.PhantomSet(view, "whitespace")
phantoms = [sublime.Phantom(r, content, sublime.LAYOUT_INLINE) for r in view.find_by_selector("punctuation.definition.hard-line-break.markdown")]
phantom_set.update(phantoms)
它利用Sublime的功能将行内HTML幻象应用于文档中,以便在实际的空白和紧接其前的文本之间立即插入两个Unicode中心点的小型行内序列。如果可以生成适当的HTML,则此处的内容可以是您喜欢的内容。在此示例中,我们仅将颜色应用于文本。
潜在的不利之处在于,您在嵌入式HTML中看到的字符不被视为文档流的一部分。光标会跳过它们中的一小块,然后是实际的空白。
该示例的结果如下所示:
on_load()
遵循插件路线,您需要一个事件处理程序,例如在加载文件时应用这些事件处理程序,on_modified()
并在对缓冲区进行修改后重新更新它们。可能存在或可能不存在已经实现了此功能的软件包。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句