2011-12-27 13 views
5

Sono un grande fan di CodeRush e della loro filosofia attorno ai modelli. Al mio attuale lavoro, faremo una grande quantità di pairing e il consenso è una preferenza per ReSharper (v6), che praticamente mi mette in un posto in cui DEVO usarlo.Modelli tipizzati in stile CodeRush per ReSharper

Non sto cercando di avviare una guerra CodeRush/Resharper qui. Ci sono molte cose che mi piacciono su Resharper, ma c'è una cosa che faccio fatica a passare in ReSharper.

Il meccanismo del modello Live di ReSharper, che è buono, non ha nozioni incorporate per digitare il modo in cui fa CodeRush (almeno non come posso dire). Un semplice esempio è il seguente. Per gen il seguente codice:

public String MyStringProperty { get; set; } 

In CodeRush ... potrei scrivere "come" ('a' per AutoProperty e 's' per string), quindi è sufficiente cambiare il nome della proprietà.

In ReSharper, ho bisogno di digitare "prop" (per la proprietà), quindi impostare il tipo e il e il nome.

Non sembra essere un concetto simile per tipo di consapevolezza o scorciatoie di tipo in Live Templates di ReSharper. In quanto tale, non sembra essere qualcosa di simile ai numerosi modelli di due e tre caratteri per ottenere variabili, proprietà, metodi, ecc ...

Quindi, finalmente la domanda dopo tutto quello sfondo. Esiste un modo per replicare questa nozione di "modelli digitati" in ReSharper senza creare un nuovo modello live per ogni combinazione di template/tipo?

risposta

4

Attualmente, ReSharper fa non supporta il modello di utilizzo a cui ti stai riferendo. Tuttavia,, ci sono due opzioni a cui posso pensare di renderlo possibile.

  • Un'opzione è di generare modelli attivi per tutti i casi di utilizzo comune. Io uso this file, ma tieni presente che non è stato testato con R # 6.1.
  • Un'altra opzione sarebbe semplicemente scrivere un plug-in per farlo. Il ReSharper SDK ha un esempio HtmlZen che fa qualcosa di molto simile, cioè espandi una stringa DSL in un pezzo di codice. Si potrebbe facilmente fare lo stesso per l'espansione mnemonica.

Si noti che a seconda di quale opzione selezionata, non sarà possibile ottenere una capacità di espandere i modelli premendo Spazio — questo non è semplicemente possibile in ReSharper momento.

Per favore fatemi sapere se avete ulteriori domande.

Dmitri

+0

Dmitri, grazie per le informazioni. Vedrò cosa posso fare. Espandere un modello con Space non è davvero un problema per me. Questo è stato davvero usato per descrivere il processo. Tab o qualsiasi altro meccanismo di espansione va bene. –

+0

Ho appena provato a importare il file sopra in 6.1, sembra funzionare bene. –

3

non credo che sia possibile ottenere ReSharper di avere un modello che prende il nome di una lettera seguita da un tipo di una lettera. Dovrai creare un nuovo modello per ogni tipo, ad es. 'Come' e definirlo come:

public string $NAME$ { get; set; } 

Si consiglia di cambiare dove è disponibile, vale a dire C# file in cui è consentito dichiarazione di membro di tipo.

Si potrebbe rinominare il templete 'prop' a solo 'a', quindi digitare: 'a', TAB, 's', TAB, TAB, 'nome_proprietà', TAB

+0

Yup, che è praticamente quello che ho scoperto. Grazie. –

Problemi correlati