如何解决获取一种语言的格式化程序
我想用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 举报,一经查实,本站将立刻删除。