ProvideLanguageExtensionAttribute Class

Associates a file extension with a particular language service.

System.Object
  System.Attribute
    Microsoft.VisualStudio.Shell.RegistrationAttribute
      Microsoft.VisualStudio.Shell.ProvideLanguageExtensionAttribute

Namespace:  Microsoft.VisualStudio.Shell
Assembly:  Microsoft.VisualStudio.Shell.12.0 (in Microsoft.VisualStudio.Shell.12.0.dll)

[<Sealed>]
[<AttributeUsageAttribute(AttributeTargets.Class, AllowMultiple = true, Inherited = true)>]
type ProvideLanguageExtensionAttribute =  
    class 
        inherit RegistrationAttribute 
    end

The ProvideLanguageExtensionAttribute type exposes the following members.

  NameDescription
Public methodProvideLanguageExtensionAttribute(String, String)Initializes a new instance of the ProvideLanguageExtensionAttribute attribute, using the specified language service GUID.
Public methodProvideLanguageExtensionAttribute(Type, String)Initializes a new instance of the ProvideLanguageExtensionAttribute attribute, using the type of your language service class.
Top

  NameDescription
Public propertyExtensionReturns the associated file extension.
Public propertyLanguageServiceReturns the language GUID.
Public propertyTypeIdGets the current instance of this attribute. (Inherited from RegistrationAttribute.)
Top

  NameDescription
Public methodEqualsInfrastructure. Returns a value that indicates whether this instance is equal to a specified object. (Inherited from Attribute.)
Public methodGetHashCodeReturns the hash code for this instance. (Inherited from Attribute.)
Public methodGetTypeGets the Type of the current instance. (Inherited from Object.)
Public methodIsDefaultAttributeWhen overridden in a derived class, indicates whether the value of this instance is the default value for the derived class. (Inherited from Attribute.)
Public methodMatchWhen overridden in a derived class, returns a value that indicates whether this instance equals a specified object. (Inherited from Attribute.)
Public methodRegisterPuts the file extension and language service GUID into the registry. (Overrides RegistrationAttribute.Register(RegistrationAttribute.RegistrationContext).)
Public methodToStringReturns a string that represents the current object. (Inherited from Object.)
Public methodUnregisterRemoves the file extension and language service GUID from the registry. (Overrides RegistrationAttribute.Unregister(RegistrationAttribute.RegistrationContext).)
Top

  NameDescription
Explicit interface implemetationPrivate method_Attribute.GetIDsOfNamesMaps a set of names to a corresponding set of dispatch identifiers. (Inherited from Attribute.)
Explicit interface implemetationPrivate method_Attribute.GetTypeInfoRetrieves the type information for an object, which can be used to get the type information for an interface. (Inherited from Attribute.)
Explicit interface implemetationPrivate method_Attribute.GetTypeInfoCountRetrieves the number of type information interfaces that an object provides (either 0 or 1). (Inherited from Attribute.)
Explicit interface implemetationPrivate method_Attribute.InvokeProvides access to properties and methods exposed by an object. (Inherited from Attribute.)
Top

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 Implementers

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.

This example shows how to associate the file extension ".myext" with a language service.

NoteNote

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
    {
    }
}

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft