Sdílet prostřednictvím


Rozšíření technologie JavaScript IntelliSense

Rozšiřující funkce technologie IntelliSense jazyka JavaScript umožňuje přizpůsobit výsledky technologie IntelliSense v editoru jazyka JavaScript pro jiného výrobce knihovny.To může zlepšit pohodlí vývojářů, kteří používají tyto knihovny.

Služba jazyka JavaScript poskytuje funkce technologie IntelliSense pro knihovny jazyka JavaScript třetích stran, které jsou přidány do projektu.Pro většinu knihoven dokončování je poskytovaná automaticky jazyk.Následující obrázek znázorňuje příklad dokončování:

Například dokončování příkazů

Pokud knihovna obsahuje popis proměnné, funkce a objekty v standardní značky komentáře jazyka JavaScript (/ /), automaticky přináší, ve výchozím nastavení z rozšiřující funkce technologie IntelliSense, které obsahují popisné informace do rozbalovací pole, které se zobrazí vpravo od prvků v seznamu dokončení nebo po zadání otevírací závorka ve volání funkce.Komentáře v rozbalovací pole obsahují popis člena.Následující příklad ukazuje, rozbalovací pole pro dokončení seznamu.

Příklad okno rychlých informací

K dalšímu zlepšení možnosti vývojáře, můžete chtít poskytnout informace o typu pro vývojáře v rozbalovací pole.Informace o typu můžete zadat pomocí jazyka JavaScript Komentáře XML dokumentace (JavaScript) namísto standardní komentář tagy.Přidání komentářů dokumentace XML pomocí značky komentáře triple lomítko (/ / /) a sada prvků XML.

Alternativně můžete zadat typ informace pomocí rozšíření technologie IntelliSense jazyka JavaScript.Tato funkce umožňuje přizpůsobit výsledky technologie IntelliSense, vytváření rozšíření jazyka JavaScript a přidáním skriptu v kontextu.V rozšíření, což je soubor jazyka JavaScript, můžete přihlásit k odběru událostí, které jsou vystaveny intellisense objekt služby jazyk.Rozšíření technologie IntelliSense jazyka JavaScript je preferovaným řešením pro knihovny chování vzorku v knihovně brání poskytovat požadovanou úroveň podpory technologie IntelliSense službu jazyka JavaScript a alternativu k deklarativní dokumentační komentáře XML je také zapotřebí.Přizpůsobením technologie IntelliSense výsledky, můžete vytvořit prvotřídní technologie IntelliSense zkušenosti, bez ohledu na nějaké vzorky, které by mohly omezovat možnosti výchozí jazyk služby.Další informace naleznete v tématu Dokončování příkazů pro identifikátory.

Přidání skriptu v kontextu rozšíření

Rozšíření technologie IntelliSense, mají být provedeny je nutné přidat k aktuálnímu kontextu skriptu.Rozšíření mohou být automaticky přidány do kontextu skript mechanismem pro automatické zjišťování nebo je můžete přidat příponu skriptu v kontextu ručně pomocí referenční skupiny nebo referenční směrnice.

Mechanismus pro automatické zjišťování umožňuje službě jazyk automaticky najít rozšíření, které podle konvence pojmenování souborů NázevKnihovny. intellisense.js a které jsou umístěny ve stejném adresáři jako knihovna, na který se vztahuje rozšíření.JQuery.intellisense.js být například platné rozšíření pro knihovnu jQuery.Pro více omezující jQuery rozšíření můžete použít názvy souborů, například jQuery-1.7.1.intellisense.js (specifické pro verzi rozšíření) nebo jQuery.ui.intellisense.js (rozšíření pro knihovnu jQuery rozsahu).Nejvíce omezující verzi rozšíření se používá, pokud není pro danou knihovnu nalezen více než jednu příponu.

