IVsTextBufferCoordinator Interface

Provides mapping services between two buffers.

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

Syntax

'Declaration
<InterfaceTypeAttribute()> _
<GuidAttribute("84465401-2886-4CE0-AF50-C0560226ED40")> _
Public Interface IVsTextBufferCoordinator
[InterfaceTypeAttribute()]
[GuidAttribute("84465401-2886-4CE0-AF50-C0560226ED40")]
public interface IVsTextBufferCoordinator
[InterfaceTypeAttribute()]
[GuidAttribute(L"84465401-2886-4CE0-AF50-C0560226ED40")]
public interface class IVsTextBufferCoordinator
[<InterfaceTypeAttribute()>]
[<GuidAttribute("84465401-2886-4CE0-AF50-C0560226ED40")>]
type IVsTextBufferCoordinator =  interface end
public interface IVsTextBufferCoordinator

The IVsTextBufferCoordinator type exposes the following members.

Methods

  Name Description
Public method EnableReplication Enables replication from primary to secondary buffer and replication from the secondary buffer to the primary.
Public method EnumSpans Returns a list of span mappings controlled by the buffer coordinator object.
Public method GetMappingOfPrimaryPosition Maps the specified position in the primary buffer to the span in the secondary buffer.
Public method GetPrimaryBuffer Returns the primary language buffer.
Public method GetSecondaryBuffer Returns the secondary language buffer.
Public method MapPrimaryToSecondarySpan Maps the specified position in the primary buffer to a position in the secondary buffer.
Public method MapSecondaryToPrimarySpan Maps the specified position in the secondary buffer to a position in the primary buffer.
Public method SetBufferMappingModes Establishes the mapping modes for both primary and secondary buffers.
Public method SetBuffers Establishes the primary and secondary buffers that are to be managed by the buffer coordinator object.
Public method SetSpanMappings Establishes the list of mappings between the primary and secondary buffers.

Top

Remarks

Some files can contain blocks of code from more than one language, for example, an ASP.NET file can contain code blocks from VBScript or JScript. These types of files are handled by displaying the file in a primary buffer and putting each of the code blocks into a secondary buffer. The secondary buffer can then be handed to a language service for formatting and display without regard to how the code block is contained in the primary file.

In order for this two buffer system to work, a way must be made available to map positions from one buffer to the other and that is where the text buffer coordinator, as represented by the IVsTextBufferCoordinator interface comes in. This interface manages two buffers in terms of a list of spans describing the locations associated with a particular code block.

Notes to Implementers

Visual Studio implements this interface.

Notes to Callers

An instance of this interface can be obtained by calling the CoCreateInstance function with the GUID of the VsTextBufferCoordinatorClass type as the CLSID.

See Also

Reference

Microsoft.VisualStudio.TextManager.Interop Namespace