Share via


JavaScript IntelliSense genişletme

JavaScript IntelliSense genişletilebilirlik özelliğini, üçüncü taraf kitaplıkları için JavaScript Düzenleyici IntelliSense sonuçlarında özelleştirmenizi sağlar. Bu bu kitaplıkları kullanan geliştiriciler deneyimini geliştirebilirsiniz.

JavaScript dili hizmet projeye eklenen üçüncü taraf JavaScript kitaplıkları IntelliSense özellikleri sağlar. Çoğu kitaplıkları için ifade tamamlama otomatik olarak dil hizmeti tarafından sağlanır. Deyimi tamamlama örneği aşağıda gösterilmiştir:

Deyimi tamamlama örneği

Kitaplığınıza açıklamaları değişkenleri, işlevleri ve nesnelerinin Standart JavaScript yorum etiketleri içeriyorsa, (/ /), otomatik olarak, varsayılan bir tamamlama listesindeki öğelerin sağında beliren veya parantez içinde bir işlev çağrısı yazdığınızda açılır kutu içindeki açıklayıcı bilgiler sağlamak IntelliSense genişletilebilirlik özellikleri faydalanırsınız. Açılır kutu açıklamalarda üye açıklamasını içerir. Aşağıdaki örnek tamamlanma listesi açılır kutusunu gösterir.

Hızlı bilgi açılır kutu örneği

Daha fazla Geliştirici deneyimini geliştirmek için geliştiriciler açılır kutusunda türü bilgi sağlamak isteyebilirsiniz. JavaScript kullanarak tür bilgileri sağlayabilir xml belgesi açıklamalarının (JavaScript) yerine standart açıklama etiketleri. Üçlü-eğik çizgi açıklama etiketleri (/ / /) ve tanımlanmış bir xml öğeleri kümesi kullanarak, xml belgeleri açıklamalar ekleyin.

Alternatif olarak, JavaScript IntelliSense genişletilebilirlik kullanarak tür bilgileri sağlayabilir. Bu özellik, IntelliSense sonuçları JavaScript uzantıları oluşturma ve bunları komut bağlama ekleyerek özelleştirmenizi sağlar. Tarafından sunulan olaylara abone olan bir JavaScript dosyası, uzantısı intellisense dil hizmeti nesnesi. JavaScript IntelliSense genişletilebilirlik tercih edilen kitaplıkları için davranış desen Kitaplığı'nda JavaScript dili hizmeti istenen düzeyde IntelliSense desteği vermesini önler ve alternatif bildirime dayalı xml belgeleri açıklamalar da gereken çözümdür. IntelliSense sonuçları özelleştirerek, varsayılan dil hizmet yeteneklerinin kısıtlayabilecek herhangi bir davranış desenler ne olursa olsun birinci sınıf bir IntelliSense deneyimi oluşturabilirsiniz. Daha fazla bilgi için bkz. Tanımlayıcıları deyimi tamamlama.

Bir uzantı bağlamı için komut dosyası ekleme

Bir IntelliSense uzantısı yürütülecek, geçerli komut dosyası bağlama eklenmesi gerekir. Uzantısı otomatik olarak komut dosyasının içeriğine göre otomatik bulma düzeneği eklenebilir veya uzantısı komut dosyası bağlamına el referans grupları veya reference yönergesini kullanarak ekleyebilirsiniz.

Dil hizmeti otomatik olarak dosya adlandırma kuralını izlemeniz uzantılarını bulmak otomatik bulma düzeneği sağlar KitaplıkAdı. intellisense.js ve uzantının uygulandığı kitaplığı ile aynı dizinde bulunur. Örneğin, jQuery kitaplığı için geçerli bir uzantı jQuery.intellisense.js olacaktır. Daha kısıtlayıcı jQuery uzantıları için jQuery-1.7.1.intellisense.js (sürüme özgü uzantılı) veya jQuery.ui.intellisense.js (kapsamlı jQuery kitaplığı için bir uzantısı) gibi dosya adları kullanabilirsiniz. Birden çok uzantı için belirli bir kitaplık bulunursa, en kısıtlayıcı sürümü uzantısı kullanılır.

Tüm JavaScript proje dosyalarınızı uzantısı kullanmak istiyorsanız, bunun yerine uzantısı için bir başvuru grubu eklemek seçebilirsiniz. Başvuru grubu, ya da dolaylı bir başvuru içerir ve ayrılmış alt başvurular içeren çeşitli türleri vardır. Bir uzantıyı eklemek için genellikle dosya dolaylı başvuru grubu olarak, ya da eklemeniz gerekir dolaylı (Windows), (Web) dolaylı. Dolaylı başvuru Kod Düzenleyicisi'nde açılan her .js dosya için kapsam içindedir. Bu yöntemi kullandığınızda, hem uzantısı ve uzantı ek dosya eklemeniz gerekir.

