Snippet Kullanımı

Eyl 06, 2013

Snippet, sözlük anlamı makasla kesilmiş parça anlamına gelen, kendi başına çalışmayan ancak kod içerisinde kısayollar aracılığı ile kullanılan kaynak kodu parçacıklarıdır. Sık kullanılan kod parçacıklarının kısayollara bağlanması ve gerektiğinde kolay bir şekilde  çağırılabilmesi prensibi ile kulanılır. XML(Extensible Markup Language - Genişletilebilir İşaretleme Dili) ile yazılır. Microsoft’un programcılara kolaylık sağlaması açısından Microsoft Visual Studio içerisinde yazılmış olan hazır "Snippet"’lar mevcuttur. Örnek olarak "for" ve "foreach" komutları gösterilebilir. Kod yazım aşamasında ikisinden birini yazdıktan sonra 2 kere tab tuşuna basılması gerekli kod parçacığının çıkması için yeterlidir. "Snippet" kullanımı aynı kodların tekrar tekrar yazılmasına engel olur ve pratiklik konusunda programcıya büyük kolaylık sağlar.

Uygulama 1: Kullanımı

  1. Örnek olarak Microsoft Visual Studio'da "for" yazıldığında karşılaşılan otomatik tamamlama(intellisense) menüsünde "for"’un yanında yırtılmış bir sayfa amblemi ve yanında da bir "Snippet" olduğuna dair bir açıklama yer alır.




  2. Ardından 2 kere "Tab" tuşuna basılarak aşağıdaki kod parçası yazdırılabilir. "Ctrl K +X" kısayolunun kullanılması ile de "Snippet" girişi yapılabilir.




  3. Ctrl K + S kısayolu ile de Surround with Snippet(Kod parçacığı içerisine almak) işleminin gerçekleşmesi, yani seçilen kod parçacığının "Snippet" içerisinde kalması sağlanabilir.



    Aşağıdaki gibi bir sonuç gözlenir.




  4. "Snippet" metotları kullanılarak örneğin, switch yapısında enum tipli üyeler her biri farklı bir case olmak üzere otomatik olarak oluşturulur. "Cinsiyet" adında bir enum tipli bir sınıf yazılırsa bu enum tipli sınıfın nesnelerini, kullanılan "Snippet" metodu otomatik olarak oluşturacaktır. Bunu gerçekleştirmek için switch fonksiyonunun içine "cinsiyet" nesnesini yazmak yeterlidir.



Snippet Oluşturmak

Sadece Visual Studio'nun "Snippet" 'leriyle sınırlı kalınmayıp, el ile de kullanıcıya özgü "Snippet" 'lar da yaratılabilir. Genel yapısı aşağıdaki gibidir. XML ifadelerinin arasında tanımlamalar yer almaktadır.

