Selvom man selvfølgelig kan spare en hel del taste-tid ved at strukturere sin kode fornuftigt og udfaktorere generelle funktioner og klasser, så bruger man som udvikler stadig tid på at indtaste de samme eller lignende kode-stumper mange gange. Når man vil løbe et array igennem taster man den samme for (int i = 0; i < hansArray.Length; i++) sætning ind hver gang. Og det burde ikke være nødvendigt i en profession, hvor automatisering ikke er en fuldstændig ukendt størrelse. :^)
I Whidbey har man mulighed for at benytte sig af et repetoire af indlagte code-snippets. Og som stort set alt andet andet i Whidbey kan man udvide med egne snippets. Nedenunder ses to elementer fra en Code-snippet til C#:
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
<SnippetType>SurroundsWith</SnippetType>
</SnippetTypes>
<Code Language="csharp" Format="CData"><![CDATA[for (int $index$ = 0; $index$ < $max$; $index$++)
{
$selected$ $end$
}]]>
</Code>
I en code-snippet til C# kan man definere snippet-typen. Expansion giver en almindelig indsættelse, og hvis man har erklæret, at en snippet også kan være af typen SurroundsWith, har man mulighed for at bruge det text, der var valgt da snippet'en blev valgt. SurroundsWith findes pt. ikke til VB.
Vi har sammensat et lille lavteknologisk slideshow der viser, hvordan brugen af code-snippets foregår i VB og C#:
C#
Code-snippets vises som en del af Intellisense:
eller den kan vælges explicit i context-menuen:
herefter har man mulighed for at fylde den valgte snippet med de rette navne og værdier:
og ændrer man f.eks. i til index vil alle tilfælde af i blive renamet.
Visual Basic
Menuen for Snippets skal man vælge i Context-menuen:
Og så er det bare at vælge den rigtige:
Afsluttende
Der kan være mange taste-tryk sparet ved en fornuftig brug af Code-snippets. Man kan eventuelt have suiter af Code-snippets for større organisationer, der kan være med til at gøre koden mere konsistent på tværs af udviklere. Det skulle dog helst ikke blive en sovepude eller en erstatning for at tænke over sin kode :^).
|