Pokud chcete použít rozšíření pro všechny soubory projektu jazyka JavaScript, můžete namísto přidání rozšíření do referenční skupiny.Existuje několik typů referenční skupiny, buď ty, které obsahují implicitní odkazy a ty, které obsahují odkazy na vyhrazené pracovní.Chcete-li přidat příponu, obvykle nutné přidat soubor jako implicitní referenční skupiny, buď implicitní (Windows), implicitní (Web).Implicitní odkazy jsou v rozsahu pro každý soubor .js, otevřít v editoru kódu.Při použití této metody je třeba přidat příponu a soubor, který je doplnit rozšíření.

Použití technologie IntelliSense stránku Možnosti dialogové okno a přidejte příponu jako referenční skupiny.Se dostanete technologie IntelliSense stránky výběrem Nástroje, Možnosti na řádek nabídek a poté zvolíte Textový Editor, jazyka JavaScript, technologie IntelliSense, odkazy.Další informace o referenční skupiny, viz JavaScript IntelliSense a Možnosti textového editoru JavaScriptu, technologie IntelliSense.

Pokud chcete použít rozšíření pro konkrétní sadu souborů, použijte odkaz směrnice.Při použití této metody je třeba odkazovat rozšíření a soubor, který je doplnit rozšíření.Informace o použití směrnice odkaz naleznete v tématu JavaScript IntelliSense.

Zpracování událostí technologie IntelliSense

Funkci rozšíření umožňuje přizpůsobit technologie IntelliSense výsledky se přihlásíte k odběru události, jako je například statementcompletion události služby jazyk intellisense objektu.Následující příklad ukazuje jednoduchý rozšíření, které používá služba jazyka lze skrýt členy, které začínají podtržítkem z dokončování příkazů.Tento kód je obsažen v underscorefilter.js a v \\cestu pro instalaci aplikace Visual Studio\JavaScript\References složky.

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);
    });
});

V předchozím kódu rozšíření kontroly cílový_název vlastnost a Vlastnost target vlastnosti statementcompletion události objektu, který chcete vyloučit objekty, jako je například this a windowa zajistit identifikaci seznam dokončení platný výpis.Je-li seznam dokončení lze identifikovat, rozšíření aktualizace dokončování příkazů Vlastnost položky kolekce filtrováním členy, které začínají podtržítkem.

Další příklady, kde hledat \\cestu pro instalaci aplikace Visual Studio\JavaScript\References složky.Soubor showPlainComments.js v této složce uvádí příklady použití jiné události poskytnout výchozí podporu technologie IntelliSense pro standardní značky komentáře jazyka JavaScript (/ /).Podobně jako underscorefilter.js showPlainComments.js je již k dispozici jako rozšíření pracovních a zobrazí výsledné informace technologie IntelliSense při použití značky komentáře v kódu pro proměnné, funkce a objekty.Další příklady naleznete v tématu Příklady kódu.

Poznámka k upozorněníUpozornění

Pokud upravíte soubory rozšíření, které jsou součástí aplikace Visual Studio, může zakázat technologie IntelliSense jazyka JavaScript nebo funkce podporována rozšířením.

V kódu rozšíření, můžete vytvořit obslužné rutiny pro následující typy událostí pomocí addEventListener:

  • statementcompletion, která přidá obslužnou rutinu pro událost dokončení příkazu.Dokončování poskytuje seznam členů v rámci určitého typu, který se zobrazí po zadání speciální znak, jako jsou například tečka (.) nebo seznam identifikátorů, které se zobrazí při psaní nebo po stisknutí kombinace kláves CTRL + J.Obslužná rutina nepřijme objektu události typu CompletionEvent, který podporuje následující členy: Vlastnost položky, Vlastnost target, cílový_název vlastnost, a obor vlastností.

  • signaturehelp, která přidá obslužnou rutinu pro parametr informace technologie IntelliSense.Informace o parametrech jsou uvedeny informace o čísla, názvy a typy parametrů požadovaných funkcí.Obslužná rutina nepřijme objektu události typu SignatureHelpEvent, který podporuje následující členy: Vlastnost target, Vlastnost parentObject, Vlastnost functionComments, Vlastnost functionHelp.

  • statementcompletionhint, která přidá obslužnou rutinu pro rychlé informace technologie IntelliSense.Rozbalovací pole Rychlé informace ukazuje úplné deklarace identifikátorů v kódu.Obslužná rutina nepřijme objektu události typu CompletionHintEvent, který podporuje následující členy: Vlastnost completionItem, a Vlastnost symbolHelp.

