获取一种语言的格式化程序

问题描述

我想用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 (将#修改为@)