Kullanım IntelliSense sayfası seçenekleri bir uzantısı başvuru grubu eklemek için iletişim kutusu. Erişebildiğinizi IntelliSense seçerek sayfayı araçları, seçenekleri menü çubuğunu ve ardından seçme Text Editor, JavaScript, IntelliSense, başvuruları. Referans grupları hakkında daha fazla bilgi için bkz: JavaScript IntelliSense ve Seçenekler, Text Editor JavaScript IntelliSense.

Belirli bir dosya kümesi uzantısı kullanmak istiyorsanız, bir başvuru yönergesini kullanın. Bu yöntemi kullandığınızda, hem uzantısı ve dosya uzantısı ek başvuru gerekir. Reference yönergesini kullanma hakkında daha fazla bilgi için bkz: JavaScript IntelliSense.

IntelliSense olaylarını işleme

IntelliSense sonuçları gibi olaylara abone olarak özelleştirmek genişletilebilirlik özelliğini sağlar statementcompletion dil hizmeti olay intellisense nesne. Aşağıdaki örnekte, ifade tamamlama alt çizgi ile başlayan üyeleri gizlemek için dil hizmeti tarafından kullanılan basit bir uzantısı gösterir. Bu kod underscorefilter.js içinde yer alan ve içinde yer aldığı \\Visual Studio yükleme yolu\JavaScript\References klasör.

intellisense.addEventListener('statementcompletion', function (event) {
    if (event.targetName === "this") return;

    var filterRegex;

    if (event.target === undefined || event.target === window)
        filterRegex = /^_.*\d{2,}/;
    else
        filterRegex = /^_.*/;

    event.items = event.items.filter(function (item) {
        return !filterRegex.test(item.name);
    });
});

Önceki kodda uzantısını denetler hedefadı özelliği ve hedef özelliği özelliklerini statementcompletion olay nesnesi nesneleri gibi dışlamak için this ve windowve geçerli deyimi tamamlanma listesi belirlenebilir olduğundan emin olmak için. Tamamlanma listesi belirlenebilir, ifade tamamlama uzantısı güncelleştirir öğe özelliği tarafından bir alt çizgi ile başlayan üyeler filtre koleksiyonu.

Ek örnekler için bak \\Visual Studio yükleme yolu\JavaScript\References klasör. Bu klasörde showPlainComments.js dosyası standart JavaScript yorum etiketler için varsayılan IntelliSense desteği sağlamak için diğer olayları kullanma örnekleri sağlar (/ /). Gibi underscorefilter.js, showPlainComments.js çalışma uzantısı olarak kullanılabilir ve açıklama etiketleri, değişkenleri, işlevleri ve nesnelerinin kodunuzda kullanırken ortaya çıkan IntelliSense bilgileri görebilirsiniz. Ek örnekler için bkz. Kod örnekleri.

Uyarı

Visual Studio'da yer alan uzantısı dosyaları değiştirirseniz, JavaScript IntelliSense veya uzantısı tarafından desteklenen özelliğini devre dışı bırakabilir.

Uzantısı kodunuzu kullanarak aşağıdaki olay türleri için işleyicileri oluşturabilirsiniz addEventListener:

  • statementcompletion, ifade tamamlama olay işleyicisi ekler. Deyimi tamamlama bir nokta (.) gibi özel bir karakter yazdıktan sonra görünen belirli bir türün üyeleri listesini veya yazı yazarken veya bastığınızda ctrl + j. görünen tanımlayıcıları listesi sağlar. İşleyici türü bir olay nesnesi alır CompletionEvent, aşağıdaki üyeleri destekler: öğe özelliği, hedef özelliği, hedefadı özelliği, ve kapsam özelliği.

  • signaturehelp, IntelliSense parametre bilgileri için bir işleyici ekler. Parametre bilgilerini numarası, adları ve işlevi tarafından gerekli parametreleri türleri hakkında bilgi verir. İşleyici türü bir olay nesnesi alır SignatureHelpEvent, aşağıdaki üyeleri destekler: hedef özelliği, parentObject özelliği, functionComments özelliği, functionHelp özelliği.

  • statementcompletionhint, IntelliSense Hızlı bilgileri için bir işleyici ekler. Hızlı bilgi açılır kutusu kodunuzda tanımlayıcılar için tamamlandı bildirimi gösterir. İşleyici türü bir olay nesnesi alır CompletionHintEvent, aşağıdaki üyeleri destekler: completionItem özelliği, ve symbolHelp özelliği.