Příklady funkce technologie IntelliSense, jako například dokončování, informace o parametrech a rychlé informace, viz Pomocí technologie IntelliSense.

[!POZNÁMKA]

V jazyce JavaScript rychlé informace odkazuje rozbalovací pole, které se objeví napravo od seznamu dokončení.Rychlé informace nelze vyvolat ručně.

technologie IntelliSense objektu

Následující tabulka obsahuje funkce, které jsou k dispozici intellisense objektu.intellisense Objekt je k dispozici pouze v době návrhu.

Function

Description

addEventListener(type, handler);

Přidá obslužnou rutinu události pro událost technologie IntelliSense.

typeje hodnota řetězce.Valid values include statementcompletion, signaturehelp, and statementcompletionhint.

handlerje funkce obslužné rutiny události, která přijímá objekt události některého z následujících typů:

  • CompletionEvent, sloužící statementcompletion události.

  • SignatureHelpEvent, sloužící signaturehelp události.

  • CompletionHintEvent, sloužící statementcompletionhint události.

Příklady, které tuto funkci použít, naleznete v Příklady kódu.

annotate(obj, doc);

Určuje dokumentace pro objekt kopírováním dokumentační komentáře z jednoho objektu na jiný objekt.

objUrčuje objekt, do kterého chcete kopírovat v dokumentaci.

docUrčuje objekt, ze kterého chcete kopírovat v dokumentaci.

Příklad, který ukazuje, jak používat tuto funkci, naleznete v Přidání poznámek technologie IntelliSense.

getFunctionComments(func);

Komentáře pro určené funkce vrátí.

funcUrčuje funkci, pro kterou jsou vráceny komentáře.

Můžete nastavit func parametru pomocí completionItem.value.

Vráceného functionComments objekt zahrnuje následující členy: above, inside, a paramComment.Další informace naleznete v tématu o vlastnosti Vlastnost functionComments.

getFunctionCommentsmůže být volána pouze z uvnitř jedné z obslužných rutin událostí, které jsou registrovány addEventListener.

Příklad zobrazuje způsob použití této funkce naleznete v tématu \\cestu pro instalaci aplikace Visual Studio\JavaScript\References\showPlainComments.js.

logMessage(msg);

Odešle diagnostické zprávy v okně Výstup.

msgje řetězec, který obsahuje zprávu.

Příklad, který ukazuje, jak používat tuto funkci, naleznete v Odesílání zpráv v okně Výstup.

nullWithCompletionsOf(value);

Vrátí zvláštní hodnotu null pro který seznam dokončení je určena předaný objekt value parametr.

valueUrčuje seznam dokončení pro vrácenou hodnotu.valuemohou být libovolného typu.

Vrácená hodnota null je považována za hodnotu null v době návrhu, ale seznamu dokončení vrácená hodnota je stejná jako seznamu dokončení value parametr.

Jeden pro tato funkce slouží k poskytování technologie IntelliSense pro vrácenou hodnotu návratový typ je předvídatelné za běhu, ale vrácená hodnota je null v době návrhu.

redirectDefinition(func, definition);

Pokyn technologii IntelliSense pro funkci definice zadané místo původní funkce func v případě pomoci parametru nebo Přejít na definici je požadována.

funcUrčuje cílovou funkci.

