Learn to use the code editor

In this 10-minute introduction to the code editor in Visual Studio, we'll add code to a file to look at some of the ways that Visual Studio makes writing, navigating, and understanding code easier.

Tip

If you haven't already installed Visual Studio, go to the Visual Studio downloads page to install it for free.

If you haven't already installed Visual Studio, go to the Visual Studio downloads page to install it for free.

This article assumes you're already familiar with a programming language. If you aren't, we suggest you look at one of the programming quickstarts first, such as create a web app with Python or C#, or create a console app with Visual Basic or C++.

Tip

To follow along with this article, make sure you have the C# settings selected for Visual Studio. For information about selecting settings for the integrated development environment (IDE), see Select environment settings.

Create a new code file

Start by creating a new file and adding some code to it.

  1. Open Visual Studio. Press Esc or click Continue without code on the start window to open the development environment.

  2. From the File menu on the menu bar, choose New > File.

  3. In the New File dialog box, under the General category, choose Visual C# Class, and then choose Open.

    A new file opens in the editor with the skeleton of a C# class. (Notice that we don't have to create a full Visual Studio project to gain some of the benefits that the code editor offers; all you need is a code file!)

    Screenshot of a C# code file in Visual Studio.

  1. Open Visual Studio. Select the Esc key, or choose Continue without code on the start window, to open the development environment.

  2. From the File menu on the menu bar, choose New > File, or select the Ctrl+N keys.

  3. In the New File dialog box, under the General category, choose C# Class, and then choose Open.

    A new file opens in the editor with the skeleton of a C# class.

    Screenshot of a C# code file in Visual Studio 2022.

Use GitHub Copilot

GitHub Copilot acts as an AI pair programmer to provide autocomplete-style code completions and context-aware multi-line code suggestions, as you code, in real-time, right in the editor. GitHub Copilot turns natural language prompts including comments and method names into coding suggestions. You can view and incorporate suggestions from GitHub Copilot directly within the editor.

Let's use Copilot to generate code suggestions:

  1. Place your cursor just below the final closing brace } in the file.
  2. Type a natural language comment: // Add a method to add two numbers and Enter.
  3. GitHub Copilot generates a code suggestion for you. The suggested implementation shows in gray text.
  4. To accept the suggestion, select Tab.

Animated screenshot that shows the code suggestions generated by GitHub Copilot for the user comment.

Get started with GitHub Copilot in Visual Studio. Note that it requires Visual Studio 2022 version 17.8 or later.

Use code snippets

Visual Studio provides useful code snippets that you can use to quickly and easily generate commonly used code blocks. Code snippets are available for different programming languages including C#, Visual Basic, and C++.

Let's add the C# void Main snippet to our file.

  1. Place your cursor just above the final closing brace } in the file, and type the characters svm. (svm stands for static void Main; the Main() method is the entry point for C# applications.)

    A pop-up dialog box appears with information about the svm code snippet.

    Screenshot of an IntelliSense pop-up for a code snippet in Visual Studio.

  2. Press Tab twice to insert the code snippet.

    You'll see the static void Main() method signature get added to the file.

The available code snippets vary for different programming languages. You can look at the available code snippets for your language by choosing Edit > IntelliSense > Insert Snippet, and then choosing your language's folder. For C#, the list looks like this:

Screenshot of an IntelliSense pop-up for a C# code snippet list.

  1. Place your cursor just above the final closing brace } in the file, and type the characters svm.

    A pop-up dialog box appears with information about the svm code snippet.

    Screenshot of an IntelliSense pop-up for a code snippet in Visual Studio 2022.

  2. Select the Tab key twice to insert the code snippet.

    You'll see the static void Main() method signature get added to the file. The Main() method is the entry point for C# applications.

Available code snippets vary for different programming languages. You can look at the available code snippets for your language by choosing Edit > IntelliSense > Insert Snippet or by selecting the Ctrl+K, Ctrl+X keys, and then choosing the folder for your programming language. For C#, the snippet list looks like this:

Screenshot of an IntelliSense pop-up for a C# code snippet list.

The list includes snippets for creating a class, a constructor, a for loop, an if or switch statement, and more.

Comment out code

