【问题标题】:How do you get server blocks <% %> to format well in Visual Studio?如何让服务器块 <% %> 在 Visual Studio 中很好地格式化?
【发布时间】:2009-04-06 01:48:44
【问题描述】:

我最近经常使用 ASP.NET MVC,这意味着使用服务器会阻塞一堆。当我键入时,Visual Studio 会发生这种奇怪的事情:

<% } %>

然后回车,我明白了:

<%
     }
     %>

这是我见过的最难看的事情,通常是最可怕的事情。我已经大量定制了 Ctrl+K+D 行为,当我这样做时,我得到的一切都看起来像我想要的那样,除了这种情况。有人对如何自定义这个有任何建议吗?

【问题讨论】:

  • 天哪,我想知道!谢谢你的提问!
  • 好问题,自从我开始经常使用 MVC 以来,这一直困扰着我。
  • 你们都应该将此提交到 MS Connect 反馈网站并疯狂投票,他们可能会修复它。
  • 您应该将它提交给connect.microsoft.com/visualstudio,然后在此处发布错误/建议 URL,然后任何关心的人应该投票每个人一次。搞砸投票,他们会忽略整个建议。
  • 如果有人将其发布到 MS Connect,请返回此处链接,以便我们对其进行投票

标签: visual-studio visual-studio-2008


【解决方案1】:

观察行为。我不知道您是否可以仅为 HTML 编辑器覆盖它。它展示了在 C# 编辑器首选项中定义的确切行为。

我想您可以在 C# 编辑器首选项中修改右大括号的行为,但它会对您的 .cs 文件做一些丑陋的事情。

编辑:

我厌倦了尝试寻找其他方法来做到这一点。所以我写了这个宏。在 VS 2k8 中测试。不是2k5。你可以看到它的作用。另外,很抱歉 VB,但它是宏编辑器的默认设置。

Sub FixFormatCurrentFile()

    Dim selection As TextSelection = DTE.ActiveDocument.Selection
    Dim fixed As String = "<% } %>"
    Dim regex As String = "\<\%:Wh*\}:Wh*\%\>"

    While selection.FindPattern(regex, vsFindOptions.vsFindOptionsRegularExpression)
        selection.ReplacePattern(regex, fixed, vsFindOptions.vsFindOptionsRegularExpression)
    End While
End Sub

【讨论】:

  • 我不熟悉在 Visual Studio 中使用宏...我可以将它附加到 Ctrl+K+D 吗?
  • 不要按 ctrl-k-d,我相信这将是一个额外的击键。但是,您可以先在宏中调用“自动格式化”。
【解决方案2】:

我想你用 Ctrl + K, Ctrl + D 格式化它

【讨论】:

    猜你喜欢
    • 2019-02-01
    • 1970-01-01
    • 2011-11-12
    • 1970-01-01
    • 1970-01-01
    • 2011-04-13
    • 2018-06-03
    • 1970-01-01
    • 2011-02-06
    相关资源
    最近更新 更多