Developer

Take advantage of code snippets in Visual Studio 2005

Visual Studio 2005's auto-complete feature is new for C# developers and offers additional functionality for Visual Basic and other languages. Discover how using Visual Studio 2005's code snippets can help you boost productivity.

The auto-complete features of Visual Studio .NET are wonderful if you are a Visual Basic developer, but C# developers sorely missed out on the feature. (Of course, C# developers who never use Visual Basic may be unaware of its existence.) Fortunately, Visual Studio 2005 brings auto-complete for code snippets to C#, J#, and XML, as well as additional features for Visual Basic. Let's take a closer look at auto-complete.

Code snippets

Code snippets are reusable, task-oriented blocks of code. It can be as simple as creating an exception to sending an e-mail. They are combined with IntelliSense to increase developer productivity, making them available with a few keystrokes. While you can easily create your own snippets, the Visual Studio 2005 installation includes a set of Visual Basic and Visual C# code snippets. One popular code snippet allows you to easily add a property to class. A property is added by simply typing prop into your Visual Studio source and hitting [Tab] twice. The result of this action follows:

private int myVar;

public int MyProperty

{

get { return myVar;}

set { myVar = value;}

}

Visual Basic doesn't automatically display a context menu -- you simply begin typing an element and then selecting [Tab] to insert a snippet. The following Visual Basic code was generated after typing Property and hitting [Tab]:

Private newPropertyValue As Integer

Public Property NewProperty() As Integer

Get

Return newPropertyValue

End Get

Set(ByVal value As Integer)

newPropertyValue = value

End Set

End Property

The generated code is generic, so you can easily customize it for your application. Visual Studio 2005 simplifies the process with the variable type and names appearing in boxes (which are green by default) so you can enter your values and quickly tab through to change.

Snippets are available for many code elements; snippets commonly use language keywords in the IntelliSense pop-up window. All you need to do is select the keyword and hit [Tab] twice to insert the snippet. Some C# examples include if, for, foreach, switch, while, and using. The for loop code snippet follows:

for (int i = 0; i < length; i++)

{

}

Or, you can generate the following code for the Visual Basic For statement:

For index As Integer = 1 To 10
Next

Typing and hitting [Tab] is one approach to using snippets, but you can also right-click your mouse and select the Insert Snippet option from the context menu (or Surround With in C#).

Code snippet design

Code snippets are built with XML; they are contained in their own files using the .snippet file extension. The XML markup in the .snippet file provides snippet metadata, which includes a description, shortcut, title, and the actual code. In addition, Visual Basic code snippets may include code references.

You can get a better idea of code snippet file layout by examining the snippets installed with Visual Studio. By default, they are stored in the following folder:

C:\Program Files\Microsoft Visual Studio 8\LANGUAGE\Snippets\1033\

The LANGUAGE portion of the path is replaced by the language being used like VB, VC#, and XML. Look at the C# prop code snippet to get a better idea of how they are coded. The prop code snippet is in the following directory:

C:\Program Files\Microsoft Visual Studio 8\VC#\Snippets\1033\Visual C#\Visual C#

Listing A contains the code snippet file. The CodeSnippets element is the root, and it may contain one or more CodeSnippet elements. Its metadata is defined in the Header element. The name that appears in the IntelliSense pop-up window is defined by the Shortcut element. The Declarations element is optional -- it defines replaceable sections of the snippet. The Code element specifies the code that is actually inserted when the snippet is used. Visual Studio includes the Code Snippets Manager to manage snippets.

Code Snippets Manager

The Code Snippets Manager allows you to set the directories and individual snippets that you want available to insert into your code. It is available via the Visual Studio Tools menu, and provides the following information and options:

  • Language: A drop-down list that allows you to select the development language whose code snippet folders are displayed in the folder list.
  • Location: This displays the path to the folders in the folder list or to the selected code snippet file.
  • Folder list window: This displays the set of subfolders and code snippet files for the language selected.
  • Description window: This displays information about the folder or code snippet file selected in the folder list. For a code snippet file, the text from its Author, Description, Shortcut, and Type fields is displayed.
  • Add: This button allows you to add a folder to the list. It opens the code snippet directory window to navigate to the folder.
  • Remove: This button allows you to remove a folder from the list, but it does not physically delete it.
  • Import: This button allows you to import snippet files to a specific folder.
  • Search Online: This opens a search page that allows you to search for snippets online.

The creation and management of code snippets can be an involved process. Thankfully, the Visual Studio IDE provides the tools to streamline the process.

Get a productivity boost

IntelliSense is a great feature that speeds up development by assisting with code development and negating the need to look up code syntax and so forth. Code snippets take it a step further by extending syntax help by inserting code blocks. This is nothing new to Visual Basic developers, but it's a welcome sight for their C# counterparts. Visual Studio 2005 includes a complete code snippet architecture to aid their use.

Tony Patton began his professional career as an application developer earning Java, VB, Lotus, and XML certifications to bolster his knowledge.

---------------------------------------------------------------------------------------

Get weekly development tips in your inbox Keep your developer skills sharp by signing up for TechRepublic's free Web Developer newsletter, delivered each Tuesday. Automatically subscribe today!

About

Tony Patton has worn many hats over his 15+ years in the IT industry while witnessing many technologies come and go. He currently focuses on .NET and Web Development while trying to grasp the many facets of supporting such technologies in a productio...

9 comments
ortegahey
ortegahey

Hi, I don't know if this way is documented, but a very useful way to reuse code is by simply selecting, dragging and dropping it to the toolbox. It creates a new tool (not available in design mode) that can be renamed as you like.

edmicman1
edmicman1

"The creation and management of code snippets can be an involved process. Thankfully, the Visual Studio IDE provides the tools to streamline the process." Such as? An example of taking custom code you've written and turning it into a snippet would have been nice. Like another commenter, I've got code to creating database connections or returning a database with a SQL query that'd be nice to save instead of having to hunt and find where I did it in another file. In my past experience, it was a PITA to try and actually create a new snippet, let alone manage it in any way within the environment. I haven't tried adding new ones in 2008 yet. As for C#, I've always thought it *did* have code snippets? I've always accessed them through ctrl-k+ctrl-x to bring up the choices. I'm not quite following on what the differences are between snippets for VB vs C# in terms of the article?

abhilash2006
abhilash2006

Very Good Fetaure. But can you please tell me some links for Snippets download, and any site that giving Databae connectivity?? Thanks Abhilash Thomas OASYS INFOTECH LLC DUBAI UAE

CreepinJesus
CreepinJesus

Take advantage of Visual Studio 2008's code snippets...

Justin James
Justin James

VB & C# snippets are the same in concept and execution, as far as I know. J.Ja

gregory.e.rubinstein
gregory.e.rubinstein

You can create any code snippets yourself, including the ones that deal with database connectivity. Just find out where on your machine the *.snippet files are located and place your snippet there. You can also use the Code Snippets Manager from the Tools menu of VS 2008 to add or import a code snippet.

dorin_bogdan
dorin_bogdan

Hi, I'd like to know if it is possible to define JScript code snippets. Thanks, Dorin.

TryingToBeGood
TryingToBeGood

I thought the article was referring to the variety of snippets available. Go to the Tools menu, Snippet Manager and switch between languages. On my computer, there are many more available in VB.

Justin James
Justin James

I keep meaning to try making snippets of my own, but the "boilerplate code" I frequently type already has snippets built in. Good stuff nonetheless, though. J.Ja

Editor's Picks