The toolbar, which is the row of buttons under the menu bar in Visual Studio, can help make you more productive as you code. For example, you can toggle IntelliSense completion mode (IntelliSense is a coding aid that displays a list of matching methods, amongst other things), increase or decrease a line indent, or comment out code that you don't want to compile. In this section, we'll comment out some code.

Screenshot of the Editor toolbar in Visual Studio.

  1. Paste the following code into the Main() method body.

    // _words is a string array that we'll sort alphabetically
    string[] _words = {
        "the",
        "quick",
        "brown",
        "fox",
        "jumps"
    };
    
    string[] morewords = {
        "over",
        "the",
        "lazy",
        "dog"
    };
    
    IEnumerable<string> query = from word in _words
                                orderby word.Length
                                select word;
    
  2. We're not using the morewords variable, but we may use it later so we don't want to completely delete it. Instead, let's comment out those lines. Select the entire definition of morewords to the closing semi-colon, and then choose the Comment out the selected lines button on the toolbar. If you prefer to use the keyboard, press Ctrl+K, Ctrl+C.

    Screenshot of the Comment out button in the Editor toolbar in Visual Studio.

    The C# comment characters // are added to the beginning of each selected line to comment out the code.

The Text Editor toolbar, which is the row of buttons under the menu bar in Visual Studio, helps make you more productive as you code. For example, you can toggle IntelliSense completion mode, increase or decrease a line indent, or comment out code that you don't want to compile.

Screenshot of the Text Editor toolbar in Visual Studio 2022.

Let's comment out some code.

  1. Paste the following code into the Main() method body.

    // someWords is a string array.
    string[] someWords = {
        "the",
        "quick",
        "brown",
        "fox",
        "jumps"
    };
    
    string[] moreWords = {
        "over",
        "the",
        "lazy",
        "dog"
    };
    
    // Alphabetically sort the words.
    IEnumerable<string> query = from word in someWords
                                orderby word
                                select word;
    
  2. We're not using the moreWords variable, but we might use it later so we don't want to delete it. Instead, we'll comment out those lines. Select the entire definition of moreWords down to the closing semicolon, and then choose the Comment out the selected lines button on the Text Editor toolbar. If you prefer to use the keyboard, select Ctrl+K, Ctrl+C.

    Screenshot of the Comment out button in the Text Editor toolbar in Visual Studio 2022.

    The C# comment characters // are added to the beginning of each selected line to comment out the code.

    When you want to uncomment lines, you can select them, and then choose the Uncomment the selected lines button on the Text Editor toolbar. If you prefer to use the keyboard, select Ctrl+K, Ctrl+U.

    Screenshot of the Uncomment button in the Text Editor toolbar in Visual Studio 2022.

Collapse code blocks

We don't want to see the empty constructor that was generated for Class1, so to unclutter our view of the code, let's collapse it. Choose the small gray box with the minus sign inside it in the margin of the first line of the constructor. Or, if you prefer to use the keyboard, place the cursor anywhere in the constructor code and press Ctrl+M, Ctrl+M.

Screenshot of the Outlining collapse button in the Text Editor toolbar in Visual Studio.

The code block collapses to just the first line, followed by an ellipsis (...). To expand the code block again, click the same gray box that now has a plus sign in it, or press Ctrl+M, Ctrl+M again. This feature is called Outlining and is especially useful when you're collapsing long methods or entire classes.

We don't want to see the empty constructor that was generated for Class1, so to unclutter our view of the code, let's collapse it. Choose the small gray box with the minus sign inside it in the margin of the first line of the constructor. Or, if you prefer to use the keyboard, place the cursor anywhere in the constructor code and select the Ctrl+M, Ctrl+M keys.

Screenshot of the Outlining collapse button in the Text Editor toolbar in Visual Studio 2022.

The code block collapses to just the first line, followed by an ellipsis (...). To expand the code block again, select the same gray box that now has a plus sign in it, or select Ctrl+M, Ctrl+M again. This feature is called Outlining and is especially useful when you're collapsing long methods or entire classes.

View symbol definitions

