IntelliSense

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

 
Список параметров перегруженного метода

Как и другие системы автодополнения, IntelliSense является удобным способом просмотреть описания функций, в том числе списки их аргументов. Она ускоряет разработку ПО, уменьшая количество имён и параметров, которые программист должен держать в памяти. Кроме того, она уменьшает количество необходимых запросов к документации, выводя часть документации в виде всплывающих окон в редакторе кода. В ходе работы IntelliSense формирует в памяти базу данных, содержащую метаданные классов, переменных и иных конструкций, которые используются в разрабатываемом приложении. «Классическая» реализация IntelliSense работает, находя в коде специальные маркеры, такие как символ точки. Как только пользователь вводит один из таких маркеров после имени сущности, содержащей один или несколько доступных членов (таких как переменные или методы), IntelliSense показывает пользователю всплывающее окно со списком подходящих членов.

 
Список методов объекта

Если пользователь вводит дополнительные символы, то IntelliSense фильтрует свои результаты, выводя пользователю лишь те члены, которые начинаются на уже введённые буквы. Пользователь может либо принять один из вариантов, предлагаемых IntelliSense (в таком случае оставшаяся часть имени будет дополнена автоматически), либо продолжать набирать имя самостоятельно. Также технология позволяет просматривать информацию о функциях (в виде описания и списков аргументов) и выбирать одну из перегруженных функций, сверяя списки аргументов с теми, которые вводит пользователь.

Подобные технологии имеются и в других популярных текстовых редакторах.

История

править

IntelliSense первый раз появилась в Visual Basic 5.0 Control Creation Edition в 1996 году, который являлся публично доступным прототипом Visual Basic 5.0. Помимо начального тестирования в среде программирования Visual Basic, IntelliSense быстро включили в Visual FoxPro и Visual C++ в Visual Studio 97. Поскольку версия для Visual Basic использовала возможности COM, она была более продвинутой, чем версия для Visual C++, так как последняя не была полностью основана на COM. Эти недостатки были исправлены после появления платформы .NET Framework, которая предоставляет мощную систему метаданных.

IntelliSense вступила в новую стадию разработки с появлением Visual Studio .NET, поддерживавшей метаданные и модель документации кода .NET Framework. В настоящее время IntelliSense поддерживается в Visual Studio для таких языков, как C++, C#, J#, Visual Basic, Visual FoxPro, XML, HTML, XSLT и других. Начиная с Visual Studio 2005 IntelliSense по умолчанию начинает предлагать варианты дополнения кода, не требуя ввода маркеров, то есть, как только пользователь начинает печатать. Поскольку теперь доступные варианты включают в себя и конструкции языка (такие как for или if), они также были включены в список вариантов для автодополнения.

Кроме Visual Studio, IntelliSense также используют и другие продукты Microsoft, такие как FrontPage, Expression Web, IDE Visual Basic for Applications в Microsoft Office и другие. SQL Server 2008 Management Studio включает автодополнение для SQL синтаксиса.

Пример

править

Пусть в Visual Studio редактируется C++-приложение, содержащее следующий класс:

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

Разработчик обращается к этому классу в исходном коде, например:

Foo foo;
foo.

Как только пользователь набирает точку после foo (или нажмет Ctrl + Space), IntelliSense автоматически выводит все доступные члены класса (такие как bar() и foo_bar()). Пользователь может выбрать один из вариантов, используя мышь или клавиши стрелок на клавиатуре и подтвердить свой выбор. По возможности, IntelliSense выводит описание функции, представленное в виде документации в исходном коде. Далее, IntelliSense выводит список аргументов выбранного метода в другом всплывающем окне, как только пользователь наберёт открывающую скобку после имени метода. Как только пользователь начинает вводить имя какой-либо переменной в списке аргументов, IntelliSense также предлагает ему варианты выбора этой переменной. Кроме того, IntelliSense подсвечивает в списке аргументов тот аргумент, который пользователь вводит в данный момент.

Ссылки

править