Vim语法定义折叠透明色

Vim syntax defined folding transparent colour

我写了Vim语法高亮定义代码,也定义了折叠。 现在我可以使用折叠但是当我有折叠线时,我想为折叠功能部分和实际代码使用不同的颜色

+--  10 lines: XXXXXX

所以我想保留 XXXXXX 部分的颜色作为原始语法颜色,以便从其余部分中脱颖而出。 如何定义折叠语法的透明度?

遗憾的是,这目前是不可能的。有两个 高亮组 控制折叠的视觉表示:Folded(对于整行)和 FoldColumn(对于折叠状态的左侧表示).同样,"transparency" 在这里也不适用; 折叠文本 是缓冲区内容的自定义[可] 摘录。真正的缓冲区内容被折叠起来,而不是呈现。

我依稀记得允许折叠 级别 或嵌套折叠的不同高亮组的补丁,但其中 none 已包含在 Vim 中。

您想要实现的目标在视觉上非常吸引人。不过,我发现在实施过程中存在以下困难:

常规文件类型语法(您要应用的)必须在 +-- 10 lines: 前缀之后匹配。许多句法都有详细的包含或排序,可能无法应用。其他人可能会申请,但是(因为折叠起来的东西),失去了他们的常规上下文,所以下面的行会被搞砸。这可以用特殊的语法规则来解决(可能只包括语法关键字和简单的 :syn match 之类的低级内容),但是这些需要每种语法的协作,因此必须通过各种语法来扩展数百个脚本作者。