IntelliSense deyim tamamlama, parametre bilgilerini ve hızlı bilgi gibi özellikleri gösteren örnekler için bkz: IntelliSense kullanarak.

Not

JavaScript tamamlanma listesi sağında görüntülenen açılır kutuda hızlı bilgi gösterir.Hızlı bilgi el ile çağrılamıyor.

IntelliSense nesnesi

Aşağıdaki tablo kullanılabilir işlevleri gösterir intellisense nesne. intellisense Nesneyi yalnızca tasarım sırasında kullanılabilir.

İşlev

Tanımlama

addEventListener(type, handler);

Bir IntelliSense olayı için bir olay işleyicisi ekler.

typebir dize değeridir. Valid values include statementcompletion, signaturehelp, and statementcompletionhint.

handleraşağıdaki türlerden birinde bir olay nesnesi alır bir olay işleyici işlevi şöyledir:

  • CompletionEvent, kullanılan statementcompletion olay.

  • SignatureHelpEvent, kullanılan signaturehelp olay.

  • CompletionHintEvent, kullanılan statementcompletionhint olay.

Bu işlevi kullanın örnekler için bkz: Kod örnekleri.

annotate(obj, doc);

Belgeleri bir nesne için başka bir nesneye bir nesneden açıklamalardan kopyalayarak belirtir.

objhangi belgeleri kopyalamak nesneyi belirtir.

docbelgelere kopyalanacak nesneyi belirtir.

Bu işlevinin nasıl kullanılacağını gösteren bir örnek için bkz: IntelliSense ek açıklamalar ekleme.

getFunctionComments(func);

Belirtilen işlev için açıklamalar verir.

funcyorumlar döndürülen işlev belirtir.

Ayarlayabileceğiniz func parametresini kullanarak completionItem.value.

Döndürülen functionComments nesnesi aşağıdaki üyelere içerir: above, inside, ve paramComment. Daha fazla bilgi için bkz. functionComments özelliği özelliği.

getFunctionCommentsyalnızca biri tarafından kaydedilen olay işleyicileri, içinden çağrılabilir addEventListener.

Bu işlevinin nasıl kullanılacağını gösteren bir örnek için bkz: \\Visual Studio yükleme yolu\JavaScript\References\showPlainComments.js.

logMessage(msg);

Output penceresine tanı iletileri gönderir.

msgiletiyi içeren bir dizedir.

Bu işlevinin nasıl kullanılacağını gösteren bir örnek için bkz: Output penceresi iletileri gönderme.

nullWithCompletionsOf(value);

Kendisi için Tamamlanma listesi tarafından belirlenir geçirilen nesne özel bir null değeri döndürür value parametresi.

valueTamamlanma listesi için döndürülen değeri belirler. valueherhangi bir türü olabilir.

Dönüş değeri, tasarım zamanında null olarak kabul edilir, ancak döndürülen değer tamamlanma listesi tamamlanma listesinde aynıdır value parametresi.

Bu işlev için bir kullanım olan dönüş türü çalışma zamanında tahmin edilebilir, ancak dönüş değeri dönüş değeri için IntelliSense sağlamak için null tasarım zamanında.

redirectDefinition(func, definition);

Parametre Yardım sağlanan tanım işlevi özgün func fonksiyonu kullanılacak IntelliSense bildirir veya Tanıma Git istendi.

funcHedef işlevi belirtir.

definitionişlev için parametre bilgileri hedef işlevi kullanılacak belirtir ve Tanıma Git.

setCallContext(func, thisArg);

Çağrı içeriği veya belirtilen işlev için kapsamı ayarlar.

funcset scope işlevini belirtir.

thisArgbir nesne için hazır olan this anahtar sözcüğünü başvuru yapabilir, üye için yeni kapsam belirtir. Örneğin, bu parametre geçirmek için bağımsız değişkenleri ekleyebilirsiniz,intellisense.setCallContext(func, { thisArg: "", args: [23,2] });

setCallContextBenzer davranış sağlar Function.prototype.bind, yalnızca tasarım zamanı IntelliSense desteği için kullanılan olmasıdır. Kullanabileceğiniz setCallContext işlevini çağırdığınızda, aksi halde, ulaşılamayan bir kod için bir çağrı benzetmek gerekiyorsa, işlev kapsamı ayarlamak için işlev çağrısı kapsamının doğru ve bağımsız değişkenler dahil edilir.

undefinedWithCompletionsOf(value);

Kendisi için Tamamlanma listesi tarafından belirlenir geçirilen nesne özel bir tanımsız değer döndüren value parametresi.

valueTamamlanma listesi için döndürülen değeri belirler. valueherhangi bir türü olabilir.