<CodeSnippets> 
<CodeSnippet Format="x.x.x">
<Header>
<Title>Başlık</Title>
<Author>Yazar</Author>
<Description>Açıklama</Description>
<HelpUrl>Yardım url adresi</HelpUrl>
<SnippetTypes>
<SnippetType>Snippet Türü</SnippetType>
<SnippetType>SurroundWith</SnippetType>
</SnippetTypes>
<Keywords>
<Keyword>Anahtar Kelimeler</Keyword>
</Keywords>
<Shortcut>Kısayol</Shortcut>
</Header>
<Snippet>
<References>
<Reference>
Referans dosyası ekleme
<Assembly>... </Assembly>
<Url>... </Url>
</Reference>
</References>
<Imports>
<Import>
<Namespace>Assembly içindeki namespace</Namespace>
</Import>
</Imports>
<Declarations>
Renkli kutular içindeki parametrelerin tanımlanması
<Literal Editable="true/false">
Text özellikli parametreler
<ID>... </ID>
<ToolTip>... </ToolTip>
<Default>... </Default>
<Function>... </Function>
</Literal>
<Object Editable="true/false">
Belirli bir türe sahip parametreler
(string, integer yada referans tipler gibi)
<ID>... </ID>
<Type>... </Type>
<ToolTip>... </ToolTip>
<Default>... </Default>
<Function>... </Function>
</Object>
</Declarations>
<Code Language="Language" Kullanılacak="" dil=""
Kind="method body/method decl/type decl/page/file/any"
Delimiter="Delimiter">
Kod bloğu
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>

 

 Uygulama: Snippet Oluşturmak

  1. File(Dosya) -> New(Yeni) -> File(Dosya) yolu ile yeni bir XML dosyası oluşturulur.




  2. Gelen pencereden "XML File" seçilip Add(Ekle) 'ye tıklanır.




  3. Visual Studio'da oluşturulan XML dosyasının içerisine aşağıdaki kod yazılır. C# dilinde yazılmış yerde kullanıcının isteğine göre değişiklikler yapılabilir, isteğe bağlıdır. Örneğin, "Property" ve "Field" bloklarını otomatik olarak oluşturan bir "Snippet" yazılmak isteniyorsa aşağıdaki gibi yazılır. İki tane "$" işareti arasına yazılan değişkenler daha önceden XML etiketlerinin içerisinde tanımlanan "ID" bloklarıyla aynı olmak zorundadır. Bu sayede bir tanesi değiştirilirse hepsi aynı şekilde değişir. En sondaki "$end$", kod bloğunun sonlandığını belirtir.

    <?xml version="1.0" encoding="utf-8" ?>
    <CodeSnippets  xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
      <CodeSnippet Format="1.0.0">
        <Header>
          <Title>getset</Title>
          <Shortcut>getset</Shortcut>
          <Description>Get ve Set yapısı için snippet</Description>
          <Author>İTU BİDB</Author>
          <SnippetTypes>
            <SnippetType>Expansion</SnippetType>
          </SnippetTypes>
        </Header>
        <Snippet>
          <Declarations>
            <Literal>
              <ID>type</ID>
              <ToolTip>Tip</ToolTip>
              <Default>int</Default>
            </Literal>
            <Literal>
              <ID>property</ID>
              <ToolTip>Özellik adı</ToolTip>
              <Default>Property</Default>
            </Literal>
            <Literal>
              <ID>field</ID>
              <ToolTip>Değişken adı</ToolTip>
              <Default>Variable</Default>
            </Literal>
          </Declarations>
          <Code Language="csharp">
            <![CDATA[
            private $type$ $field$;
            public $type$ $property$
            {
              get {return this.$field$ ; }
              set {this.$field$ = value ; }
            }
            $end$]]>
          </Code>
        </Snippet>
      </CodeSnippet>
    </CodeSnippets>

  4. Yazılan XML dosyası .snippet uzantılı şekilde herhangi bir yere kaydedilir.




  5. Daha sonra Visual Studio'nun sekmelerinden Tools(Araçlar) -> Code Snippets Manager tıklanır.




  6. Import(Al)'a tıklanarak XML dosyasının kaydedildiği yer bulunur ve çift tıklanır. Gelen ekranda da Finish(Bitti)düğmesine, daha sonra da OK(Tamam)'a tıklanarak ekleme işlemi sonlandırılır.






  7. İstenilirse OK(Tamam)'a tıklamadan önce eklenen "Snippet" dosyasının üzerine tıklanarak sağ tarafta özellikleri görülebilir.




  8. Artık hazırlanan "Snippet" kullanılmaya hazırdır. Visual Studio'da "Snippet"'in adı yazılmaya başlandığında otomatik tamamlama menüsünde ortaya çıkacaktır. Ardından iki kere "Tab" tuşuna basılarak "getset" adındaki "Snippet" otomatik olarak oluşturulabilir.




  9. Sonuç olarak oluşturulan "Snippet" kod parçacığı aşağıdaki gibidir. Örnek olarak, "Variable" adlı değişkeninin yerine başka bir şey yazıldığında alttaki dikdörtgen içine alınmış olan değişkenler de değişir.