Visual Studio 代码 html.erb 循环缩进不正确

Visual Studio Code html.erb loops not indenting correctly

我不喜欢发布一个应该是简单问题的问题,但我花了好几天时间寻找答案,并且卸载并重新安装 vscode 但问题仍然存在。 html.erb 文件中的任何循环结构都取消缩进。

<%if true%>
  <p>Something</p>
<%end%>

将格式化回

<%if true%>
<p>Something</p>
<%end%>

我为格式化程序安装了 ruby-rubocop,这是我的 settings.json

"workbench.iconTheme": "vscode-icons-mac",
"editor.formatOnSave": true,
"ruby.format": "rubocop",
"editor.tabSize": 2,
"editor.detectIndentation": false,
"files.associations": {
  "html.erb": "erb"
},

对我缺少的东西有什么想法吗?当然,我缺少一个设置,这不会是不受支持的功能。

TL;DR: 在您的配置中将 html 替换为 *,它应该可以工作

我遇到了和你一样的问题,我很高兴找到了解决办法。至少,它对我有用。

最初,我认为安装名为 ERB Formatter/Beautify 的扩展程序的诀窍是什么。

然后,我意识到,仅仅按照他们的安装说明,ERB 可能被识别为 HTML 文件而不是 ERB。格式可能工作正常。只是不理解它是 ruby 代码,而是 HTML.

扩展建议您将以下代码添加到 settings.json,因为有时我们会告诉他们如果文件是 *.html.erb 而不是 *.erb,扩展将不起作用。这往往是 rails 默认值。

    "files.associations": {
        "*.erb": "erb"
    }

因此,您需要做的就是在您的配置中将 html 替换为 *,它应该可以工作

如果这不起作用,请尝试安装 this extension