IntelliSense in Visual Studio for Mac


Visual Studio for Mac is scheduled for retirement on August 31, 2024 in accordance with Microsoft’s Modern Lifecycle Policy. While you can continue to work with Visual Studio for Mac, there are several other options for developers on Mac such as the preview version of the new C# Dev Kit extension for VS Code.

Learn more about support timelines and alternatives.

IntelliSense provides several features to help enhance the experience of writing and editing code. For example, in addition to code completion, the IntelliSense engine also provides member lists, parameter info, and quick info.

In Visual Studio for Mac, IntelliSense is provided by the core editor service, and is supported in many languages, such as C#, XAML, F#, JavaScript and more. Visual Studio for Mac also features advanced IntelliSense features, such as the ability to show completions from libraries that are not yet imported into the project.

Code Completion

When typing within a supported file, such as a C# code file, valid completions for the string you are currently typing will be displayed in a completion list and updated as you type. Furthermore, if you delete text, the list will again auto-update to include the wider range of possibilities for completing the given string.

The completion window also offers support for filtering the included completions by type. For example, it is possible to limit the members of the list to only represent types such as classes or delegates. This filtering process can be enabled either through clicking on a specific icon representing the type which will be filtered or via keyboard shortcuts corresponding with a given type. The icons, which are located at the bottom of the completion window, are as follows:

Icon Name Keyword Hotkey
Classes Icon class class ⌥C
Constant Icon constant const ⌥O
Delegate Icon delegate delegate ⌥D
Enum icon enum enum ⌥E
Event Icon event ⌥V
Field Icon field ⌥F
Interface Icon interface interface ⌥I
Keyword Icon keyword ⌥K
Method Icon method ⌥M
Namespace Icon namespace namespace ⌥N
Props Icon property ⌥P
Snippet Icon snippet class ⌥S
Struct Icon structure struct ⌥S

By clicking on any of the icons, or by pressing the corresponding hotkeys, the completion list will limit to only types as defined by the filter set.

Intellisense Type Filtering

Parameter Window

Another feature of IntelliSense is the ability to provide a parameter list where appropriate. The parameter list provides details of the method signatures for the code being called. By clicking on the up/down arrows within the signature, you can cycle through each of the available parameter signatures to determine the most appropriate for your needs. In addition to the details of the types of data allowed, there may also be a description as defined in the target method via XML comments.

Parameter List

As you fill in the parameters, the parameter that you are currently editing will be bolded, while the inactive parameters will have the standard weight.

Triggering Completion Window and Parameter Window

The completion window will be triggered automatically as you type within your source file. However, you can also trigger the completion window by using the shortcut control-space. This key combination will cause the completion list to appear at the current position of your caret.

You can also manually trigger the appearance of the parameter window by typing control-shift-space. When your caret is in the position that is valid for a parameter list, the parameter list will appear near the caret position.

See also