Accessing theText View by Using the Legacy API

Note

This article applies to Visual Studio 2015. If you're looking for the latest Visual Studio documentation, see Visual Studio documentation. We recommend upgrading to the latest version of Visual Studio. Download it here

A text view is a presentation of the text that is stored in a text buffer. You can access the text view by using the legacy API as shown in the following section.

Text View Object

Each view is associated with its own text buffer, and the view is a window on the data in the buffer. The following diagram shows the key interfaces of the text view object, which is represented by VsTextView.

Visual Studio Text View Object
Text view object

The view is a way of presenting the text in the buffer. It includes features such as word wrap, and outlining, so that what you see in the view is not an exact representation of the text in the buffer.

A view enables other services or processes to intercept incoming commands and act on them before the view acts on them. The most common service to do this is a language service. A language service might need, for example, to intercept the command for the ENTER key to provide custom indenting behavior or tool tips.

Adding Functionality to the Text View

You can customize text view behavior by handling specific keystrokes. To intercept the keystrokes, you implement IVsTextViewFilter on your object, and provide a command target (IOleCommandTarget) to monitor and intercept commands.

The text view uses sequential architecture for command filters. New command filters (IOleCommandTarget objects) are added to the sequence by calling the AddCommandFilter method.

Event notification for the text view is provided by using the T:Microsoft.VisualStudio.TextManager.Interop.IVsTextViewEvents interface. Implement this interface on your client object to receive notification of changes to the text view. Expose this interface to the text view by using the IConnectionPointContainer interface on the text view to receive notification of changes from the view.

See Also

Changing View Settings by Using the Legacy API
Using the Text Manager to Monitor Global Settings