You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/ide/using-intellisense.md
+47-37Lines changed: 47 additions & 37 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
---
2
2
title: Use IntelliSense for quick information & completion
3
3
description: Explore how to work with IntelliSense features in Visual Studio, including List Members, Parameter Info, Quick Info, and Complete Word.
4
-
ms.date: 1/24/2025
4
+
ms.date: 3/19/2026
5
5
ms.topic: concept-article
6
6
helpviewer_keywords:
7
7
- Quick info
@@ -26,95 +26,104 @@ These features include:
26
26
27
27
Many aspects of IntelliSense are language-specific. For more information about IntelliSense for different languages, see the articles listed in the [Related content](#related-content) section.
28
28
29
+
In addition to IntelliSense, Visual Studio offers AI-powered code completions through GitHub Copilot. Copilot inline suggestions work alongside IntelliSense to provide whole-line and multi-line completions. To learn more, see [Get started with GitHub Copilot completions](visual-studio-github-copilot-extension.md).
30
+
29
31
## List Members
30
32
31
-
A list of valid members from a type (or namespace) appears after you type a trigger character (for example, a period (`.`) in managed code or `::` in C++). If you continue typing characters, the list is filtered to include only the members that begin with those characters or where the beginning of *any* word within the name starts with those characters. IntelliSense also performs *camel case* matching, so you can just type the first letter of each camel-cased word in the member name to see the matches.
33
+
A list of valid members from a type or namespace appears after you type a trigger character, such as a period (`.`) in managed code or `::` in C++. If you continue typing characters, the list filters to include only the members that begin with those characters or where the beginning of *any* word within the name starts with those characters. IntelliSense also performs *camel case* matching, so you can type just the first letter of each camel-cased word in the member name to see the matches.
32
34
33
-
After selecting an item, you can insert it into your code by pressing **Tab** or by typing a space. If you select an item and type a period, the item appears followed by the period, which brings up another member list. When you select an item but before you insert it, you get [Quick Info](#quick-info) for the item.
35
+
After you select an item, you can insert it into your code by pressing **Tab** or by typing a space. If you select an item and type a period, the item appears followed by the period, which brings up another member list. When you select an item but before you insert it, you get [Quick Info](#quick-info) for the item.
34
36
35
37
In the member list, the icon to the left represents the member type, such as namespace, class, function, or variable. The list might be long, so you can press **PgUp** and **PgDn** to move up or down in the list.
36
38
39
+
:::image type="content" source="media/visualstudio/using-intellisense/intellisense-list-members.png" alt-text="Screenshot of IntelliSense list members feature.":::
37
40
38
-
::: moniker range=">=vs-2022"
39
-
40
-
:::image type="content" source="media/vs-2022/using-intellisense/intellisense-list-members.png" alt-text="Screenshot of IntelliSense list members feature.":::
41
-
42
-
::: moniker-end
41
+
You can invoke the List Members feature manually by typing **Ctrl**+**J**, choosing **Edit** > **IntelliSense** > **List Members**, or by choosing the **List Members** button on the editor toolbar. When you invoke it on a blank line or outside a recognizable scope, the list displays symbols in the global namespace.
43
42
44
-
You can invoke the List Members feature manually by typing **Ctrl**+**J**, choosing **Edit** > **IntelliSense** > **List Members**, or by choosing the **List Members** button on the editor toolbar. When it's invoked on a blank line or outside a recognizable scope, the list displays symbols in the global namespace.
43
+
::: moniker range="visualstudio"
45
44
46
-
To turn List Members off by default so that it doesn't appear unless specifically invoked, go to **Tools** > **Options** > **Text Editor** > **All Languages** and deselect **Auto list members**. If you want to turn off List Members only for a specific language, go to the**General** settings for that language.
45
+
To turn List Members off by default so that it doesn't appear unless specifically invoked, go to **Tools** > **Options** > **Text Editor** > **All Languages** and deselect **Auto list members**. To turn off List Members only for a specific language, go to **General** settings for that language.
47
46
47
+
::: moniker-end
48
48
49
-
::: moniker range=">=vs-2022"
49
+
::: moniker range="vs-2022"
50
50
51
-
You can also change to suggestion mode, in which only the text you type is inserted into the code. For example, if you enter an identifier that isn't in the list and press **Tab**, in completion mode the entry would replace the typed identifier. To toggle between completion mode and suggestion mode, press **Ctrl**+**Alt**+**Space**, or choose **Edit** > **IntelliSense**> **Switch between automatic and tab-only IntelliSense completion**.
51
+
To turn List Members off by default so that it doesn't appear unless specifically invoked, go to **Tools** > **Options** > **Languages** > **Defaults** > **General** > **Statement Completion**and deselect **Auto list members**. To turn off List Members only for a specific language, go to **General** settings for that language.
52
52
53
53
::: moniker-end
54
54
55
-
## Parameter Info
56
-
57
-
*Parameter Info* gives you information about the number, names, and types of parameters required by a method, attribute generic type parameter (in C#), or template (in C++).
58
-
59
-
The parameter in bold indicates the next parameter that is required as you type the function. For overloaded functions, you can use the **Up** and **Down** arrow keys to view alternative parameter information for the function overloads.
55
+
You can also change to suggestion mode, in which only the text you type is inserted into the code. For example, if you enter an identifier that isn't in the list and press **Tab**, in completion mode the entry replaces the typed identifier. To toggle between completion mode and suggestion mode, press **Ctrl**+**Alt**+**Space**, or choose **Edit** > **IntelliSense** > **Switch between automatic and tab-only IntelliSense completion**.
60
56
57
+
## Parameter Info
61
58
62
-
::: moniker range=">=vs-2022"
59
+
*Parameter Info* shows you the number, names, and types of parameters that a method, attribute generic type parameter (in C#), or template (in C++) needs.
63
60
64
-
:::image type="content" source="media/vs-2022/using-intellisense/intellisense-parameter-info.png" alt-text="Screenshot of the IntelliSense Parameter Info feature.":::
61
+
The parameter in bold shows the next parameter you need as you type the function. For overloaded functions, use the **Up** and **Down** arrow keys to see other parameter information for the function overloads.
65
62
66
-
::: moniker-end
63
+
:::image type="content" source="media/visualstudio/using-intellisense/intellisense-parameter-info.png" alt-text="Screenshot of the IntelliSense Parameter Info feature.":::
67
64
68
-
When you annotate functions and parameters with XML Documentation comments, the comments display as Parameter Info. For more information, see [Supply XML code comments](reference/generate-xml-documentation-comments.md).
65
+
When you add XML Documentation comments to functions and parameters, Parameter Info shows those comments. For more information, see [Supply XML code comments](reference/generate-xml-documentation-comments.md).
69
66
70
-
You can manually invoke Parameter Info by choosing **Edit** > **IntelliSense** > **Parameter Info**, by pressing **Ctrl**+**Shift**+**Space**, or by choosing the **Parameter Info** button on the editor toolbar.
67
+
You can manually open Parameter Info by choosing **Edit** > **IntelliSense** > **Parameter Info**, by pressing **Ctrl**+**Shift**+**Space**, or by choosing the **Parameter Info** button on the editor toolbar.
71
68
72
69
## Quick Info
73
70
74
71
*Quick Info* displays the complete declaration for any identifier in your code.
75
72
73
+
:::image type="content" source="media/visualstudio/using-intellisense/intellisense-quick-info.png" alt-text="Screenshot of the IntelliSense Quick Info feature.":::
76
74
77
-
::: moniker range=">=vs-2022"
78
-
79
-
:::image type="content" source="media/vs-2022/using-intellisense/intellisense-quick-info.png" alt-text="Screenshot of the IntelliSense Quick Info feature.":::
75
+
When you select a member from the List Members box, Quick Info also appears.
80
76
81
-
::: moniker-end
77
+
:::image type="content" source="media/visualstudio/using-intellisense/intellisense-quick-info-parameter-info.png" alt-text="Screenshot of the IntelliSense Quick Info and Parameter Info feature.":::
82
78
83
-
When you select a member from the List Members box, Quick Info also appears.
79
+
You can manually invoke Quick Info by choosing **Edit** > **IntelliSense** > **Quick Info**, by pressing **Ctrl**+**K**, **Ctrl**+**I**, or by choosing the **Quick Info** button on the editor toolbar.
84
80
81
+
If a function is overloaded, IntelliSense might not display information for all forms of the overload.
85
82
86
-
::: moniker range=">=vs-2022"
83
+
::: moniker range="visualstudio"
87
84
88
-
:::image type="content" source="media/vs-2022/using-intellisense/intellisense-quick-info-parameter-info.png" alt-text="Screenshot of the IntelliSense Quick Info and Parameter Info feature.":::
85
+
To turn Quick Info off, go to **Tools** > **Options** > **Text Editor** > **All Languages**and deselect **Show Quick Info on hover** in the **Settings** section.
89
86
90
87
::: moniker-end
91
88
92
-
You can manually invoke Quick Info by choosing **Edit** > **IntelliSense** > **Quick Info**, by pressing **Ctrl**+**K**, **Ctrl**+**I**, or by choosing the **Quick Info** button on the editor toolbar.
89
+
::: moniker range="vs-2022"
93
90
94
-
If a function is overloaded, IntelliSense might not display information for all forms of the overload.
91
+
To turn Quick Info off, go to **Tools** > **Options** > **Languages** and deselect **Show Quick Info on hover** in the **General** section.
95
92
96
-
You can turn Quick Info off for C++ code by navigating to **Tools** > **Options** > **Text Editor** > **C/C++** > **Advanced**, and setting **Auto Quick Info** to `false`.
93
+
::: moniker-end
97
94
98
95
## Complete Word
99
96
100
97
*Complete Word* completes the rest of a variable, command, or function name after you enter enough characters to disambiguate the term. You can invoke Complete Word by choosing **Edit** > **IntelliSense** > **Complete Word**, by pressing **Ctrl**+**Space**, or by choosing the **Complete Word** button on the editor toolbar.
101
98
102
99
## IntelliSense options
103
100
104
-
IntelliSense options are on by default. To turn them off, go to **Tools** > **Options** > **Text Editor** > **All Languages** and deselect **Parameter information** or **Auto list members** if you don't want the List Members feature.
101
+
IntelliSense options are on by default.
102
+
103
+
::: moniker range="visualstudio"
104
+
105
+
To turn them off, go to **Tools** > **Options** > **Languages** > **Defaults** > **General** > **Statement Completion** and deselect **Parameter information** or **Auto list members**.
106
+
107
+
::: moniker-end
108
+
109
+
::: moniker range="vs-2022"
110
+
111
+
To turn them off, go to **Tools** > **Options** > **Text Editor** > **All Languages** and deselect **Parameter information** or **Auto list members**.
112
+
113
+
::: moniker-end
105
114
106
115
> [!TIP]
107
-
> If you want to change the appearance of user interface elements in Visual Studio, go to **Tools** > **Options** > **Environment** > **Fonts and Colors**. For more information about these settings and how to interact with them, see [Fonts and Colors, Environment, Options dialog box](reference/fonts-and-colors-environment-options-dialog-box.md).
116
+
> To change the appearance of user interface elements in Visual Studio, go to **Tools** > **Options** > **Environment** > **Fonts and Colors**. For more information about these settings and how to interact with them, see [Fonts and Colors, Environment, Options dialog box](fonts-and-colors-environment-options-dialog-box.md).
108
117
109
118
## IntelliSense icons
110
119
111
-
The icons in IntelliSense can convey additional meaning with icon modifiers. These are stars, hearts, and locks layered on top of the object's icon that convey protected, internal, or private, respectively.
120
+
The icons in IntelliSense convey additional meaning through icon modifiers. These icons include stars, hearts, and locks layered on top of the object's icon that convey protected, internal, or private, respectively.
|| Public class | Access is not restricted. |
126
+
|| Public class | Access isn't restricted. |
118
127
|| Protected class | Access is limited to the containing class or types derived from the containing class. |
119
128
|| Protected internal class | Access is limited to the current assembly or types derived from the containing class. |
120
129
|| Internal class | Access is limited to the current assembly. |
@@ -126,7 +135,7 @@ The icons in IntelliSense can convey additional meaning with icon modifiers. The
|| Public class | Access is not restricted. |
138
+
|| Public class | Access isn't restricted. |
130
139
|| Protected class | Access is limited to the containing class or types derived from the containing class. |
131
140
|| Protected internal class | Access is limited to the current assembly or types derived from the containing class. |
132
141
|| Internal class | Access is limited to the current assembly. |
@@ -152,6 +161,7 @@ The IntelliSense options might not work as you expect in certain cases.
152
161
153
162
## Related content
154
163
164
+
-[Get started with GitHub Copilot](visual-studio-github-copilot-get-started.md)
0 commit comments