Tanımsız dönüş değeri kabul edilir tasarım zamanı, ancak tamamlanması sırasında tanımsız olarak döndürülen değer listesi tamamlanma listesinde aynı olan value parametresi.

Bu işlev için bir kullanım IntelliSense bir dönüş değeri için dönüş türü çalışma zamanında tahmin edilebilir, ancak tasarım zamanında dönüş değeri tanımsızdır sağlamaktır.

version()

Visual Studio sürümü döndürür.

Olay üyeler

Aşağıdaki olaylar için olay nesnesi maruz üyeleri aşağıdaki bölümlerde açıklanmıştır: statementcompletion, signaturehelp, ve statementcompletionhint.

Hh874692.collapse_all(tr-tr,VS.110).gifcompletionItem özelliği

Hızlı bilgi açılır kutu için istenen tamamlama öğesi olarak bilinen tanımlayıcısını döndürür. Bu özellik için kullanılabilir statementcompletionhint olay nesnesi ve öğe özelliği özelliğini statementcompletion olay nesnesi.

Dönüş değeri: completionItem nesne

Aşağıda, üyelerini completionItem nesne:

  • name. Okuma/yazma kullanıldığında items koleksiyonu; Aksi takdirde, salt okunur. Tamamlama maddeyi tanımlayan bir dize döndürür.

  • kind. Okuma/yazma kullanıldığında items koleksiyonu; Aksi takdirde, salt okunur. Tamamlanma öğe türünü temsil eden bir dize döndürür. Olası değerler yöntemi, alan, özellik, parametre, değişken ve ayrılmış.

  • glyph. Okuma/yazma kullanıldığında items koleksiyonu; Aksi takdirde, salt okunur. Tamamlanma listesinde görüntülenen bir simgeyi temsil eden bir dize döndürür. Olası değerleri glyph aşağıdaki biçimi kullanın: vs:glyphType, glyphType dilden bağımsız üyelerine karşılık gelen StandardGlyphGroup numaralandırma. Örneğin, vs:GlyphGroupMethod için olası bir değer glyph. Zaman glyph ayarlı değil, kind özelliği varsayılan simgeyi belirler.

  • parentObject. Salt okunur. Üst nesnesi döndürür.

  • value. Salt okunur. Tamamlanma öğenin değerini temsil eden bir nesne döndürür.

  • comments. Salt okunur. Alan veya değişken açıklamalar içeren bir dize döndürür.

  • scope. Salt okunur. Tamamlanma madde kapsamını döndürür. Olası değerler şunlardır: Genel, yerel, parametre ve üye.

Hh874692.collapse_all(tr-tr,VS.110).giföğe özelliği

Alır veya bir dizi ifade tamamlama öğeleri ayarlar. Dizideki her öğe bir completionItem özelliği nesne. items Özelliği için kullanılabilir statementcompletion olay nesnesi.

Dönüş değeri: dizi

Hh874692.collapse_all(tr-tr,VS.110).giffunctionComments özelliği

İşlev için açıklamalar verir. Bu özellik için kullanılabilir signaturehelp olay nesnesi.

Dönüş değeri: comments nesne

Aşağıda, üyelerini comments nesne:

  • above. Açıklamalar işlevin üstünde döndürür.

  • inside. Açıklamalar işlevin içinde genellikle VSDoc biçiminde döndürür.

  • paramComments. İşlevdeki her parametre için açıklamalar temsil eden bir dizi döndürür. Dizi üyelerini şunları içerir:

    • name. Parametre adı temsil eden bir dize döndürür.

    • comment. Parametre Açıklama içeren bir dize döndürür.

Hh874692.collapse_all(tr-tr,VS.110).giffunctionHelp özelliği

İşlev için Yardım verir. Bu özellik için kullanılabilir signaturehelp olay nesnesi.

Dönüş değeri: functionHelp nesne