definitionUrčuje funkci, která má být použita místo cílové funkce pro informace o parametrech a Přejít na definici.

setCallContext(func, thisArg);

Nastaví kontext volání nebo rozsah pro určené funkce.

funcUrčuje funkci, pro kterou chcete nastavit rozsah.

thisArgje objekt literálu, ke kterému this klíčové slovo může odkazovat, který určuje nový obor pro člen.Argumenty pro tento parametr může obsahovat napříkladintellisense.setCallContext(func, { thisArg: "", args: [23,2] });

setCallContextposkytuje podobné chování Function.prototype.bind, s tím rozdílem, že používá pouze pro podporu technologie IntelliSense v době návrhu.Můžete použít setCallContext k nastavení rozsahu funkce, potřebujete-li simulovat volání kód, který je jinak dostupný, takže při volání funkce, volání funkce bude obsahovat správný rozsah a argumenty.

undefinedWithCompletionsOf(value);

Vrátí speciální nedefinovanou hodnotu, pro kterou je seznam dokončení určena předaný objekt value parametr.

valueUrčuje seznam dokončení pro vrácenou hodnotu.valuemohou být libovolného typu.

Nedefinovaný vrátit hodnotu se zachází jako nedefinovaný v době návrhu, ale dokončení seznamu jako návratová hodnota je stejná jako seznamu dokončení value parametr.

Jeden pro tato funkce slouží k poskytování technologie IntelliSense pro vrácenou hodnotu návratový typ je předvídatelné za běhu, ale vrácená hodnota je definována v době návrhu.

version()

Vrátí verze sady Visual Studio.

Členy události

Následující oddíly popisují členy, které jsou vystaveny v objektu události pro následující události: statementcompletion, signaturehelp, a statementcompletionhint.

Hh874692.collapse_all(cs-cz,VS.110).gifVlastnost completionItem

Vrátí identifikátor, známý jako dokončení položky, pro které se žádá okno Quick Info.Tato vlastnost je k dispozici statementcompletionhint objektu události a Vlastnost položky vlastnost statementcompletion objektu události.

Vrácená hodnota: completionItem objekt

Následuje několik členů completionItem objekt:

  • name.Čtení i zápis v items kolekci. jinak, jen pro čtení.Vrátí řetězec, který identifikuje položku dokončení.

  • kind.Čtení i zápis v items kolekci. jinak, jen pro čtení.Vrátí řetězec, který představuje typ položky dokončení.Možné hodnoty jsou metody, pole, vlastnost, parametru, proměnné a rezervován.

  • glyph.Čtení i zápis v items kolekci. jinak, jen pro čtení.Vrátí řetězec, který představuje ikona, která je zobrazena v seznamu dokončení.Možné hodnoty pro glyph použijte následující formát: vs:glyphType, kde glyphType odpovídá členů jazykově nezávislý StandardGlyphGroup výčtu.Například vs:GlyphGroupMethod je jediná možná hodnota pro glyph.Při glyph není nastavena kind vlastnost určuje výchozí ikona.

  • parentObject.Jen pro čteníVrátí nadřazený objekt.

  • value.Jen pro čteníVrátí objekt, který představuje hodnotu položky dokončení.

  • comments.Jen pro čteníVrátí řetězec, který obsahuje poznámky, které jsou nad pole nebo proměnné.

  • scope.Jen pro čteníVrátí obor položky dokončení.Možné hodnoty jsou globální, místní, parametr a člen.

Hh874692.collapse_all(cs-cz,VS.110).gifVlastnost položky

Získá nebo nastaví pole prohlášení dokončení položek.Každý prvek v poli je Vlastnost completionItem objektu.items Vlastnost je k dispozici statementcompletion objektu události.

Vrácená hodnota: matice

Hh874692.collapse_all(cs-cz,VS.110).gifVlastnost functionComments

Komentáře pro funkce vrátí.Tato vlastnost je k dispozici signaturehelp objektu události.

