ProvideLanguageCodeExpansionAttribute Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
- 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. |