IntelliSense je technologie automatického dokončování od společnosti Microsoft , která je nejznámější v aplikaci Microsoft Visual Studio . Při zadávání počátečních písmen připojí název funkce. Kromě přímého přiřazení se IntelliSense používá k přístupu k dokumentaci a k odlišení názvů proměnných , funkcí a metod pomocí reflexe .
Stejně jako ostatní dokončovací systémy je IntelliSense pohodlný způsob, jak zobrazit popisy funkcí, včetně seznamů jejich argumentů. Urychluje vývoj softwaru snížením počtu jmen a parametrů, které musí programátor uchovávat v paměti. Snižuje také počet požadovaných požadavků na dokumentaci tím, že se některá dokumentace otevírá v editoru kódu. Během provozu IntelliSense generuje v paměti databázi obsahující metadata tříd, proměnných a dalších konstrukcí, které se používají ve vyvíjené aplikaci. „Klasická“ implementace IntelliSense funguje tak, že v kódu najde speciální značky, jako je například znak tečky. Jakmile uživatel zadá jeden z těchto tokenů za název entity, která obsahuje jeden nebo více dostupných členů (jako jsou proměnné nebo metody), IntelliSense uživateli zobrazí vyskakovací okno se seznamem odpovídajících členů.
Pokud uživatel zadá další znaky, IntelliSense filtruje své výsledky a uživateli zobrazí pouze ty členy, které začínají již zadanými písmeny. Uživatel může buď přijmout jednu z možností poskytovaných IntelliSense (v takovém případě bude zbytek názvu doplněn automaticky), nebo pokračovat v psaní názvu sám. Technologie také umožňuje zobrazit informace o funkcích (ve formě popisu a seznamů argumentů) a vybrat jednu z přetížených funkcí porovnáním seznamů argumentů s těmi, které zadal uživatel.
Podobné technologie jsou dostupné v jiných populárních textových editorech .
IntelliSense se poprvé objevil ve Visual Basic 5.0 Control Creation Edition v roce 1996, což byl veřejně dostupný prototyp Visual Basic 5.0. Kromě počátečního testování v programovacím prostředí Visual Basic byl IntelliSense rychle zahrnut do Visual FoxPro a Visual C++ ve Visual Studiu 97. Protože verze Visual Basic používala možnosti COM, byla pokročilejší než verze Visual C++, protože ta nebyla plně založené na COM. Tyto nedostatky byly opraveny s příchodem rozhraní .NET Framework , které poskytuje výkonný systém metadat.
IntelliSense vstoupilo do nové fáze vývoje představením Visual Studio .NET , které podporovalo metadata a dokumentační model kódu .NET Framework . IntelliSense je aktuálně podporována v sadě Visual Studio pro jazyky jako C++ , C# , J# , Visual Basic , Visual FoxPro , XML , HTML , XSLT a další. Počínaje sadou Visual Studio 2005 IntelliSense ve výchozím nastavení začíná nabízet možnosti dokončení kódu bez nutnosti značek, to znamená, jakmile uživatel začne psát. Vzhledem k tomu, že možnosti, které jsou nyní k dispozici, zahrnují jazykové konstrukce (například for nebo if ), byly také zahrnuty do seznamu možností pro automatické doplňování.
Kromě Visual Studia používají IntelliSense i další produkty Microsoftu , jako je FrontPage , Expression Web , Visual Basic for Applications IDE v Microsoft Office a další. SQL Server 2008 Management Studio zahrnuje dokončování syntaxe SQL .
Předpokládejme, že upravujete aplikaci C++ v sadě Visual Studio , která obsahuje následující třídu:
třída Foo { veřejnost : voidbar ( ); void foo_bar ( char c , int n ); };Vývojář odkazuje na tuto třídu ve zdrojovém kódu, například:
foo foo; foo.Jakmile uživatel napíše tečku za foo (nebo stiskne Ctrl + mezerník), IntelliSense automaticky zobrazí všechny dostupné členy třídy (jako bar() a foo_bar() ). Uživatel může vybrat jednu z možností pomocí myši nebo kláves se šipkami na klávesnici a potvrdit svou volbu. Pokud je to možné, IntelliSense zobrazí popis funkce, poskytnutý jako dokumentace ve zdrojovém kódu. Poté IntelliSense vypíše argumenty vybrané metody v dalším vyskakovacím okně, jakmile uživatel zadá za názvem metody otevřenou závorku. Jakmile uživatel začne psát název proměnné do seznamu argumentů, IntelliSense také nabídne uživateli možnosti pro tuto proměnnou. IntelliSense navíc zvýrazní argument, který uživatel právě zadává do seznamu argumentů.