Xcode Snippet Nasıl Oluşturulur Ve Kullanılır ?
Herkese selam, bu yazımızda Xcode ile kendimize ve takımımıza özgü snippet’ları nasıl oluşturacağımızı ve kullanacağımızı anlatacağım.
Snippet nedir ?
Snippet kullanımı kodlama hızımızı arttırabilecek bir özelliktir, Xcode zaten kendi içerisinde belli başlı snippet’ları barındırmaktadır. Biz kendimize özgü snippet’ları ekleyeceğiz, hem takımımızın hem de kendi kodlama hızımızı arttıracağız. Örnek vermek gerekirse aşağıdaki fotoğrafta xcode’un kendi içerisinde barındırdığı “func” snippet’ını görmekteyiz. func yazdıktan sonra bizden bir fonksiyon ismi, eğer vermemiz gerekiyorsa fonksiyon içerisine parametre ve eğer bir değer döndürmek istiyorsak return kısmını doldurmamızı söylüyor.
Şimdi biz kendimize özgü bir kaç snippet yaratabiliriz en basit örneğinden başlayalım bir feature geliştirdik ve bu feature geliştirdiğimiz class içerisinde yorum satırları bırakmamız gerekiyor bunun için kendimize bir snippet oluşturabiliriz.
İlk olarak Xcode içerisinde snippet oluşturmak istediğimiz kod parçasını seçiyoruz mesela yukarıdaki örnekten yola çıkarak kendimize ait MARK snippet’’ını oluşturalım.
Yazdığımız comment satırını seçip sağ tıkladık daha sonrasında burada Create Code Snippet… yazan alana tıklıyoruz ve bize yukarıdaki gibi Library sekmesini açıyor (cmd + shift + L kombinasyonu ile açtığımız kısım)
Yukarıdaki fotoğrafta görüldüğü üzere burada bizden bu snippet için bir isim istiyor My Code Snippet yazan kısıma snippet’ımızın adını vereceğiz şimdilik Section Comment Şeklinde bir isim verelim.
Ve aşağıda gördüğünüz gibi bizim seçtiğimiz kod parçası, yorum satırı geldi peki biz her seferinde her yorum satırı için veya diğer snippet kullanımlarında bu şekilde her section için snippet mı oluşturacağız ? Hayır.
Placeholder Oluşturma
Bunun için özel bir argüman kullanarak buraya bir placeholder ekleyeceğiz <#inputSection#> “<##>” yazdığım alana kullanıcıya predefined olarak bir hint vermeliyiz kullanıcı buraya ne girebileceğini anlaması gerekiyor, örneğin <#nameOfSection#> yazabiliriz.
Düzenledikten sonra kodumuz şu şekilde gözükmeli;
Burada Language ve Platform’u All şeklinde bırakabiliriz, Completion kısmı ise bizim bu code snippet’ı nasıl çağıracağımızı belirttiğimiz kısım olacak ben mark-section şeklinde tanımladım herhangi bir dosya içerisinde mark-section yazdığım zaman yukarıda tanımlamış olduğumuz code snippet oluşacak.
Avaibility kısmı ise biraz daha geniş kapsamlı aslında, yazdığımız snippet’ın hangi durumlarda görünebilir olacağını belirleyebiliriz;
- All: Her yerde görüntüleyebilir ve kullanabiliriz.
- Class Implementation: Adından da anlaşılacağı üzere bir class içerisinde kullanmamıza olanak sağlar.
- Code Expression: Bir kod bloğu içerisinde kullanmamıza olanak sağlar.
- Function Or Method: Bir fonksiyon veya method içerisinde kullanmamıza olanak sağlar.
- String Or Comment: Bir string veya comment içerisinde kullanmamıza olanak sağlar.
- Top Level: Bir class dışında veya function dışında kullanmamıza olanak sağlar geneldde class’ın en üstünde kullanacağı zaman seçilmesi uygundur.
Code Snippet’ın Konumu
Tamam, kendimize ait bir snippet oluşturduk peki bu snippet’a nereden ulaşabiliriz ? Bu snippet’ı ekip arkadaşlarımıza nasıl ulaştırabiliriz ?
Bunun için bir kaç terminal komutunu kullanmamız gerekecek;
cd ~/Library/Developer/Xcode/UserData
Bu komut ile UserData klasörü içerisine gireceğiz daha sonra “ls” komutunu yazarak burada CodeSnippets adında bir dosya olup olmadığına bakacağız ama yukarıdaki adımları tamamladıysanız sizde de bu dosyanın görünür olması gerekiyor, daha sonra
cd CodeSnippets/
komutu ile bu klasörün içerisinde giriyoruz “.codesnippet” uzantılı dosyalar göreceğiz ve muhtelemen isimleri farklı olacak, bunun nedeni snippet’ı oluşturduğumuz anda xcode’un bu dosyaları hashleyerek tutmasıdır ama önemli değil.
EA006FC0-AF70-4299-AFEF-3E1FEFD2BB06.codesnippet
Yukarıdaki gibi bir dosya olduğunu düşünelim;
open -a TextEdit EA006FC0-AF70-4299-AFEF-3E1FEFD2BB06.codesnippet
komutu ile dosyanın içeriğine bakabiliriz, eğer içerik sizin oluşturduğunuz dosya ile uyuyorsa aşağıdaki komut ile dosyanın adını değiştirip masaüstüne kopyalama işlemi yapabilirsiniz.
mv EA006FC0-AF70-4299-AFEF-3E1FEFD2BB06.codesnippet markSection.codesnippet && cp markSection.codesnippet ~/Desktop/
Yukarıdaki komutu çalıştırdıktan sonra bu dosyayı markSection.codesnippet olarak masaüstünde görebilirsiniz, bundan sonra yapmanız gereken tek işlem bu dosyayı takım arkadaşlarınıza atarak yukarıda belirtilen dosya yoluna kopyalamalarını istemek olacaktır.
Not: Eğer takım arkadaşlarınızda UserData içerisinde CodeSnippets klasörü yok ise “mkdir CodeSnippets” komutu ile klasörü oluşturmalarını ve içerisinde atmasını söyleyebilirsiniz.
Tüm adımları tek tek açıkladım umarım atladığım kısım olmamıştır, herkese kolay gelsin.. Bir sonraki yazıda görüşmek üzere :)