2011-12-27 9 views
5

CodeRush'un büyük bir hayranıyım ve bunların şablonları hakkındaki felsefesi. Şu anki işimde, büyük miktarda eşleme yapacağız ve fikir birliği beni hemen kullanmam gereken bir yere koyan ReSharper (v6) için bir tercihtir.CodeRush tarzı yazılan şablonlar ReSharper için

Burada CodeRush/Resharper savaşını başlatmak istemiyorum. Resharper'ı sevecek çok şey var ama ReSharper'da geçmekte zorlandığım bir şey var.

ReSharper'ın canlı şablon mekanizması, iyi durumda, CodeRush'un yaptığı gibi (en azından benim söyleyebildiğim gibi) yazım için yerleşik kavramlara sahip değil. Basit bir örnek şu şekildedir. gen için aşağıdaki kodu: CodeRush yılında

public String MyStringProperty { get; set; } 

... Ben "olarak" yazabilirsiniz ('a' AutoProperty ve dize için 's' için), ardından özet özelliğin adını değiştirin.

ReSharper'da, "prop" (Özellik için) yazmalı ve ardından tür ve adı belirtmem gerekir. ReSharper's Live Templates'de tür farkındalığı veya yazım kısayolları için benzer bir kavram yok gibi görünmektedir. Bu şekilde, önceden yazılan değişkenler, özellikler, yöntemler, vb. Elde etmek için sayısız iki ve üç karakter şablonuna benzer bir şey görünmüyor.

Son olarak, tüm bu arka plandan sonra soru. Her şablon/tip kombinasyonu için yeni bir canlı şablon oluşturmadan ReSharper'daki "yazılan şablonlar" kavramını kopyalamanın herhangi bir yolu var mı?

cevap

4

, ReSharper yapar atıfta bulunduğunuz kullanım kalıbını desteklemez. Ancak,, bunu mümkün kılmak için düşünebildiğim iki seçenek var.

  • Tüm yaygın kullanım durumları için canlı şablonlar oluşturmak bir seçenektir. this file kullanıyorum, ancak R # 6.1 ile test edilmediğini lütfen unutmayın.
  • Bunu yapmak için başka bir seçenek basitçe bir eklenti yazmak olabilir. ReSharper SDK, bir çok benzer bir şey yapan, yani bir DSL dizisini bir kod parçasına genişleten bir HtmlZen örneğine sahiptir. Mnemonik genişleme için aynı şeyi kolaylıkla yapabilirsiniz. Seçtiğiniz hangisi seçeneği, bu şu anda sadece ReSharper mümkün değildir Space — basarak şablonlar genişletme yeteneğine almazsınız

Not.

Başka sorularınız olursa lütfen bize bildirin.

Dmitri

+0

Dmitri, Bilgi için teşekkürler. Ne yapabileceğimi göreceğim. Bir şablonu Space ile genişletmek benim için gerçekten bir sorun değil. Bu gerçekten süreci tanımlamak için kullanıldı. Sekme veya başka bir genişletme mekanizması iyi. –

+0

Sadece yukarıdaki dosyayı 6.1'e aktarmayı denedim, iyi çalışıyor gibi görünüyor. –

3

Resharper'ın tek harfli bir harf ve ardından bir harfli bir şablona sahip olmasını sağlamak mümkün değil. Her tür için yeni bir şablon oluşturmanız gerekir. 'Farklı' ve tanımlamak:

public string $NAME$ { get; set; } 
kullanılabilir nerede olduğunu değiştirmek isteyebilirsiniz

, yani C# dosya tipi üyesi bildirimi izin verilmediği durumlarda.

Sen 'prop' Templete adlandırmak olabilir

sadece 'a', o zaman yazarsınız için: 'a', TAB 's', TAB, TAB, 'PROPERTY_NAME', TAB Şu

+0

Evet, bu hemen hemen ben keşfettim budur. Teşekkürler. –