2011-12-27 13 views
5

Soy un gran admirador de CodeRush y su filosofía en torno a las plantillas. En mi trabajo actual, haremos una gran cantidad de emparejamientos y el consenso es una preferencia por ReSharper (v6), que prácticamente me pone en un lugar donde DEBO usarlo.Plantillas de estilo CodeRush para ReSharper

No estoy buscando iniciar una guerra CodeRush/Resharper aquí. Hay muchas cosas que me gustan de Resharper, pero hay una cosa que me cuesta pasar en ReSharper.

El mecanismo de plantillas en vivo de ReSharper, aunque es bueno, no tiene las nociones incorporadas para tipear como lo hace CodeRush (al menos no como yo puedo decir). Un ejemplo simple es el siguiente. Para Gen el siguiente código:

public String MyStringProperty { get; set; } 

En CodeRush ... Podría escribir "como" ('a' para AutoProperty y 's' para la cadena), entonces simplemente cambiar el nombre de la propiedad.

En ReSharper, tengo que escribir "prop" (para Propiedad), luego establezco el tipo y el nombre.

No parece haber una noción similar para el conocimiento de tipo o los accesos directos de tipo en las Plantillas Vivas de ReSharper. Como tal, no parece haber nada parecido a las numerosas plantillas de dos y tres caracteres para obtener las variables, propiedades, métodos, etc. predefinidos ...

Entonces, finalmente la pregunta después de todo ese trasfondo. ¿Hay alguna manera de replicar esta noción de "plantillas mecanografiadas" en ReSharper sin crear una nueva plantilla en vivo para cada combinación de plantilla/tipo?

Respuesta

4

Actualmente, ReSharper hace no es compatible con el patrón de uso al que se refiere. Sin embargo,, hay dos opciones que se me ocurren para hacer esto posible.

  • Una opción es generar plantillas activas para todos los casos de uso común. Yo uso this file, pero tenga en cuenta que no se ha probado con R # 6.1.
  • Otra opción sería simplemente escribir un complemento para hacer esto. El SDK de ReSharper tiene un ejemplo de HtmlZen que hace algo muy similar, es decir, expande una cadena de DSL en un fragmento de código. Usted podría hacer lo mismo para la expansión mnemotécnica.

Tenga en cuenta que la opción que elija, no tendrá una capacidad de ampliar las plantillas pulsando espacio — esto simplemente no es posible en este momento ReSharper.

Háganme saber si tiene más preguntas.

Dmitri

+0

Dmitri, gracias por la información. Veré lo que puedo hacer. Expandir una plantilla con Space no es realmente un problema para mí. Eso fue realmente usado para describir el proceso. Tab, o cualquier otro mecanismo de expansión está bien. –

+0

Acabo de intentar importar el archivo anterior en 6.1, parece funcionar bien. –

3

No creo que sea posible hacer que Resharper tenga una plantilla que lleva un nombre de una letra seguido de un tipo de letra. Deberá crear una nueva plantilla para cada tipo, p. 'Como' y lo definen como:

public string $NAME$ { get; set; } 

Es posible que desee cambiar el lugar en que esté disponible, es decir, archivos de C#, donde está permitido declaración de miembro tipo.

Se puede cambiar el nombre de 'sostener' templete a poco 'a', a continuación, debe escribir: 'a', TAB, 's', TAB, TAB, 'nombre_propiedad', TAB

+0

Sí, eso es más o menos lo que he descubierto. Gracias. –

Cuestiones relacionadas