Share via


IVsExpansionSession Interface

Represents the state of a newly inserted code snippet that is being edited by the user.

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

Syntax

'Declaration
<GuidAttribute("3DFA7603-3B51-4484-81CD-FF1470123C7C")> _
<InterfaceTypeAttribute()> _
Public Interface IVsExpansionSession
[GuidAttribute("3DFA7603-3B51-4484-81CD-FF1470123C7C")]
[InterfaceTypeAttribute()]
public interface IVsExpansionSession
[GuidAttribute(L"3DFA7603-3B51-4484-81CD-FF1470123C7C")]
[InterfaceTypeAttribute()]
public interface class IVsExpansionSession
[<GuidAttribute("3DFA7603-3B51-4484-81CD-FF1470123C7C")>]
[<InterfaceTypeAttribute()>]
type IVsExpansionSession =  interface end
public interface IVsExpansionSession

The IVsExpansionSession type exposes the following members.

Methods

  Name Description
Public method EndCurrentExpansion Called to indicate the end of the current code snippet insertion process.
Public method GetDeclarationNode Retrieves the declaration node for the specified field.
Public method GetEndSpan Returns the position at which the edit caret is to be placed when the code snippet is committed to the source buffer.
Public method GetFieldSpan Retrieves the span (the position and extent) of the specified field.
Public method GetFieldValue Retrieves the value of the specified field.
Public method GetHeaderNode Returns a node from the code snippet <Header> tag.
Public method GetSnippetNode Returns a node from the code snippet <Snippet> tag.
Public method GetSnippetSpan Gets the span of the code snippet.
Public method GoToNextExpansionField Move the highlight to the next field in order.
Public method GoToPreviousExpansionField Move the highlight to the previous field in order.
Public method SetEndSpan Sets the position where the edit caret should be placed when the code snippet is committed to the source buffer.
Public method SetFieldDefault Sets the default value for the specified field.

Top

Remarks

This interface provides a number of useful methods to support the special code snippet edit mode as well as gaining access to the code snippet XML elements.

Code Snippet Edit Mode

After a code snippet has been inserted into the source document, a special edit mode is enabled that supports tabbing between multiple fields of the code snippet as well as selecting from lists of values associated with fields. The special edit mode is ended when the user types Enter or ESC. If this special edit mode is supported, it must be implemented by the language service that supports the code snippet. Otherwise, the language service should call the EndCurrentExpansion method on this interface to indicate that the code snippet has been accepted and nothing further needs to be done to the snippet.

Notes to Implementers

This interface is implemented by the same entity that implements the IVsExpansion interface (which in turn is implemented on an IVsTextBuffer object).

Notes to Callers

This interface is returned from the following methods:

The IVsExpansionSession interface is used to implement the snippet special edit mode and is passed to the OnBeforeInsertion and OnAfterInsertion methods in the IVsExpansionClient interface.

See Also

Reference

Microsoft.VisualStudio.TextManager.Interop Namespace