Formatting Literal parameters of a C# code snippet

前端 未结 3 2098
一个人的身影
一个人的身影 2020-12-01 14:13

Is there any way that I can change how a Literal of a code snippet renders when it is used in the code that the snippet generates?

Specifically I\'d like to know if

相关标签:
3条回答
  • 2020-12-01 14:24

    a "fix" may be to use a prefix in the naming or the member variable, i.e.:

    string m_$name$;
    string $name$
    {
     get{return m_$name$;}
     set{m_$name$=value;}
    };
    
    0 讨论(0)
  • 2020-12-01 14:39

    Unfortunately there seems to be no way. Snippets offer amazingly limited support for transformation functions as you can see.

    You have to stick with the VS standard solution, which is to write two literals: one for the property name, and the other for the member variable name.

    0 讨论(0)
  • 2020-12-01 14:39

    You can enter a upper first letter, then a property name, then a lower first letter. Try this snippet:

    <?xml version="1.0" encoding="utf-8"?>
    <CodeSnippet Format="1.0.0" xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
      <Header>
        <Title>Notifiable Property</Title>
        <Author>Nikolay Makhonin</Author>
        <Shortcut>propn</Shortcut>
        <Description>Property With in Built Property Changed method implementation.</Description>
        <SnippetTypes>
          <SnippetType>SurroundsWith</SnippetType>
          <SnippetType>Expansion</SnippetType>
        </SnippetTypes>
      </Header>
      <Snippet>
        <Declarations>
            <Literal>
                <ID>Type</ID>
                <Default>Type</Default>
            </Literal>
            <Literal>
                <ID>P</ID>
                <Default>P</Default>
            </Literal>
            <Literal>
                <ID>roperty</ID>
                <Default>ropertyName</Default>
            </Literal>
            <Literal>
                <ID>p</ID>
                <Default>p</Default>
            </Literal>
            <Literal>
                <ID>Ownerclass</ID>
                <ToolTip>The owning class of this Property.</ToolTip>
                <Function>ClassName()</Function>
                <Default>Ownerclass</Default>
            </Literal>
        </Declarations>
        <Code Language="CSharp">
          <![CDATA[#region $P$$roperty$
    
            private Field<$Type$> _$p$$roperty$;
            public static readonly string $P$$roperty$PropertyName = GetPropertyName(() => (($Ownerclass$)null).$P$$roperty$);
            public $Type$ $P$$roperty$
            {
                get { return _$p$$roperty$; }
                set { Set(ref _$p$$roperty$, value); }
            }
    
            #endregion
    
    ]]>
        </Code>
      </Snippet>
    </CodeSnippet>
    
    0 讨论(0)
提交回复
热议问题