Vrácená hodnota: comments objekt

Následuje několik členů comments objekt:

  • above.Vrátí komentáře výše uvedené funkce.

  • inside.Vrátí komentáře uvnitř funkce, obvykle ve formátu VSDoc.

  • paramComments.Vrátí pole představující komentáře pro každý parametr ve funkci.Členy pole patří:

    • name.Vrátí řetězec představující název parametru.

    • comment.Vrátí řetězec, který obsahuje komentář parametr.

Hh874692.collapse_all(cs-cz,VS.110).gifVlastnost functionHelp

Vrátí v nápovědě k funkci.Tato vlastnost je k dispozici signaturehelp objektu události.

Vrácená hodnota: functionHelp objekt

Následuje několik členů functionHelp objekt:

  • functionName.Čtení/zápis.Vrátí řetězec obsahující název funkce.

  • signatures.Čtení/zápis.Získá nebo nastaví pole funkce podpisy.Každý prvek v poli je signature objektu.Některé signature vlastnosti, jako například locid, odpovídají společné Komentáře XML dokumentace (JavaScript) atributy.

    Členové signature objekt obsahovat:

    • description.Čtení/zápis.Vrátí řetězec, který popisuje funkci.

    • locid.Čtení/zápis.Vrátí řetězec identifikátor, který obsahuje informace o lokalizaci o této funkci.

    • helpKeyword.Čtení/zápis.Vrátí řetězec, který obsahuje klíčové slovo nápovědy.

    • externalFile.Čtení/zápis.Vrátí řetězec, který představuje soubor, který obsahuje ID člena.

    • externalid.Čtení/zápis.Vrátí řetězec, který představuje ID členské funkce.

    • params.Čtení/zápis.Získá nebo nastaví pole parametrů pro funkci.Každý prvek v poli parametry je parameter objekt, který má vlastnosti, které odpovídají následující atributy <param> (JavaScript) element:

      • name.Čtení/zápis.Vrátí řetězec představující název parametru.

      • type.Čtení/zápis.Vrátí řetězec, který představuje typ parametru.

      • elementType.Čtení/zápis.Pokud je typ Array, vrátí řetězec, který představuje typ prvků v poli.

      • description.Čtení/zápis.Vrátí řetězec, který popisuje parametr.

      • locid.Čtení/zápis.Vrátí řetězec identifikátor, který obsahuje informace o lokalizaci o této funkci.

      • optional.Čtení/zápis.Vrátí řetězec, který označuje, zda parametr je nepovinný.trueoznačuje, že parametr je volitelný; falseoznačuje, že tomu tak není.

    • returnValue.Čtení/zápis.Získá nebo nastaví návratovou hodnotu objekt s vlastnostmi, které odpovídají následující atributy <returns> (JavaScript) element:

      • type.Čtení/zápis.Vrátí řetězec, který představuje návratovým typem.

      • elementType.Čtení/zápis.Pokud je typ Array, vrátí řetězec, který představuje typ prvků v poli.

      • description.Čtení/zápis.Vrátí řetězec, který popisuje vrácené hodnoty.

      • locid.Čtení/zápis.Vrátí řetězec identifikátor, který obsahuje informace o lokalizaci o této funkci.

      • helpKeyword.Čtení/zápis.Vrátí řetězec, který obsahuje klíčové slovo nápovědy.

      • externalFile.Čtení/zápis.Vrátí řetězec, který představuje soubor, který obsahuje ID člena.

      • externalid.Čtení/zápis.Vrátí řetězec, který představuje ID členské funkce.

Hh874692.collapse_all(cs-cz,VS.110).gifVlastnost parentObject

Vrátí nadřazený objekt členské funkce.Například pro document.getElementByID, parentObject vrátí document objektu.Tato vlastnost je k dispozici signaturehelp objektu události.

Vrácená hodnota: objekt

