gpt4 book ai didi

sublimetext3 - 如何在 Sublime Text 配色方案中显示给定范围的空白

转载 作者:行者123 更新时间:2023-12-05 06:21:49 30 4
gpt4 key购买 nike

有什么方法可以设置给定范围内的空白区域可见吗?

我正在修改配色方案以满足我的喜好,并希望能够在给定范围内显示空间。我还没有看到任何迹象表明这在 color-scheme documentation 中是可能的。在 Sublime 的网站上。

对于我的具体案例,我想还有其他有用的案例,我正在使用 Markdown 并想要突出显示双空格换行符。我可以设置背景,但这看起来不太正确。我希望能够让这个小范围的空白可见,并更改前景色以使其突出。

最佳答案

对您的问题的简短回答是否定的;或者更确切地说,是的,但仅限于您已经发现的方式。

配色方案只能将前景色/背景色应用于范围以及粗体/斜体字体粗细。因此,假设您正在使用的语法检测到一个特定范围,该范围用于您要突出显示的内容,配色方案唯一可以做的就是改变背景颜色以使其可见。

唯一可以原生渲染空白的是 draw_white_space 设置,目前只允许您在任何地方关闭它,在任何地方打开它,或者只为选定的文本打开它.在这种情况下,这并没有什么帮助。

虽然在插件领域有类似这样的东西的可能性(可以通过使用 View > Show ConsoleCtrl+` 打开 Sublime 控制台并输入来测试这些示例那里的代码;他们还假设您使用的是默认的 Markdown 语法):


view.add_regions("whitespace", view.find_by_selector("punctuation.definition.hard-line-break.markdown"), "comment", flags=sublime.DRAW_NO_FILL)

这将导致所有硬换行符都被勾勒出来,就好像它们是 find 结果一样;颜色由范围选择(这里是 comment);这将使它们可见而不会使整个字符位置具有背景颜色。


view.add_regions("whitespace", view.find_by_selector("punctuation.definition.hard-line-break.markdown"), "comment", "dot", flags=sublime.HIDDEN)

这将在以该范围结尾的行的间距中添加一个点(颜色为注释);您还可以将其与前面的示例结合起来以概述它们并在装订线中引起注意。


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 幻影应用到文档中,以便在实际空白和它之前的文本之间立即注入(inject)一个由两个 unicode 中心点组成的小内联序列。如果你能生成合适的HTML,这里的内容可以是你喜欢的;在此示例中,我们只是将颜色应用于文本。

这里的一个潜在缺点是您在内联 HTML 中看到的字符不被视为文档流的一部分;光标将在一个 block 中跳过它们,然后是实际的空白。

这个例子的结果是这样的:

Inline Whitespace Example

走插件路线,你需要一个事件处理程序,比如 on_load() 来在加载文件时应用这些,并需要 on_modified() 来重新更新它们对缓冲区进行修改后。可能存在也可能不存在已经实现此功能的包。

关于sublimetext3 - 如何在 Sublime Text 配色方案中显示给定范围的空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59584403/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com