LanguagePreferences Class
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Important
This API is not CLS-compliant.
LanguagePreferences encapsulates the standard General and Tab settings for a language service and provides a way of getting and setting the values. It is expected that you will have one global LanguagePreferences created by your package. The General and Tabs settings are automatically persisted in .vssettings files by the core editor package. All you need to do is register your language under AutomationProperties/TextEditor and specify:
YourLanguage = s '%YourLocalizedName%'
{
val Name = s 'YourLanguage'
val Package = s '{F5E7E720-1401-11D1-883B-0000F87579D2}'
val ProfileSave = d 1
val ResourcePackage = s '%YourPackage%'
}
Therefore this class hides all it's properties from user setting persistence using DesignerSerializationVisibility.Hidden. This is so that if you give this object to the Package.ExportSettings method as the AutomationObject then it will only write out your new settings which is what you want, otherwise the General and Tab settings will appear in two places in the .vsssettings file.
public ref class LanguagePreferences : IDisposable, Microsoft::VisualStudio::TextManager::Interop::IVsTextManagerEvents2
[System.CLSCompliant(false)]
[System.Runtime.InteropServices.ComVisible(true)]
[System.Runtime.InteropServices.Guid("934a92fd-b63a-49c7-9284-11aec8c1e03f")]
public class LanguagePreferences : IDisposable, Microsoft.VisualStudio.TextManager.Interop.IVsTextManagerEvents2
[System.Runtime.InteropServices.ComVisible(true)]
[System.Runtime.InteropServices.Guid("934a92fd-b63a-49c7-9284-11aec8c1e03f")]
public class LanguagePreferences : IDisposable, Microsoft.VisualStudio.TextManager.Interop.IVsTextManagerEvents2
[<System.CLSCompliant(false)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
[<System.Runtime.InteropServices.Guid("934a92fd-b63a-49c7-9284-11aec8c1e03f")>]
type LanguagePreferences = class
interface IVsTextManagerEvents2
interface IDisposable
[<System.Runtime.InteropServices.ComVisible(true)>]
[<System.Runtime.InteropServices.Guid("934a92fd-b63a-49c7-9284-11aec8c1e03f")>]
type LanguagePreferences = class
interface IVsTextManagerEvents2
interface IDisposable
Public Class LanguagePreferences
Implements IDisposable, IVsTextManagerEvents2
- Inheritance
-
LanguagePreferences
- Attributes
- Implements
Remarks
The base class manages preferences specific to your language service as well as general preferences the user can affect from the Tools -> Options -> Text Editor category.
The following registry entries are specific to language services and are already reflected in properties in the base class. These registry entries are stored in the registry key HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\<X.Y>\Languages\Language Services\<Language Name>.
<X.Y> is the version of Visual Studio (for example, 8.0 or 8.0Exp).
<Language Name> is the name of your language.
Registry entry | Type | Value | Description |
---|---|---|---|
CodeSense | DWORD | <0 or 1> | 1 indicates support for IntelliSense. |
MatchBraces | DWORD | <0 or 1> | 1 indicates support for matching braces. |
QuickInfo | DWORD | <0 or 1> | 1 indicates support for the Quick Info IntelliSense operation. |
ShowMatchingBraces | DWORD | <0 or 1> | 1 indicates that the text included in the span for a matching pair of language elements is shown in the status bar. |
MatchBracesAtCaret | DWORD | <0 or 1> | 1 indicates that matching braces can be shown while typing a matching brace. |
MaxErrorMessages | DWORD | <number> | The maximum number of error messages that can be put into the Error List Options window from the parser. |
CodeSenseDelay | DWORD | <number> | The amount of time in milliseconds the user must hold the cursor over an identifier before triggering an IntelliSense operation. |
EnableAsyncCompletion | DWORD | <0 or 1> | 1 indicates support for asynchronous or background parsing. |
EnableCommenting | DWORD | <0 or 1> | 1 indicates support for commenting and uncommenting code in a single operation. |
EnableFormatSelection | DWORD | <0 or 1> | 1 indicates support for formatting the source text. |
AutoOutlining | DWORD | <0 or 1> | 1 indicates support for automatic outlining (this requires parser support for hidden regions). |
MaxRegions | DWORD | <number> | The maximum number of hidden regions that can be handled in a single file. |
Notes to Inheritors
If you have any language-specific properties in addition to those already supported by the base class, you have to derive a class from LanguagePreferences and return an instance of your class from the GetLanguagePreferences() method. Be sure to call the Initialize() method before returning your language preferences instance. In addition, you must override InitUserPreferences(RegistryKey, String), OnUserPreferencesChanged2(VIEWPREFERENCES2[], FRAMEPREFERENCES2[], LANGPREFERENCES2[], FONTCOLORPREFERENCES2[]), and Apply() methods to support accessing your specified properties.
It is assumed that a single instance of the LanguagePreferences object is maintained for your language service. In this way, any changes the user makes to the properties are dynamically updated in your preferences and from there, throughout the language service.
Notes to Callers
An instance of this class is returned from the LanguageService method GetLanguagePreferences(). A number of properties are referenced throughout the managed package framework version of the language service classes.
Constructors
LanguagePreferences() |
Initializes a new instance of the LanguagePreferences class (default initialization only). |
LanguagePreferences(IServiceProvider, Guid, String) |
Gets the language preferences. |
Properties
AutoListMembers |
Gets or sets whether members are automatically listed as part of IntelliSense support. |
AutoOutlining |
Gets or sets whether or not auto-outlining is supported outlining (this requires parser support for hidden regions). |
CodeSenseDelay |
Gets or sets the number of milliseconds the user must hold the cursor over an identifier before initiating any IntelliSense operation. |
CutCopyBlankLines |
Gets or sets whether to include spaces on blank lines when cutting and copying. |
EnableAsyncCompletion |
Gets or sets if background parsing is supported. |
EnableCodeSense |
Gets or sets whether or not IntelliSense is supported. |
EnableCommenting |
Gets or sets whether or not blocks of code can be commented and uncommented. |
EnableFormatSelection |
Gets or sets whether or not code can be formatted. |
EnableLeftClickForURLs |
Gets or sets whether or not URLs in the code can be navigated to by a simple click. |
EnableMatchBraces |
Gets or sets whether or not matching braces are supported. |
EnableMatchBracesAtCaret |
Gets or sets whether or not matching braces can be shown while typing a matching brace. |
EnableQuickInfo |
Gets or sets whether or not the IntelliSense Quick Info operation is supported. |
EnableShowMatchingBrace |
Gets or sets whether or not the text included in the span of the matching pair is shown in the status bar. |
HideAdvancedMembers |
Gets or sets whether or not advanced members are hidden in the IntelliSense members list. |
HighlightMatchingBraceFlags |
Gets or sets the flags for highlighting matching braces. |
IndentSize |
Gets or sets the number of spaces to indent when formatting source. |
IndentStyle |
Gets or sets the style used for formatting sections of text. |
InsertTabs |
Gets or sets whether or not to insert tabs instead of spaces when formatting sections of text. |
LanguageName |
Gets or sets the name the language service is registered under. |
LineNumbers |
Gets or sets whether or not line numbers are to be shown. |
MaxErrorMessages |
Gets or sets the maximum number of error messages that can be shown at any one time. |
MaxRegionTime |
Gets or sets the maximum region time. |
ParameterInformation |
Gets or sets whether or not the IntelliSense method tip operation is supported. |
ShowNavigationBar |
Gets or sets whether or not drop-down bars are to be shown. |
Site |
This property is not public for a reason. If it were public it would
get called during LoadSettingsFromStorage which will break it. |
TabSize |
Gets or sets the number of spaces a single tab covers. |
VirtualSpace |
Gets or sets whether or not the editor should assume spaces at the end of all lines. |
WordWrap |
Gets or sets whether or not word wrapping is enabled. |
WordWrapGlyphs |
Gets or sets whether or not a glyph should be shown for a line that is word-wrapped. |
Methods
Apply() |
Applies all changes made to the preferences. |
Dispose() |
Cleans up any allocated resources before the object is destroyed. |
GetBooleanValue(RegistryKey, String, Boolean) |
Obtains a boolean value from the specified registry entry. |
GetIntegerValue(RegistryKey, String, Int32) |
Gets an integer value from the specified registry entry. |
GetLanguagePreferences() |
Gets the modifiable user language settings from Visual Studio. |
GetSite() |
Gets the service provider. |
Init() |
Initializes LanguagePreferences. |
InitMachinePreferences(RegistryKey, String) |
Gets language service-specific settings from the registry. |
InitUserPreferences(RegistryKey, String) |
Gets user-modifiable settings. |
OnRegisterMarkerType(Int32) |
Called when a new marker type is registered with Visual Studio. |
OnRegisterView(IVsTextView) |
Called when a view is registered. |
OnReplaceAllInFilesBegin() |
Called when the Replace All in Files operation has begun. |
OnReplaceAllInFilesEnd() |
Called when the Replace All In Files operation has ended. |
OnUnregisterView(IVsTextView) |
Called when a view is closed. |
OnUserPreferencesChanged2(VIEWPREFERENCES2[], FRAMEPREFERENCES2[], LANGPREFERENCES2[], FONTCOLORPREFERENCES2[]) |
Called when a user preference has been changed. |