Changing View Settings 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
Settings for core editor features, such as word wrap, selection margin, and virtual space, can be changed by the user by means of the Options dialog box. However, it is also possible to change these settings programmatically.
Changing Settings by Using the Legacy API
The IVsTextEditorPropertyCategoryContainer interface exposes a set of text editor properties. The text view contains a category of properties (GUID_EditPropCategory_View_MasterSettings) that represents the group of programmatically changed settings for the text view. Once view settings have been changed in this way, they cannot be changed in the Options dialog box until they are reset.
Following is the typical process for changing view settings for an instance of the core editor.
Call
QueryInterface
on the (VsTextView) for the IVsTextEditorPropertyCategoryContainer interface.Call the GetPropertyCategory method, specifying a value of GUID_EditPropCategory_View_MasterSettings for the
rguidCategory
parameter.Doing this returns a pointer to the IVsTextEditorPropertyCategoryContainer interface, which contains the set of forced properties for the view. Any settings in this group are permanently forced. If a setting is not in this group, then it will follow the options specified in the Options dialog box or the user's commands.
Call the SetProperty method, specifying the appropriate settings value in the
idprop
parameter.For example, to force word wrap, call SetProperty and specify a value of VSEDITPROPID_ViewLangOpt_WordWrap,
vt
for theidprop
parameter. In this call,vt
is a VARIANT of type VT_BOOL andvt.boolVal
is VARIANT_TRUE.
Resetting Changed View Settings
To reset any changed view setting for an instance of the core editor, call the RemoveProperty method and specify the appropriate setting value in the idprop
parameter.
For example, to allow word wrap to float freely, you would remove it from the property category by calling RemoveProperty and specifying a value of VSEDITPROPID_ViewLangOpt_WordWrap for the idprop
parameter.
To remove all changed settings for the core editor at once, specify a value of VSEDITPROPID_ViewComposite_AllCodeWindowDefaults, vt for the idprop
parameter. In this call, vt is a VARIANT of type VT_BOOL and vt.boolVal is VARIANT_TRUE.
See Also
Inside the Core Editor
Accessing theText View by Using the Legacy API
Options Dialog Box