Hh874692.collapse_all(cs-cz,VS.110).gifVlastnost target

Vrací objekt reprezentující položku nalevo od znaku aktivační událost, která je tečka (.).Funkce, například target vrátí funkce, pro které se žádá o informace o parametru.Tato vlastnost je k dispozici statementcompletion a signaturehelp objekty událostí.

Vrácená hodnota: objekt

Hh874692.collapse_all(cs-cz,VS.110).gifcílový_název vlastnost

Vrátí řetězec, který představuje cíl.Například "to." targetName vrátí "to".Pro "A.B" (v případě, že kurzor je po "B") targetName vrátí "B".Tato vlastnost je k dispozici statementcompletion objektu události.

Vrácená hodnota: řetězec

Hh874692.collapse_all(cs-cz,VS.110).gifVlastnost symbolHelp

Vrátí dokončení položky, pro které se žádá okno Quick Info.Tato vlastnost je k dispozici statementcompletionhint objektu události.

Vrácená hodnota: symbolHelp objektu.

Některé vlastnosti symbolHelp objektu, jako například locid, odpovídají společné Komentáře XML dokumentace (JavaScript) atributy.

Následuje několik členů symbolHelp objekt:

  • name.Čtení/zápis.Vrátí řetězec obsahující název identifikátoru.

  • symbolType.Čtení/zápis.Vrátí řetězec, který představuje typ symbolu.Možné hodnoty jsou neznámé, logická hodnota, číslo, řetězec, objekt, funkci, pole, datum a Regex.

  • symbolDisplayType.Čtení/zápis.Vrátí řetězec obsahující název typu, který chcete zobrazit.If symbolDisplayType isn't set, symbolType is used.

  • elementType.Čtení/zápis.Pokud symbolType je Array, vrátí řetězec, který představuje typ prvků v poli.

  • scope.Čtení/zápis.Vrátí řetězec, který představuje obor symbolu.Přípustné hodnoty zahrnují globální, místní, parametr a člen.

  • description.Čtení/zápis.Vrátí řetězec, který obsahuje popis symbol.

  • locid.Čtení/zápis.Vrátí identifikátor řetězce, který obsahuje informace o lokalizaci o symbolu.

  • helpKeyword.Čtení/zápis.Vrátí řetězec, který obsahuje klíčové slovo nápovědy.

  • externalFile.Čtení/zápis.Vrátí řetězec, který představuje soubor, který obsahuje ID člena.

  • externalid.Čtení/zápis.Vrátí řetězec, který představuje ID člena symbolu.

  • functionHelp.Čtení/zápis.Vrátí Vlastnost functionHelp, které by mohly obsahovat informace při symbolType je funkce.

Hh874692.collapse_all(cs-cz,VS.110).gifobor vlastností

Vrátí obor dokončení události.Možné hodnoty pro dokončení oboru jsou globální a členy.Tato vlastnost je k dispozici statementcompletion objektu události.

Vrácená hodnota: řetězec

Ladění rozšíření technologie IntelliSense

Nelze ladit rozšíření, ale můžete použít technologie IntelliSense objektu funkce pro odeslání informací v okně Výstup Visual Studio.Příklad, který ukazuje, jak používat tuto funkci, naleznete v Odesílání zpráv v okně Výstup dále v tomto tématu.Pro logMessage práce, musí být alespoň jedna obslužná rutina registrována v rozšíření.

Příklady kódu

Tato část obsahuje příklady kódu, které ukazují, jak použít rozhraní API pro rozšíření technologie IntelliSense.Existují také další způsoby použití těchto rozhraní API.Další příklady naleznete v tématu následující soubory \\cestu pro instalaci aplikace Visual Studio\JavaScript\References složky.Tyto příklady, které používá služba jazyka JavaScript práci.

  • underscoreFilter.js.Tento kód skryje soukromé členy z technologie IntelliSense.Obsahuje obslužné rutiny událostí pro statementcompletion události.

  • showPlainComments.js.Tento kód obsahuje podporu technologie IntelliSense pro standardní komentáře.Obsahuje obslužné rutiny událostí pro signaturehelp a statementcompletionhint události.