The Visual Studio editor makes it easy to inspect the definition of a type, method, etc. One way is to navigate to the file that contains the definition, for example by choosing Go to Definition anywhere the symbol is referenced. An even quicker way that doesn't move your focus away from the file you're working in is to use Peek Definition. Let's peek at the definition of the string type.

  1. Right-click on any occurrence of string and choose Peek Definition from the content menu. Or, press Alt+F12.

    A pop-up window appears with the definition of the String class. You can scroll within the pop-up window, or even peek at the definition of another type from the peeked code.

    Screenshot of a Peek definition window in Visual Studio.

  2. Close the peeked definition window by choosing the small box with an "x" at the top right of the pop-up window.

The Visual Studio editor makes it easy to inspect the definition of a type, method, or variable. One way is to go to the definition, in whichever file has it, by choosing Go to Definition or by selecting the F12 key anywhere a symbol is referenced. An even quicker way that doesn't move your focus away from the code you're working on is to use Peek Definition.

Let's peek at the definition of the string type.

  1. Right-click on any occurrence of string and choose Peek Definition from the content menu. Or, select the Alt+F12 keys.

    A pop-up window appears with the definition of the String class. You can scroll within the pop-up window, or even peek at the definition of another type from the peeked code.

    Screenshot of the Peek definition window in Visual Studio 2022.

  2. Close the peek definition window by choosing the small box with an "x" at the top right of the pop-up window.

Use IntelliSense to complete words

IntelliSense is an invaluable resource when you're coding. It can show you information about available members of a type, or parameter details for different overloads of a method. You can also use IntelliSense to complete a word after you type enough characters to disambiguate it. Let's add a line of code to print out the ordered strings to the console window, which is the standard place for output from the program to go.

  1. Below the query variable, start typing the following code:

    foreach (string str in qu
    

    You'll see IntelliSense show you Quick Info about the query symbol.

    Screenshot of an IntelliSense word completion pop-up in Visual Studio.

  2. To insert the rest of the word query by using IntelliSense's word completion functionality, press Tab.

  3. Finish off the code block to look like the following code. You can even practice using code snippets again by entering cw and then pressing Tab twice to generate the Console.WriteLine code.

    foreach (string str in query)
    {
       Console.WriteLine(str);
    }
    

IntelliSense is an invaluable resource when you're coding. It can show you information about available members of a type, or parameter details for different overloads of a method. You can also use IntelliSense to complete a word after you type enough characters to disambiguate it.

Let's add a line of code to print out the ordered strings to the console window, which is the standard place for output from the program to go.

  1. Below the query variable, start typing the following code:

    foreach (string str in qu
    

    You'll see an IntelliSense pop-up appear with information about the query symbol.

    Screenshot of an IntelliSense word completion pop-up in Visual Studio 2022.

  2. To insert the rest of the word query by using IntelliSense word completion, select the Tab key.

  3. Finish off the code block to look like the following code. You can practice further with code snippets by entering cw and then selecting Tab twice to generate the Console.WriteLine statement.

    foreach (string str in query)
    {
       Console.WriteLine(str);
    }
    

Refactor a name

Nobody gets code right the first time, and one of the things you might have to change is the name of a variable or method. Let's try out Visual Studio's refactor functionality to rename the _words variable to words.

  1. Place your cursor over the definition of the _words variable, and choose Rename from the right-click or context menu, or press Ctrl+R, Ctrl+R.

    A pop-up Rename dialog box appears at the top right of the editor.

  2. Enter the desired name words. Notice that the reference to words in the query is also automatically renamed. Before you press Enter, select the Include comments checkbox in the Rename pop-up box.

    Screenshot of a Rename dialog box in Visual Studio.

  3. Press Enter.

    Both occurrences of words have been renamed, as well as the reference to words in the code comment.

Nobody gets code right the first time, and one of the things you might have to change is the name of a variable or method. Let's try out Visual Studio's refactor functionality to rename the someWords variable to unsortedWords.

  1. Place your cursor over the definition of the someWords variable, and choose Rename from the right-click or context menu, or select the F2 key.

    A Rename dialog box appears at the top right of the editor.

    Screenshot of the Rename pop-up box within the editor of Visual Studio 2022.

  2. Enter the desired name unsortedWords. You'll see that the reference to unsortedWords in the query assignment statement is also automatically renamed. Before you select the Enter key, select the Include comments checkbox in the Rename pop-up box.

    Screenshot of the Rename pop-up box in Visual Studio 2022.

  3. Select the Enter key.

    Both occurrences of someWords in your code have been renamed, as well as the text someWords in your code comment.

Next steps

See also