问题描述
我想用VS Code做一个相对简单的格式化程序。本质上,我有一堆*.md.j2
文件(最终成为Markdown的Jinja2模板)。我具有Better Jinja扩展程序,可以使用VS Code中的语言jinja-md
来呈现它们。
我刚开始只是想使用更漂亮的Markdown格式并称之为一天。我尝试将其添加到settings.json
:
"[jinja-md]": {
"editor.defaultFormatter": "esbenp.prettier-vscode","editor.formatOnSave": true,},
这不起作用,因为esbenp.prettier-vscode
并没有为jinja-md
类型注册。似乎没有“碎玻璃”选项可以配置它。
这使我想到,制作一个忽略Jinja标记行的格式化程序(例如{% if foo == 'bar' %}\n
,然后将这些片段传递给任何底层文件类型格式化程序是很好的。所以我基本上想做像这样:
vscode.languages.registerDocumentFormattingEditProvider('jinja-md',{
provideDocumentFormattingEdits(document: vscode.TextDocument): vscode.TextEdit[] {
// THIS IS THE QUESTION:
// vscode.languages.getFormatter is not a real method. I want to kNow
// how to pull off this concept.
mdFormatter = vscode.languages.getFormatter('md');
// Get segments between %}\n and \n{% and route them to the
// `mdFormatter` -- I think I kNow how to do this and am not bothering
// to write the code here.
}
});
这是我能做的吗?我可以以编程方式从VSCode“用户为语言X配置的格式化程序”中获得吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)