Hh874692.collapse_all(cs-cz,VS.110).gifPřidání poznámek technologie IntelliSense

Následující postup ukazuje, jak poskytnout podporu technologie IntelliSense dokumentaci knihovny výrobců bez úpravy přímo v knihovně.Chcete-li to provést, můžete použít intellisense.annotate v rozšíření.

Tento příklad fungoval je nutné tyto soubory jazyka JavaScript ve vašem projektu:

  • demoLib.js, což je soubor projektu, který představuje knihovnu třetích stran.

  • demoLib.intellisense.js, což je rozšíření technologie IntelliSense.Tento soubor nemusí být součástí projektu, ale musí být ve stejné složce jako exampleLib.js.

  • appCode.js, což je soubor projektu, který představuje kód aplikace.

Chcete-li přidat poznámku technologie IntelliSense

  1. Přidejte následující kód demoLib.js.

    function someFunc(a) { };
    var rectangle;
    
  2. Přidejte následující kód demoLib.intellisense.js.

    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. Přidejte následující direktivu pro odkaz na první řádek v appCode.js.Cesty používané v tomto poli označuje, že soubory jazyka JavaScript ve stejné složce.

    /// <reference path="demoLib.js" />
    
  4. V appCode.js zadejte následující kód.Uvidíte dokumentační komentáře XML v rozšíření, které jsou zobrazeny jako informace o parametru technologie IntelliSense.

    Příklad znázorňuje použití intellisense.annotate

  5. V appCode.js zadejte následující kód.Při psaní, zobrazí se standardní komentáře v rozšíření zobrazí jako rychlé informace technologie IntelliSense.

    Příklad znázorňuje použití intellisense.annotate

Hh874692.collapse_all(cs-cz,VS.110).gifOdesílání zpráv v okně Výstup

Následující postup ukazuje, jak odesílat zprávy v okně Výstup.Můžete odesílat zprávy pomoci při ladění rozšíření technologie IntelliSense.

Tento příklad fungoval je nutné tyto soubory jazyka JavaScript ve vašem projektu:

  • exampleLib.js, což je soubor projektu, který představuje knihovnu třetích stran.

  • exampleLib.intellisense.js, což je rozšíření technologie IntelliSense.Tento soubor nemusí být součástí projektu, ale musí být ve stejné složce jako exampleLib.js.

  • appCode.js, což je soubor projektu, který představuje kód aplikace.

Chcete-li odeslat zprávu do okna výstup

  1. Přidejte následující kód exampleLib.js.

    var someVar = {
        a: 1,
        b: 'hello'
    };
    
  2. Přidejte následující kód exampleLib.intellisense.js.

    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. Přidejte následující direktivu pro odkaz na první řádek v appCode.js.Cesty používané v tomto poli označuje, že soubory jazyka JavaScript ve stejné složce.

    /// <reference path="exampleLib.js" />
    
  4. V okně výstup zvolte Služba jazyka JavaScript v Zobrazit výstup z seznamu.(Chcete-li zobrazit výstupní okno, vyberte výstup z nabídky zobrazení.)

  5. V appCode.js zadejte následující kód.Při psaní, okno výstup zobrazuje zprávy ze služby jazyk.První zpráva v okně výstup označuje požádal dokončování pro aktuální obor.

    some
    

    Následuje částečné zobrazení výstupu, který byste měli vidět.

    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. Zvolte Vymazat vše tlačítko v okně Výstup.

  7. Zadejte následující kód.První zpráva v okně výstup označuje požádal seznam členů.

    someVar.
    

    Následuje částečné zobrazení výstupu, který byste měli vidět:

    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(cs-cz,VS.110).gifZměna ikony technologie IntelliSense

