Bagikan melalui


ProvideLanguageCodeExpansionAttribute Kelas

Definisi

Mendaftarkan dukungan layanan bahasa untuk cuplikan kode.

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
Warisan
ProvideLanguageCodeExpansionAttribute
Atribut

Contoh

Contoh ini menunjukkan bagaimana atribut yang ditentukan pengguna ini digunakan untuk mendaftarkan dukungan untuk cuplikan kode untuk layanan bahasa.

Catatan

Visual C# memungkinkan bentuk singkat dari atribut yang ditentukan pengguna dengan menghilangkan bagian "Atribut" dari nama. Bentuk singkatan ini digunakan dalam ini dan semua contoh lainnya di seluruh kelas ini.

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

Keterangan

Atribut yang ditentukan pengguna ini (khusus untuk C#) digunakan untuk memberikan informasi yang diperlukan untuk mendaftarkan dukungan layanan bahasa untuk cuplikan kode dengan Visual Studio. Nilai yang ditentukan oleh atribut ini disimpan sebagai metadata dalam rakitan. Metadata ini kemudian digunakan oleh program seperti program regpkg.exe (bagian dari VSIP SDK) untuk membuat kunci dan entri registri yang sesuai yang memberi tahu Visual Studio tentang layanan bahasa.

Entri registri yang terpengaruh oleh ProvideLanguageCodeExpansionAttribute ditemukan di bawah kunci registri berikut:

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]  

Di mana:

  • [X.Y] adalah versi Visual Studio, misalnya, 8.0Exp.

  • [nama bahasa] adalah nama bahasa (seperti yang ditentukan dalam parameter kedua ke ProvideLanguageCodeExpansionAttribute konstruktor kelas).

  • [ID sumber daya nama bahasa] adalah ID sumber daya dari nama bahasa yang digunakan untuk tujuan tampilan dan karenanya dapat dilokalkan.

  • [jalur ke file indeks cuplikan] adalah jalur lengkap ke file indeks yang menjelaskan lokasi cuplikan.

  • [pengidentifikasi bahasa] adalah string yang digunakan untuk menandai semua cuplikan dan file indeks cuplikan. String ini digunakan untuk mengaitkan sekumpulan cuplikan dengan layanan bahasa tertentu.

  • [jalur ke cuplikan] daftar jalur yang dibatasi titik koma untuk mencari cuplikan jika file indeks tidak tersedia.

Jalur dapat berisi variabel substitusi yang menunjuk ke lokasi seperti akar yang diinstal untuk Visual Studio dan lokasi Dokumen Saya pengguna. Lihat Dukungan untuk Cuplikan Kode dalam Layanan Bahasa Warisan untuk detail variabel substitusi ini.

Konstruktor kelas menentukan parameter minimum yang diperlukan. Kelas atribut yang ditentukan pengguna juga mendukung parameter bernama opsional. Parameter bernama ini ditentukan dalam daftar parameter konstruktor setelah parameter yang diperlukan. Semua properti pada kelas ini yang mendukung operator get dan set dapat ditentukan sebagai parameter bernama. Contoh menunjukkan bagaimana parameter bernama digunakan.

Atribut yang ditentukan pengguna berikut digunakan untuk layanan bahasa:

Atribut Deskripsi
ProvideLanguageServiceAttribute Mendaftarkan layanan bahasa dengan Visual Studio dan menentukan fitur apa yang didukung.
ProvideLanguageExtensionAttribute Mengaitkan ekstensi file dengan layanan bahasa.
ProvideLanguageEditorOptionPageAttribute Menentukan simpul properti atau halaman untuk kotak dialog Opsi khusus untuk layanan bahasa.
ProvideLanguageCodeExpansionAttribute Menentukan informasi lokasi untuk mendukung cuplikan kode dalam layanan bahasa.
ProvideServiceAttribute Mendaftarkan layanan bahasa sebagai layanan Visual Studio. Semua layanan yang disediakan dalam kode terkelola menggunakan atribut ini.

Catatan Bagi Inheritor

Kelas atribut ini tidak dapat diwarisi sehingga tidak ada yang dapat diterapkan.

Catatan Bagi Pemanggil

Kelas atribut ini biasanya diterapkan ke kelas VSPackage utama Anda, meskipun dapat muncul di kelas apa pun. Atribut ini akan muncul hanya sekali.

Konstruktor

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

Menginisialisasi instans baru kelas ProvideLanguageCodeExpansionAttribute.

Properti

ForceCreateDirs

Mendapatkan atau mengatur string yang dibatasi titik koma yang berisi direktori atau direktori yang harus dibuat.

LanguageName

Mendapatkan nama bahasa.

LanguageServiceSid

Mendapatkan GUID layanan bahasa.

SearchPaths

Mendapatkan atau mengatur string yang dibatasi titik koma yang berisi jalur default untuk mencari cuplikan.

ShowRoots

Mendapatkan atau mengatur apakah akar cuplikan kode harus ditampilkan atau tidak.

TypeId

Ambil alih properti TypeID untuk membiarkan RegistrationAttribute memperoleh kelas untuk bekerja dengan System.ComponentModel.TypeDescriptor.GetAttributes(...). Atribut yang berasal dari atribut ini harus mengambil alih properti ini hanya jika membutuhkan kontrol yang lebih baik pada instans yang dapat diterapkan ke kelas.

(Diperoleh dari RegistrationAttribute)

Metode

GetPackageRegKeyPath(Guid)

Mendapatkan jalur registri (relatif terhadap akar registri aplikasi) dari VSPackage.

(Diperoleh dari RegistrationAttribute)
Register(RegistrationAttribute+RegistrationContext)

Membuat semua kunci dan entri registri seperti yang ditentukan oleh konstruktor kelas.

Unregister(RegistrationAttribute+RegistrationContext)

Menghapus semua kunci dan entri registri seperti yang ditentukan oleh konstruktor kelas.

Berlaku untuk