Aşağıda, üyelerini functionHelp nesne:

  • functionName. Okuma/yazma. İşlev adını içeren bir dize döndürür.

  • signatures. Okuma/yazma. Alır veya ayarlar işlev imzalarında dizisi. Dizideki her öğe bir signature nesne. Bazı signature özellikleri gibi locid, karşılık gelen ortak xml belgesi açıklamalarının (JavaScript) öznitelikleri.

    Üyeleri, signature nesne içerir:

    • description. Okuma/yazma. Bir işlevi tanımlayan bir dize döndürür.

    • locid. Okuma/yazma. Yerelleştirme işlevi hakkında bilgi içeren bir dize tanımlayıcısını döndürür.

    • helpKeyword. Okuma/yazma. Yardım anahtar sözcüğünü içeren bir dize döndürür.

    • externalFile. Okuma/yazma. Üye kimliği içeren dosyayı temsil eden bir dize döndürür.

    • externalid. Okuma/yazma. Üye işlev Kimliğini temsil eden bir dize döndürür.

    • params. Okuma/yazma. Alır veya ayarlar işlevi için parametre dizisi. Parametrelerin dizideki her öğe bir parameter aşağıdaki öznitelikleri için karşılık gelen özelliklere sahip bir nesne <param> (JavaScript) öğesi:

      • name. Okuma/yazma. Parametre adı temsil eden bir dize döndürür.

      • type. Okuma/yazma. Parametre türü temsil eden bir dize döndürür.

      • elementType. Okuma/yazma. Tür ise, Array, dizideki öğelerin türünü temsil eden bir dize döndürür.

      • description. Okuma/yazma. Parametreyi tanımlayan bir dize döndürür.

      • locid. Okuma/yazma. Yerelleştirme işlevi hakkında bilgi içeren bir dize tanımlayıcısını döndürür.

      • optional. Okuma/yazma. İsteğe bağlı parametre olup olmadığını gösteren bir dize döndürür. trueparametre isteğe bağlı olduğunu gösterir; falsedeğil olduğunu gösterir.

    • returnValue. Okuma/yazma. Alır veya karşılık gelen özelliklere sahip bir dönüş değeri nesnesi için aşağıdaki özniteliklerini ayarlar <returns> (JavaScript) öğesi:

      • type. Okuma/yazma. Dönüş türü temsil eden bir dize döndürür.

      • elementType. Okuma/yazma. Tür ise, Array, dizideki öğelerin türünü temsil eden bir dize döndürür.

      • description. Okuma/yazma. Dönüş değeri tanımlayan bir dize döndürür.

      • locid. Okuma/yazma. Yerelleştirme işlevi hakkında bilgi içeren bir dize tanımlayıcısını döndürür.

      • helpKeyword. Okuma/yazma. Yardım anahtar sözcüğünü içeren bir dize döndürür.

      • externalFile. Okuma/yazma. Üye kimliği içeren dosyayı temsil eden bir dize döndürür.

      • externalid. Okuma/yazma. Üye işlev Kimliğini temsil eden bir dize döndürür.

Hh874692.collapse_all(tr-tr,VS.110).gifparentObject özelliği

Üst nesne üye işlev döndürür. Örneğin, document.getElementByID, parentObject döndüren document nesne. Bu özellik için kullanılabilir signaturehelp olay nesnesi.

Dönüş değeri: nesne

Hh874692.collapse_all(tr-tr,VS.110).gifhedef özelliği

Nokta (.) tetikleyici karakteri soldan öğesini temsil eden bir nesne döndürür. İşlevler için target için parametre bilgileri İstenen işlev verir. Bu özellik için kullanılabilir statementcompletion ve signaturehelp olay nesneleri.

Dönüş değeri: nesne

Hh874692.collapse_all(tr-tr,VS.110).gifhedefadı özelliği

Hedef temsil eden bir dize döndürür. Örneğin, "Bu.", targetName "Bu" döndürür. İçin "a.b" ("b" sonra imleci olduğunda), targetName "b" verir. Bu özellik için kullanılabilir statementcompletion olay nesnesi.

Dönüş değeri: dize

Hh874692.collapse_all(tr-tr,VS.110).gifsymbolHelp özelliği

Hızlı bilgi açılır kutu için istenen tamamlama öğeyi döndürür. Bu özellik için kullanılabilir statementcompletionhint olay nesnesi.

Dönüş değeri: symbolHelp nesne.

Bazı özelliklerini symbolHelp gibi nesne locid, karşılık gelen ortak xml belgesi açıklamalarının (JavaScript) öznitelikleri.

Aşağıda, üyelerini symbolHelp nesne:

  • name. Okuma/yazma. Tanımlayıcı adı içeren bir dize döndürür.

  • symbolType. Okuma/yazma. Sembol türünü temsil eden bir dize döndürür. Olası değerler şunlardır: Bilinmeyen, Boolean, sayı, dize, nesne, işlev, dizi, tarih ve Regex.

  • symbolDisplayType. Okuma/yazma. Görüntülemek için tür adı içeren bir dize döndürür. If symbolDisplayType isn't set, symbolType is used.

  • elementType. Okuma/yazma. symbolType Olan Array, dizideki öğelerin türünü temsil eden bir dize döndürür.

  • scope. Okuma/yazma. Sembol kapsamını temsil eden bir dize döndürür. Olası değerler şunlardır: Genel, yerel, parametre ve üye.

  • description. Okuma/yazma. Sembol için bir açıklama içeren bir dize döndürür.

  • locid. Okuma/yazma. Yerelleştirme sembolü hakkında bilgi içeren bir dize tanımlayıcısını döndürür.

  • helpKeyword. Okuma/yazma. Yardım anahtar sözcüğünü içeren bir dize döndürür.

  • externalFile. Okuma/yazma. Üye kimliği içeren dosyayı temsil eden bir dize döndürür.

  • externalid. Okuma/yazma. Üye No sembolün temsil eden bir dize döndürür.

  • functionHelp. Okuma/yazma. Döndürür bir functionHelp özelliği, bilgiler içerebilir, symbolType işlevidir.

