IntelliSense

IntelliSense

IntelliSense is Microsoft's implementation of autocompletion, best known for its use in the Microsoft Visual Studio integrated development environment. In addition to completing the symbol names the programmer is typing, IntelliSense serves as documentation and disambiguation for variable names, functions and methods using metadata-based reflection.

Overview

Similar to other autocompletion systems, IntelliSense is a convenient way to access descriptions of functions, particularly their parameter lists. It speeds up software development by reducing the amount of name memorization needed and keyboard input required. It also allows for less reference to external documentation as interactive documentation on many symbols (i.e. variables and functions) in the active scope appears dynamically in the form of tooltips while programming. [cite book|last=Murach|title=C# 2005|pages=56]

IntelliSense works by accessing an automatically generated in-memory database of classes, variable names and other constructs defined in or referenced by the application being edited. The "classic" implementation of IntelliSense works by detecting "marker characters" such as periods, or other separator characters depending on the language used. As the user types one of these marker characters immediately after the name of an entity having one or more accessible members (such as contained variables or functions), IntelliSense starts suggesting matches with a pop-up window. The user can either accept the suggestion by typing a statement completion character (keypress|Tab or keypress|Enter or a language-specific marker such as the semicolon for C++) or continue typing the name. Eventually IntelliSense will determine exactly which variable or function the user desires, given enough information. The feature also allows the user to select from a number of overloaded functions in the case of languages that support object oriented programming. IntelliSense can also display a short description of a function in the pop-up window (this feature depends on the amount of documentation contained in the source code of the function).

Similar functionality is present in other source code editors. For example, Vim (as of version 7.0) supports "omnicompletion": a form of programmable autocompletion similar to IntelliSense. Many editors and IDEs that incorporate such functionality utilize ctags to create their context word lists (e.g. UltraEdit). Others, like the Borland and Sun Microsystems IDEs, use internal reflection databases.

History

IntelliSense was first introduced as a feature of a mainstream Microsoft product in 1996, with the Visual Basic 5.0 Control Creation Edition, which was essentially a publicly-available prototype for Visual Basic 5.0. Although initially the primary "test bed" for the technology was the Visual Basic IDE, IntelliSense was quickly incorporated into Visual FoxPro and Visual C++ in the Visual Studio 97 timeframe (one revision after it was first seen in Visual Basic). Because it was based on the introspection capabilities of COM, the Visual Basic versions of IntelliSense were always more robust and complete than the 5.0 and 6.0 (97 and 98 in the Visual Studio naming sequence) versions of Visual C++, which did not have the benefit of being entirely based on COM. These shortcomings (criticized by many VC++ developers since the 97 release) have been largely corrected in the post-.NET product lines. For example, one of the most requested capabilities missing from the pre-.NET products was support for templates, which is now fully implemented.

IntelliSense has entered a new phase of development with the unified Visual Studio.NET environment first released in 2001, augmented by the more powerful introspection and code documentation capabilities provided by the .NET framework. IntelliSense is now supported by the Visual Studio editors for C++, C#, J#, Visual Basic, XML, HTML and XSLT among others. As of Visual Studio 2005, IntelliSense is now activated by default when the user begins to type, instead of requiring marker characters (although this behavior can be turned off). The IDE has the capability of inferring a greater amount of context based on what the developer is typing, to the point that basic language constructs such as for and while are also included in the choice list.

Other Microsoft products that incorporate IntelliSense include FrontPage, Expression Web (in code view), the Visual Basic for Applications IDEs in the Microsoft Office products, and many others. SQL Server 2008 Management Studio will have autocomplete for the SQL syntax.

Example

Assume a C++ application being edited in Visual Studio has a class Foo with some member functions:

class Foo { public: void bar(); void foo_bar(char c, int n);};

When the developer references this class in source code, e.g.:

Foo foo;foo.
as soon as the user types the period after "foo", IntelliSense automatically lists all the available member functions (i.e. bar() and foo_bar()). The user can then select one by using the arrow keys and hitting a completion character when the correct member function is highlighted. When available, IntelliSense displays a short description of the member function as given in the source code documentation.

IntelliSense goes further by indicating the required parameters in another pop-up window as the user fills in the parameters. As the user types a variable name, the feature also makes suggestions to complete the variable as they are typed. IntelliSense continues to show parameters, highlighting the pertinent one, as the user types.

The user can "force" IntelliSense to show its pop-up list without context by using keypress|Ctrl+keypress|J. In Visual Studio this displays the entire application domain object model available to the developer.

Notes

External links

* [http://channel9.msdn.com/showpost.aspx?postid=376182 Microsoft Channel9 Video: Making Sense of VC Intellisense]
* [http://msdn2.microsoft.com/en-us/library/hcw1s69b(vs.71).aspx An overview of IntelliSense from MSDN]
* [http://www.red-gate.com/products/SQL_Prompt/index.htm Red Gate's SQL Prompt provides similar functionality for SQL Server]


Wikimedia Foundation. 2010.

Игры ⚽ Нужна курсовая?

Look at other dictionaries:

  • IntelliSense — IntelliSense  технология автодополнения Microsoft, наиболее известная в Microsoft Visual Studio. Дописывает название функции при вводе начальных букв. Кроме прямого назначения IntelliSense используется для доступа к документации и для… …   Википедия

  • IntelliSense — ist ein von Microsoft in deren Produkt Microsoft Visual Studio angebotenes Hilfsmittel zur automatischen Vervollständigung bei der Bearbeitung von Quellcode durch einen Programmierer. Dabei erhält der Programmierer während seiner Arbeit… …   Deutsch Wikipedia

  • Intellisense — ist ein von Microsoft in deren Produkt Microsoft Visual Studio angebotenes Hilfsmittel zur automatischen Vervollständigung bei der Bearbeitung von Quellcode durch einen Programmierer. Dabei erhält der Programmierer während seiner Arbeit… …   Deutsch Wikipedia

  • IntelliSense — Microsoft IntelliSense es la aplicación de autocompletar, mejor conocido por su utilización en Microsoft Visual Studio entorno de desarrollo integrado. Además de completar el símbolo de los nombres que el programador está escribiendo,… …   Wikipedia Español

  • Microsoft Visual Studio — Visual Studio 2010 SP1 editing a WPF application Developer(s) …   Wikipedia

  • Visual C++ — For Visual C#, see Microsoft Visual C Sharp. Visual C++ Developer(s) Microsoft Corporation Stable release Visual Studio 2010 / April 2010 …   Wikipedia

  • Intelius — Infobox Company company name = Intelius, Inc. company type = corporation genre = electronic commerce foundation = January 2003 founder = Naveen Jain, John Arnold, Edward Petersen, Kevin Marcus, Niraj Shah, Chandan Chauhan location city = location …   Wikipedia

  • OpenROAD — stands for Open Rapid Object Application Development . It is a 4GL development language which include a suite of development tools, with built in IDE (Written in OpenROAD), Code Repository, allowing applications to be developed and deployed on… …   Wikipedia

  • Oxygene (programming language) — Oxygene Developer RemObjects Software Stable release 3.0.21 (August 29, 2009; 2 years ago (2009 08 29)) Influenced by Object Pas …   Wikipedia

  • Microsoft SQL Server — Developer(s) Microsoft Stable release SQL Server 2008 R2 (10.50.2500.0 Service Pack 1) / July 11, 2011; 4 months ago …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”