sli*_*kts 9 markdown ligature visual-studio-code vscode-extensions monaco-editor
我想在markdown中使用子弹点而不是星号(*)字符来创建vscode渲染列表,以便顶级使用•,下一个将使用◦等.
我的第一种方法是使用FontForge创建一个连字字体,用◦替换*,用◦替换空格加*,用▪替换两个空格加*,依此类推,但是使用连字有明显的问题,它不是上下文敏感的,所以所有星号将被替换,而不仅仅是那些领先一行的星号.
查看vscode文本修饰API,它似乎仅限于更改字体样式和颜色,而不是字体系列.有没有办法在视觉上替换vscode中的字符?它们仍应在源代码中保存为星号,以便有效降价.
从 VS Code 1.27 开始,最好的选择是编写一个扩展,在*角色上添加装饰器来执行此操作。查看装饰器示例扩展以开始使用
我认为当前的 vscode API 不允许您覆盖*文本本身,但您可以尝试通过使*字符透明并在其后添加自定义项目符号点来模拟这一点:
const level1DecorationType = vscode.window.createTextEditorDecorationType({\n color: \'transparent\',\n after: {\n contentText: "\xe2\x97\xa6"\n }\n});\nRun Code Online (Sandbox Code Playgroud)\n\n然后您的扩展只需将此样式应用于文档中的项目符号即可。
\n\n非官方地,您还可以使用此装饰器 hack 来完全替换*角色:
const level1DecorationType = vscode.window.createTextEditorDecorationType({\n color: \'transparent\',\n textDecoration: `none; display: inline-block; width: 0;`,\n after: {\n contentText: "\xe2\x97\xa6"\n }\n});\nRun Code Online (Sandbox Code Playgroud)\n\n但是,这并不能保证能够正常工作或在将来继续工作。
\n\n考虑打开一个功能请求以获得更好的装饰器支持
\n| 归档时间: |
|
| 查看次数: |
613 次 |
| 最近记录: |