【问题标题】:Visual Studio Code html.erb loops not indenting correctlyVisual Studio Code html.erb 循环没有正确缩进
【发布时间】:2020-08-06 14:35:48
【问题描述】:

我不喜欢发布应该是一个简单的问题,但我花了几天时间寻找答案,我已经卸载并重新安装了 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"
},

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

【问题讨论】:

  • 也许您需要一个额外的 vs 代码扩展来支持该功能。就我而言,我已经安装了this,它运行良好。
  • 感谢您的建议,我也安装了(连同标准的 rails、ruby 和 ruby​​ on rails)扩展。我尝试删除将 rubocop 指定为格式化程序的设置,但它仍然无法正确缩进。
  • 只是出于好奇,如果将&lt;%if true%&gt; 更改为&lt;% if true %&gt; 会发生什么?
  • @dbugger 好问题,但它不会影响缩进。
  • 可能有一些冲突的扩展——我很想一无所获然后一个接一个地添加回来。

标签: ruby-on-rails visual-studio-code rubocop


【解决方案1】:

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

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

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

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

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

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

因此,您只需在配置中将 html 替换为 *,它应该可以工作

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

【讨论】:

  • 感谢您的帮助,真的很有帮助。
  • 乐于助人,@junjing
  • @svelandiag 你所说的“打破他们”是什么意思?他们是否开始被识别为erbJS?你试过"*.html.erb": "erb"吗?
  • @lucasarruda 当我应用配置时 .js.erb 文件中没有突出显示 javascript
  • @svelandiag 删除后它会再次起作用吗?您是否尝试将配置更改为"*.html.erb": "erb"
猜你喜欢
  • 2017-11-09
  • 2021-07-22
  • 1970-01-01
  • 1970-01-01
  • 2017-06-07
  • 1970-01-01
  • 2016-09-05
  • 2016-03-14
  • 1970-01-01
相关资源
最近更新 更多