ReSharper

Efendim, uzun zamandır yapmak isteyipte bir türlü zaman bulamadığım ReShaper yazı dizisine başlıyorum ziyadesiyle. Öncelikle ReSharper nedir bilmeyen arkadaşları onunla tanışmaya davet ediyorum. Hemen gidip Nightly Buildlerden “Works here” yazanlardan bir tanesini indirip kurun ki anlattıklarımın bir anlamı olsun. ReSharper için kısaca Visual Studio’yu kullanılabilir kılan bir eklenti diyebiliriz. Benzer bir ürün de Developer Express’in CodeRush‘ıdır. Fakat ikisini de tam anlamıyla denedikten sonra sizde benim gibi Developer Express otursun grid yazmaya devam etsin diyeceksiniz. ReSharper’ın belli başlı özelliklerini 4 kategoride toplayabiliriz:

Sırayla anlatmaya başlayayım:
Smart Enter:
(Ctrl+Shift+Enter) Herhangi bir dil elemanı veya bloğun otomatik olarak tamamlanmasını sağlar. Örneğin:

if anahtar kelimesinden sonra Ctrl+Shift+Enter tuşlarına basınca if bloğu otomatik olarak tamamlanacaktır.

Type Completion:
(Shift+Alt+Space) using ile dahil etmediğiniz bir sınıf kullanmanız gerektiğinde önekleri yazdıktan sonra çalıştırdığınızda hem using eklenmesini hem de istediğiniz sınıf adının tamamlanmasını sağlar. Örnek:

Tamamlama listesinden WebRequest seçildiği zaman usingler arasına System.Net namespace’i de eklenecektir. Dikkat ettiyseniz WebRequest’i anlatmak için WebR yazmadık sadece WR harflerini yazmamız yetti, ReSharper’ın her yerinde CamelHump kullanarak tamamlama yapabilirsiniz.

Smart Code Completion:
(Ctrl+Alt+Space) Çoğu zaman Bir yerde kod tamamla istediğimizde sadece bulunduğumuz yere uygun önermeleri görmek isteriz. ReSharper bunu yaparken bazı ekstra özelliklerde sunuyor. Örneğin:

Count Extension metoduna lambda expression, Predicate veya anonymous delegate geçebiliriz. Yani count içine Func<int,bool> imzasına sahip herhangi bir şey yazılabilir. ReSharper bize hepsini öneriyor. Create method Predicate(int) seçeneğinizi seçersen bool döndüren ve int tipinde tek parametre kabul eden bir metot otomatik olarak oluşturulacaktır.

Symbol Completion:
(Alt+) Bir tipi belirttikten sonra değişken ismini Alt+ tuşlarını kullanarak tamamlatabiliriz. Örneğin:

WebRequest sınıfı için 2 tane öneri ile geliyor, çoğu durumda bu önerilerden birisi zaten yazmak istediğimiz olacaktır. Bu özelliğin aktif olması için ReSharper’ın intellisense’ini kullanıyor olmanız lazım.

Surround With:
(Ctrl+E, Ctrl+U) Herhangi bir kodu seçtikten sonra bu tuş kombinasyonunu uygularsanız, Surround With kısayol menüsü açılır:
Bu menüde de bir şey yazmanıza gerek yok. Kullanmak istediğiniz seçeneğin kısayoluna basmanız yeterli. Bu özelliği kullandıkça ne kadar rahatlık getirdiğini anlayacaksınız.
Incremental Selection:
(Ctrl+W ya da Alt+Shift+) ve (Ctrl+Shift+W ya da Ctrl+Alt+) Incremental Selection komutunu her kullandığımızda kod bloklarına göre seçim gitgide arttırılacaktır. Birkaç deneme yaparak bu özelliğin nasıl çalıştığını anlayabilirsiniz.

  1. Bu kadar kısa ve öz bir şeilde ReSharper ı anlatığın için kurup deniyecem vs in bu eksikliklerini ne zamana tamamlayacağını beklerken Adamlar bitirmişler bu işi… Teşekkürler Anlatımın için.

  2. ibrahim dursun

    Deneyin pişman olmayacaksınız. Yalnız şöyle bir göz atıp bırakmayın, derinlemesine bir inceleyin ancak o zaman değerini anlıyorsunuz.

  3. Yunus Emre

    e bunların hepsi zaten Visual Studio da vardı. acaba siz eski sürümlerini mi kullanıyorsunuz ?

  4. ibrahim dursun

    Visual Studio’da Smart Enter, Incremental Selection, CamelHumps ve Smart Code Completion özellikleri yok sadece intellisense var.

    ReSharper’ı bir süre denedikten sonra farkı anlayacaksınız.

  5. tolga yıldız

    .net Smart Enter: 2 defa ust uste taba basarak oluyor .Net te; (if tab tab) Surround With: alanı secip sag tıklayrak surrond with diyebilirsiniz.

    ama resharper bu konuda .net idesinden daha kullanışlı

  6. Evet arkadaşlar deneyince farkı gerçekten göreceksiniz, şahsen ben visual basic deki eksikliği fark ettim

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>