Subscribe

Snippets u Visual Studio-u – šta su i kako da ih koristimo

Snippets su predefinisani šabloni za automatizaciju ispisa koda koji se ponavlja.

Postoje dve vrste snipeta:

  • Expansion snippets koji se ubacuju na mestu gde se trenutno nalazi kursor i
  • SurroundsWith snippets koji se ispisuju oko označenog koda

Snippeti  se nalaze u fajlovima u XML formatu sa ekstenzijom .snippet koji se nalazi u instalacionom direktorijumu Visual Studio-a.

U našem primeru koristićemo Visual Studio 2012 i lokaciju snipeta na vašem računaru možete pronaći pokretanjem opcije Tools->Code Snippets Manager.

CodeSnippets-Mng

Snipeti se pokreću kucanjem skraćenice (Shortcut) u tekst editoru gde pišemo kôd.

Expansion snipets

Svakako jedna od najčešćih snipeta koji ćete koristiti je prop.  Ovaj snippet olakšava kreiranje svojstva (eng. property).

Sadržaj prop.snippet dajemo u nastavku teksta:

Ovo je expansion snippet tj. njegov sadržaj će se ispisati na mestu gde se nalazi kursor tako što otkucamo prop i pritisnemo taster TAB. Nakon toga, u text editoru VisualStudio-a trebalo bi da vam se ispise sledeći kod:

public int MyProperty { get; set; }

i kursor će biti pozicioniran na tekstu int koji će ujedno biti i označen.

U nastavku ćemo dati opis sastavnih elemenata snippeta i kreiraćemo jedan za generisanje kostura test metode.

U praksi, kada pišete testove (krenuli ste da pišete unit testove, zar ne?) najčešće kucamo sledeći kôd (nap. kôd se može razlikovati u zavisnosti koji test unit framework koristite). U našem primeru koristićemo test framework koji dolazi sa Visual Studiom i potrebno je da dodate referencu na Microsoft.VisualStudio.TestTools.UnitTesting fajl, kao i using deo:

[TestMethod] public void NazivTestMetode() { }

Kako bi skratili kucanje ovog koda napravićemo snippet tm u fajlu tm.snippet.

Za šablon možete koristiti gore pomenuti prop snippet s’tom razlikom što ćemo izostaviti neke delove radi preglednosti:

Ključni delovi za nas su:

Shortcut: skraćenica koja će se koristiti za generisanje koda na osnovu snipeta

SnippetTypes: Može biti jedan od dva gore navedena (Expansion ili SurroundsWith) ili oba.

U delu Declarations->Literal upisuju se reči koje ćemo kasnije moći da menjamo kada se generiše snippet (u našem primeru mi NazivMetode želimo da ispišemo svaki put kada se generiše kôd. Ovaj ID se mora koristiti i u CDATA sekciji kasnije

CDATA sekcija sadrži tekst našeg snipeta. Literale koje smo stavili u prethodnoj sekciji koristimo tako što oko njih stavimo dolar znak (npr. $NazivMetode$). Ovaj tekst između dolar znakova mora odgovarati tekstu koji smo upisali u ID literala.

Snippet $end$ je rezervisan i označava mesto u kodu gde će se kursor pozicionirati nakon izvršenog snipeta.

Ukoliko se snippet ne pokreće kada otkucate tm i pritisnete TAB proverite da li ste fajl tm.snippet snimili u gore navedni direktorijum. Takođe da li je vaš novi snippet dostupan možete proveriti i pokretanjem gore navedene opcije Visual Studio-a.

SurroundsWith snippet

Ovaj snipet se izvršava tako što najpre označite deo koda oko kojeg želite da se generiše snippet, kliknete CTRL-K, S (ili kliknete desnim tasterom miša i izaberete opciju Surround with) i izaberete željeni snippet (npr. tryf).

Pisanje ovog snippeta je slično prethodnom s’tim što u SnippetTypes upišemo  <SnippetType>SurroundsWith</SnippetType>  i njegovo pisanje ostavljamo čitaocu za vežbu.

Za kreiranje snippeta možete koristiti i Snippet editor.

Leave a Reply