Následující postup ukazuje, jak změnit ikony ve výchozím nastavení zobrazena pomocí technologie IntelliSense.Může to být užitečné, pokud poskytují technologie IntelliSense informace o knihovně specifické koncepty, jako jsou obory názvů, třídy, rozhraní a výčty.

Hodnoty k dispozici, naleznete v StandardGlyphGroup.

Tento příklad fungoval je nutné tyto soubory jazyka JavaScript ve vašem projektu:

  • exampleLib.js, což je projekt souboru knihovny represens třetích stran.

  • exampleLib.intellisense.js, což je rozšíření technologie IntelliSense.Tento soubor nemusí být součástí projektu, ale musí být ve stejné složce jako exampleLib.js.

  • appCode.js, což je soubor projektu, který představuje kód aplikace.

Chcete-li změnit ikony

  1. Přidejte následující kód exampleLib.js.

    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. Přidejte následující kód exampleLib.intellisense.js.

    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. Přidejte následující direktivu pro odkaz na první řádek v appCode.js.Cesty používané v tomto poli označuje, že soubory jazyka JavaScript ve stejné složce.

    /// <reference path="exampleLib.js" />
    
  4. V appCode.js zadejte následující kód.Při psaní, uvidíte, že ikony pro obor názvů změnil na "{}", jako je C#.

    Příklad znázorňuje použití vlastnosti glyfů

  5. V appCode.js zadejte následující kód.Při psaní, uvidíte novou ikonu výčtu pro člena Enum1 a novou ikonu třídy pro člena SomeClass1.

    Příklad ukazující použití vlastnosti glyfů

Hh874692.collapse_all(cs-cz,VS.110).gifZamezení spuštění vliv na výsledky technologie IntelliSense

Služba jazyka JavaScript spustí kód dynamicky poskytovat informace technologie IntelliSense.V důsledku toho chování běhu mohou občas narušit požadované výsledky.Následující postup ukazuje, jak přepsat výsledky technologie IntelliSense při běhu chování má za následek nesprávné technologie IntelliSense.

Tento příklad fungoval je nutné tyto soubory jazyka JavaScript ve vašem projektu:

  • exampleLib.js, což je soubor projektu, který představuje knihovnu třetích stran.

  • exampleLib.intellisense.js, což je rozšíření technologie IntelliSense.Tento soubor nemusí být součástí projektu, ale musí být ve stejné složce jako exampleLib.js.

  • appCode.js, což je soubor projektu, který představuje kód aplikace.

Aby se zabránilo run-time vliv na výsledky technologie IntelliSense

  1. Přidejte následující kód exampleLib.js.

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

    V předchozím kódu zalomený funkce ignoruje počáteční volání, založené na hodnotě counta nevrací výsledky.

  2. Přidejte následující direktivu pro odkaz na první řádek v appCode.js.Cesty používané v tomto poli označuje, že soubory jazyka JavaScript ve stejné složce.

    /// <reference path="exampleLib.js" />
    
  3. V appCode.js zadejte následující kód.Protože zalomený je nikdy volána funkce, což znamená, že se místo technologie IntelliSense zobrazí seznam identifikátorů throttled funkci nevrátí žádné výsledky.

    Příkladem potlačení výsledky technologie intellisense

  4. Přidejte následující kód exampleLib.intellisense.js.Tím se změní chování v době návrhu tak, aby technologie IntelliSense zobrazí funkce zabalené podle očekávání.

    window.after = function (count, func) {
        // Just return func. 
        return func;
    };
    
  5. V appCode.js výsledky testu zadáním stejného kódu, který jste zadali dříve.Tentokrát technologie IntelliSense obsahuje požadované informace.

    Příkladem potlačení výsledky technologie IntelliSense

Viz také

Koncepty

JavaScript IntelliSense

Dokončování příkazů pro identifikátory