Hh874692.collapse_all(tr-tr,VS.110).gifkapsam özelliği

Olay tamamlama kapsamını döndürür. Tamamlanması için olası değerleri olan global ve üyeleri kapsam. Bu özellik için kullanılabilir statementcompletion olay nesnesi.

Dönüş değeri: dize

IntelliSense uzantılarında hata ayıklama

Uzantıları hata ayıklaması yapılamıyor, ancak kullanabileceğiniz IntelliSense nesnesi Visual Studio Output penceresine bilgi göndermek için işlev. Bu işlevinin nasıl kullanılacağını gösteren bir örnek için bkz: Output penceresi iletileri gönderme bu konuda daha sonra. İçin logMessage çalışması için en az bir olay işleyicisi bir uzantısı kayıtlı olması gerekir.

Kod örnekleri

Bu bölümde, IntelliSense genişletilebilirlik API'ları nasıl gösteren kod örnekleri içerir. Bu API'leri kullanan başka yolları da vardır. Ek örnekler için aşağıdaki dosyaları Bkz: \\Visual Studio yükleme yolu\JavaScript\References klasör. Bunlar JavaScript dili hizmeti tarafından kullanılan örnekler çalışıyorsunuz.

  • underscoreFilter.js. Bu kod, IntelliSense özel üyelerinden gizler. Olay işleyicileri içerir statementcompletion olay.

  • showPlainComments.js. Bu kod, standart açıklamaları için IntelliSense desteği sağlar. Olay işleyicileri içerir signaturehelp ve statementcompletionhint olaylar.

Hh874692.collapse_all(tr-tr,VS.110).gifIntelliSense ek açıklamalar ekleme

Aşağıdaki yordam kitaplığı değiştirmeden doğrudan bir üçüncü taraf kitaplığı için IntelliSense belgelerine destek sağlamak nasıl gösterir. Bunu yapmak için kullanabileceğiniz intellisense.annotate bir uzantısı.

Bu örneğin çalışması, projenizde aşağıdaki JavaScript dosyaları gerekir:

  • demoLib.js, üçüncü taraf bir kitaplığı temsil eden bir proje dosyasıdır.

  • demoLib.intellisense.js IntelliSense uzantısıdır. Bu dosyayı projeye dahil gerekmez, ancak exampleLib.js ile aynı klasörde olması gerekir.

  • appCode.js, uygulama kodunu temsil eden bir proje dosyasıdır.

IntelliSense ek açıklama eklemek için

  1. DemoLib.js için aşağıdaki kodu ekleyin.

    function someFunc(a) { };
    var rectangle;
    
  2. DemoLib.intellisense.js için aşağıdaki kodu ekleyin.

    intellisense.annotate(someFunc, function (a) {
        /// <signature>
        /// <summary>Description of someFunc</summary>
        /// <param name="a">Param a</param>
        /// </signature>
    });
    
    intellisense.annotate(window, {
        // This is a comment on a global variable named rectangle.
        rectangle: undefined
    });
    
  3. Aşağıdaki başvuru yönergesi appCode.js ilk satırı olarak ekleyin. Burada kullanılan yolu JavaScript dosyaları aynı klasörde olduğunu gösterir.

    /// <reference path="demoLib.js" />
    
  4. AppCode.js içinde aşağıdaki kodu yazın. IntelliSense parametre bilgileri görüntülenen uzantısı xml belgeleme yorumlarını görürsünüz.

    İntellisense.annotate kullanımını gösteren örnek

  5. AppCode.js içinde aşağıdaki kodu yazın. Siz yazarken, IntelliSense Hızlı bilgileri görüntülenen uzantısı standart açıklamalarda göreceksiniz.

    İntellisense.annotate kullanımını gösteren örnek

Hh874692.collapse_all(tr-tr,VS.110).gifOutput penceresi iletileri gönderme

Aşağıdaki yordam Output penceresine göndermek nasıl gösterir. IntelliSense uzantıları hata ayıklama yardımcı olmak için ileti gönderebilirsiniz.

