ProvideLanguageCodeExpansionAttribute Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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
- 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. |