ProvideLanguageCodeExpansionAttribute Sınıf

Tanım

Kod parçacıkları için dil hizmeti desteğini kaydeder.

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
Devralma
ProvideLanguageCodeExpansionAttribute
Öznitelikler

Örnekler

Bu örnekte, bu kullanıcı tanımlı özniteliğin bir dil hizmeti için kod parçacıklarına yönelik desteği kaydetmek için nasıl kullanıldığı gösterilmektedir.

Not

Visual C# adın "Öznitelik" bölümünü bırakarak kullanıcı tanımlı özniteliğin kısa bir biçimine izin verir. Bu kısaltma biçimi, bu sınıfta ve tüm diğer örneklerde kullanılır.

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

Açıklamalar

Bu kullanıcı tanımlı öznitelik (C#'ye özgüdür) Visual Studio'ya kod parçacıkları için bir dil hizmetinin desteğini kaydetmek için gerekli bilgileri sağlamak için kullanılır. Bu öznitelik tarafından belirtilen değerler derlemede meta veri olarak depolanır. Bu meta veriler daha sonra regpkg.exe programı (VSIP SDK'sının bir parçası) gibi bir program tarafından Visual Studio'ya dil hizmetini belirten ilgili kayıt defteri anahtarlarını ve girdilerini oluşturmak için kullanılır.

tarafından etkilenen ProvideLanguageCodeExpansionAttribute kayıt defteri girdileri aşağıdaki kayıt defteri anahtarı altında bulunur:

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]  

Konum:

  • [X.Y] , Visual Studio'nun sürümüdür, örneğin, 8.0Exp.

  • [dil adı] , dilin adıdır (sınıf oluşturucusunun ikinci parametresinde ProvideLanguageCodeExpansionAttribute belirtildiği gibi).

  • [dil adı kaynak kimliği] , görüntüleme amacıyla kullanılan dil adının kaynak kimliğidir ve bu nedenle yerelleştirilebilir.

  • [kod parçacığı dizin dosyasının yolu] , kod parçacıklarının konumunu açıklayan dizin dosyasının tam yoludur.

  • [dil tanımlayıcısı] , tüm kod parçacıklarını ve kod parçacıkları dizin dosyasını işaretlemek için kullanılan bir dizedir. Bu dize, bir kod parçacıkları kümesini belirli bir dil hizmetiyle ilişkilendirmek için kullanılır.

  • [kod parçacıklarının yolları] Dizin dosyası kullanılamıyorsa kod parçacıklarını aramak için noktalı virgülle ayrılmış yol listesi.

Yollar, Visual Studio için yüklü kök ve kullanıcının Belgelerim konumu gibi konumlara işaret eden değiştirme değişkenleri içerebilir. Bu değiştirme değişkenlerinin ayrıntıları için bkz. Eski Dil Hizmetinde Kod Parçacıkları desteği.

Sınıf oluşturucu gerekli en düşük parametreleri belirtir. Kullanıcı tanımlı öznitelik sınıfı isteğe bağlı adlandırılmış parametreleri de destekler. Bu adlandırılmış parametreler, gerekli parametrelerden sonra oluşturucunun parametre listesinde belirtilir. Bu sınıfta hem get hem de set işleçlerini destekleyen tüm özellikler adlandırılmış parametre olarak belirtilebilir. Örnek, adlandırılmış parametrelerin nasıl kullanıldığını gösterir.

Dil hizmetleri için aşağıdaki kullanıcı tanımlı öznitelikler kullanılır:

Öznitelik Açıklama
ProvideLanguageServiceAttribute Dil hizmetini Visual Studio'ya kaydeder ve hangi özelliklerin desteklendiği belirtir.
ProvideLanguageExtensionAttribute Bir dosya uzantısını dil hizmetiyle ilişkilendirir.
ProvideLanguageEditorOptionPageAttribute Dil hizmetine özgü Seçenekler iletişim kutusu için bir özellik düğümü veya sayfa belirtir.
ProvideLanguageCodeExpansionAttribute Dil hizmetinde kod parçacıklarını desteklemek için konum bilgilerini belirtir.
ProvideServiceAttribute Bir dil hizmetini Visual Studio hizmeti olarak kaydeder. Yönetilen kodda sağlanan tüm hizmetler bu özniteliği kullanır.

Devralanlara Notlar

Bu öznitelik sınıfı öğesinden devralınamaz, bu nedenle uygulanacak bir şey yoktur.

Arayanlara Notlar

Bu öznitelik sınıfı genellikle birincil VSPackage sınıfınıza uygulanır, ancak herhangi bir sınıfta görüntülenebilir. Bu öznitelik yalnızca bir kez görünmelidir.

Oluşturucular

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

ProvideLanguageCodeExpansionAttribute sınıfının yeni bir örneğini başlatır.

Özellikler

ForceCreateDirs

Oluşturulması gereken dizini veya dizinleri içeren noktalı virgülle ayrılmış bir dize alır veya ayarlar.

LanguageName

Dilin adını alır.

LanguageServiceSid

Dil hizmetinin GUID değerini alır.

SearchPaths

Kod parçacıklarını aramak için varsayılan yolları içeren noktalı virgülle ayrılmış bir dize alır veya ayarlar.

ShowRoots

Kod parçacıklarının köklerinin gösterilip gösterilmeymeyeceğini alır veya ayarlar.

TypeId

RegistrationAttribute türetilmiş sınıflarının System.ComponentModel.TypeDescriptor.GetAttributes(...) ile çalışmasına izin vermek için TypeID özelliğini geçersiz kılın. Bu özellikten türetilen bir özniteliğin, yalnızca bir sınıfa uygulanabilecek örnekler üzerinde daha iyi bir denetime ihtiyacı varsa bu özelliği geçersiz kılması gerekir.

(Devralındığı yer: RegistrationAttribute)

Yöntemler

GetPackageRegKeyPath(Guid)

VSPackage'ın kayıt defteri yolunu (uygulamanın kayıt defteri köküne göre) alır.

(Devralındığı yer: RegistrationAttribute)
Register(RegistrationAttribute+RegistrationContext)

Sınıf oluşturucu tarafından belirtilen tüm kayıt defteri anahtarlarını ve girdilerini oluşturur.

Unregister(RegistrationAttribute+RegistrationContext)

Sınıf oluşturucu tarafından belirtilen tüm kayıt defteri anahtarlarını ve girdilerini kaldırır.

Şunlara uygulanır