2010-02-15 7 views
9

Quiero escribir un fragmento de Visual Studio que me permite crear rápidamente una clase de la forma:Visual Studio: ¿Es posible definir funciones personalizadas para usar en los propios Snippets de código?

public SomeClass 
{ 
    public SomeType SomeProperty { get; private set; } 
    public SomeClass(SomeType someProperty) { SomeProperty = someProperty; } 
} 

quiero el parámetro en el constructor de tener el mismo nombre que la propiedad, pero con carcasa inferior . No quiero tener que escribir el nombre dos veces. ¿Cómo hago esto?

Ya he mirado XML en busca de fragmentos y descubrí que hay ciertas funciones que se pueden usar. Por ejemplo, el fragmento de código "interruptor" incorporada contiene la siguiente instrucción:

<Function>GenerateSwitchCases($expression$)</Function> 

Según this MSDN documentation page, hay tres funciones incorporadas que se pueden utilizar en esta etiqueta <Function>. Lamentablemente, ninguno de ellos hace lo que yo quiero (minúsculas en la primera letra). ¿Es posible definir una función que pueda usar en mi fragmento?

+0

Hombre, yo sólo estaba tratando de hacer casi exactamente la misma cosa ! Argh! –

+0

ver esta respuesta: http://stackoverflow.com/questions/5663569/c-custom-code-snippet-functions – ballombert

Respuesta

5

No, esto no es posible en Visual Studio hoy. La definición y ejecución de las funciones de los fragmentos se controla directamente mediante el servicio de lenguaje C#. Actualmente no es un punto de extensibilidad. Sin embargo, está siendo considerado para una versión futura del producto.

+0

¿Lo es? ¿Estás seguro? Hay un comentario en una publicación de Microsoft Connect que dice que esto se considera "para la próxima versión", pero ese comentario es de 2005 y ha habido dos versiones siguientes desde ... – Timwi

+0

@Timwi, 100% seguro. – JaredPar

+0

Para mayor claridad, mi comentario se refería a su última oración en la que afirmó "Se está considerando para una versión futura". No estoy convencido de que este sea el caso. – Timwi

-3

Control hacia fuera este artículo sobre la creación de un fragmento de código que define las variables que se pueden utilizar varias veces y tienen que ser escritos una sola vez: http://www.switchonthecode.com/tutorials/csharp-tutorial-visual-studio-code-snippets

<Snippet> 
    <Declarations> 
    <Literal> 
     <ID>startTime</ID> 
     <ToolTip>Beginning Time Variable</ToolTip> 
     <Default>startTime</Default> 
    </Literal> 
    <Literal> 
     <ID>message</ID> 
     <ToolTip>Replace This With Your Description</ToolTip> 
     <Default>My function</Default> 
    </Literal> 
    <Literal Editable="false"> 
     <ID>DiagnosticsDebug</ID> 
     <Function> 
     SimpleTypeName(global::System.Diagnostics.Debug) 
     </Function> 
    </Literal> 
    </Declarations> 
    <Code Language="CSharp"> 
    <![CDATA[ 
    long $startTime$ = Environment.TickCount; 
    $selected$ $end$ 
    $DiagnosticsDebug$.WriteLine(String.Format(
     "$message$ took {0} ticks.", Environment.TickCount - $startTime$)); 
    ]]> 
    </Code> 
</Snippet> 
Cuestiones relacionadas