Compartilhar via


ProvideLanguageCodeExpansionAttribute Classe

Definição

Registra o suporte do serviço de linguagem para snippets 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
Herança
ProvideLanguageCodeExpansionAttribute
Atributos

Exemplos

Este exemplo mostra como esse atributo definido pelo usuário é usado para registrar o suporte para snippets de código para um serviço de linguagem.

Observação

O Visual C# permite uma forma abreviada de um atributo definido pelo usuário descartando a parte "Atributo" do nome. Esse formulário abreviado é usado neste e em todos os outros exemplos em toda essa classe.

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

Comentários

Esse atributo definido pelo usuário (que é específico do C#) é usado para fornecer informações necessárias para registrar o suporte de um serviço de linguagem para snippets de código com o Visual Studio. Os valores especificados por esse atributo são armazenados como metadados no assembly. Esses metadados são usados posteriormente por um programa como regpkg.exe programa (parte do SDK do VSIP) para criar as chaves e entradas do Registro correspondentes que informam o Visual Studio sobre o serviço de linguagem.

As entradas do Registro afetadas pelo ProvideLanguageCodeExpansionAttribute são encontradas na seguinte chave do 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]  

Em que:

  • [X.Y] é a versão do Visual Studio, por exemplo, 8.0Exp.

  • [nome da linguagem] é o nome do idioma (conforme especificado no segundo parâmetro para o construtor de ProvideLanguageCodeExpansionAttribute classe).

  • [ID do recurso de nome do idioma] é a ID do recurso do nome do idioma que é usado para fins de exibição e, portanto, pode ser localizado.

  • [caminho para o arquivo de índice de snippet] é o caminho completo para o arquivo de índice que descreve o local dos snippets de código.

  • [identificador de linguagem] é uma cadeia de caracteres usada para marcar todos os snippets e o arquivo de índice de snippets. Essa cadeia de caracteres é usada para associar um conjunto de snippets a um serviço de linguagem específico.

  • [caminhos para snippets] uma lista delimitada por ponto e vírgula de caminhos para pesquisar snippets se o arquivo de índice não estiver disponível.

Os caminhos podem conter variáveis de substituição que apontam para locais como a raiz instalada para o Visual Studio e o local Meus Documentos do usuário. Consulte Suporte para snippets de código em um serviço de linguagem herdado para obter detalhes dessas variáveis de substituição.

O construtor de classe especifica os parâmetros mínimos necessários. Uma classe de atributo definida pelo usuário também dá suporte a parâmetros nomeados opcionais. Esses parâmetros nomeados são especificados na lista de parâmetros do construtor após os parâmetros necessários. Todas as propriedades nessa classe que dão suporte a operadores get e set podem ser especificadas como um parâmetro nomeado. O Exemplo mostra como os parâmetros nomeados são usados.

Os seguintes atributos definidos pelo usuário são usados para serviços de linguagem:

Atributo Descrição
ProvideLanguageServiceAttribute Registra o serviço de linguagem com o Visual Studio e especifica quais recursos têm suporte.
ProvideLanguageExtensionAttribute Associa uma extensão de arquivo ao serviço de linguagem.
ProvideLanguageEditorOptionPageAttribute Especifica um nó de propriedade ou página para a caixa de diálogo Opções específica para o serviço de linguagem.
ProvideLanguageCodeExpansionAttribute Especifica informações de localização para dar suporte a snippets de código no serviço de linguagem.
ProvideServiceAttribute Registra um serviço de linguagem como um serviço do Visual Studio. Todos os serviços fornecidos no código gerenciado usam esse atributo.

Notas aos Herdeiros

Essa classe de atributo não pode ser herdada de , portanto, não há nada a implementar.

Notas aos Chamadores

Essa classe de atributo normalmente é aplicada à classe VSPackage primária, embora possa aparecer em qualquer classe. Esse atributo deve aparecer apenas uma vez.

Construtores

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

Inicializa uma nova instância da classe ProvideLanguageCodeExpansionAttribute.

Propriedades

ForceCreateDirs

Obtém ou define uma cadeia de caracteres delimitada por ponto e vírgula que contém o diretório ou diretórios que devem ser criados.

LanguageName

Obtém o nome do idioma.

LanguageServiceSid

Obtém o GUID do serviço de linguagem.

SearchPaths

Obtém ou define uma cadeia de caracteres delimitada por ponto e vírgula que contém os caminhos padrão para pesquisar snippets.

ShowRoots

Obtém ou define se as raízes dos snippets de código devem ou não ser mostradas.

TypeId

Substitua a propriedade TypeID para permitir que as classes derivadas de RegistrationAttribute funcionem com System.ComponentModel.TypeDescriptor.GetAttributes(...). Um atributo derivado deste terá que substituir essa propriedade somente se precisar de um controle melhor nas instâncias que podem ser aplicadas a uma classe.

(Herdado de RegistrationAttribute)

Métodos

GetPackageRegKeyPath(Guid)

Obtém o caminho do Registro (em relação à raiz do Registro do aplicativo) do VSPackage.

(Herdado de RegistrationAttribute)
Register(RegistrationAttribute+RegistrationContext)

Cria todas as chaves e entradas do Registro, conforme especificado pelo construtor de classe.

Unregister(RegistrationAttribute+RegistrationContext)

Remove todas as chaves e entradas do Registro, conforme especificado pelo construtor de classe.

Aplica-se a