Compartir a través de


ProvideLanguageCodeExpansionAttribute Clase

Definición

Registra la compatibilidad del servicio de lenguaje con fragmentos de código.

public ref class ProvideLanguageCodeExpansionAttribute sealed : Microsoft::VisualStudio::Shell::RegistrationAttribute
public ref class ProvideLanguageCodeExpansionAttribute sealed : Microsoft::VisualStudio::Shell::RegistrationAttribute
[System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=true, Inherited=true)]
[System.Runtime.InteropServices.ComVisible(false)]
public sealed class ProvideLanguageCodeExpansionAttribute : Microsoft.VisualStudio.Shell.RegistrationAttribute
[<System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=true, Inherited=true)>]
[<System.Runtime.InteropServices.ComVisible(false)>]
type ProvideLanguageCodeExpansionAttribute = class
    inherit RegistrationAttribute
Public NotInheritable Class ProvideLanguageCodeExpansionAttribute
Inherits RegistrationAttribute
Herencia
ProvideLanguageCodeExpansionAttribute
Atributos

Ejemplos

En este ejemplo se muestra cómo se usa este atributo definido por el usuario para registrar la compatibilidad con fragmentos de código para un servicio de lenguaje.

Nota

Visual C# permite una forma abreviada de un atributo definido por el usuario quitando la parte "Attribute" del nombre. Este formulario abreviado se usa en este y en todos los demás ejemplos de esta clase.

using Microsoft.VisualStudio.Shell;  

namespace MyLanguagePackage  
{  
    internal class MyConstants  
    {  
        public const string languageName           = "MyLanguage";  
        public const int    languageNameResourceID = 106;  
        public const string languageIdentifier     = "mylanguage";  
        public const string snippetsIndexFilePath   = @"%InstallRoot%\MyLanguage\SnippetsIndex.xml";  
    }  

    [ProvideCodeExpansion(typeof(MyLanguageService),  
                            MyConstants.languageName,  
                            MyConstants.languageNameResourceID,  
                            MyConstants.languageIdentifier,  
                            MyConstants.snippetsIndexFilePath,  
        // Optional code expansion properties  
        SearchPaths = @"%InstallRoot%\MyLanguage\Snippets\%LCID%\Snippets;" +  
                      @"\%MyDocs%\Code Snippets\MyLanguage\My Code Snippets";  
                         )]  

    class MyLanguagePackage  
    {  
    }  
}  

Comentarios