Bu örneğin çalışması, projenizde aşağıdaki JavaScript dosyaları gerekir:

  • exampleLib.js, üçüncü taraf bir kitaplığı temsil eden bir proje dosyasıdır.

  • exampleLib.intellisense.js IntelliSense uzantısıdır. Bu dosyayı projeye dahil gerekmez, ancak exampleLib.js ile aynı klasörde olması gerekir.

  • appCode.js, uygulama kodunu temsil eden bir proje dosyasıdır.

Output penceresi için bir ileti göndermek için

  1. ExampleLib.js için aşağıdaki kodu ekleyin.

    var someVar = {
        a: 1,
        b: 'hello'
    };
    
  2. ExampleLib.intellisense.js için aşağıdaki kodu ekleyin.

    intellisense.addEventListener('statementcompletion', function (e) {
        // Prints out statement completion info: Either (1) the member 
        // list, if the trigger character was typed, or (2) the 
        // statement completion identifiers.
        // e.target represents the object left of the trigger character.
        intellisense.logMessage(
            e.target ? 'member list requested, target: ' + e.targetName : 'statement completion for current scope requested');
    
        // Prints out all statement completion items.
        e.items.forEach(function (item) {
            intellisense.logMessage('[completion item] ' + item.name + ', kind:' + item.kind + ', scope:' + item.scope + ', value:' + item.value);
        });
    });
    
  3. Aşağıdaki başvuru yönergesi appCode.js ilk satırı olarak ekleyin. Burada kullanılan yolu JavaScript dosyaları aynı klasörde olduğunu gösterir.

    /// <reference path="exampleLib.js" />
    
  4. Çıkış penceresinde seçin JavaScript dili hizmet , çıktısını Göster listesi. (Output penceresi görüntülemek için seçin Çıkış Görünüm menüsünden.)

  5. AppCode.js içinde aşağıdaki kodu yazın. Siz yazarken, Output penceresi dil hizmetinden gelen iletileri gösterir. Geçerli kapsam için deyimi tamamlama istenen ilk ileti çıktı penceresinde gösterir.

    some
    

    Aşağıdaki çıkış görmeniz gerekir kısmi bir görünümüdür.

    03:16:14.3113: statement completion for current scope requested
    03:16:14.3113: [completion item] break, kind:reserved, scope:undefined, value:undefined
    03:16:14.3113: [completion item] case, kind:reserved, scope:undefined, value:undefined
    03:16:14.3113: [completion item] catch, kind:reserved, scope:undefined, value:undefined
    
    …
    
  6. Seçim Tümünü Temizle çıktı penceresinde düğme.

  7. Aşağıdaki kodu yazın. Üye listesi istenen ilk ileti çıktı penceresinde gösterir.

    someVar.
    

    Kısmi bir çıktı görmelisiniz görünümünü aşağıdaki gibidir:

    03:17:43.4032: member list requested, target: someVar
    03:17:43.4032: [completion item] a, kind:field, scope:member, value:1
    03:17:43.4032: [completion item] b, kind:field, scope:member, value:hello
    03:17:43.4032: [completion item] constructor, kind:method, scope:member, value:
    
    …
    

Hh874692.collapse_all(tr-tr,VS.110).gifIntelliSense simgelerini değiştirme

Aşağıdaki yordamda, IntelliSense tarafından varsayılan olarak görüntülenen simgeleri değiştirmek gösterilmiştir. IntelliSense gibi ad alanları, sınıflar, arayüzler ve numaralandırma kitaplığı özgü kavramları hakkında bilgi sağlarsanız, bu yararlı olabilir.

Kullanılabilir simge değerler için bkz: StandardGlyphGroup.

Bu örneğin çalışması, projenizde aşağıdaki JavaScript dosyaları gerekir:

  • bir proje olan exampleLib.js, represens üçüncü taraf bir kitaplık dosyası.

  • exampleLib.intellisense.js IntelliSense uzantısıdır. Bu dosyayı projeye dahil gerekmez, ancak exampleLib.js ile aynı klasörde olması gerekir.

  • appCode.js, uygulama kodunu temsil eden bir proje dosyasıdır.

