在Visual Studio中将一个带衬里的语句自动格式化为多行

时间:2012-05-20 19:08:27

标签: visual-studio-2010 resharper-6.0

这是一个单行IF语句的简单示例。

if(condition)
    something = "blah";

我发现自己经常使用它们来处理简单的事情,但稍后在扩展应用程序时,将它们扩展为多行if语句

if(condition)
{
    something = "blah;
    somethingElse = "blar";
}

但我觉得这很令人沮丧,因为我必须经历几个步骤才能这样做。当我输入第一个大括号时,我的代码格式化程序(Visual Studio?Resharper?)继续输入第二个(结束)大括号,并将其格式化为:

if(condition) { }
something = "blah";

然后我必须选择并删除右括号,然后进行自己的格式化以使其看起来正确。

有没有办法可以方便地让resharper或visual studio自动进入单行IF语句周围的括号?例如:我在条件之后输入了一个左大括号,并自动将其格式化为

if(condition)
{
    something = "blah";
}

1 个答案:

答案 0 :(得分:1)

您可以做的是定义一个与没有“if($ expression)”部分的if代码段完全相同的新代码段:

<?xml version="1.0" encoding="utf-8" ?>
<CodeSnippets  xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
    <CodeSnippet Format="1.0.0">
        <Header>
            <Title>multiif</Title>
            <Shortcut>multiif</Shortcut>
            <Description>Code snippet for multiline if statement</Description>
            <Author>Microsoft Corporation</Author>
            <SnippetTypes>
                <SnippetType>Expansion</SnippetType>
                <SnippetType>SurroundsWith</SnippetType>
            </SnippetTypes>
        </Header>
        <Snippet>
            <Declarations>
                <Literal>
                    <ID>expression</ID>
                    <ToolTip>Expression to evaluate</ToolTip>
                    <Default>true</Default>
                </Literal>
            </Declarations>
            <Code Language="csharp"><![CDATA[
    {
        $selected$ $end$
    }]]>
            </Code>
        </Snippet>
    </CodeSnippet>
</CodeSnippets>

然后您可以通过以下方式将此代码段导入Visual Studio:

  1. 从“工具”菜单中选择“代码段管理器...”。
  2. 点击导入...按钮。
  3. 导航到新的代码段文件。
  4. 或: 将新的代码段文件复制到C:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ VC#\ Snippets \ 1033 \ Visual C#

    然后,您可以在c#文件中选择单行if语句的正文,右键单击并选择Surround With ...然后选择新的代码段。

相关问题