ProvideLanguageExtensionAttribute 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.
Associates a file extension with a particular language service.
public ref class ProvideLanguageExtensionAttribute sealed : Microsoft::VisualStudio::Shell::RegistrationAttribute
public ref class ProvideLanguageExtensionAttribute sealed : Microsoft::VisualStudio::Shell::RegistrationAttribute
[System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=true, Inherited=true)]
public sealed class ProvideLanguageExtensionAttribute : Microsoft.VisualStudio.Shell.RegistrationAttribute
[<System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=true, Inherited=true)>]
type ProvideLanguageExtensionAttribute = class
inherit RegistrationAttribute
Public NotInheritable Class ProvideLanguageExtensionAttribute
Inherits RegistrationAttribute
- Inheritance
- Attributes
Examples
This example shows how to associate the file extension ".myext" with a language service.
Note
Visual C# allows for a shorthand form of a user-defined attribute by dropping the "Attribute" part of the name. This shorthand form is used in this and all other examples throughout this class.
using Microsoft.VisualStudio.Shell;
namespace MyLanguagePackage
{
[ProvideLanguageExtension(typeof(MyLanguageService), ".myext")]
public class MyLanguagePackage : Package
{
}
}
Remarks
This user-defined C# attribute is used to register with Visual Studio a file extension for a particular language service. This attribute puts the necessary information into the assembly's metadata that is later retrieved and used by regpkg.exe. You must still register the language service itself; this attribute only makes the association between the file extension and the language service. For more information, see Registering VSPackages.
You can use multiple instances of this attribute to associate multiple file extensions with your language service.
The registry key that is affected by this attribute exists under the Visual Studio registry key:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\[X.Y]\
Languages\
File Extensions\
[FileExtension]\
(Default) = RG_SZ: [LanguageServiceGuid]
where:
[X.Y] is a Visual Studio version number such as 8.0 or 8.0exp.
[FileExtension] is a string containing the file extension with the leading period; for example, "myext".
[LanguageServiceGuid] is the GUID of your language service; for example,
{B614A40A-80D9-4FAC-A6AD-FC2868FFF7CD}
.
The following user-defined attributes are used for language services:
Attribute | Description |
---|---|
ProvideLanguageServiceAttribute | Registers the language service with Visual Studio and specifies what features are supported. |
ProvideLanguageExtensionAttribute | Associates a file extension with the language service. |
ProvideLanguageEditorOptionPageAttribute | Specifies a property node or page for the Options dialog box specific to the language service. |
ProvideLanguageCodeExpansionAttribute | Specifies location information to support code snippets in the language service. |
ProvideServiceAttribute | Registers a language service as a Visual Studio service. All services supplied in managed code use this attribute. |
Notes to Inheritors
This attribute class cannot be inherited from so there is nothing to implement.
Notes to Callers
Use this attribute on your VSPackage to associate a file extension with your language service.
Constructors
ProvideLanguageExtensionAttribute(String, String) |
Initializes a new instance of the ProvideLanguageExtensionAttribute attribute, using the specified language service GUID. |
ProvideLanguageExtensionAttribute(Type, String) |
Initializes a new instance of the ProvideLanguageExtensionAttribute attribute, using the type of your language service class. |
Properties
Extension |
Returns the associated file extension. |
LanguageService |
Returns the language GUID. |
TypeId |
Override the TypeID property in order to let the RegistrationAttribute derived classes to work with System.ComponentModel.TypeDescriptor.GetAttributes(...). An attribute derived from this one will have to override this property only if it needs a better control on the instances that can be applied to a class. (Inherited from RegistrationAttribute) |
Methods
GetPackageRegKeyPath(Guid) |
Gets the registry path (relative to the registry root of the application) of the VSPackage. (Inherited from RegistrationAttribute) |
Register(RegistrationAttribute+RegistrationContext) |
Puts the file extension and language service GUID into the registry. |
Unregister(RegistrationAttribute+RegistrationContext) |
Removes the file extension and language service GUID from the registry. |