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 подсвечивает в списке аргументов тот аргумент, который пользователь вводит в данный момент.

Напишите отзыв о статье "IntelliSense"

Ссылки

  • [msdn.microsoft.com/en-us/library/hcw1s69b%28VS.71%29.aspx Использование IntelliSense]  (англ.)


Отрывок, характеризующий IntelliSense

– Ну и прекрасно, – сказал он, – после поговорим. Ах как я тебе рад! – прибавил он.
– Ну, а что же ты, Борису не изменила? – спросил брат.
– Вот глупости! – смеясь крикнула Наташа. – Ни об нем и ни о ком я не думаю и знать не хочу.
– Вот как! Так ты что же?
– Я? – переспросила Наташа, и счастливая улыбка осветила ее лицо. – Ты видел Duport'a?
– Нет.
– Знаменитого Дюпора, танцовщика не видал? Ну так ты не поймешь. Я вот что такое. – Наташа взяла, округлив руки, свою юбку, как танцуют, отбежала несколько шагов, перевернулась, сделала антраша, побила ножкой об ножку и, став на самые кончики носков, прошла несколько шагов.
– Ведь стою? ведь вот, – говорила она; но не удержалась на цыпочках. – Так вот я что такое! Никогда ни за кого не пойду замуж, а пойду в танцовщицы. Только никому не говори.
Ростов так громко и весело захохотал, что Денисову из своей комнаты стало завидно, и Наташа не могла удержаться, засмеялась с ним вместе. – Нет, ведь хорошо? – всё говорила она.
– Хорошо, за Бориса уже не хочешь выходить замуж?
Наташа вспыхнула. – Я не хочу ни за кого замуж итти. Я ему то же самое скажу, когда увижу.
– Вот как! – сказал Ростов.
– Ну, да, это всё пустяки, – продолжала болтать Наташа. – А что Денисов хороший? – спросила она.
– Хороший.
– Ну и прощай, одевайся. Он страшный, Денисов?
– Отчего страшный? – спросил Nicolas. – Нет. Васька славный.
– Ты его Васькой зовешь – странно. А, что он очень хорош?
– Очень хорош.
– Ну, приходи скорей чай пить. Все вместе.
И Наташа встала на цыпочках и прошлась из комнаты так, как делают танцовщицы, но улыбаясь так, как только улыбаются счастливые 15 летние девочки. Встретившись в гостиной с Соней, Ростов покраснел. Он не знал, как обойтись с ней. Вчера они поцеловались в первую минуту радости свидания, но нынче они чувствовали, что нельзя было этого сделать; он чувствовал, что все, и мать и сестры, смотрели на него вопросительно и от него ожидали, как он поведет себя с нею. Он поцеловал ее руку и назвал ее вы – Соня . Но глаза их, встретившись, сказали друг другу «ты» и нежно поцеловались. Она просила своим взглядом у него прощения за то, что в посольстве Наташи она смела напомнить ему о его обещании и благодарила его за его любовь. Он своим взглядом благодарил ее за предложение свободы и говорил, что так ли, иначе ли, он никогда не перестанет любить ее, потому что нельзя не любить ее.
– Как однако странно, – сказала Вера, выбрав общую минуту молчания, – что Соня с Николенькой теперь встретились на вы и как чужие. – Замечание Веры было справедливо, как и все ее замечания; но как и от большей части ее замечаний всем сделалось неловко, и не только Соня, Николай и Наташа, но и старая графиня, которая боялась этой любви сына к Соне, могущей лишить его блестящей партии, тоже покраснела, как девочка. Денисов, к удивлению Ростова, в новом мундире, напомаженный и надушенный, явился в гостиную таким же щеголем, каким он был в сражениях, и таким любезным с дамами и кавалерами, каким Ростов никак не ожидал его видеть.


Вернувшись в Москву из армии, Николай Ростов был принят домашними как лучший сын, герой и ненаглядный Николушка; родными – как милый, приятный и почтительный молодой человек; знакомыми – как красивый гусарский поручик, ловкий танцор и один из лучших женихов Москвы.
Знакомство у Ростовых была вся Москва; денег в нынешний год у старого графа было достаточно, потому что были перезаложены все имения, и потому Николушка, заведя своего собственного рысака и самые модные рейтузы, особенные, каких ни у кого еще в Москве не было, и сапоги, самые модные, с самыми острыми носками и маленькими серебряными шпорами, проводил время очень весело. Ростов, вернувшись домой, испытал приятное чувство после некоторого промежутка времени примеривания себя к старым условиям жизни. Ему казалось, что он очень возмужал и вырос. Отчаяние за невыдержанный из закона Божьего экзамен, занимание денег у Гаврилы на извозчика, тайные поцелуи с Соней, он про всё это вспоминал, как про ребячество, от которого он неизмеримо был далек теперь. Теперь он – гусарский поручик в серебряном ментике, с солдатским Георгием, готовит своего рысака на бег, вместе с известными охотниками, пожилыми, почтенными. У него знакомая дама на бульваре, к которой он ездит вечером. Он дирижировал мазурку на бале у Архаровых, разговаривал о войне с фельдмаршалом Каменским, бывал в английском клубе, и был на ты с одним сорокалетним полковником, с которым познакомил его Денисов.