【发布时间】:2022-06-27 08:27:41
【问题描述】:
TL;DR
我需要能够在编辑器中将特定标记定义为使用某种字体功能,而无需将其强制用于存在的每种文本类型,也无需求助于 hacky 替代方案。
上下文:
在 Visual Studio Code 中,您可以使用设置 editor.fontLigatures 启用字体功能。我制作了一个自定义字体,添加了一个完全普通的 OTF 样式集 (SS) 来表示非代码文本,因此我可以使用常规的单色字体来显示代码,并使用更具可读性、视觉上不同的脚本字体来呈现 cmets 和注释块。
为了实现这一点,我只需要将 cmets 和注释块定位为应用了自定义样式集,但我发现在设置中没有办法让我指定具有足够粒度的字体功能,以便仅将它们用于非代码文本。
例如,您可以使用textMateRules 设置以这种粒度级别指定斜体:
editor.tokenColorCustomizations: {
textMateRules: [
{
"scope": "comment",
"settings": {
"fontStyle": "italic"
}
},
{
"scope": "comment.block",
"settings": {
"fontStyle": "italic"
}
}
]
}
但是,我不能强制应用样式集。
为了解决这个问题,我使用this extension,它允许我将任意 CSS 注入编辑器。
目前我插入此代码:
/* Set documentation comments style */
.mtk38.mtki,
.mtk39.mtki {
font-family: "MonoLisa Script Nerd Font";
font-size: 1.1em;
font-style: italic;
font-weight: 375;
font-feature-settings: ss02 on;
}
/* Set inline comments style */
.mtk15.mtki {
font-family: "MonoLisa Script Nerd Font";
font-size: 1.2em;
font-style: italic;
font-weight: 200;
font-feature-settings: ss02 on;
}
这实现了我想要的结果(将样式集强制到编辑器显示标记的特定子集),但它迫使我对 VS Code 安装文件夹的权限坐立不安,并中断每次更新。我可以添加一个钩子,这样每次系统更新时,它都可以自动管理这个过程,但我所做的一切都非常糟糕,我确信必须有一个“正确”的方式来实现我想要的。
Here's a concrete example of how this looks
在 VSCode 中是否有细粒度的方式来设置字体功能?
【问题讨论】:
标签: visual-studio-code font-feature-settings