Text Buffer Events

The text buffer object features a number of interfaces and event interfaces to allow you to communicate with it.

To receive notification of changes to the text buffer, implement these interfaces on your client object. Expose the interfaces to the text buffer using the IConnectionPointContainer interface on the text buffer to receive notification of line changes from the buffer. For more information, see How to: Advise Text Buffer Events. In the case of IVsTextStreamEvents or IVsTextLinesEvents interfaces, changes are returned in either one- or two-dimensional coordinates, respectively.

Text Buffer Interfaces

Following are the interfaces implemented by the text buffer object.

Interface

Description

IVsCompoundAction

Enables the creation of compound actions (that is, actions that are grouped in a single undo/redo unit).

IVsPersistDocData

Enables persistence of document data managed by the text buffer.

IVsTextBuffer

Provides basic services; used by many clients.

IVsTextLines

Provides read and write capabilities using two-dimensional coordinates. Inherits from IVsTextBuffer.

IVsTextScanner

Provides fast, stream-oriented, sequential access to text in the buffer.

IVsTextStream

Provides read and write capabilities using one-dimensional coordinates. Inherits from IVsTextBuffer.

IVsUserData

Provides access to a generic collection of properties. The most important property is the name, or moniker, of the buffer. You can store your own random data in the buffer with this interface by creating a GUID and using it as a key.

IConnectionPointContainer

Supports connection points for events.

Text Buffer Event Interfaces

Following are the interfaces for text buffer event notification.

Interface

Description

IVsTextBufferEvents

Notifies clients when a new language service is associated with a text buffer.

IVsTextBufferDataEvents

Notifies clients when a text buffer is initialized and when changes are made to data in the text buffer.

IVsTextStreamEvents

Notifies clients of changes to the underlying text buffer in one-dimensional coordinates.

IVsTextLinesEvents

Notifies clients of changes to the underlying text buffer in two-dimensional coordinates.

IVsUserDataEvents

Notifies clients of changes to user data.

IVsPreliminaryTextChangeCommitEvents

Notifies clients of the last commit gesture to trigger the event and provides the range of text changed. The IVsPreliminaryTextChangeCommitEvents interface is not fired in response to Undo or Redo commands. Events only fire for buffers that have an undo manager. IVsPreliminaryTextChangeCommitEvents is fired prior to other events, such as pretty listing, in order to make sure the other events do not alter the text before the changes are committed. Your VSPackage must monitor either the IVsPreliminaryTextChangeCommitEvents interface or the IVsFinalTextChangeCommitEvents interface, but not both.

IVsFinalTextChangeCommitEvents

Notifies clients of the last commit gesture to trigger the event and provides the range of text changed. The IVsFinalTextChangeCommitEvents interface is not fired in response to Undo or Redo commands. Events only fire for buffers that have an undo manager. IVsFinalTextChangeCommitEvents is intended for use only by language services or other objects that have complete control over editing. Your VSPackage must monitor either the IVsPreliminaryTextChangeCommitEvents interface or the IVsFinalTextChangeCommitEvents interface, but not both.

See Also

Concepts

Text Buffer for the Visual Studio Editor

How to: Advise Text Buffer Events