How do you get server blocks <% %> to forma

2019-01-31 12:54发布

I'm using ASP.NET MVC a lot recently which means using server blocks a bunch. Visual Studio does this strange thing when I type:

<% } %>

and hit enter, I get this:

<%
     }
     %>

Which is unsightly and generally the most horrible thing I've ever seen. I've customized the Ctrl+K+D behavior pretty heavily and when I do this I get everything to look the way I want except for this one case. Anyone have any suggestions on how to customize this?

2条回答
Anthone
2楼-- · 2019-01-31 13:30

Looking at the behavior. I don't know that you can override it just for the HTML editor. It is exhibiting the exact behavior that is defined in the C# editor preferences.

I suppose you could modify the behavior for a closing brace in the C# editor preferences, but it would do fugly things to your .cs files.

Edit:

I got tired of trying to find other ways to do it. So I wrote this macro. Tested in VS 2k8. Not 2k5. You can see what it does. Also, sorry about the VB, but it was the default for the macro editor.

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
查看更多
地球回转人心会变
3楼-- · 2019-01-31 13:39

i think you format it by Ctrl + K, Ctrl + D

查看更多
登录 后发表回答