4

有没有办法在大括号()完成时禁用 ReSharper Web 表单/MVC(.aspx)代码格式}

这真的很令人沮丧,而且大部分时间都不是我想要的。例如,如果我有:

<% if (CurrentUser.IsRole(Helper.UserRole.Agent)) { %>
   <%= Html.LinkTo("sign out", SessionRoutes.Logout, null, new { @class = "sign" }) %>
<% } else { %>
   ...
<% } %>

一旦我输入最后一个<% },它的格式如下:

<% if (CurrentUser.IsRole(Helper.UserRole.Agent))
  { %>
 <%= Html.LinkTo("sign out", SessionRoutes.Logout, null, new { @class = "sign" })%>
  <% }
  else
  {%>

  <%
  }%>

我查看了 ReSharper 选项,但找不到任何合适的设置。快把我逼疯了!为了解决这个问题,我要么必须粘贴括号,有时幸运的是ctrl+z有效,要么输入<{然后插入%空格:S

我相信最近使用过 ReSharper 和 Web 表单的任何人都会知道我在说什么。

谢谢

4

3 回答 3

3

首先,您应该更改大括号布局的选项以匹配您的风格。转到 ReSharper | 选项 > 语言 > C# > 格式样式 > 大括号布局 > 大括号布局并将选项“其他”更改为“行尾(K&R 样式)”。

接下来请注意,确实存在一个bug,有时会导致ReSharper 在<% 或%> 之前插入换行符。此错误已在内部构建中修复,并且应该在下一个 EAP(2011 年 6 月 7 日之后)以及未来的 6.0 测试版/版本中。

如果您希望可以在 ReSharper 选项中完全禁用自动格式化(但这不仅会影响 ASP.NET,还会影响常规 C# 文件)。转到 ReSharper | 选项 > 编辑器并关闭分号上的自动格式和右括号上的自动格式。

希望这可以帮助 :)

于 2011-06-07T07:24:31.177 回答
1

您确定是Resharper在进行格式化吗?Visual Studio 本身也有一个“在 } 上自动格式化完成的块”选项。

工具 | 选项 > 文本编辑器 > C# > 格式化

于 2011-05-27T07:14:07.820 回答
1

感觉这是两个错误报告中反映的已知问题:http: //youtrack.jetbrains.net/issue/RSRP-193396http://youtrack.jetbrains.net/issue/RSRP-178877 请为他们投票。目前无法保证任何修复时间表,但我希望我们能够尽快修复。

于 2011-05-27T20:38:56.770 回答