IVsExpansion Interface


Provides a way to insert code snippets into a text buffer.

Namespace:   Microsoft.VisualStudio.TextManager.Interop
Assembly:  Microsoft.VisualStudio.TextManager.Interop.8.0 (in Microsoft.VisualStudio.TextManager.Interop.8.0.dll)

public interface IVsExpansion

System_CAPS_pubmethodInsertExpansion(TextSpan, TextSpan, IVsExpansionClient, Guid, IVsExpansionSession)

Inserts the code snippet associated with the shortcut that can be found at the given context position in the text buffer.

System_CAPS_pubmethodInsertNamedExpansion(String, String, TextSpan, IVsExpansionClient, Guid, Int32, IVsExpansionSession)

Inserts snippet with the specified name at the specified position in the text buffer.

System_CAPS_pubmethodInsertSpecificExpansion(IXMLDOMNode, TextSpan, IVsExpansionClient, Guid, String, IVsExpansionSession)

Inserts the code snippet from the specified XML node into the text buffer at the specified position.

Code snippets are pieces of code that are inserted and formatted automatically, typically by selecting from a menu of snippets (as displayed by the InvokeInsertionUI method in the IVsExpansionManager interface). An alternative approach is to obtain a shortcut to a code snippet, call the GetExpansionByShortcut method in the IVsExpansionManager interface to obtain the path to the snippet, and then call the InsertNamedExpansion in the IVsExpansion interface.

The InvokeInsertionUI method is passed an IVsExpansionClient interface that in turn handles the details of calling the InsertNamedExpansion method on the IVsExpansion interface (specifically, in the OnItemChosen method in the IVsExpansionClient interface). This means the object that implements the IVsExpansionClient interface must obtain or be given an IVsExpansion interface before the InvokeInsertionUI method is called.

Notes to Implementers:

This interface is implemented on the same object that implements an IVsTextBuffer interface as this interface affects the associated text buffer.

Notes to Callers:

Obtain this interface with a call to the QueryInterface method on an IVsTextBuffer object (or, for managed code, cast the IVsTextBuffer object to the IVsExpansion interface). If the IVsExpansion interface can be obtained, then the text buffer is announcing support for inserting code snippets.

Return to top