Este atributo definido por el usuario (que es específico de C#) se usa para proporcionar información necesaria para registrar la compatibilidad de un servicio de lenguaje con fragmentos de código con Visual Studio. Los valores especificados por este atributo se almacenan como metadatos en el ensamblado. Más adelante, un programa como regpkg.exe programa (parte del SDK de VSIP) usa estos metadatos para crear las claves del Registro y las entradas correspondientes que indican a Visual Studio sobre el servicio de lenguaje.

Las entradas del Registro afectadas por ProvideLanguageCodeExpansionAttribute se encuentran en la siguiente clave del Registro:

HKEY_LOCAL_MACHINE\  
  SOFTWARE\  
    Microsoft\  
      VisualStudio\  
        [X.Y]\  
          Languages\  
            CodeExpansions\  
              [language name]\  
                (Default)    = reg_sz: [Language Service GUID]  
                DisplayName  = reg_sz: [language name resource ID]  
                IndexPath    = reg_sz: [path to snippet index file]  
                Package      = reg_sz: [Package GUID]  
                LangStringID = reg_sz: [language identifier]  
                Paths\  
                  (Default)       = reg_sz:  
                  [language name] = reg_sz: [paths to snippets]  

Donde:

  • [X.Y] es la versión de Visual Studio, por ejemplo, 8.0Exp.

  • [language name] es el nombre del idioma (como se especifica en el segundo parámetro para el constructor de ProvideLanguageCodeExpansionAttribute clase).

  • [id. de recurso de nombre de idioma] es el identificador de recurso del nombre de idioma que se usa para mostrar y, por lo tanto, se puede localizar.

  • [ruta de acceso al archivo de índice de fragmento de código] es la ruta de acceso completa al archivo de índice que describe la ubicación de los fragmentos de código.

  • [identificador de idioma] es una cadena que se usa para marcar todos los fragmentos de código y el archivo de índice de fragmentos de código. Esta cadena se usa para asociar un conjunto de fragmentos de código a un servicio de lenguaje determinado.

  • [rutas de acceso a fragmentos de código] una lista delimitada por punto y coma de rutas de acceso para buscar fragmentos de código si el archivo de índice no está disponible.

Las rutas de acceso pueden contener variables de sustitución que apuntan a ubicaciones como la raíz instalada para Visual Studio y la ubicación Mis documentos del usuario. Consulte Compatibilidad con fragmentos de código en un servicio de lenguaje heredado para obtener más información sobre estas variables de sustitución.

El constructor de clase especifica los parámetros mínimos necesarios. Una clase de atributo definida por el usuario también admite parámetros con nombre opcionales. Estos parámetros con nombre se especifican en la lista de parámetros del constructor después de los parámetros necesarios. Todas las propiedades de esta clase que admiten operadores get y set se pueden especificar como un parámetro con nombre. En el ejemplo se muestra cómo se usan los parámetros con nombre.

Los siguientes atributos definidos por el usuario se usan para los servicios de lenguaje:

Atributo Descripción
ProvideLanguageServiceAttribute Registra el servicio de lenguaje con Visual Studio y especifica qué características se admiten.
ProvideLanguageExtensionAttribute Asocia una extensión de archivo al servicio de lenguaje.
ProvideLanguageEditorOptionPageAttribute Especifica un nodo de propiedad o página para el cuadro de diálogo Opciones específico del servicio de idioma.
ProvideLanguageCodeExpansionAttribute Especifica información de ubicación para admitir fragmentos de código en el servicio de lenguaje.
ProvideServiceAttribute Registra un servicio de lenguaje como un servicio de Visual Studio. Todos los servicios proporcionados en código administrado usan este atributo.

Notas a los desarrolladores de herederos

Esta clase de atributo no se puede heredar de , por lo que no hay nada que implementar.

Notas a los autores de las llamadas

Esta clase de atributo se suele aplicar a la clase VSPackage principal, aunque puede aparecer en cualquier clase. Este atributo solo debe aparecer una vez.

Constructores

ProvideLanguageCodeExpansionAttribute(Object, String, Int32, String, String)

Inicializa una nueva instancia de la clase ProvideLanguageCodeExpansionAttribute.

Propiedades

ForceCreateDirs

Obtiene o establece una cadena delimitada por punto y coma que contiene el directorio o directorios que deben crearse.

LanguageName

Obtiene el nombre del idioma.

LanguageServiceSid

Obtiene el GUID del servicio de lenguaje.

SearchPaths

Obtiene o establece una cadena delimitada por punto y coma que contiene las rutas de acceso predeterminadas para buscar los fragmentos.

ShowRoots

Obtiene o establece si las raíces de fragmentos de código deben ser mostradas.

TypeId

Invalide la propiedad TypeID para permitir que las clases derivadas RegistrationAttribute funcionen con System.ComponentModel.TypeDescriptor.GetAttributes(...). Un atributo derivado de este tendrá que invalidar esta propiedad solo si necesita un mejor control en las instancias que se pueden aplicar a una clase.

(Heredado de RegistrationAttribute)

Métodos

GetPackageRegKeyPath(Guid)

Obtiene la ruta del Registro (en relación con la raíz del Registro de la aplicación) del Paquete VSPackage.

(Heredado de RegistrationAttribute)
Register(RegistrationAttribute+RegistrationContext)

Crea todas las claves y entradas del Registro según se especifica en el constructor de clase.

Unregister(RegistrationAttribute+RegistrationContext)

Quita todas las claves y entradas del Registro según se especifica en el constructor de clase.

Se aplica a