Sdílet prostřednictvím


ProvideLanguageCodeExpansionAttribute Třída

Definice

Zaregistruje podporu služby jazyka pro fragmenty kódu.

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
Dědičnost
ProvideLanguageCodeExpansionAttribute
Atributy

Příklady

Tento příklad ukazuje, jak se tento atribut definovaný uživatelem používá k registraci podpory fragmentů kódu pro službu jazyka.

Poznámka

Visual C# umožňuje zkrácenou formu uživatelem definovaného atributu tím, že v názvu vyřadí část Atribut. Tento zkrácený formulář se používá v této a všech ostatních příkladech v této třídě.

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

Poznámky

Tento atribut definovaný uživatelem (který je specifický pro jazyk C#) slouží k poskytování informací potřebných k registraci podpory jazykových služeb pro fragmenty kódu v sadě Visual Studio. Hodnoty určené tímto atributem jsou uloženy jako metadata v sestavení. Tato metadata jsou později používána programem, jako je program regpkg.exe (součást sady VSIP SDK), k vytvoření odpovídajících klíčů registru a položek, které sadě Visual Studio říkají o jazykové službě.

Položky registru ovlivněné nástrojem jsou ProvideLanguageCodeExpansionAttribute nalezeny v následujícím klíči registru:

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]  

Kde:

  • [X.Y] je verze sady Visual Studio, například 8.0Exp.

  • [název jazyka] je název jazyka (jak je uvedeno v druhém parametru konstruktoru ProvideLanguageCodeExpansionAttribute třídy).

  • [ID prostředku názvu jazyka] je ID prostředku názvu jazyka, který se používá pro účely zobrazení, a proto je možné ho lokalizovat.

  • [cesta k souboru indexu fragmentu kódu] je úplná cesta k souboru indexu, která popisuje umístění fragmentů kódu.

  • [identifikátor jazyka] je řetězec, který slouží k označení všech fragmentů kódu a souboru indexu fragmentů fragmentů kódu. Tento řetězec se používá k přidružení sady fragmentů kódu ke konkrétní jazykové službě.

  • [cesty k fragmentům] seznam cest oddělených středníkem pro vyhledávání fragmentů, pokud není k dispozici soubor indexu.

Cesty můžou obsahovat proměnné nahrazení, které odkazují na umístění, jako je nainstalovaný kořenový adresář sady Visual Studio a umístění dokumentů uživatele. Podrobnosti o těchto náhradních proměnných najdete v tématu Podpora fragmentů kódu ve službě starší verze jazyka .

Konstruktor třídy určuje minimální požadované parametry. Třída atributu definovaná uživatelem také podporuje volitelné pojmenované parametry. Tyto pojmenované parametry jsou zadané v seznamu parametrů konstruktoru za požadovanými parametry. Všechny vlastnosti této třídy, které podporují operátory get i set, lze zadat jako pojmenovaný parametr. Příklad ukazuje, jak se používají pojmenované parametry.

Pro jazykové služby se používají následující atributy definované uživatelem:

Atribut Popis
ProvideLanguageServiceAttribute Zaregistruje jazykovou službu v sadě Visual Studio a určí podporované funkce.
ProvideLanguageExtensionAttribute Přidruží příponu souboru k jazykové službě.
ProvideLanguageEditorOptionPageAttribute Určuje uzel vlastnosti nebo stránku pro dialogové okno Možnosti specifické pro službu jazyka.
ProvideLanguageCodeExpansionAttribute Určuje informace o umístění pro podporu fragmentů kódu ve službě jazyka.
ProvideServiceAttribute Zaregistruje jazykovou službu jako službu sady Visual Studio. Tento atribut používají všechny služby poskytované ve spravovaném kódu.

Poznámky pro dědice

Tuto třídu atributu nelze zdědit, takže není co implementovat.

Poznámky pro volající

Tato třída atributu se obvykle používá pro primární třídu VSPackage, i když se může zobrazit v libovolné třídě. Tento atribut by se měl zobrazit pouze jednou.

Konstruktory

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

Inicializuje novou instanci ProvideLanguageCodeExpansionAttribute třídy.

Vlastnosti

ForceCreateDirs

Získá nebo nastaví řetězec oddělený středníkem obsahující adresář nebo adresáře, které by měly být vytvořeny.

LanguageName

Získá název jazyka.

LanguageServiceSid

Získá identifikátor GUID služby jazyka.

SearchPaths

Získá nebo nastaví řetězec oddělený středníkem obsahující výchozí cesty k vyhledání fragmentů kódu.

ShowRoots

Získá nebo nastaví, zda se mají zobrazit kořeny fragmentů kódu.

TypeId

Přepište vlastnost TypeID, aby mohly odvozené třídy RegistrationAttribute pracovat s System.ComponentModel.TypeDescriptor.GetAttributes(...). Atribut odvozený z tohoto bude muset přepsat tuto vlastnost pouze v případě, že potřebuje lepší kontrolu nad instancemi, které lze použít na třídu.

(Zděděno od RegistrationAttribute)

Metody

GetPackageRegKeyPath(Guid)

Získá cestu registru (vzhledem k kořenovému adresáři registru aplikace) VSPackage.

(Zděděno od RegistrationAttribute)
Register(RegistrationAttribute+RegistrationContext)

Vytvoří všechny klíče registru a položky zadané konstruktorem třídy.

Unregister(RegistrationAttribute+RegistrationContext)

Odebere všechny klíče registru a položky zadané konstruktorem třídy.

Platí pro