Simgeleri değiştirmek için

  1. ExampleLib.js için aşağıdaki kodu ekleyin.

    function Namespace(name) {
        this._isNamespace = true;
        window[name] = this;
    };
    
    function Enum(values) {
        var e = Object.create(values);
        e._isEnum = true;
        return e;
    };
    
    var SomeNamespace = new Namespace('SomeNamespace');
    // A constructor function is considered a class.
    SomeNamespace.SomeClass1 = function () { }
    SomeNamespace.Enum1 = new Enum({ VALUE1: 0, VALUE2: 1 });
    
  2. ExampleLib.intellisense.js için aşağıdaki kodu ekleyin.

    intellisense.addEventListener('statementcompletion', function (e) {
        e.items.forEach(function (item) {
            // Detect a namespace by using the _isNamespace flag.
            if (item.value && item.value._isNamespace) {
                item.glyph = 'vs:GlyphGroupNamespace';
                }
    
            if (item.parentObject && item.parentObject._isNamespace) {
                // The item is a member of a namespace. 
    
                // All constructor functions that are part of a namespace 
                // are considered classes. 
                // A constructor function starts with
                // an uppercase letter by convention.  
                if (typeof item.value == 'function' && (item.name[0].toUpperCase() 
                    == item.name[0])) {
                    item.glyph = 'vs:GlyphGroupClass';
                }
    
                // Detect an enumeration by using the _isEnum flag.
                if (item.value && item.value._isEnum) {
                    item.glyph = 'vs:GlyphGroupEnum';
                }
            }
        });
    });
    
    intellisense.addEventListener('statementcompletionhint', function (e) {
        if (e.completionItem.value) {
            if (e.completionItem.value._isNamespace) {
                e.symbolHelp.symbolDisplayType = 'Namespace';
            }
            if (e.completionItem.value._isEnum) {
                e.symbolHelp.symbolDisplayType = 'Enum';
            }
        }
    });
    
  3. Aşağıdaki başvuru yönergesi appCode.js ilk satırı olarak ekleyin. Burada kullanılan yolu JavaScript dosyaları aynı klasörde olduğunu gösterir.

    /// <reference path="exampleLib.js" />
    
  4. AppCode.js içinde aşağıdaki kodu yazın. Siz yazarken, simge ad alanı için "{}", C# [NULL]'ta kullanılan değiştiğini görürsünüz.

    Glif özelliği kullanımını gösteren örnek

  5. AppCode.js içinde aşağıdaki kodu yazın. Siz yazarken, Enum1 üyesi için yeni bir numaralandırma simgesi ve SomeClass1 üye için yeni bir sınıf simgesi görürsünüz.

    Glif özelliği kullanımını gösteren örnek

Hh874692.collapse_all(tr-tr,VS.110).gifÇalışma zamanı etkileri IntelliSense sonuçları önleme

JavaScript dili hizmeti dinamik olarak IntelliSense bilgi sağlamak için kod çalışır. Sonuç olarak, çalışma zamanı davranışı bazen istenen sonuçları ile etkileyebilir. Aşağıdaki yordamda, çalışma zamanı davranışını yanlış IntelliSense'de neden olursa, IntelliSense sonuçları geçersiz kılmak gösterilmiştir.

Bu örneğin çalışması, projenizde aşağıdaki JavaScript dosyaları gerekir:

  • exampleLib.js, üçüncü taraf bir kitaplığı temsil eden bir proje dosyasıdır.

  • exampleLib.intellisense.js IntelliSense uzantısıdır. Bu dosyayı projeye dahil gerekmez, ancak exampleLib.js ile aynı klasörde olması gerekir.

  • appCode.js, uygulama kodunu temsil eden bir proje dosyasıdır.

IntelliSense sonuçları çalışma zamanı etkileri önlemek için

  1. ExampleLib.js için aşağıdaki kodu ekleyin.

    function after(count, func) {
        return function () {
            if (--times < 1) {
                return func.apply(this, arguments);
            }
        };
    };
    

    Önceki kodda, kaydırılan işlevi değeri temel alınarak ilk çağrıları yoksayar countve sonuçları döndürmez.

  2. Aşağıdaki başvuru yönergesi appCode.js ilk satırı olarak ekleyin. Burada kullanılan yolu JavaScript dosyaları aynı klasörde olduğunu gösterir.

    /// <reference path="exampleLib.js" />
    
  3. AppCode.js içinde aşağıdaki kodu yazın. Kaydırılan işlevi hiçbir zaman, başka bir deyişle, çağrıldığı için IntelliSense tanımlayıcı listesi görünür throttled işlevi olmayan herhangi bir sonuç döndürür.

    IntelliSense sonuçları geçersiz kılma örneği

  4. ExampleLib.intellisense.js için aşağıdaki kodu ekleyin. IntelliSense gösterilen kaydırılan işlevi için böylece bu beklendiği gibi tasarım zamanı davranışını değiştirir.

    window.after = function (count, func) {
        // Just return func. 
        return func;
    };
    
  5. AppCode.js daha önce yazılan aynı kod yazarak test sonuçları. Bu kez, IntelliSense, istenilen bilgileri sağlar.

    IntelliSense sonuçları geçersiz kılma örneği

Ayrıca bkz.

Kavramlar

JavaScript IntelliSense

Tanımlayıcıları deyimi tamamlama