【问题标题】:Visual Studio Code Snippet - Change Literal Name?Visual Studio 代码片段 - 更改文字名称?
【发布时间】:2018-03-28 21:03:53
【问题描述】:

我正在尝试创建一个 sn-p,它为该字段创建一个字段和一个属性。 我想对字段使用 pascalCase,对属性使用 CamelCase,我希望 sn-p 自动执行此操作。如果我创建两个不同的文字并手动编写字段名称和属性名称,我可以做到这一点,有没有办法自动“创建”具有大写首字母的属性名称,名称取自名称领域?

这是我当前的 sn-p 代码:

<CodeSnippet Format="1.0.0">
<Header>
  <Title>Property etc</Title>
  <Shortcut>fprop</Shortcut>
</Header>
<Snippet>
  <Declarations>
    <Literal>
      <ID>type</ID>
      <Default>int</Default>
    </Literal>
    <Literal>
      <ID>name</ID>
      <Default>propertyName</Default>
    </Literal>
  </Declarations>
  <Code Language="csharp">
    <![CDATA[private $type$ $name$;

    public $type$ $name$    <<<<--- this $name$ must have its first letter capitalized in the final result
    { 
        get 
        {
            return this.$name$;
        } 
        set 
        {
            this.$name$ = value;
        } 
    }
    $end$]]>
  </Code>
</Snippet>

这是预期的结果:

private int propertyName;

public int PropertyName
{
    get         
    {
        return this.propertyName;
    }
    set
    {
        this.propertyName = value;
    }
}

如果我为字段使用不同的名称,例如“someFieldName”,则属性的名称应自动变为 SomeFieldName(当然是在创建 sn-p 时)

我知道如果我使用两个单独的 Literals 可以做到这一点,但是我必须手动编写字段的名称,然后还要编写属性的名称,我想避免手动编写属性名称。

【问题讨论】:

  • 我认为目前无法在 Visual Studio 代码中更改输入。您可以将此作为一个问题(一项新功能)提出来,然后等待他们对此做出回应。

标签: visual-studio code-snippets


【解决方案1】:

可以使用 ReSharper 完成。
使用Template Explorer("Extensions-&gt;ReSharper-&gt;Tools-&gt;Templates Explorer...")

创建新模板

private $TYPE$ $FIELD_NAME$;
public $TYPE$ $PROPERTY_NAME$
{
    get
    {
        return this.$FIELD_NAME$;
    }
    set
    {
        this.$FIELD_NAME$ = value;
    }
}

模板设置:

  • 取消选中Reformat

参数设置:

  • PROPERTY_Name 设置为第一个元素,EditableSuggest name for a variable
  • TYPE 设置为第二个元素,MO-2Suggest type for a new variable
  • FIELD_NAME 设置为第三个元素,Not EditableValue of another variable with first character in lower case 并选择 PROPERTY_NAME

【讨论】:

    猜你喜欢
    • 2020-09-07
    • 1970-01-01
    • 2016-11-17
    • 2011-07-05
    • 2017-12-31
    • 1970-01-01
    • 1970-01-01
    • 2013-02-21
    相关资源
    最近更新 更多